피드로 돌아가기
올리브영 대규모 트래픽 레거시 시스템의 무중단 OAuth2 전환기
올리브영 테크블로그올리브영 테크블로그
Backend

올리브영 대규모 트래픽 레거시 시스템의 무중단 OAuth2 전환기

올리브영이 Feature Flag 위임 패턴과 Circuit Breaker를 조합해 평소 대비 10배 트래픽 상황에서도 레거시 세션 기반 인증을 OAuth2로 무중단 전환

2026년 1월 30일12advanced

Context

기존 Spring Session 기반 세션-쿠키 혼재 구조는 중앙 Redis 의존성으로 마이크로서비스 확장을 제약했고, 로그아웃 후에도 자동 로그인 쿠키가 유효해 보안 사고 즉시 대응이 불가능했으며, 복잡한 레거시 로직이 외부 서비스 연동을 어렵게 했다. 8월 말 올영세일(평소 대비 10배 트래픽) 2주 전 전환을 완료해야 하는 상황에서 무중단 마이그레이션이 필수였다.

Technical Solution

  • Feature Flag 위임 패턴(FeatureFlagDelegatingInterceptor): 모든 HTTP 요청을 단일 진입점에서 가로채 Database 설정에 따라 OAuth2(Phase 2) 또는 레거시(Phase 1) 인증 체인으로 런타임에 분기 처리하고, 예외 발생 시 자동으로 레거시 모드로 Fallback
  • 3단계 Feature Flag 제어: 임직원 대상 베타 테스트(phase2.staff=Y) → 일부 사용자 확대 → 전체 공개(phase2.all=Y)로 단계화해 코드 배포 없이 DB 설정 변경만으로 즉시 전환 가능
  • 점진적 롤아웃 전략: 사용자를 10% → (단계별) → 100%로 단계적으로 확대하면서 각 Phase별 트래픽 분포, 에러율, 응답시간을 Datadog에서 실시간 추적
  • Resilience4j 3단계 장애 격리: 3초 Timeout → 최대 2회 Retry → Circuit Breaker로 Authorization Server 요청을 보호하고, 실패율 50% 시 즉시 OPEN 상태 전환해 기존 세션 인증으로 자동 대체(Graceful Degradation)
  • Jitter 도입: Peak TPS를 40% 감소시켜 동시 요청 분산

Impact

  • 2025년 9월 Authorization Server 응답 시간이 3초에서 10초 이상으로 급증한 장애 발생 시, Circuit Breaker가 자동으로 회로 차단해 약 2분간 일부 요청을 Fallback으로 처리하면서 실제 서비스 중단 발생 안 함
  • 올영세일 기간(평소 대비 10배 트래픽) 중 안전하게 OAuth2 전환 완료

Key Takeaway

레거시 시스템 무중단 전환의 핵심은 완벽한 기술 구현이 아니라, Feature Flag로 언제든 롤백 가능한 구조 → 작은 사용자 그룹(임직원)으로 실제 환경 검증 → 외부 서버 장애를 전제한 Circuit Breaker 설계의 3단계 안전 기반을 순서대로 구축하는 것이다. 이를 통해 이론적 완벽성보다 운영 안정성을 우선한 설계가 예상 밖의 장애 상황에서도 서비스 연속성을 보장한다.


대규모 트래픽 환경에서 레거시 인증 시스템을 신규 표준(OAuth2, OIDC 등)으로 마이그레이션할 때, Feature Flag 기반 Strategy 패턴을 구현해 요청 처리 흐름을 런타임에 분기하고, 임직원 같은 통제 그룹에서 먼저 검증한 후 점진적으로 사용자를 확대하며, 동시에 Circuit Breaker를 외부 인증 서버 호출에 적용하면 예상 밖의 장애 상황에서도 기존 방식으로 자동 대체되는 무중단 전환이 가능하다.

원문 읽기