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.개발 프로세스
- 기획
- API명세서 작성 / ERD 작성
- 코딩 컨벤션 정하기
- 초기 세팅(zip파일로 생성)
- 개발
-API하나 만든다고 할떄 Controller -> Service -> Dto -> Domain -> Repository순으로 개발
(Config, Exception, Security, Type, Util 클래스는 필요에 따라 작성) - API 테스트 - Postman
- API 문서화 - Swagger 사용
'백엔드' 카테고리의 다른 글
| [백엔드]2주차 과제-자료구조 (1) | 2026.01.20 |
|---|