올리브영 대규모 트래픽 레거시 시스템의 무중단 OAuth2 전환기
올리브영 레거시 인증 시스템의 무중단 OAuth2 전환기
1. 인증 체계 전환 배경 및 목표
- 기존 시스템: Spring Session 기반, 자동 로그인 쿠키 사용.
- 한계: 확장성/복잡성 문제, 보안/제어 한계, 비즈니스 확장성 저해.
- OAuth2 도입 이유: 검증된 표준 프레임워크 필요 (Refresh Token 무효화, 멀티 토큰 관리 등).
- 핵심 도전: 올영세일(평소 대비 10배 트래픽) 기간 중 무중단 마이그레이션.
2. 안전한 전환을 위한 4가지 전략
- Feature Flag 위임 패턴: 런타임에 사용자별 다른 인증 방식(Legacy/OAuth2)으로 위임 (Strategy 패턴 활용).
- 점진적 롤아웃: 10% → 100% 단계적 확대 (2-14일 안정화 기간 확보).
- Jitter 도입: 토큰 갱신 요청 집중 현상 완화 (Peak TPS 40% 감소).
- Resilience4j 장애 격리: Circuit Breaker, Timeout, Retry 적용으로 Authorization Server 장애 대비.
3. Fail-Safe Architecture 상세 구현
- Feature Flag: 임직원 대상 Beta Test 후 점진적 확대, DB 설정 변경으로 런타임 전환, Fallback으로 Legacy 모드 자동 전환.
- 점진적 롤아웃: Phase 1 (토큰 발급만), Phase 2 (실제 전환) 단계적 진행, 올영세일 기간 중 100% 전환 완료 및 안정성 검증.
- Jitter: Access Token 만료 시간(5분) ±30초 랜덤 지연 적용.
- Resilience4j: Authorization Server 장애 시 Circuit Breaker OPEN, Fallback (Graceful Degradation)으로 Legacy 모드 전환, 30초 후 자동 복구.
4. 올영세일 대규모 트래픽 검증 결과
- 성과: 세일 기간 중 10배 트래픽에도 100% 성공률, 대부분 요청 5ms 이내 처리, 리소스 사용률 30-35% 유지.
- Feature Flag/Jitter/Circuit Breaker: 무중단 전환, 부하 분산, 장애 대비 역할 수행.
5. 결론 및 제언
- 완벽보다 안정성 우선, 작은 실패를 통한 예방적 설계 강조.
- 안전한 되돌림 구조, 실제 사용자로의 검증, 장애 가정 설계 중요성 언급.