| μ΄λ¦ | λ΄λΉ λλ©μΈ | μ£Όμ κΈ°μ¬ |
|---|---|---|
| κΉλν | Cart, Order | ν νλ¦Ώ μ 곡, μ΄κΈ° μΈν , νλ‘ νΈ μμ |
| κΉνμ° | User, Auth | Auth μμ€ν λΉ λ₯Έ ꡬν |
| λ°λ€μ¬ | Inquiry, Notification | ν μ€νΈ ꡬ쑰 μ€κ³ (AAA ν¨ν΄, jest-mock-extended) |
| μ΄νμ | S3, Dashboard, Metadata | λ¬Έμν λ° νμλ‘ κ΄λ¦¬ |
| μ΅νκΈ° | Store | Git μΆ©λ ν΄κ²° (cherry-pick) |
| νμ€κΈ° | Product, Review | κΈ°μ λ Όμ μ λͺ μΎν μ루μ μ 곡 |
π‘ ν΅μ¬: μ²μλΆν° λ§λ€μ§ μκ³ κ²μ¦λ ꡬ쑰μμ μμ
λνλμ΄ μ 곡ν ν νλ¦Ώ ꡬ쑰
src/
βββ app.ts # Express μ± μ€μ
βββ server.ts # HTTP μλ² μνΈλ¦¬ν¬μΈνΈ
βββ jest.config.cjs # μΈν
νμΌλ€μ λ² μ΄μ€ μ½λ
βββ tsconfig.json
βββ eslint.config.mjs
βββ babel.config.cjs
βββ .prettierrc
βββ .gitignore
βββ package.json
βββ package-lock.json
βββ config/
β βββ constants.ts # νκ²½λ³μ (Zod κ²μ¦)
β βββ prisma.ts # Prisma ν΄λΌμ΄μΈνΈ
βββ domains/
β βββ {domain}/
β βββ {domain}.container.ts # DI 컨ν
μ΄λ
β βββ {domain}.router.ts # λΌμ°νΈ
β βββ {domain}.controller.ts # 컨νΈλ‘€λ¬
β βββ {domain}.service.ts # λΉμ¦λμ€ λ‘μ§
β βββ {domain}.repository.ts # DB μμ
βββ common/
βββ middlewares/ # κ³΅ν΅ λ―Έλ€μ¨μ΄
βββ utils/ # μ νΈλ¦¬ν°
ν¨κ³Ό