์คํฐ๋ ๋ชจ์ง๋ถํฐ ์ฐธ์ฌ, ์ธ์ฆ, ๊ธฐ๋ก ๊ด๋ฆฌ๊น์ง ํ ๋ฒ์ ๋ค๋ฃฐ ์ ์๋๋ก ๋ง๋ ๋ชจ๋ฐ์ผ ์คํฐ๋ ๊ด๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ 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