프로젝트 소개
이 저장소는 인프라 설정을 자동화하고 아키텍처 준수를 강제하여 개발 속도를 높이는 프로덕션 수준의 TypeScript 백엔드 보일러플레이트를 제공합니다. Fastify, Awilix, Prisma, BullMQ를 기반으로 구축되었으며, 코드는 도메인, 애플리케이션, 인프라, 프레젠테이션, 컴포지션 루트의 엄격한 클린 아키텍처 계층으로 구성되어 있으며, 의존성은 내향적으로 향합니다. 특히, 이러한 계층 경계는 CI에서 dependency-cruiser를 사용하여 자동으로 강제되어 아키텍처적 드리프트를 방지합니다.
주요 기능은 다음과 같습니다:
- **HTTP 및 API**: Zod 검증, 버전화된 엔드포인트, Swagger UI, 통일된 오류 처리를 갖춘 Fastify 5.
- **인증 및 보안**: Argon2 해싱, JWT 액세스/리프레시 토큰, 이메일 검증, 비밀번호 재설정, RBAC를 위한 컴파일 타임 권한 카탈로그.
- **영속성**: 트랜잭션을 위한 작업 단위 패턴을 구현한 MariaDB의 Prisma.
- **작업 및 이벤트**: 트랜잭션 아웃박스 패턴, Redis 기반 BullMQ 큐, 전용 작업자 프로세스.
- **관측성**: 상관 ID를 갖춘 Pino 로깅, Prometheus 메트릭, OpenTelemetry 추적, 사전 구성된 Grafana/Loki/Tempo 스택.
- **품질**: 도메인/애플리케이션 계층에 대한 100% 커버리지 요구 사항, ESLint/Prettier, 통합 테스트를 위한 Testcontainers.
이 프로젝트는 새로운 기능을 추가하기 위한 참조로 사용할 수 있는 작동 중인 사용자/인증/RBAC 수직 슬라이스와 함께 제공됩니다. 또한, 단일 `APP_NAME` 환경 변수를 통해 쉽게 이름을 변경할 수 있으며, 로컬 개발을 위한 포괄적인 Docker Compose 구성을 포함합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.