AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

2025 NestJS + React 19 + Drizzle ORM + Turborepo 아키텍처 결정 기록 요약

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

프론트엔드와 백엔드를 모두 개발하는 개발자, MVP 프로토타이핑에 관심 있는 개인 개발자

핵심 요약

  • Monorepo 관리: pnpm workspace + Turborepo 조합으로 모듈 중앙 집중 관리와 빌드 최적화
  • 백엔드 기술 스택: NestJS (Express 기반) + Drizzle ORM (Serverless 호환성 강점)
  • 프론트엔드 기술 스택: React 19 + Tailwind CSS + ShadCN/UI (AI 기반 개발 툴과 호환성 최적화)

섹션별 세부 요약

1. 프로젝트 목적 명확화

  • 소규모 프로젝트에서 반복적인 설정 시간 줄이기 위해 완전한 풀스택 기술 스택 미리 구성
  • 유지보수성확장성 강조, 향후 프로젝트에 재사용 가능한 경험 쌓기

2. 기술 선택 기준

  • GitHub 스타 수NPM 다운로드 수로 인기와 활성도 평가
  • TypeScript 지원 필수 (타입 안정성 보장)
  • 아키텍처 유연성 (프로젝트 규모와 배포 환경 적응 가능성)

3. Monorepo 선택 이유

  • 모듈 중앙 관리: 의존성 버전 통일 및 충돌 방지
  • 공유 모듈 추출: ORM, UI 컴포넌트, TS 설정 등 별도 패키지로 분리
  • 로컬 개발 편의성: 패키지 출판 없이 바로 개발 가능
  • CI/CD 최적화: 빌드 효율성 향상

4. 대안 기술 분석

  • Lerna: 2020년 이후 유지보수 중단
  • Nx: 기업용 강력한 Monorepo 솔루션 (AI 기능 포함) → 학습 곡선이 높아 제외
  • Express: 유연성과 성숙도 높지만 커스텀 프레임워크 개발 부담
  • TypeORM/Prisma: ORM 유연성과 편의성 대비 설정 복잡도 및 SQL 처리 경험 부족

5. 최종 결정된 기술 스택

  • 백엔드: NestJS (Express 기반, OOP/FP/FRP 통합) + Drizzle ORM (Serverless 호환성, 가볍고 빠른 빌드)
  • 프론트엔드: React 19 + Tailwind CSS + ShadCN/UI (AI 개발 툴과 호환)
  • 관리 도구: pnpm workspace + Turborepo (인크리멘탈 빌드, 캐싱 지원)

6. 프로젝트 구조

├── apps/
│   ├── admin/ # React 19 + Vite 기반 관리 시스템
│   └── api/ # NestJS 기반 백엔드 서비스
├── packages/
│   ├── db/ # Drizzle ORM 스키마 및 마이그레이션 스크립트
│   ├── ui/ # ShadCN/UI 기반 UI 컴포넌트 라이브러리
│   ├── lint-config/ # 공유 ESLint 설정
│   └── ts-config/ # 공유 TypeScript 설정
├── .husky/ # 허브리(Husky) 기반 Git 훅 설정
├── pnpm-workspace.yaml # pnpm 워크스페이스 설정
├── turbo.json # Turborepo 빌드 설정
└── README.md

결론

  • Monorepo + Turborepo 조합으로 개발 효율성 극대화, 공유 모듈 재사용성 강화
  • NestJS + Drizzle ORM 조합으로 Serverless 호환성유지보수성 균형 유지
  • React 19 + Tailwind CSS + ShadCN/UI 조합은 AI 개발 툴과의 호환성을 최고 수준으로 제공
  • 프로젝트 코드는 nestjs-boilerplate에서 확인 가능 (실제 구현 예시 포함)