[MSA] chapter 1.5~1.6_Monolithic vs Microservice
Categories: MSA
Tags: MSA, SpringCloud
๐ ๊ฐ์ธ์ ์ธ ๊ณต๊ฐ์ผ๋ก ๊ณต๋ถ๋ฅผ ๊ธฐ๋กํ๊ณ ๋ณต์ตํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ธ๋ก๊ทธ์
๋๋ค.
์ ํํ์ง ์์ ์ ๋ณด๊ฐ ์์ ์ ์์ผ๋ ์ฐธ๊ณ ๋ฐ๋๋๋ค :๐ธ
[ํ๋ฆฐ ๋ด์ฉ์ ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์๋ฉด ๋ณต๋ฐ์ผ์ค๊ฑฐ์์]
์ธํ๋ฐ Dowon Lee๋์ Spring Cloud๋ก ๊ฐ๋ฐํ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ ํ๋ฆฌ์ผ์ด์
(MSA) ๊ฐ์๋ฅผ ๋ฃ๊ณ ์ ๋ฆฌํ ํ๊ธฐ์
๋๋ค.๐
Spring Cloud๋ก ๊ฐ๋ฐํ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ ํ๋ฆฌ์ผ์ด์
(MSA) ๊ฐ์ ๋ค์ผ๋ฌ ๊ฐ๊ธฐ๐ฉโ๐ซ
๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ vs. ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ
์๋น์ค ์งํฅ ์ํคํ ์ฒ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ผ๋ก ๋๋๋ค.
๊ธฐ์กด ํ๋ก์ ํธ์์ ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ์ ํ๋ก ํธ์ ๋ฐฑ์ ๋ถ๋ฆฌํด์ ๊ฐ๋ฐํ๋ ๋ฐฉ์์ผ๋ก ๋ชจ๋๋ฆฌ์๊ณผ ๋ง์ดํฌ๋ก์๋น์ค์ ์ค๊ฐ ์ ๋๋ผ๊ณ ๋ณผ ์ ์๋ค.
1. ๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ (Monolithic Architecture)
ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ๋ชจ๋ ์์๋ฅผ ํ๋์ ํฐ ์ํํธ์จ์ด๋ก ๋ฌถ์ด ๊ฐ๋ฐํ๋ ๋ฐฉ์
- DB ๋ก์ง, ๋น์ฆ๋์ค ๋ก์ง, ํ๋ก ํธ์๋๊น์ง ๋ชจ๋ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ธฐ์ ์ผ๋ก ๊ฒฐํฉ๋๋ค.
- ๋ชจ๋ ๊ธฐ๋ฅ์ด ์๋ก ๊ฐํ๊ฒ ๊ฒฐํฉ๋์ด ์์ด ์ผ๋ถ๋ฅผ ์์ ํ๋๋ผ๋ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ๋น๋ํ๊ณ ๋ฐฐํฌํด์ผ ํ๋ค.
- ์ด์ฒ๋ผ ๊ฐํ ๊ฒฐํฉ์ ์ ํ๋ฆฌ์ผ์ด์ ํ์ฅ๊ณผ ์ ์ง๋ณด์์ ์ ์ฝ์ ์ฃผ๋ฉฐ, ์๋น์ค ์ค๋จ์ด๋ ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํ ์ ์๋ค.
2. ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ (Microservice Architecture)
์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ์๋น์ค๋ก ๋ถ๋ฆฌํ์ฌ ๊ฐ๋ฐํ๊ณ ๋ฐฐํฌํ๋ ๋ฐฉ์
- ๋น์ฆ๋์ค ๋ก์ง์ด ์๊ณ ๋ ๋ฆฝ๋ ์๋น์ค ๋จ์๋ก ๋ถ๋ฆฌ๋๋ฉฐ, HTTP ํต์ ์ด๋ ๋ฉ์์ง ์์คํ ์ ํตํด ์ํธ์์ฉํ๋ค.
- ๊ฐ๋ณ ์๋น์ค์ ๋ฌธ์ ๋ ์์ ์ฌํญ์ด ๋ค๋ฅธ ์๋น์ค์ ์ํฅ์ ์ฃผ์ง ์์ ๋ถ๋ถ์ ์ธ ์ ์ง๋ณด์์ ๋ ๋ฆฝ์ ์ธ ํ์ฅ์ด ๊ฐ๋ฅํ๋ค.
- ์๋ฅผ ๋ค์ด, ๊ฒฐ์ ์๋น์ค์ ํ์ ์๋น์ค๊ฐ ๊ฐ๊ฐ์ API๋ก ํต์ ํ๋ฏ๋ก, ์๋ก์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ์ง ์๊ณ API ํธ์ถ๋ก ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค.
๋ง์ดํฌ๋ก์๋น์ค์ ์ฃผ์ ํน์ง
- ์์ ๋ ๋ฆฝ ์๋น์ค: Sam Newman์ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ๋ ์๋น์ค๋ค์ ๋ชจ์์ผ๋ก ์ ์ํ๋ค.
- ์ค์ ์ง์ค ๊ด๋ฆฌ ์ต์ํ: ๋งํด ํ์ธ๋ฌ๋ ์ค์ ์ง์ค์ ๊ด๋ฆฌ๊ฐ ์ต์ํ๋์ด์ผ ํ๊ณ , ์๋น์ค๋ง๋ค ์๋ก ๋ค๋ฅธ ์ธ์ด์ ๋ฐ์ดํฐ ์ ์ฅ ๊ธฐ์ ์ ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ค๊ณ ์ค๋ช ํ๋ค. ์ด๋ ๊ฒ ๋ค์ํ ๊ธฐ์ ์ ์ฌ์ฉํ๋ ์ํคํ ์ฒ๋ ํด๋ฆฌ๊ธ๋ ํจ๋ฌ๋ค์์ด๋ผ ๋ถ๋ฆฌ๋ฉฐ, ๊ฐ ์๋น์ค์ ์ต์ ํ๋ ์ธ์ด์ ์คํ ๋ฆฌ์ง ๊ธฐ์ ์ ์ ํํ ์ ์๋ค.
3. ๋ชจ๋๋ฆฌ์ vs. ๋ง์ดํฌ๋ก์๋น์ค: ๋์ ๊ณ ๋ ค์ฌํญ
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ฅผ ๋์ ํ ๋ ๊ณ ๋ ค์ฌํญ!
- ๋ณํ ์์ฉ ๋ฅ๋ ฅ: ์ด๊ธฐ ๊ฐ๋ฐ ๋๋น ๋น์ฉ๊ณผ ์๊ฐ์ด ๋ ๋ค ์ ์๋ค. ์ฅ๊ธฐ์ ์ธ ์ ์ฐ์ฑ๊ณผ ํ์ฅ์ฑ์ ์ด์ ์ ์ถฉ๋ถํ ํ๊ฐํด์ผ ํ๋ค.
- ๋ ๋ฆฝ ๋ผ์ดํ์ฌ์ดํด: ๊ฐ ์๋น์ค๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐ๋๊ณ ์ด์๋ ์ ์๋๋ก, ์๋น์ค ๊ฐ ๊ฒฝ๊ณ๋ฅผ ๋ช ํํ ์ ์ํด์ผ ํ๋ค.
- ํ์ฅ์ฑ: ๊ฐ๋ณ ์๋น์ค๋ง๋ค ๋ ๋ฆฝ์ ์ผ๋ก ํ์ฅํ ์ ์์ด์ผ ํ๋ฉฐ, ์ค์ผ์ผ๋ง์ด ์ฉ์ดํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ถฐ์ผ ํ๋ค.
- ์ค๋ฅ ๊ฒฉ๋ฆฌ: ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋ ๋ค๋ฅธ ์๋น์ค์ ์ํฅ์ ์ฃผ์ง ์๋๋ก ํ๊ณ , ํด๋น ์๋น์ค๋ง ์ํฅ์ ๋ฐ๋๋ก ์ค๊ณ๋์ด์ผ ํ๋ค.
- ์ธ๋ถ ์ข ์์ฑ ์ต์ํ: ๊ฐ ์๋น์ค ๊ฐ ์ข ์์ฑ์ ์ค์ด๊ณ ๋์ ์์ง๋ ฅ์ ๊ฐ์ถ ์ ์์ด์ผ ํ๋ค.
- ํด๋ฆฌ๊ธ๋ ์ง์: ๋ค์ํ ์ธ์ด์ ์คํ ๋ฆฌ์ง ๊ธฐ์ ์ ์์ ๋กญ๊ฒ ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ค.
์์ฝ!
๋ง์ดํฌ๋ก์๋น์ค๋ ์ฌ๋ฌ ๋ ๋ฆฝ์ ์ธ ์์ ๊ธฐ๋ฅ ๋จ์์ ์๋น์ค๋ค์ด ์ํธ์์ฉํ์ฌ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ๋ฐฉ์์ด๋ค. ์ด๋ฅผ ํตํด ๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ๋ณด๋ค ๋ ๋์ ์ ์ฐ์ฑ๊ณผ ํ์ฅ์ฑ์ ๊ฐ์ง๋ฉฐ, REST API๋ ๋ฉ์์ง ์์คํ ์ ํตํด ํจ๊ณผ์ ์ผ๋ก ์๋น์ค ๊ฐ ํต์ ์ ์ํํ ์ ์๋ค.
Leave a comment