매머드커피 점주앱은 React Native 셸에서 Next.js 웹을 여는 하이브리드 서비스입니다. 2025년 7월부터 웹과 네이티브 양쪽의 기능 개발과 배포를 맡고 있습니다.
웹과 네이티브를 함께 운영
홈·매출·수발주·배달·마케팅처럼 자주 바뀌는 점주 업무는 웹으로 제공합니다. 푸시·딥링크·권한·보안 저장소는 네이티브 셸이 맡습니다. 웹은 Turborepo와 pnpm으로 매머드커피와 더리터 앱, 공통 패키지 8개를 관리합니다.
기존 모노레포 구조를 이어받아 POS 매출 채널과 전체 매장 조회를 보강했습니다. 최근에는 할인 상품을 고르는 캠페인 생성 기능과 실제 API 연동을 맡았습니다. 여러 화면의 safe area와 운영 중 발견한 조회 오류도 수정했습니다.
네이티브가 관리하는 인증 세션
refresh token을 네이티브 EncryptedStorage에서 관리하도록 옮겼습니다. 허용된 origin과 nonce를 확인한 메시지만 권한이 필요한 WebView 브리지를 호출하게 했습니다. 세션 저장은 pending과 committed 단계로 나눠 중간 실패가 남지 않도록 처리했습니다.
웹에서는 여러 요청이 동시에 401을 받아도 한 번의 token refresh를 공유합니다. 네이티브 세션이 준비되기 전에는 화면을 열지 않습니다. 로그인·갱신·로그아웃이 겹쳐도 마지막 상태가 어긋나지 않게 정리했습니다.
앱 시작 구간의 OTA와 출시
기존 S3·CloudFront OTA 구조를 이어받아 앱 시작 구간을 고도화했습니다. 번들과 릴리스 JSON은 플랫폼, 개발·운영 환경과 바이너리 버전별로 나뉩니다. 앱은 스플래시에서 업데이트를 확인한 다음 다운로드 상태를 보여주고 재시작합니다. 오류가 나도 앱 진입을 막지 않습니다. 롤백 상태는 별도로 기록합니다.
OTA로 처리할 수 없는 변경은 스토어 빌드로 배포했습니다. Android 16KB 페이지와 사진 권한 정책, React Native 0.77의 iOS 실행 문제, Xcode 26 빌드와 safe area 회귀까지 출시 과정에서 함께 대응했습니다.



