π μμΈ κΈ°μ μ€ν
| μΉ΄ν κ³ λ¦¬ | κΈ°μ | λ²μ |
|---|---|---|
| Framework | NestJS | 10.x |
| Language | TypeScript | 5.x |
| Database | MariaDB | 10.8.2 |
| ORM | TypeORM | 0.3.x |
| Cache | Redis | 7.2.4 |
| Authentication | JWT + Passport | - |
| Container | Docker Compose | - |
- Node.js 18.0.0 μ΄μ
- Docker & Docker Compose
- Infisical CLI (νκ²½λ³μ κ΄λ¦¬μ©)
# macOS (Homebrew)
brew install infisical/infisical/infisical
# λλ λ€λ₯Έ μ€μΉ λ°©λ²μ https://infisical.com/docs μ°Έμ‘°# μΉ λΈλΌμ°μ λ₯Ό ν΅ν λ‘κ·ΈμΈ
infisical login
# λλ μλΉμ€ ν ν° μ¬μ© (CI/CD νκ²½)
export INFISICAL_TOKEN=your-service-token# 1. μμ‘΄μ± μ€μΉ
npm install
# 2. Docker 컨ν
μ΄λ μ€ν (DB, Redis)
docker-compose -f docker-compose.dev.yml up -d
docker network create docker-network
# 3. κ°λ° μλ² μ€ν (μλμΌλ‘ infisicalμμ νκ²½λ³μ λκΈ°ν)
npm run start:dev
# μλμΌλ‘ νκ²½λ³μ λκΈ°νλ§ νκ³ μΆμ κ²½μ°
npm run env:sync.env.localνμΌμ Gitμ ν¬ν¨λμ§ μμ΅λλ€npm run env:syncλͺ λ Ήμ΄λ‘ κ°λ³μ μΌλ‘ νκ²½λ³μλ₯Ό λκΈ°νν΄μΌ ν©λλ€- infisical λ‘κ·ΈμΈμ΄ νμν©λλ€:
infisical login
npm run start:devμ€ν μ μλμΌλ‘ infisical dev νκ²½μ νκ²½λ³μλ₯Ό.env.localνμΌλ‘ λκΈ°ν- κ·Έ ν
.env.localνμΌμ μ¬μ©νμ¬ μ ν리μΌμ΄μ μ€ν
π¦ src/
βββ π api/ # λλ©μΈλ³ API λͺ¨λ
β βββ π€ user/ # μ¬μ©μ κ΄λ¦¬
β βββ π board/ # κ²μν
β βββ π login/ # μΈμ¦
βββ π§ common/ # κ³΅ν΅ μ νΈλ¦¬ν°
βββ ποΈ database/ # μν°ν°, λ§μ΄κ·Έλ μ΄μ
βββ βοΈ config/ # μ€μ κ΄λ¦¬
npm run start:dev # κ°λ° μλ² (νκ²½λ³μ μλ λκΈ°ν + watch)
npm run start:debug # λλ²κ·Έ λͺ¨λ (infisical μ§μ μ¬μ©)
npm run start # μΌλ° μ€ν (infisical μ§μ μ¬μ©)
npm run build # λΉλ
npm run env:sync # νκ²½λ³μ μλ λκΈ°ν (dev νκ²½)
npm run lint # μ½λ κ²μ¬ |
npm test # λ¨μ ν
μ€νΈ
npm run test:e2e # E2E ν
μ€νΈ
npm run test:cov # 컀λ²λ¦¬μ§
npm run test:watch # ν
μ€νΈ watch |
npm run migration:run # λ§μ΄κ·Έλ μ΄μ
μ€ν (infisical μ§μ μ¬μ©)
npm run migration:revert # λ§μ΄κ·Έλ μ΄μ
λλ리기 (infisical μ§μ μ¬μ©)
npm run migration:generate # λ§μ΄κ·Έλ μ΄μ
μμ± (infisical μ§μ μ¬μ©)
npm run migration:create # μ λ§μ΄κ·Έλ μ΄μ
μμ±
npm run migration:show # λ§μ΄κ·Έλ μ΄μ
μν νμΈ (infisical μ§μ μ¬μ©) |
| μλΉμ€ | URL | μ€λͺ |
|---|---|---|
| π Swagger UI | https://api.hankkibuteo.com/api/document | API λ¬Έμ |
| π Health Check | https://api.hankkibuteo.com/v1/health | μν νμΈ |