배달의민족, 배포 없이 앱에서 로컬 웹 개발 확인하는 터널링 프록시 '잇다' 공개
·2026.08.04 15:17
핵심 내용
배달의민족이 배포 과정 없이 앱에서 로컬 웹 환경을 즉시 확인할 수 있는 터널링 기반 프록시 시스템 '잇다'를 개발했다.
자세히 보기
배달의민족은 네이티브 앱과 웹뷰가 결합된 하이브리드 구조로, 웹 개발 시 베타 배포와 캐시 무효화 등 복잡한 절차를 거쳐야 하는 비효율이 존재했다. 이를 해결하기 위해 사내 환경에 최적화된 터널링 기반 프록시 시스템 **'잇다'(ITDA, Instant Tunnel for Development Apps)**를 개발했다.
트래픽 전환 방식의 선택
개발 환경으로의 트래픽 전환을 위해 세 가지 방식을 검토한 결과, CloudFront Function(CFF)을 활용한 302 Redirect 방식을 채택했다.
- CFF Rewrite: 내부 목적지만 변경하는 방식으로 보안 요구사항 충족이 어려워 기각됨
- 앱 내부 호스트 라우팅: 앱 네이티브 계층에서 분기하는 방식으로, 도메인 추가 시 앱 수정과 배포가 필요해 기각됨
- CFF Redirect: ITDA용 요청을 판별해 프록시로 재요청하도록 안내하며, 앱 수정 없이 트래픽을 명확히 분리할 수 있어 채택됨
'잇다'의 작동 원리
'잇다'는 개발자의 로컬 컴퓨터와 ITDA 프록시 간에 WebSocket 연결을 미리 수립하여 터널을 형성한다.
- 요청 판별: 사용자가 베타앱에서 ITDA용 프로파일을 선택하면, CFF가 요청 헤더의
remote_config_profile값을 확인한다. - 라우팅 정보 전달: ITDA용 요청일 경우 라우팅 정보를 쿠키에 담아 프록시로 302 Redirect한다.
- 터널 매칭: 프록시는 쿠키의 정보와 등록된 라우팅 규칙을 비교해 해당 개발자의 로컬 서버로 연결된 터널을 찾아 요청을 전달한다.
- 멀티플렉싱: 하나의 WebSocket 터널 내에서 요청별 고유 ID를 부여하여 HTML, JS, CSS 등 다양한 리소스를 효율적으로 처리한다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.