AI 기반 할 일 관리 애플리케이션. Turborepo + pnpm 모노레포.
| 분류 | 기술 |
|---|---|
| Monorepo | Turborepo 2.7, pnpm 9.15 |
| Backend | NestJS 11, Prisma 7, PostgreSQL 16 |
| Mobile | Expo 54, React Native 0.81, React 19.1 |
| Validation | Zod 4.3, nestjs-zod |
| Testing | Jest 29, Vitest, Testcontainers |
| Code Quality | Biome 2.3 |
aido/
├── apps/
│ ├── api/ # NestJS 백엔드
│ └── mobile/ # Expo 모바일 앱
├── packages/
│ ├── validators/ # Zod 스키마 (@aido/validators)
│ ├── utils/ # 유틸리티 (@aido/utils)
│ └── errors/ # 에러 정의 (@aido/errors)
├── tooling/
│ ├── typescript/ # TypeScript 프리셋
│ ├── jest/ # Jest 프리셋
│ ├── vitest/ # Vitest 프리셋
│ └── biome/ # Biome 프리셋
└── turbo.json
# 설치
pnpm install
# DB 실행 (Docker)
pnpm docker:up
# 마이그레이션
pnpm db:migrate
# 개발 서버
pnpm dev| 명령어 | 설명 |
|---|---|
pnpm dev |
전체 개발 서버 |
pnpm build |
전체 빌드 |
pnpm typecheck |
타입 검사 |
pnpm lint |
Biome 린트 |
pnpm format |
코드 포맷팅 |
pnpm clean |
빌드 산출물 전체 삭제 |
| 명령어 | 설명 |
|---|---|
pnpm db:migrate |
Prisma 마이그레이션 |
pnpm db:generate |
Prisma Client 생성 |
pnpm db:push |
스키마 즉시 반영 |
| 명령어 | 설명 |
|---|---|
pnpm test |
단위 테스트 |
pnpm test:e2e |
E2E 테스트 |
pnpm test:all |
전체 테스트 (Unit + Integration + E2E) |
pnpm test:cov |
커버리지 리포트 |
| 명령어 | 설명 |
|---|---|
pnpm docker:up |
DB 컨테이너 (로컬 개발) |
pnpm docker:down |
DB 컨테이너 중지 |
pnpm docker:dev:up |
개발 환경 전체 (DB + API) |
pnpm docker:dev:down |
개발 환경 중지 |
pnpm docker:prod:up |
프로덕션 환경 (DB + Migrate + API) |
pnpm docker:prod:down |
프로덕션 환경 중지 |
| 모드 | Compose 파일 | 용도 |
|---|---|---|
| DB Only | docker-compose.yml |
로컬 개발 (추천) |
| Development | docker-compose.dev.yml |
Docker 전체 개발 |
| Production | docker-compose.prod.yml |
프로덕션 배포 테스트 |
- DB Only: PostgreSQL만 Docker로 실행하고 API는 로컬에서
pnpm dev로 실행 - Development: DB + API를 모두 Docker로 실행 (
.env.docker.dev필요) - Production: 프로덕션 이미지 빌드 + 자동 마이그레이션 (
.env.docker.prod필요)
| 패키지 | 설명 |
|---|---|
| @aido/api | NestJS 백엔드 API |
| @aido/mobile | Expo 모바일 앱 |
| @aido/validators | Zod 스키마 |
| @aido/utils | 유틸리티 함수 |
| @aido/errors | 에러 정의 |
- 커밋: Conventional Commits (
pnpm commit) - 린트/포맷: Biome
- 타입: TypeScript strict 모드
- DTO: Zod 스키마 (@aido/validators)
http://localhost:8080/api/docs
프로덕션 배포는 AWS ECS + ECR 기반. 상세 가이드는 API 배포 문서를 참고.
MIT