
재사용 가능한 아키텍처와 치밀한 API 분리 전략으로 개발 속도와 안정성을 극대화한 프론트엔드 연동 노하우
여기어때 프론트엔드 팀이 모노레포 기반으로 신규 해외투어 서비스를 25주 동안 구축한 실전 프로젝트 기록입니다. 기존 시스템 기반 재활용, Storybook 중심의 단계별 개발, mock 및 API 계층 설계, 웹/앱 웹뷰 간 통합 브릿지 처리 등 실무 프론트엔드 엔지니어링의 핵심 패턴들을 다룹니다.
모노레포 도입을 고민 중이거나 백엔드 API 완성을 기다리지 않고 UI 개발을 병행해야 하는 프론트엔드 엔지니어 및 테크 리드에게 추천합니다.
개발자 단 2명이서 25주 동안 웹과 앱 웹뷰를 아우르는 37개 라우트와 실시간 해외투어 채팅 시스템 등 광범위한 프론트엔드 영역을 구축해야 했습니다. 또한 백엔드 API가 완성되기 전에 UI 개발 및 정책 검증을 동시에 진행해야 하는 난관이 있었습니다.
기존 항공 서비스에서 검증된 모노레포 아키텍처와 Provider 스택을 재사용하고, 아토믹 컴포넌트부터 페이지까지 순차 개발하는 단계별 방식을 채택했습니다. Storybook으로 디자이너 검수 환경을 구성하고, API 계층을 호출 함수 내부로 격리하여 mock 데이터에서 실 API 전환 시 화면 코드 수정을 최소화했습니다.
37개 라우트 오픈과 공유 패키지 내 50개 컴포넌트 생성을 달성하였으며, QA 기간 중 발생한 280건의 티켓을 81%의 3일 내 처리율로 해결했습니다. 출시 이후에도 CDN 파라미터 최적화만으로 상품 이미지 전송량을 90% 감축하는 정량적 성과를 거두었습니다.
Trade-off
화면 우선 개발 방식으로 인해 동일한 API 호출 함수가 중복 생성되는 혼란이 발생하여 위치 규칙을 재정의해야 했습니다. 또한 공유 패키지 변경이 기존 모노레포 내 다른 서비스(항공)에 영향을 줄 위험이 있어, master 브랜치 기반 분기 및 역머지 금지 등의 엄격한 브랜치 관리 규칙을 감수해야 했습니다.
여러 서비스나 앱 간에 공통으로 사용하는 컴포넌트, 유틸리티, 디자인 시스템 등을 하나의 레포지토리 내 격리된 패키지로 관리하는 구조입니다.
화면 컴포넌트가 직접 API를 호출하지 않고, 전송 전용 함수(transport)만을 호출하도록 분리하여 내부 데이터 처리 로직 및 Mock 전환을 독립시킨 설계 패턴입니다.
메인 웹뷰 위에서 결제 등 독립적인 외부 세션을 처리한 뒤 부모 웹뷰로 결과값 전달 및 이탈 없이 복귀하기 위해 사용되는 네이티브 브릿지 기반 웹뷰 패턴입니다.




