국내 No.1 부동산 앱 직방의 자회사가 운영하는 호갱노노. 월 300만 명이 사용하는 이 앱의 API 일부를 현대화하는 프로젝트에 디비컨설팅 개발자들이 참여했습니다. 대규모 서비스의 레거시 코드를 현대화하면서 배운 것들을 정리합니다.
레거시 마이그레이션이란?
기존에 오래된 언어나 기술로 작성된 코드를 새로운 기술 스택으로 옮기는 작업입니다. 이 경우 “API 현대화” — 즉, 기존 백엔드 API를 최신 언어/프레임워크로 다시 작성하는 작업이었습니다.
왜 레거시 마이그레이션이 필요한가
서비스가 오래될수록 코드는 낡아갑니다.
- 초기에는 빠르게 만드는 게 우선이다 보니 기술 부채가 쌓임
- 팀 규모가 커지면서 코드 일관성이 흐트러짐
- 새 기능을 추가할 때마다 기존 코드와 충돌
- 새로운 개발자가 합류해도 이해하기 어려운 구조
월 300만 명이 쓰는 서비스라면, 이 문제가 실제 성능과 안정성에 직접 영향을 줍니다.
레거시 마이그레이션의 가장 큰 리스크: 서비스 중단
이미 수백만 명이 쓰고 있는 서비스의 코드를 바꾸는 것은, 달리는 자동차의 엔진을 교체하는 것과 비슷합니다. 잘못하면 서비스가 멈춥니다.
이 프로젝트에서 핵심 원칙은 “기존 서비스를 절대 중단시키지 않는다” 였습니다.
접근 방식:
- 기존 API와 신규 API를 병렬 운영
- 트래픽을 점진적으로 신규 API로 이전 (10% → 30% → 50% → 100%)
- 각 단계에서 충분한 모니터링
- 문제 발생 시 즉시 기존 API로 롤백 가능한 구조 유지
직방의 까다로운 기술 가이드라인
직방은 국내 IT 업계에서 기술력으로 알려진 회사입니다. 이 프로젝트에서도 매우 높은 수준의 코딩 컨벤션과 코드 리뷰 기준을 요구했습니다.
구체적으로:
- 테스트 커버리지 기준 준수
- PR(Pull Request) 코드 리뷰 프로세스
- 문서화 기준
- 성능 벤치마크
이 기준을 맞추기 위해 인도 개발팀과 한국 PM팀이 긴밀하게 협력해야 했습니다. 단순히 “코드를 짜는 것”이 아니라 상대방의 기술 문화와 수준에 맞춰 일하는 것이 핵심이었습니다.
부동산 앱 API 설계 시 특별한 점
부동산 데이터는 특성이 있습니다.
1. 데이터 양이 방대합니다: 전국의 모든 아파트, 건물, 실거래가 데이터. 조회 성능이 무엇보다 중요합니다.
2. 실시간성이 중요합니다: 실거래가는 계속 업데이트됩니다. 캐시 전략을 어떻게 가져가느냐가 UX에 직접 영향을 줍니다.
3. 지도 기반 데이터입니다: 위도/경도 기반 검색, 지도 타일 렌더링, 클러스터링 — 일반 리스트형 데이터와 다른 기술적 접근이 필요합니다.
레거시 마이그레이션 시 핵심 원칙
이 프로젝트를 통해 확인한 원칙들입니다.
원칙 1: 먼저 이해하고 바꿔라
기존 코드가 왜 그렇게 짜여 있는지 이해하지 못하고 바꾸면, 예상치 못한 곳에서 문제가 터집니다. 기존 코드를 충분히 분석하는 시간을 확보해야 합니다.
원칙 2: 단계적으로, 검증하면서
한꺼번에 다 바꾸려 하면 반드시 문제가 생깁니다. 작은 단위로 나눠서, 각 단계를 검증하면서 진행해야 합니다.
원칙 3: 롤백 계획을 먼저 세워라
무언가 잘못됐을 때 어떻게 되돌릴 것인지를 먼저 정의하세요. 롤백 계획이 없는 마이그레이션은 아찔합니다.
원칙 4: 모니터링을 강화하라
마이그레이션 기간 동안은 평소보다 훨씬 촘촘하게 에러 로그, 응답 시간, 트래픽을 모니터링해야 합니다.
마치며
직방 프로젝트는 “규모가 큰 서비스와 어떻게 협업하는가”를 배운 경험이었습니다. 엄격한 기술 기준을 맞추는 것이 처음엔 부담이었지만, 결국 그 과정이 팀의 기술력을 끌어올리는 계기가 됐습니다.
레거시 마이그레이션을 고민 중이라면, “어떻게 바꿀 것인가”보다 “어떻게 안전하게 바꿀 것인가”를 먼저 고민하세요.
