ADR-0001 — 비대칭 Monorepo 통합 (git subtree) [SUPERSEDED]¶
이 결정은 ADR-0003 으로 대체됨. 폴더 시각적 정돈을 위해 대칭 구조로 전환.
Context¶
- backend(
idealstudy/mvp-back)와 frontend(idealstudy/mvp-front) 두 레포로 분리 운영 중 - 백엔드에 시크릿/CI/CD 자원(AWS ECR, Kakao/Naver OAuth, SENS, JWT, Email, ANTHROPIC) 압도적으로 집중
- "전체 컨텍스트 관리"를 위한 LLM wiki(ADR-0002) 도입과 함께 단일 레포 필요
- 백엔드 폴더 구조/CI는 절대 깨지 않아야 함 (배포 안정성)
Decision¶
idealstudy/mvp-back레포를 monorepo home으로 승격- 비대칭 구조: 백엔드는 루트에 그대로, 프론트엔드만
mvp-front/서브디렉토리로 git subtree 흡수 - subtree는
--squash없이 — 양쪽 모든 커밋 히스토리 보존 - 미푸시 커밋(mvp-back 43개, mvp-front 63개)도 보존 위해 로컬
.git을 file:// remote로 등록하여 흡수 mvp-front/.github/workflows/는 GitHub Actions가 자동 무시하므로 그대로 잠재워둠- push는 모든 로컬 작업(폴더트리 + wiki + 하네스 + Notion + FRD) 완료 후 마지막 한 번만
Consequences¶
긍정:
- 백엔드 파일 (.github/workflows, src/, build.gradle, Dockerfile, docs/, CLAUDE.md) 100% 무수정
- 미푸시 작업 손실 없이 흡수
- Vercel은 Git source swap + Root Directory = mvp-front 한 줄로 재연결
부정: - mvp-front의 5개 워크플로(ci/playwright/claude/claude-code-review/sync-all-branches)는 잠재워짐 - playwright(E2E)·claude 자동 리뷰는 다음 라운드에서 필요한 것만 루트로 부활 - 프론트 PR의 Slack 알림은 일시적으로 백엔드 채널로 통합 - 모노레포 구조가 비대칭이라 신규 합류자에게 직관성 ↓
Alternatives¶
- 대칭 구조 (mvp-back을 mvp-back/ 서브디렉토리로 이동): 백엔드 CI/Dockerfile/working-directory 보정 필요해 "백엔드 무수정" 원칙과 충돌
- monorepo 포기 + wiki 별도 레포: 코드와 wiki가 분리되어 PR 시 동기화 마찰 ↑
- git submodule: subtree보다 일상 작업 마찰 큼
Status¶
- 2026-05-19: accepted
Date¶
2026-05-19