Phoenix 프로젝트 Security vs 기본 Security

윤슬·2025년 11월 4일

🔒 Phoenix 프로젝트 Security 설정 vs 기본 Spring Security 비교

📘 핵심 비교표

구분기본 Spring Security(Form Login)Phoenix 프로젝트(SecurityConfig)차이 요약
인증 방식세션(Session) 기반세션 기반 + JWT 구조 지원(비활성화)JWT 전환 고려한 구조
로그인 처리내장 로그인 폼(/login)React에서 POST /members/login 요청프론트-백 분리형 REST 구조
세션 정책ALWAYS (항상 생성)IF_REQUIRED (필요할 때만 생성)최소 세션 생성으로 효율성↑
CSRF기본 활성화.csrf().disable()REST API는 세션 토큰 불필요
HTTP Basic 인증활성화 (Authorization: Basic).httpBasic().disable()보안상 Base64 인증 제거
폼 로그인(FormLogin)활성화.formLogin().disable()React UI에서 직접 로그인
로그아웃/logout 자동 처리.logout().disable()프론트단 쿠키/세션 직접 관리
JWT 필터없음JwtAuthenticationFilter 존재 (주석 처리)구조상 JWT 쉽게 추가 가능
OAuth2 로그인기본 Provider 설정만CustomOAuth2UserService + OAuth2SuccessHandler소셜 로그인 로직 커스텀
응답 방식HTML 리다이렉트JSON ({success, message}) 응답SPA 환경에 맞춤형 응답
CORS 정책기본 차단http://localhost:5173 허용React 개발 서버 접근 허용
예외 처리기본 에러 페이지JSON 형태로 직접 응답 (401/403)REST API 표준화
세션 저장 위치JSESSIONID (브라우저 쿠키)동일, 단 세션 최소화JWT 전환 대비 유지 구조
PasswordEncoder기본 DelegatingPasswordEncoderBCryptPasswordEncoder 명시 사용암호화 강도↑
URL 접근 제어기본 /login, /logout, /error/members/**, /reserve/**, /senior/** 등 세분화도메인 단위 접근 제어

⚙️ 한 줄 요약

Phoenix는 “기본 폼 로그인 기반 시큐리티”를 완전히 걷어내고,
SPA(React) + REST API + 세션 기반 인증 구조로 재설계한 버전이다.

✅ 주요 특징 요약

  • 폼 로그인 → REST API 로그인
  • 리다이렉트 → JSON 응답 방식
  • Basic/CSRF 비활성화 (REST 환경)
  • OAuth2 커스텀 처리 + 세션 최소화
  • JWT 구조만 남겨두고 세션 기반으로 안정화

🚀 정리 포인트

Phoenix 프로젝트의 Security 설정은
Spring 기본 설정의 “폼 로그인-리다이렉트 중심” 구조를
프론트-백 완전 분리형 REST 인증 구조로 전환한 사례다.

즉,

  • React → 로그인/회원가입/인증 요청 담당
  • Spring Boot → 세션 저장 & OAuth2 후처리 담당
  • JWT 필터 비활성화 → 추후 무상태 인증 전환 대비 유지

기본 시큐리티의 목적이 서버-HTML 렌더링 보안이라면,
Phoenix는 API 통신 중심의 인증 흐름에 맞게
CORS, 예외 응답, 세션 정책, 로그인 처리 전부 직접 커스터마이징한 구조다.

profile
우상향그래프

0개의 댓글