[MSA] chapter 1.7_SOA vs MSA
Categories: MSA
Tags: MSA, SpringCloud
๐ ๊ฐ์ธ์ ์ธ ๊ณต๊ฐ์ผ๋ก ๊ณต๋ถ๋ฅผ ๊ธฐ๋กํ๊ณ ๋ณต์ตํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ธ๋ก๊ทธ์
๋๋ค.
์ ํํ์ง ์์ ์ ๋ณด๊ฐ ์์ ์ ์์ผ๋ ์ฐธ๊ณ ๋ฐ๋๋๋ค :๐ธ
[ํ๋ฆฐ ๋ด์ฉ์ ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์๋ฉด ๋ณต๋ฐ์ผ์ค๊ฑฐ์์]
์ธํ๋ฐ Dowon Lee๋์ Spring Cloud๋ก ๊ฐ๋ฐํ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ ํ๋ฆฌ์ผ์ด์
(MSA) ๊ฐ์๋ฅผ ๋ฃ๊ณ ์ ๋ฆฌํ ํ๊ธฐ์
๋๋ค.๐
Spring Cloud๋ก ๊ฐ๋ฐํ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ ํ๋ฆฌ์ผ์ด์
(MSA) ๊ฐ์ ๋ค์ผ๋ฌ ๊ฐ๊ธฐ๐ฉโ๐ซ
SOA์ MSA: ์๋น์ค ์งํฅ ์ํคํ ์ฒ์ ์ฐจ์ด์ ํต์ ๋ฐฉ์
์๋น์ค ์งํฅ ์ํคํ ์ฒ๋ ์ฃผ๋ก SOA(Service-Oriented Architecture)์ MSA(Microservice Architecture)๋ก ๋๋๋ฉฐ, ๋ ์ํคํ ์ฒ ๋ชจ๋ ๊ฐ๋ณ ์๋น์ค์ ๋ ๋ฆฝ์ฑ์ ๋ชฉํ๋ก ํ์ง๋ง, ์ ๊ทผ ๋ฐฉ์๊ณผ ๋ชฉ์ ์์ ์ฐจ์ด๋ฅผ ๋ณด์ธ๋ค.
1. SOA (Service-Oriented Architecture)
์๋น์ค ์ฌ์ฌ์ฉ์ ํตํ ๋น์ฉ ์ ๊ฐ์ ์ฃผ์ ๋ชฉํ๋ก ํ๋ค.
- SOA์์๋ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ๋ณ ์๋น์ค๋ก ๊ฐ๋ฐํ์ฌ, ์ด ์๋น์ค๋ค์ โ์๋น์ค ๋ฒ์คโ๋ผ๋ ๋งค๊ฐ์ฒด๋ฅผ ํตํด ์ฐ๋ํ๊ณ , ๋น์ฆ๋์ค์ ํ์ํ ํตํฉ๋ ์๋น์ค ํํ๋ก ์ ๊ณตํ๋ค.
- ์ฃผ๋ก ์น ์๋น์ค ํํ๋ก ๊ฐ๋ฐ๋๋ฉฐ, WSDL(Web Services Description Language) ๋ฐ ESB(Enterprise Service Bus)์ ๊ฐ์ ํ์ค์ ํตํด ์๋น์ค ๊ฐ ํต์ ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ํน์ง
2. MSA (Microservice Architecture)
MSA๋ SOA์๋ ๋ฌ๋ฆฌ ์๋น์ค ๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ์ต์ํํ๊ณ , ์๋น์ค ๊ฐ ๋ ๋ฆฝ์ฑ๊ณผ ์ ์ฐ์ฑ์ ๋์ด๋ ๋ฐ ์ค์ ์ ๋
- ๊ฐ ์๋น์ค๋ ์์ ์ด ๋งก์ ๋น์ฆ๋์ค ๋ก์ง๋ง ๋ด๋นํ๋ฉฐ, ๋ค๋ฅธ ์๋น์ค์ ํ์ํ ๋๋ง ์ฐ๋ํ๋ค
- ์๋ฅผ ๋ค์ด, ๊ฒฐ์ ์๋น์ค๊ฐ ํ์ ์ ๋ณด๋ฅผ ํ์๋ก ํ ๊ฒฝ์ฐ, ์ง์ DB์ ์ ๊ทผํ๋ ๋์ API๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ ๋ฐฉ์์ผ๋ก ์ฐ๋ํ๋ค.
- ์ด๋ ๊ฒ ๊ฐ ์๋น์ค๋ API๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ, ๋ฌธ์ ๊ฐ ์๊ฒผ์ ๋ ๋ค๋ฅธ ์๋น์ค์ ์ํฅ์ ์ต์ํํ๋ค. ๋ฐ๋ผ์ MSA๋ ๋น ๋ฅธ ๋ฐฐํฌ์ ๊ฐ๋ณ ์๋น์ค์ ๋ ๋ฆฝ์ ์ธ ์ ๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ถ๋ค.
3. MSA์์์ ํต์ ๋ฐฉ์: REST API์ ๋ฉ์์ง ์์คํ
MSA์ ๋ ๋ฆฝ๋ ์๋น์ค๋ค์ด ์๋ก ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ณ ํต์ ํ๊ธฐ ์ํด ์ฃผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ์์ REST API์ ๋ฉ์์ง ์์คํ ์ด๋ค.
REST API์ MSA
REST API๋ ์๋น์ค ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ ์๋ตํ๋ ๋ฐฉ์์ผ๋ก, HTTP ๋ฉ์๋์ URI๋ฅผ ํตํด ์๋น์ค๊ฐ ์ ๊ณตํ๋ ๋ฆฌ์์ค์ ์์ ์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ํ๋ธ๋ค. Richardson Maturity Model์ ๋ฐ๋ฅด๋ฉด REST API๋ ๋ค ๊ฐ์ง ์ฑ์๋๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๋จ๊ณ๊ฐ ๋์์๋ก RESTfulํ ์ค๊ณ๋ฅผ ์ถฉ์กฑํ๋ API๋ก ํ๊ฐ๋๋ค
- Level 0: URL์ ํตํด ๋จ์ํ ๋ฆฌ์์ค๋ฅผ ์ ๊ณต
- Level 1: ์๋ฏธ ์๋ URL๋ก ๋ฆฌ์์ค๋ฅผ ๊ตฌ์ฒดํ
- Level 2: HTTP ๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ ๋ฆฌ์์ค๋ฅผ ์ํ์ ๋ง๊ฒ ์ ๊ณต
- Level 3: HATEOAS๋ก ์ํ ์ ๋ณด๋ฅผ ํฌํจํ์ฌ ํด๋ผ์ด์ธํธ์ ๋ค์ ์์ ์ ์ ์
๋ฉ์์ง ์์คํ ๊ณผ MSA
MSA์์๋ REST API ์ธ์๋ Kafka์ ๊ฐ์ ๋ฉ์์ง ์์คํ ์ ํตํด ๋น๋๊ธฐ์ ์ธ ๋ฐ์ดํฐ ๋๊ธฐํ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด ๋๋ฆฌ ์ฌ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ์๊ฐ์ ์๋น์ค์์ ์ ๊ท ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ด๋ฒคํธ๋ก ๋ฐํํ๋ฉด, ๊ฒฐ์ ์๋น์ค๊ฐ ์ด๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ๊ตฌ๋ ํ์ฌ ํ์ํ ์์ ์ ์ํํ ์ ์๋ค. ์ด๋ฐ ์ด๋ฒคํธ ์คํธ๋ฆผ ๋ฐฉ์์ ์๋น์ค ๊ฐ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ณ , ๋ฐ์ดํฐ๊ฐ ์ค์๊ฐ์ผ๋ก ๋ฐ์๋ ์ ์๋๋ก ๋์์ค๋ค.
์์ฝ!
SOA์ MSA๋ ์๋น์ค ์งํฅ ์ํคํ ์ฒ๋ผ๋ ๊ณตํต์ ์ด ์์ง๋ง, SOA๋ ํตํฉ๊ณผ ์ฌ์ฌ์ฉ์, MSA๋ ๋ ๋ฆฝ์ฑ๊ณผ ์ ์ฐ์ฑ์ ๋ ์ค์ํ๊ฒ ์๊ฐํ๋ ์ํคํ ์ฒ์ด๋ค. ํนํ MSA์์๋ ์๋น์ค ๊ฐ ํต์ ์ REST API์ ๋ฉ์์ง ์์คํ ์ ํตํด ์ฒ๋ฆฌํ๋ฉฐ, ์ด๋ฅผ ํตํด ๊ฐ ์๋น์ค๊ฐ ๋ ๋ฆฝ์ฑ์ ์ ์งํ๋ฉด์๋ ํ์ํ ๋ฐ์ดํฐ ์ฐ๋์ ํจ๊ณผ์ ์ผ๋ก ์ํํ ์ ์๋๋ก ์ค๊ณํ๋ค.
Leave a comment