백엔드

[백엔드]-4주차 과제

dwbh23 2026. 2. 2. 12:19

spring요약

 

1.Spring

-Java 플랫폼을 위한 오픈소스 어플리케이션 프레임워크

 

  • 제어의 역전 : 객체의 생명주기를 개발자가 아닌 컨테이너가 관리

  • 의존성 주입 : 객체 간의 의존성을 주입 받아 관리 (@Bean)

  • 관점 지향 프로그래밍 : 모듈성을 높일 목적으로 서로 다른 관심사를 분리

  • 기타 : 모듈화와 유연성, 생산성 향상, 강력한 테스트 지원, 확장성과 대규모 지원, 보안강화, ...

 

2.Spring boot

-스프링 기반 프로젝트를 어려운 설정 없이 바로 개발에 들어갈 수 있도록 만든 프레임워크

 

  • 설정 자동화
  • 라이브러리 버전 자동 관리 : 서드파티 라이브러리들도 호환되는 버전이 자동 다운
  • 내장 Tomcat, Jetty, Undertow : Spring-boot-starter 의존성 추가하면 @ SpringBootApplication 클래스 선언된 클래스의 main() 메소드 실행만으로 서버 구동 가능
  • 독립적으로 실행 가능한 JAR (->내장 Tomcat)

 

 

3.Spring Security

-Spring framework의 서브 프로젝트/인증과 권한 부여와 같은 보안 관련 기능 제공(보안 프레임워크)

-일일이 보안 관련 로직 작성할 필요 x

 

-특징 및 동작 원리

  • Filter 기반 동작이기에 스프링 MVC와 분리되어 관리 및 동작
  • 요청 처리전 다양한 필터 넣기 가능 ( 필터: 클라이언트와 자원 사이 요청,응답 정보 이용해 다양한 처리)

 

 

-Spring Security로 막을수 있는 공격

  • Cross-Site Requeat Forgery (CSRF)
    • 사용자가 인증 된 상태에서 악성요청을 보내 피해 유발
    • 방어방법 : CSRF 보호 활성화 -> 모든 POST, PUT, DELETE 요청에 토큰 검증 추가
  • Session Fixation
    • 공격자가 사용자의 세션 ID탈취해 세션 가로채는것
    • 방어 방법 : 인증 후 새로운 세션 ID를 생성하도록 기본 세팅 +세션 만료, 동시 세션 제한 기능
  • Brute Force Attack
    • 비밀번호 알아낼떄까지 반복적으로 로그인 시도
    • 방어 방법 : 계정 잠금 기능, 로그인 실패 횟수 추적
  • Man-in-the-Middle Attack(MITM)
    • 네트워크를 가로채 요청, 응답을 중간에서 조작/탈취
    • 방어 방법 : HTTPS로 통신 암호화, HTTP를 HTTPS로 리다이렉트 설정
  • Clickjacking
    • 악성 웹페이지가 애플리케이션을 iframe에 삽입해 사용자 동작 유도
    • 방어 방법 : X-Frame-Options헤더 설정으로 iframe 삽입 방지
  • Password Cracking
    • 암호화되지 않은 비밀번호 탈취 또는 해시 알고리즘 역추적
    • 방어 방법 : 강력한 비밀번호 해시 알고리즘 사용(Bcrypt-단방향 해시 알고리즘)
  • Insecure Direct Object References (IDOR)
    • 인증되지 않은 사용자가 자원 접근 URL을 직접 입력해 민감한 정보에 접근
    • 방어 방법 : Spring Security의 URL기반 권한 설정으로 자원 보호

 

4.개발 프로세스

 

  1. 기획
  2. API명세서 작성 / ERD 작성
  3. 코딩 컨벤션 정하기
  4. 초기 세팅(zip파일로 생성)
  5. 개발
    -API하나 만든다고 할떄 Controller -> Service -> Dto -> Domain -> Repository순으로 개발
    (Config, Exception, Security, Type, Util 클래스는 필요에 따라 작성)
  6. API 테스트 - Postman
  7. API 문서화 - Swagger 사용

'백엔드' 카테고리의 다른 글

[백엔드]2주차 과제-자료구조  (1) 2026.01.20