μ€ν°λ λͺ¨μ§λΆν° μ°Έμ¬, μΈμ¦, κΈ°λ‘ κ΄λ¦¬κΉμ§ ν λ²μ λ€λ£° μ μλλ‘ λ§λ λͺ¨λ°μΌ μ€ν°λ κ΄λ¦¬ μ ν리μΌμ΄μ μ MSA κΈ°λ° λ°±μλ μλ²
- κΈ°μ‘΄ μΈμ¦ μ€ν°λλ μΉ΄μΉ΄μ€ν‘ μ€νμ±ν , λμ€μ½λ, μκΈ° μ€νλ λμνΈ λ± μ¬λ¬ λꡬλ₯Ό ν¨κ» μ¨μΌ ν΄μ μ΄μ νλ¦μ΄ λΆμ°.
- μΈμ¦ νμΈ, λ―ΈμΈμ¦ μ§κ³, ν¨λν° λ°μ, κ³΅μ§ μ λ¬ κ°μ μμ μ΄ μλνλμ§ μμ μ΄μμ λΆλ΄μ΄ νΌ.
- GitHub μ»€λ° μΈμ¦, 체ν¬λ¦¬μ€νΈ μΈμ¦, μ¬μ§ μΈμ¦μ²λΌ μ€ν°λλ³ μꡬμ¬νμ΄ λ¬λΌλ μ΄λ₯Ό μΌκ΄λκ² μ²λ¦¬ν μλ² κ΅¬μ‘°κ° νμ.
- μ€ν°λ μμ±, μ°Έμ¬, μΈμ¦, κΈ°λ‘, ν¬μΈνΈ, λ¬Έμ κΈ°λ₯μ MSA κ΅¬μ‘°λ‘ λΆλ¦¬ν΄ μμ μ μΌλ‘ μ΄μν μ μλ λ°±μλλ₯Ό ꡬμΆνλ κ²μ΄ λͺ©ν.
- λ€μν μΈμ¦ λ°©μμ νλμ λλ©μΈ λͺ¨λΈ μμμ μ²λ¦¬ν μ μλλ‘ λ©ν° μΈμ¦ μ€ν°λ μλ²λ₯Ό ꡬννκ³ μ ν¨.
- μ¬μ©μ μΈμ¦, API λΌμ°ν , μλΉμ€ κ° κ³΅ν΅ μλ΅ νμκΉμ§ ν΅ν©ν΄ νλ‘ νΈμλμ μ΄μ κΈ°λ₯μ΄ μΌκ΄λκ² λμνλ ꡬ쑰λ₯Ό μ§ν₯ν¨.
| μλΉμ€ | μν |
|---|---|
gateway-service |
JWT μΈμ¦ νν° μ μ© λ° μΈλΆ μμ² λΌμ°ν |
eureka-service |
μλΉμ€ λ±λ‘ λ° λμ€μ»€λ²λ¦¬ κ΄λ¦¬ |
user-service |
νμκ°μ , λ‘κ·ΈμΈ, OAuth2, JWT, μ¬μ©μ μ 보, λ°°μ§ |
study-service |
μ€ν°λ μμ±/μ°Έμ¬/κ²μ, κ²μν, μΈμ¦ κΈ°λ‘, GitHub/TODO/μ¬μ§/μμΉ μΈμ¦ |
store-service |
ν¬μΈνΈ, μν, ꡬ맀, μ¬μ©μ μμ΄ν , μλ¦Ό |
community-service |
곡μ§μ¬ν, λ¬Έμ, λ¬Έμ λκΈ |
common-service |
κ³΅ν΅ DTO, μμΈ, κ³΅ν΅ μν°ν°, 보μ μ νΈ |
- Spring Boot 3
- Spring Cloud Gateway
- Netflix Eureka
- Spring Security
- OAuth2 Client
- QueryDSL
- PostgreSQL
- Redis
- RabbitMQ
- MSA κΈ°λ°μΌλ‘ λλ©μΈλ³ μλΉμ€λ₯Ό λΆλ¦¬ν ꡬ쑰.
gateway-serviceκ° μ§μ μ μ΄ λκ³ ,eureka-serviceκ° μλΉμ€ λμ€μ»€λ²λ¦¬λ₯Ό λ΄λΉ.- κ° μλΉμ€λ
common-serviceλ₯Ό 곡μ νλ©° λ 립μ μΌλ‘ νμ₯ κ°λ₯νλλ‘ κ΅¬μ±.
Client
|
v
gateway-service
|
+-- user-service
+-- study-service
+-- store-service
+-- community-service
|
+-- common-service
eureka-service
|
+-- service discovery
gateway-serviceλ₯Ό κΈ°μ€μΌλ‘ μΈλΆ μμ²μ λ°μ μΈμ¦ νν° μ μ© ν κ° λλ©μΈ μλΉμ€λ‘ λΌμ°ν νλ€.eureka-serviceλ₯Ό κΈ°μ€μΌλ‘ κ° λ§μ΄ν¬λ‘μλΉμ€μ λ±λ‘ λ° λμ€μ»€λ²λ¦¬λ₯Ό κ΄λ¦¬νλ€.- λλ©μΈλ³ κΈ°λ₯μ
user-service,study-service,store-service,community-serviceλ‘ λλμ΄ κ΄λ¦¬νλ€. - κ³΅ν΅ μλ΅ νμ, μμΈ, 보μ κ΄λ ¨ κ³΅ν΅ μ½λλ
common-serviceμ λͺ¨μ μ¬μ¬μ©νλ€.
checkmate_backend
βββ common-service/ # κ³΅ν΅ DTO, μμΈ, κ³΅ν΅ μν°ν°, 보μ μ νΈ
βββ community-service/ # 곡μ§μ¬ν, λ¬Έμ, λ¬Έμ λκΈ
βββ eureka-service/
βββ gateway-service/ # API κ²μ΄νΈμ¨μ΄, JWT μΈμ¦ νν°, λΌμ°ν
βββ study-service/ # μ€ν°λ μμ±/μ°Έμ¬/μΈμ¦/κ²μν/κΈ°λ‘
βββ store-service/ # ν¬μΈνΈ, μν, ꡬ맀, μλ¦Ό
βββ user-service/ # νμ, OAuth2 λ‘κ·ΈμΈ, JWT, λ°°μ§
βββ build.gradle
βββ settings.gradle # λ©ν°λͺ¨λ ꡬμ±
βββ Dockerfile
βββ Jenkinsfile
βββ gradlew