콘텐츠로 이동

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

  1. idealstudy/mvp-back 레포를 monorepo home으로 승격
  2. 비대칭 구조: 백엔드는 루트에 그대로, 프론트엔드만 mvp-front/ 서브디렉토리로 git subtree 흡수
  3. subtree는 --squash 없이 — 양쪽 모든 커밋 히스토리 보존
  4. 미푸시 커밋(mvp-back 43개, mvp-front 63개)도 보존 위해 로컬 .git을 file:// remote로 등록하여 흡수
  5. mvp-front/.github/workflows/는 GitHub Actions가 자동 무시하므로 그대로 잠재워둠
  6. 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