2026/08 12

08. 인증 프로세스 전체 흐름

Spring Security 인증 프로세스 전체 흐름 초기화 → 필터 체인 → 인증 → 인가 — 요청부터 응답까지 완전 해부 Ch.1 초기화 Ch.2 인증 프로세스 Ch.3 인증 아키텍처 Ch.4 인증 상태 영속성 Ch.5 세션 관리 Ch.6 예외 처리 Ch.7 악용 보호 목차 초기화 과정: DelegatingFilterProxy → FilterChainProxy → SecurityFilterChain 필터 체인 전체 순서와 역할 인증 아키텍처: AuthenticationManager와 ProviderManager 폼 로그인 전체 흐름 ..

07. 악용 보호

악용 보호 CORS, CSRF, SameSite — 웹 보안의 세 가지 핵심 방어 메커니즘 목차 CORS (Cross-Origin Resource Sharing) CSRF (Cross-Site Request Forgery) CSRF 토큰 관리 CSRF 통합 (Forms, SPA, MPA) SameSite 쿠키 속성 웹 애플리케이션은 출처를 넘나드는 요청(Cross-Origin)과 위조 요청(CSRF)에 노출되어 있다. CORS는 브라우저가 허용된 출처의 교차 요청만 허용하도록 제어하고, CSRF는 서버가 서명된 토큰으로 정상 요청을 검증한다. SameSite 속성은 쿠키 전송 범위를 출처 수준에서..

06. 예외 처리

예외 처리 Spring Security의 인증·인가 예외를 감지하고 적절한 응답으로 처리하는 메커니즘 목차 예외 유형: AuthenticationException vs AccessDeniedException exceptionHandling() API ExceptionTranslationFilter 흐름 HttpSessionRequestCache와 요청 저장 Spring Security는 필터 체인 내에서 발생하는 보안 예외를 ExceptionTranslationFilter가 중앙에서 포착한다. 예외는 크게 인증 실패(AuthenticationException)와 인가 실패(AccessDeniedException)로 구분..

05. 세션 관리

세션 관리 Spring Security의 세션 생성 정책, 고정 보호, 동시 세션 제어 전략 목차 동시 세션 제어 세션 고정 보호 세션 생성 정책 SessionManagementFilter & ConcurrentSessionFilter Spring Security의 세션 관리는 인증된 사용자의 세션을 안전하게 유지하기 위한 여러 전략을 제공한다. 동시 세션 제어를 통해 동일 계정의 중복 로그인을 관리하고, 세션 고정 보호로 세션 하이재킹 공격을 방어하며, SessionCreationPolicy를 통해 세션 생성 방식을 세밀하게 제어할 수 있다. 이 모든 처리는 SessionManagementFilter와 Co..

04. 인증 상태 영속성

인증 상태 영속성 SecurityContext의 저장, 로드, 삭제 메커니즘과 요청 간 인증 유지 전략 목차 SecurityContextRepository SecurityContextHolderFilter SecurityContextHolderFilter vs SecurityContextPersistenceFilter securityContext() API 커스텀 인증 필터에서의 SecurityContextRepository 스프링 MVC 로그인 구현 인증 상태 영속성은 사용자가 한번 인증을 하면 이후 요청에서도 인증이 유지되는 메커니즘이다. 사용자의 인증 정보와 권한이 SecurityContext에..

04. 관계형 데이터베이스와 DML

SQLD STUDY NOTE · PART 2 · 01 관계형 데이터베이스와 테이블, DML 관계형 DB가 왜 표준이 됐는지, 그리고 테이블을 만들고 데이터를 채우는 기본기를 정리한다. CREATE 테이블 정의 INSERT / UPDATE DELETE 메모리 버퍼 관계형 데이터베이스, 파일 관리의 한계를 넘어서다 데이터 양이 많아지고 여러 사람이 같은 데이터를 동시에 다루기 시작하면, 엑셀 같은 개인용 소프트웨어로는 한계에 부딪힌다. 파일 하나를 여러 사용자가 동시에 조회할 수는 있지만, 동시에 입력·수정·삭제하는 것은 불가능하기 때문이다. 이를 해..

03. 정규화 / 반정규화

SQLD STUDY NOTE · PART 1 · 03 성능 데이터 모델링, 정규화와 반정규화 설계 단계에서 성능을 결정짓는 두 축, 정규화와 반정규화가 실제로 어떻게 맞물리는지 정리한다. 정규화 반정규화 입력·수정·삭제 유리 조회 단순화 성능 데이터 모델링, 반정규화만의 문제가 아니다 설계 단계에서 성능을 고려하지 않은 모델은, 아무리 좋은 서버와 SQL 튜닝을 얹어도 근본적인 한계에 부딪힌다. 실무에서 성능 저하가 생기면 개발자가 짠 SQL부터 의심받는 일이 많지만, 실제로는 테이블 설계 자체가 원인인 경우가 상당하다. 성능이 떨어지는 원인은 대개 셋 중 하나다...

02. 속성, 관계, 식별자

SQLD STUDY NOTE · PART 1 · 02 속성, 관계, 식별자 엔터티에 살을 붙이는 속성, 엔터티끼리 잇는 관계, 인스턴스를 구별하는 식별자를 정리한다. 사원 PK 사원번호 1 속성: 이름 1 속성: 직책 M 소속 부서 관계 속성, 더는 쪼개지지 않는 최소 단위 속성이란 업무에서 필요로 하는, 인스턴스로 관리하고자 하는 의미상 더는 분리되지 않는 최소의 데이터 단위다. 엔터티가 무엇인지를 정의한다면, 속성은 그 무엇이 구체적으로 어떤 성질을 갖는지를 정의한다. 생년월일을 예로 들면 이해가 쉽다. 생년월일은 그..

01. 데이터 모델링과 엔티티

SQLD STUDY NOTE · PART 1 · 01 데이터 모델링과 엔터티 데이터 모델링의 기본 개념과 엔터티의 정의, 분류, 검증 기준을 정리한다. 엔터티 1 인스턴스 A 인스턴스 B 속성: 이름 값: 홍길동 속성: 이름 값: 조시형 모델링이란 모델(model)은 복잡한 현실을 일정한 표기법으로 축소·정리한 것이다. 현실 세계를 그대로 다룰 수 없기 때문에 필요한 부분만 뽑아서 구조화한다. 정의는 학자마다 조금씩 다르지만, 결국 "복잡한 것을 단순하게 표현한다"는 점은 동일하다. 모델링이 하는 일은 세 가지로 나뉜다..