목록 보기
배포 없이 앱과 로컬 웹을 잇다
데브옵스

배포 없이 앱과 로컬 웹을 잇다

우아한 형제들
우아한 형제들
2026년 8월 4일

두줄요약

배달의민족은 앱과 로컬 웹을 배포 없이 연결하기 위해 ITDA 프록시 시스템을 설계했습니다. CloudFront Function과 웹소켓 터널링으로 요청을 분리하고 로컬 개발 환경으로 안전하게 전달했습니다.

문제 상황

  • 배달의민족 앱의 웹뷰 개발 화면을 확인하려면 베타 배포와 코드 리뷰, 테스트, 빌드, 캐시 무효화까지 거쳐야 하는 불편
  • 브라우저 확장 프로그램이나 사내 환경용 도구는 유지보수와 버그 대응 부담이 커서 한계
  • 특정 사용자·특정 요청만 로컬 환경으로 분리해 앱과 웹을 실시간으로 잇는 방식 필요

구조와 흐름

  • 웹뷰 요청은 CloudFront와 S3를 거쳐 전달되며, 이 흐름 위에서 로컬로 보낼 요청을 판별하는 구조 설계
  • 개발자 PC에서 ITDA 클라이언트가 웹소켓을 먼저 맺고, 프록시가 라우팅 규칙에 따라 알맞은 터널로 요청 전달
  • 요청별 고유 ID로 HTML, JS, CSS, 이미지 등의 응답을 다시 원래 요청과 매칭

선택 이유

  • A안 rewrite는 내부 목적지 변경 방식이라 보안 요구사항 충족이 어려움
  • B안 앱 내부 라우팅은 도메인 추가 때마다 앱 수정이 필요하고 라우팅 책임이 앱에 쌓이는 문제
  • C안 redirect는 일반 베타 트래픽과 ITDA 트래픽을 분리하면서 앱 수정 없이 운영 가능

성능/운영 포인트

  • 터널이 없거나 규칙이 없으면 원래 베타 환경으로 되돌리는 안전장치
  • 라우팅 규칙은 DB에 저장하고 현재 연결된 웹소켓은 프록시가 직접 관리
  • 여러 리소스 요청을 하나의 웹소켓으로 처리해도 요청 ID로 응답 뒤섞임 방지

다음 읽기

같은 회사의 연관 글

우리 팀엔 자바스크립트 상차만 하는 프런트엔드가 있었다

프런트엔드의 index.html을 백엔드에서 분리해 독립 배포 구조로 전환했습니다. S3, CloudFront, Lambda@Edge를 활용해 성능과 운영 효율을 함께 개선했습니다.

우아한 형제들
우아한 형제들
프론트엔드

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...