MSA κΈ°λ° λ¬Όλ₯ κ΄λ¦¬ λκ·λͺ¨ AI μμ€ν
ν΅κ³ μλ‘μ§(Keep Going Logi) λ κΈ°μ
κ° κ±°λ(B2B) νκ²½μμ ν¨μ¨μ μΈ νλΈ μ€μ¬ λ¬Όλ₯ λ° λ°°μ‘ κ΄λ¦¬λ₯Ό λͺ©νλ‘ νλ μμ€ν
μ
λλ€.
νλΈλ₯Ό μ€μ¬μΌλ‘ μ¬κ³ λ₯Ό 체κ³μ μΌλ‘ κ΄λ¦¬νκ³ , μ£Όλ¬Έ λ°μ μ νλΈ κ° μ΄λ β μ΅μ’
λ°°μ‘κΉμ§μ μ κ³Όμ μ λ¨κ³λ³λ‘ μ²λ¦¬ν μ μλλ‘ μ€κ³λμμ΅λλ€.
λ³Έ μμ€ν μ Spring Bootμ Spring Cloud (Eureka, Gateway, Config) λ₯Ό κΈ°λ°μΌλ‘ MSA ꡬ쑰λ₯Ό ꡬννμ¬, κ° μλΉμ€κ° λ 립μ μΌλ‘ λ°°ν¬ λ° νμ₯λ μ μλλ‘ κ΅¬μ±νμ΅λλ€.
λν Java 21, Spring Boot 3.5.7, PostgreSQLμ κΈ°λ°μΌλ‘ κ°λ°λμμΌλ©°, JWT μΈμ¦μΌλ‘ μλΉμ€ κ° ν΅μ μ 보μμ±μ κ°ννμ΅λλ€.
Dockerfileμ νμ©ν΄ 컨ν
μ΄λ λ¨μλ‘ λΉλ λ° λ°°ν¬ν¨μΌλ‘μ¨, νκ²½μ κ΄κ³μμ΄ μΌκ΄λ μ€ν νκ²½μ μ μ§ν μ μμ΅λλ€.
Kafkaλ₯Ό ν΅ν΄ μ£Όλ¬Έ μ΄λ²€νΈλ₯Ό λ°ν λ° κ΅¬λ
νμ¬ μ€μκ° μλ¦Ό λ° μλΉμ€ κ° μ°λμ±μ κ°ννμ΅λλ€.
βμμ±λ κ²°κ³Όλ¬Όλ³΄λ€ κ³Όμ μ νμ΅κ³Ό μ±μ₯μ μ΄μ β
μ°λ¦¬ νμ λͺ©νλ μμ±λ³΄λ€ κ³Όμ μμμ νμ΅κ³Ό μ±μ₯μ μμμ΅λλ€.
MSA κΈ°λ°μ λ¬Όλ₯ κ΄λ¦¬ μμ€ν
μ μ§μ μ€κ³νκ³ κ΅¬ννλ©°,
μλΉμ€ λΆλ¦¬, λ°μ΄ν° μ°λ, νΈλμμ
μ²λ¦¬, νμ
λ¬Έμ ν΄κ²°μ μ§μ κ²½ννκ³ κ°μ νμ΅λλ€.
| κ΅¬λΆ | κΈ°μ |
|---|---|
| Backend | Java 21, Spring Boot 3.5.7 (Eureka, Gateway, Config) |
| Infra | Docker |
| Database | PostgreSQL |
| Messaging Queue | Kafka |
| Test | Mockito, JUnit |
| API Docs | Swagger 2.8.14 |
| Version Control | Git |
| Architecture & Methodology | Domain-Driven Design (DDD) |
| μ΄λ¦ | μν | λ΄λΉ λλ©μΈ |
|---|---|---|
| μ‘μν | νμ | νμ, κ²μ΄νΈμ¨μ΄, Auth |
| μμ§ν | νμ | νλΈ |
| λ₯νμ | νμ | λ°°μ‘ |
| μ μμ° | κΈ°μ 리λ | μ£Όλ¬Έ, μλ¦Ό |
| μ€νμ§ | νμ₯ | μ 체, μν |
git clone https://github.com/FocusCrew-4/sparta_Logistics.git
gradle build --continue // ν νλ‘μ νΈμμ λΉλκ° μ€ν¨νλλΌλ, λ€λ₯Έ νλ‘μ νΈμ λΉλλ₯Ό κ³μ μ§ν
docker compose up -d --build
π API λͺ μΈμ λ°λ‘κ°κΈ°
- QueryDSL κΈ°λ° λμ κ²μ κΈ°λ₯
- Gateway λ‘컬 μΊμ Logout κ΄λ¦¬ β Redis μ¬μ© λλΉ μλ΅ μλ λ° λ€νΈμν¬ I/O λΉμ© μ κ°
(μΆν Redis Pub/SubμΌλ‘ μΊμ μΌκ΄μ± ν보 μμ ) - νλΈ κ²μ κΈ°λ₯: Specification κΈ°λ°μ 거리·μμμκ°Β·μΆλ°/λμ°© νλΈ λμ μ‘°ν© κ²μ
- μ£Όλ¬Έ μν κΈ°λ° μ€κ³
- μν μ μ΄λ₯Ό λͺ νν μ μ΄
- DB νΈλμμ κ³Ό μΈλΆ API νΈμΆμ λΆλ¦¬νμ¬ κ²½κ³ λͺ νν
- 보μ νΈλμμ ꡬνμΌλ‘ μ€ν¨ μ μν 볡μ κ°λ₯
- ν μ€νΈ μ½λ μ μ©μΌλ‘ μμ€ν μμ μ± ν보
- κ³΅ν΅ μλ΅ μ²λ¦¬ ꡬ쑰νλ‘ μΌκ΄λ μ¬μ©μ κ²½ν μ 곡
-
λ§€μΌ 11μ λ°μΌλ¦¬ μ€ν¬λΌ μ§ν
- μ λ μμ λ΄μ© / μ€λ κ³ν 곡μ
- μ§ν μν© μ κ² λ° μ΄μ 곡μ
-
μν΅ λ°©μ
- Slack + GitHub Issuesλ‘ μμ νν© κ³΅μ
- μ»€λ° λ©μμ§μ μ΄μ λ²νΈ ν¬ν¨
- μ΅μ 1μΈ μ΄μ μ½λ 리뷰 ν
developλΈλμΉ λ³ν© mainλΈλμΉλ νμ μ μ μ°Έμ¬ νμ λ³ν©- Notion λμ보λλ‘ ERD, Context Map, API λͺ μΈ, νΈλ¬λΈμν μ€μκ° κ³΅μ
| λΈλμΉ | μ©λ |
|---|---|
main |
λ°°ν¬μ© |
develop |
ν΅ν© κ°λ° λΈλμΉ |
feature/* |
κΈ°λ₯ λ¨μ κ°λ° |
refactor/* |
리ν©ν λ§ λΈλμΉ |
- λ§€μΌ μ€ν¬λΌμ ν΅ν΄ ν¬λͺ ν μ§ν 곡μ λ° λΉ λ₯Έ νΌλλ°±
- μ΄κΈ° μ€κ³μ μΆ©λΆν μ§μ€ β μ΄ν κ°λ° λ°©ν₯μ± λͺ ν
- Context Map κΈ°λ°μΌλ‘ λλ©μΈ μν κ³Ό μ± μ λͺ νν
- λμΌν κ°λ° νκ²½ μΈν μΌλ‘ νμ ν¨μ¨ κ·Ήλν
- μ€μκ° νμ΄νλ‘κ·Έλλ°μ ν΅ν νΈλ¬λΈμν μλ ν₯μ
- μ΄κΈ° μΌμ μ‘°μ¨λ‘ νλ‘μ νΈ λ§κ° μμ μ MVP μμ±
- νμλ§λ€ λ€λ₯Έ ν΄μμΌλ‘ μΈν΄ μμ¬μν΅ νΌμ λ°μ
β‘οΈ DDD κ°λ μ ν¨κ» νμ΅νκ³ μ μ ν΅μΌλ‘ ν΄κ²°
- κ°μ μ©μ΄λ₯Ό λ€λ₯΄κ² ν΄μνμ¬ μΆ©λ λ°μ
β‘οΈ Context Map κΈ°λ°μΌλ‘ μν λͺ νν,
μΈμ΄ μ¬μ μ λ° κ²½κ³ κ΅¬λΆμ ν΅ν΄ ν΄κ²°