backend-template은 도메인에 종속되지 않는 NestJS 백엔드 스타터다. 새 제품/도메인을 시작할 때 인증·설정·테스트·관측성·CI·컨벤션·AI 협업 환경(하네스)이 미리 깔린 상태에서 src/modules/ 아래에 도메인만 얹으면 된다. auth + identity(User/Team/Role)가 RBAC+ABAC 레퍼런스 구현으로 들어 있어, 새 도메인은 이걸 본떠 만든다.
| 항목 | 기술 | 비고 |
|---|---|---|
| Runtime | Node.js 24 | package.json engines |
| Language | TypeScript (strict) | |
| Framework | NestJS 11 | SWC 빌드 |
| ORM | MikroORM v7 | Unit of Work, legacy 데코레이터(@mikro-orm/decorators/legacy) |
| DB / Cache | PostgreSQL / Redis | Redis는 graceful degradation(safe* 메서드) |
| Config | zod typed config | 부팅 시 env 검증 |
| Package Manager | pnpm 10 | corepack |
| Test | Jest 30 (@swc/jest) |
unit / integration / e2e 3계층 |
identity(auth+User/Team/Role)를 정석 예시로 둔다. 새 도메인은 이걸 복제·변형한다. 조기 플러밍은 피한다(미뤄둔 것은 docs/tech-debt).clone 직후 순서다.
pnpm install (corepack로 pnpm 10 사용)..env는 git에 없다(시크릿 포함, gitignore). 팀에 .env 값을 요청한다. 단, .env.test는 committed(로컬호스트 전용·시크릿 없음)라 clone 직후 테스트가 바로 돈다.pnpm docker:up (PostgreSQL + Redis 컨테이너). 끌 때는 pnpm docker:down.pnpm start:dev (watch + type-check + SWC, 기동 전 Swagger metadata 자동 생성).