🎯 목적
dev 환경에서 실제 카카오/Apple OAuth와 Mock OAuth를 모두 사용할 수 있도록 한다. 현재는 mock-oauth.enabled=true이면 Real processor가 비활성화되어, 실제 OAuth로 가입한 유저의 토큰이 만료되면 dev에서 그 유저로 테스트할 수 없는 문제가 있다.
📦 변경 범위
KakaoProcessor/AppleProcessor: @ConditionalOnProperty 제거 → 항상 빈 등록
- 신규 마커 인터페이스
MockOAuthProcessor (Mock processor들이 구현)
OAuthProcessorFactory: realMap / mockMap 분리, getClient(type, useMock) 시그니처
AuthController.login에 @RequestHeader(name = "X-Mock-OAuth", required = false, defaultValue = "false") useMock: Boolean 추가
- prod 안전 장치: Mock 빈 없음 +
useMock=true 들어오면 UnsupportedOAuthModeException → 400 (Real fallback 없음)
⚠️ 운영 영향
- dev: 헤더 없거나 false → 기존 prod 가입 유저로 로그인 가능. 헤더 true → Mock 가입자로 로그인.
- prod: Mock 빈 미등록 + 400 reject 이중 안전. 동작 변경 없음.
🎯 목적
dev 환경에서 실제 카카오/Apple OAuth와 Mock OAuth를 모두 사용할 수 있도록 한다. 현재는
mock-oauth.enabled=true이면 Real processor가 비활성화되어, 실제 OAuth로 가입한 유저의 토큰이 만료되면 dev에서 그 유저로 테스트할 수 없는 문제가 있다.📦 변경 범위
KakaoProcessor/AppleProcessor:@ConditionalOnProperty제거 → 항상 빈 등록MockOAuthProcessor(Mock processor들이 구현)OAuthProcessorFactory: realMap / mockMap 분리,getClient(type, useMock)시그니처AuthController.login에@RequestHeader(name = "X-Mock-OAuth", required = false, defaultValue = "false") useMock: Boolean추가useMock=true들어오면UnsupportedOAuthModeException→ 400 (Real fallback 없음)