
요점:
로그인 시 사용자가 입력한 비밀번호는 평문이고, DB에는 bcrypt 같은 해시(단방향 암호화)로 저장
Spring Security는 내부적으로 BCryptPasswordEncoder를 사용해서
matches(입력값, 해시된 비밀번호)로 비교함
request는 유효성 검사를 위해서
→ 로그인 시 HTTP 요청(request)은 유효성 검사를 거쳐 DTO로 변환되고,
AuthenticationManager → AuthenticationProvider로 넘겨져 검증됨
입력 → DTO 매핑 → PasswordEncoder 비교 구조
spring security 라이브러리 추가

Spring Security 라이브러리 추가 후 변화

Spring Security without the WebSecurityConfigurerAdapter
Spring Security는 기본적으로 모든 URL을 차단하므로

permitAll()
등으로 허용 경로를 명시해야 함
예전: WebSecurityConfigurerAdapter를 상속받아 configure() 오버라이드

현재(스프링 3.x): SecurityFilterChain을 Bean으로 등록하는 방식
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) { ... }

3자 인증(네이버, 구글 …) OAuth2

세션 클러스터링 문제

→ 여러 서버가 같은 세션을 공유하려면 별도 스토리지(Redis 등)가 필요함
부하 증가 + 인프라 복잡도 증가

해결책: JWT 토큰

JSESSIONID 불필요 → 서버 부하 ↓