모든 것을 코드로: 하나의 모노레포로 회사를 운영하는 방법

1 month ago 10

  • Kasava는 제품 개발 전 과정을 하나의 모노레포(monorepo) 안에서 관리하며, 코드·문서·마케팅·운영 데이터를 모두 통합
  • 모든 변경이 단일 커밋으로 반영되어 백엔드, 프론트엔드, 웹사이트, 문서가 동시에 업데이트되는 구조
  • AI 도구가 코드·문서·웹사이트를 직접 참조해 일관성 검증, 자동 문서 갱신, 콘텐츠 검수 등을 수행
  • CLAUDE.md, Selective CI/CD, 독립 npm 프로젝트 구조 등으로 대규모 저장소의 복잡성을 최소화
  • 이 접근은 AI-네이티브 개발 문화를 강화하며, 제품·콘텐츠·운영의 경계를 제거해 빠른 배포와 협업을 가능하게 함

AI-네이티브 개발과 모노레포의 의미

  • Kasava는 모든 플랫폼 구성요소를 하나의 Git 저장소에 통합, 코드뿐 아니라 문서·마케팅·이메일·투자 자료까지 포함
    • 예: frontend/, backend/, website/, docs/, marketing/, external/ 등 5,470개 이상의 TypeScript 파일 구성
  • AI가 코드와 문서를 동시에 접근해 맥락 기반 자동화를 수행
    • 문서 수정, 웹사이트 가격 변경, 블로그 검증 등이 AI의 단일 대화로 처리됨
  • 모든 변경은 동일한 Git 워크플로우(git push) 로 배포
    • 코드, 콘텐츠, 문서, 마케팅이 동일한 리뷰·CI/CD·감사 절차를 거침
  • 이 방식은 속도와 일관성을 높이고, “모든 것을 코드로 관리”하는 문화를 정착시킴

하나의 저장소로 통합하는 이유

  • 경계 간 원자적 변경(Atomic Changes)
    • 백엔드 API 수정 시 프론트엔드 타입 정의와 문서가 같은 커밋에서 갱신
    • 예: Asana 통합 기능 추가 시 백엔드·프론트엔드·문서·웹사이트가 한 PR로 병합
  • 단일 진실의 원천(Single Source of Truth)
    • billing-plans.json 하나로 요금제 제한을 정의, 모든 서비스가 이를 참조
    • AI가 백엔드·프론트엔드·웹사이트 간 일관성을 자동 검증
  • 크로스 프로젝트 리팩터링
    • IDE에서 전체 코드·문서·블로그 예시까지 검색·수정 가능
  • 공유 도구와 파이프라인
    • 공통 CI/CD, 의존성, 검색 환경으로 관리 단순화

저장소 구조와 구성 요소

  • Core Application:
    • frontend/는 Next.js 16 + React 19 기반, backend/는 Cloudflare Workers + Hono + Mastra 사용
    • API 변경 시 타입 안정성과 테스트 유틸리티 공유
  • Marketing:
    • website/, marketing/blogs/, investor-deck/, email/ 포함
    • 블로그·이메일·투자 자료 모두 코드로 버전 관리, git revert로 롤백 가능
  • Documentation:
    • docs/는 Mintlify 기반 공개 문서, docs-internal/은 내부 아키텍처 문서
    • 코드와 함께 검색 가능, 위키 대신 실시간 최신 정보 유지
  • External Services:
    • Chrome 확장, Google Docs Add-on, GCP Functions 등 외부 배포 서비스 포함
    • API 계약 공유로 변경 시 동시 반영
  • Development Infrastructure:
    • github-simulator/, infra-tester/, scripts/ 등 로컬 개발용 모의 서버 및 테스트 도구 포함

운영 방식과 개발 문화

  • 워크스페이스 미사용
    • 각 디렉터리를 독립 npm 프로젝트로 유지, 의존성 충돌 방지
  • 선택적 CI/CD(Selective CI/CD)
    • GitHub Actions가 경로 기반으로 트리거되어 관련 테스트만 실행
  • CLAUDE.md 규칙
    • 각 주요 디렉터리에 기술 스택, 명령어, 아키텍처 결정을 문서화
    • AI 도우미가 이를 읽어 프로젝트 맥락을 이해
  • 일관된 도구 설정
    • .prettierrc, .eslintrc, tsconfig.json 등 공통 설정 유지

도전 과제와 대응

  • 저장소 크기: 현재 클론 시간 약 20초, Git 성능 문제 없음
    • 대용량 자산은 R2/S3로 분리 예정
  • 빌드 시간: 각 프로젝트 독립 빌드, Turbopack·Wrangler·WXT로 빠른 재빌드
  • 권한 경계: 소규모 팀은 전체 접근 가능, 필요 시 CODEOWNERS·브랜치 보호 적용 가능
  • 맥락 전환: 다양한 언어(TypeScript, Apps Script, MJML) 간 전환은 CLAUDE.md와 통일된 포맷으로 완화

결론

  • Kasava의 모노레포는 단순한 트렌드가 아니라 맥락 통합을 통한 생산성 극대화 도구
  • 백엔드·프론트엔드·문서·마케팅이 하나의 변경으로 동작하며, AI가 이를 실시간 검증
  • 결과적으로 “모노레포는 제약이 아니라 가속 장치(force multiplier) ”로 기능함

Read Entire Article