오프테이블 Wiki

결정 기록 · 결정 기록

ADR-0051: Expo 모바일 기반과 개발·운영 앱 분리

RN 앱은 Expo와 공통 Supabase를 쓰고 개발·운영 앱 ID, 이름, 아이콘과 환경 변수를 분리한다.

상태
확정
신뢰도
높음
근거
4개
업데이트

맥락#

ADR-0046은 출시 앱을 RN으로 정했지만 Expo와 앱 식별자 분리를 비워 두었다. 프로젝트 오너는 Expo·Supabase 기본 환경을 만들고, offtable.kr에 맞는 식별자와 항상 구분되는 개발 앱을 요구했다. [1]

결정#

  • RN 앱은 Expo와 Expo Router를 사용한다.
  • Auth·DB·Storage·Edge Functions는 웹과 같은 환경의 Supabase 계약을 재사용한다. [2]
  • 운영 앱 ID는 iOS·Android 모두 kr.offtable.app, 개발 앱 ID는 kr.offtable.app.dev다.
  • 운영 표시 이름은 오프테이블, 개발은 오프테이블 Dev다.
  • 개발 앱은 별도 아이콘과 앱 내부 DEV 표시를 항상 보여 운영 앱과 구분한다.
  • EAS development·preview는 개발 Supabase와 개발 앱 ID만, production은 운영 Supabase와 운영 앱 ID만 사용한다.
  • 공개 환경 변수에는 공개 가능한 Supabase 키만 둔다. 메일·푸시 제공자 비밀키와 서버 권한 키를 앱 번들에 넣지 않는다.

현재 상태#

2026-08-24 기준 develop에는 Expo 기반, 개발·운영 앱 자산, Android FCM과 iOS 푸시 자격증명 분리, EAS 프로필이 반영됐다. 이는 개발 후보 상태이며 스토어 운영 출시 완료가 아니다. [3]

하지 않은 선택#

  • iOS·Android 최소 지원 버전은 정하지 않았다.
  • 웹과 RN의 UI 코드 전체 공유를 약속하지 않는다. 데이터·인증 계약을 우선 공유한다.
  • Expo 계정·스토어 콘솔 권한을 앱 코드의 제품 권한 모델로 쓰지 않는다.

재검토 조건#

  • Expo SDK 또는 네이티브 모듈 제약이 핵심 출시 기능을 막는다.
  • 스토어 심사나 서명 체계가 현재 개발·운영 앱 ID 분리와 충돌한다.
  • 최소 OS 때문에 첫 모집 표본의 기기 접근성이 낮아진다.

관련 문서: RN·스토어, 실행 환경, 푸시 운영, 프로젝트 오너 요구

제목, 요약, 태그, 본문을 검색합니다.