
아키텍처
회원 시스템 MSA 전환 도전기: MAU 1,900만 당근 유저를 위한 선택
두줄요약
당근의 회원·인증 시스템을 MSA로 분리한 과정을 소개했습니다. 레거시 분석, 신규 DB 재설계, Dual-Write와 Rollout으로 무중단 전환을 진행했습니다.
문제 상황
- MAU 1,900만 규모의 회원·인증 기능이 중고거래 서비스에 묶여 있어 복잡도와 장애 영향 범위가 커진 상태
- 관련 없는 배포 블록과 정책 변경이 다른 서비스 개발 생산성까지 저해하는 상황
- 레거시 문서 부재와 오래된 코드로 인해 회원 라이프사이클 파악이 어려운 상태
원인 분석
- 회원·인증 로직이 초기 서비스에 함께 존재하며 정책 변경이 누적된 구조
- 오래된 코드와 누락된 문서로 인해 실제 동작과 이해 사이의 차이 발생
- 기존 테이블 구조가 확장 요구를 수용하기 어려운 상태
해결 방법
- 회원·인증 시스템을 완전히 독립된 서비스로 분리하고 데이터와 비즈니스 로직을 함께 재설계
- 레거시 분석을 위해 회원 라이프사이클 정답지와 로그 지표를 구축해 동작을 검증
- 신규 DB는 스키마 재설계와 Protobuf 기반 명세 관리로 확장성과 유지보수성을 확보
성능/운영 포인트
- Dual-Write와 데이터 마이그레이션 Job으로 레거시와 신규 DB 정합성 관리
- 프록시 사이드카로 트래픽을 가로채고 레거시 응답을 유지한 채 신규 DB에 동시 기록
- 응답 Shadowing, 점진적 Rollout, 슬랙 리포트와 모니터링으로 무중단 전환 지원