멈추면 안 되는 커머스의 심장, 인증 시스템을 달리는 차에서 엔진 갈아 끼우듯 교체하는 법
올리브영 온라인몰이 수년 된 레거시 세션 인증을 최신 OAuth2 표준으로 성공적으로 전환한 기술적 여정을 다룹니다. 대규모 트래픽 상황에서도 시스템 중단 없이 안전하게 인증 체계를 교체하기 위해 도입한 아키텍처 패턴과 장애 방어 전략을 상세히 공유합니다.
레거시 시스템 마이그레이션을 준비 중이거나 대규모 트래픽 환경에서 인증 인프라 고도화가 필요한 백엔드 엔지니어에게 추천합니다. 특히 리스크가 큰 작업을 안전하게 수행하기 위한 'Fail-Safe' 전략 수립에 큰 도움이 될 것입니다.
기존 Spring Session 기반 인증 체계는 중앙 Redis 의존성으로 인한 확장성 한계, 기기별 세션 제어 불가 등 보안성 부족, 그리고 복잡한 레거시 로직으로 인해 신규 서비스 연동 시 비즈니스 확장성을 저해하는 문제를 안고 있었습니다.
Feature Flag 위임 패턴과 Strategy 패턴을 도입하여 런타임에 인증 방식을 동적으로 전환할 수 있는 인터셉터 구조를 설계하고, 임직원 대상 베타 테스트를 거치는 점진적 롤아웃 전략과 Jitter 및 Resilience4j를 통한 장애 격리 메커니즘을 적용했습니다.
평소 대비 10배 트래픽이 몰리는 대규모 세일 기간에도 장애 없이 무중단으로 OAuth2 전환을 완료했으며, DB 설정 변경만으로 즉시 롤백이 가능한 안전 구조를 확보하여 모니터링 지표 기반의 안정적인 운영 환경을 구축했습니다.
Trade-off
본문에 구체적으로 명시되지는 않았으나, 위임 인터셉터에서 매 요청마다 Feature Flag를 조회하기 위한 데이터베이스 접근 혹은 캐시 확인 비용이 발생하며, 과도기 동안 두 가지 인증 로직을 동시에 유지보수해야 하는 운영 복잡성이 증가했을 것으로 예상됩니다.
코드 수정 없이 런타임에 특정 기능의 활성화 여부를 결정하고 실행 흐름을 제어하는 방식입니다.
실행 중에 알고리즘이나 로직을 동적으로 선택할 수 있게 하는 디자인 패턴입니다.
서비스 장애 시 연쇄적인 시스템 붕괴를 막기 위해 외부 호출을 차단하고 격리하는 도구입니다.