Skip to content

chore: pnpm·Turborepo 모노레포 전환과 Expo 웹뷰 앱 추가 - #4

Merged
Gomyeunghan merged 3 commits into
mainfrom
chore/monorepo
Oct 21, 2026
Merged

Gomyeunghan merged 3 commits into
mainfrom
chore/monorepo

Conversation

@Gomyeunghan

Copy link
Copy Markdown
Collaborator

관련 이슈

작업 내용

한 레포에서 웹과 앱 껍데기를 함께 관리하도록 pnpm 워크스페이스 + Turborepo 모노레포로 전환했습니다. (JECT-Study/Billit-5th-Client 구조 참고)

apps/web/         @morak/web    Next.js 웹 (기존 코드 이동, git 이력 유지)
apps/app/         @morak/app    Expo SDK 58 웹뷰 껍데기 (신규)
packages/bridge/  @morak/bridge 웹 ↔ 앱 브릿지 메시지 타입 (신규, 양쪽이 import)

모노레포

  • npm → pnpm 12.14.0 (packageManager 고정), Turborepo로 lint·typecheck·build 실행
  • husky·commitlint·cz-git·prettier는 루트, ESLint·tsconfig는 앱별
  • pnpm-workspace.yaml에 @hookform/resolvers 옵셔널 피어 zod 버전 override, esbuild·unrs-resolver 설치 스크립트 허용
  • Expo 58도 React 19.3.0을 써서 웹과 React 버전을 맞출 필요가 없었습니다

브릿지

  • @morak/bridge: WebToApp/AppToWeb 타입, BRIDGE_VERSION, 메시지 검증(parseWebToApp/parseAppToWeb), 주입 코드 생성(toInjectedScript)
  • 웹 src/shared/native: isApp, sendToApp, onAppMessage + 화면 준비 시 READY 전송, OPEN_URL 수신 시 라우터 이동

앱 껍데기 (시제품)

  • EXPO_PUBLIC_WEB_URL의 웹을 WebView로 표시, READY 수신 시 스플래시 숨김
  • 외부 링크는 시스템 브라우저, 안드로이드 뒤로가기는 웹 기록, 우리 출처 메시지만 처리, 오프라인 재시도 화면
  • 푸시·딥링크·햅틱은 아직 미포함 (가이드의 8단계에서 추가)
  • react-native-webview 타입이 최신 TS에서 props를 never로 계산하는 문제가 있어 타입만 감싸서 사용

CI

  • pnpm·turbo 기준으로 변경. 필수 체크 이름(Lint · Typecheck · Build, Commit message)은 그대로라 브랜치 보호 규칙 수정은 필요 없습니다.

확인 사항

  • pnpm format:check / lint / typecheck(web·app·bridge) / build 로컬 통과
  • expo-doctor 20/20 통과
  • expo export --platform android로 워크스페이스 패키지 포함 번들링 확인
  • 실기기에서 껍데기 앱으로 웹 띄우기 (Expo 개발 빌드 필요)

머지 후 할 일

  • Vercel을 연결할 때 Root Directory를 apps/web으로 지정
  • 로컬에서 corepack enable 후 pnpm install

🤖 Generated with Claude Code

Gomyeunghan and others added 3 commits October 21, 2026 15:49
앱 껍데기(Expo) 구조, 웹뷰에서 주의할 점, 웹↔RN 브릿지,
딥링크(유니버설 링크·앱 링크) 처리 방식과 미리 정할 항목을 정리했다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 웹 프로젝트를 apps/web(@morak/web)으로 이동
- 루트에 pnpm 워크스페이스, Turborepo, 공통 도구(husky·commitlint·prettier) 설정
- 웹↔앱 브릿지 메시지 타입을 packages/bridge(@morak/bridge)로 분리하고
  웹에 브릿지 헬퍼와 READY·OPEN_URL 처리 리스너 추가
- CI를 pnpm·turbo 기준으로 변경 (필수 체크 이름은 유지)
- README와 웹뷰 가이드를 모노레포 구조에 맞게 수정

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Expo SDK 58 앱(apps/app, @morak/app)에서 웹을 WebView로 표시
- 웹 READY 수신 시 스플래시 숨김, APP_INFO 전달
- 외부 링크는 시스템 브라우저로, 안드로이드 뒤로가기는 웹 기록으로 연결
- 우리 출처의 메시지만 처리하고 오프라인 시 재시도 화면 표시

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 21, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 01d8f7ba-e836-43eb-b831-9fefb12976ae
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Gomyeunghan
Gomyeunghan merged commit ab22dba into main Oct 21, 2026
3 checks passed
@Gomyeunghan
Gomyeunghan deleted the chore/monorepo branch October 21, 2026 07:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant