๊ฐ๋จํ ๋ธ๋ก๊ทธ ํ๋ซํผ์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ(MSA)๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ.
Spring Boot ๊ธฐ๋ฐ์ ๊ฐ ์๋น์ค๋ MSA์์ ํ์ํ ๋ค์ํ ๊ธฐ๋ฅ์ Spring Cloud๋ฅผ ํ์ฉํด ์ฒ๋ฆฌํฉ๋๋ค.
์ด ํ๋ก์ ํธ๋ ์ฌ๋ฌ ์ฌ๋์ด ๊ฐ์์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ์คํฐ๋์ ์ผํ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค.
๋ฐ๋ผ์ ๊ฐ ํ์์ ์์ ๋ง์ ํ๋ก์ ํธ ํ๊ฒฝ์ ๋ง๊ฒ ๊ตฌํ ๋ฐ ๊ตฌ์ฑ์ ์กฐ์ ํ์ต๋๋ค.
- ๊ฐ ์ฐธ์ฌ์๋ MSA ์ค๊ณ ๋ฐ ๊ตฌํ์ ๋ํ ์ดํด๋ฅผ ๋ชฉ์ ์ผ๋ก ํ๋ฉฐ, ์๋น์ค ๊ฐ ๋ ๋ฆฝ์ฑ๊ณผ ํตํฉ์ ๊ณ ๋ คํ ์ค๊ณ๋ฅผ ํ์ตํฉ๋๋ค.
- ํ๋ก์ ํธ์ ๊ฒฐ๊ณผ๋ฌผ์ ์คํฐ๋ ๊ณต์ ์ ํผ๋๋ฐฑ์ ํตํด ์ง์์ ์ผ๋ก ๋ฐ์ ๋ ์ ์์ต๋๋ค.
- ์ผ๋ถ ํ์์ Kafka ๋์ RabbitMQ๋ง ์ฌ์ฉํ๊ฑฐ๋, MySQL ๋์ NoSQL์ ์ฌ์ฉํ๋ ๋ฑ ๊ฐ๋ณ์ ์ธ ๊ตฌ์ฑ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์ธ๋ถ์ ์ธ ์ธ์ฆ/์ธ๊ฐ ๋ฐฉ๋ฒ(JWT, OAuth ๋ฑ)๋ ์ฐธ์ฌ์๋ณ๋ก ๋ค๋ฅผ ์ ์์ต๋๋ค.
- ๋์ปค๋ฅผ ์ด์ฉํ ๋ฐฐํฌ๋ ์ถ๊ฐ๋ ์ ์์ต๋๋ค.
๊ฐ๋จํ ๋ธ๋ก๊ทธ ๋ชจ๋๋ฆฌ์ ํ๋ก์ ํธ๋ฅผ ๊ฐ์์ ๋ฐฉ๋ฒ์ผ๋ก MSA๋ก ๋ง์ด๊ทธ๋ ์ด์
Spring Boot ๊ธฐ๋ฐ์ผ๋ก ๊ฐ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๋ฉฐ, Spring Cloud๋ฅผ ์ฌ์ฉํด ์๋น์ค ๊ฐ ํต์ , ๊ตฌ์ฑ ๊ด๋ฆฌ, ๋ชจ๋ํฐ๋ง ๋ฑ์ ๊ตฌํ.
- MSA ์ค๊ณ ๋ฐ ๊ตฌํ ๊ณผ์ ํ์ต:
- ์๋น์ค ๊ฐ ๋ ๋ฆฝ์ฑ ๋ฐ ๋ฐ์ดํฐ ๊ฒฝ๊ณ ์ ์ง
- ์ค์ํ๋ ์ค์ ๊ด๋ฆฌ ํ์ต:
- Spring Cloud Config์ RabbitMQ๋ฅผ ํตํ ์ฌ๋ฐฐํฌ ์๋ ์ค์ ๋ฐ์ ํ๊ฒฝ ๊ตฌํ
- ์ฅ์ ๋์ ๋ฐ ๋ชจ๋ํฐ๋ง ํ์ต:
- Prometheus์ Grafana๋ฅผ ํ์ฉํ ๋ชจ๋ํฐ๋ง ๋ฐ ์๊ฐํ
- User Service: ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ฐ ์ธ์ฆ/์ธ๊ฐ
- Post Service: ๊ฒ์๊ธ ์์ฑ ๋ฐ ๊ด๋ฆฌ
- Comment Service: ๋๊ธ ์์ฑ ๋ฐ ๊ด๋ฆฌ
- Hashtag Service: ๊ฒ์์ ์ํ ํด์ํ๊ทธ
- Spring Boot: ๊ฐ ์๋น์ค ๊ตฌํ
- Spring Cloud: Eureka, Config Server, API Gateway, Spring Cloud Bus ํ์ฉ
- RabbitMQ: ์ด๋ฒคํธ ๊ธฐ๋ฐ ํต์
- Kafka: ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌํญ ์ ๋ฌ ๋ฐ ๋น๋๊ธฐ ํต์
- Zipkin: ๋ถ์ฐ ์ถ์
- Prometheus & Grafana: ๋ชจ๋ํฐ๋ง ๋ฐ ์๊ฐํ