구분설명
모노레포 (Monorepo)여러 개의 프로젝트(패키지)를 **하나의 저장소(repo)**에서 관리하는 구조
멀티레포 (Polyrepo)각 프로젝트를 별도의 저장소에서 각각 관리하는 방식

장단점

✅ 장점

  • 코드 재사용 용이: 패키지 간 import가 간단해짐
  • 버전 일관성 유지: 모든 패키지에 동일한 deps 버전 사용 가능
  • 일괄 테스트/빌드/릴리즈 가능: CI/CD 통합 관리
  • 리팩토링 용이: 전역 범위에서 영향도 파악 및 변경 가능

⚠️ 단점

  • 초기 설정 복잡
  • 프로젝트 규모 커질수록 성능 저하 위험 (→ Turborepo 등 도구 필요)
  • 접근 권한 세분화 어려움 (모든 코드가 한 repo에 있음)

폴더구조 예시

monorepo-demo/
  apps/
    web/
  packages/
    ui/
    utils/
// package.json
{
  "name": "monorepo-demo",
  "private": true,
  "workspaces": ["apps/*", "packages/*"]
}