
데브옵스
당근마켓 웹 플랫폼 외전 — 레거시 시스템 안전하게 제거하기
두줄요약
로컬 웹뷰의 잔존 트래픽과 하위 호환성 문제를 계측한 뒤, Cloudflare Workers로 호환 동작을 이전하며 안전하게 폐기했습니다. 분산된 정책과 AWS 리소스를 단일 스크립트로 통합해 유지보수성과 온보딩 부담도 줄였습니다.
문제 상황
- 로컬 웹뷰가 사실상 사용되지 않게 되었지만, 딥링크 하위 호환성과 잔존 트래픽 때문에 쉽게 제거하지 못하는 기술 부채
- 로컬 웹뷰 대응 코드가 프론트엔드, 모바일 앱, AWS 리소스에 분산되어 유지보수성과 개발자 온보딩을 저해
- HTTP 시맨틱과 추적 제약으로 실제 사용 패턴 파악이 어려워 안전한 폐기 판단이 힘든 상태
원인 분석
- 초기에 오프라인 파일 동기화와 캐싱 개선을 노렸지만, 빠르게 배포되는 웹뷰 서비스 환경과 맞지 않아 장점이 희석됨
- 호환성 로직이 클라이언트와 인프라에 흩어져 있어 변경 비용과 사고 위험이 커짐
- 오래된 맥락이 문서와 기억에만 남아 있어 영향도 파악이 어려움
해결 방법
- CloudFront, S3, Athena 중심 구성을 Cloudflare Workers의 단일 스크립트와 매니페스트로 통합
- 스킴 핸들러 동작을 서버 측으로 옮기고, 앱은 deprecated 파라미터 위임만 담당하도록 단순화
- Workers Analytics Engine으로 실시간 요청량을 추적하며 잔존 진입점을 점진적으로 이전
적용해볼 점
- 하위 호환성 제거 전 실제 트래픽과 잔존 경로를 먼저 계측할 것
- 캐시나 폐기 대상 기능에는 제거 수단까지 함께 설계할 것
- 영향이 큰 변경은 추적 코드를 선배포해 실제 환경 검증을 거칠 것