[MSA] chapter 1.7_SOA vs MSA

Updated:

Categories:

Tags: ,

๐Ÿ“Œ ๊ฐœ์ธ์ ์ธ ๊ณต๊ฐ„์œผ๋กœ ๊ณต๋ถ€๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ๋ณต์Šตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
์ •ํ™•ํ•˜์ง€ ์•Š์€ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ๋ฐ”๋ž๋‹ˆ๋‹ค :๐Ÿ˜ธ
[ํ‹€๋ฆฐ ๋‚ด์šฉ์€ ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ๋ณต๋ฐ›์œผ์‹ค๊ฑฐ์—์š”]

์ธํ”„๋Ÿฐ 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์™€ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๊ฐ ์„œ๋น„์Šค๊ฐ€ ๋…๋ฆฝ์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์—ฐ๋™์„ ํšจ๊ณผ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ•œ๋‹ค.






MSA ์นดํ…Œ๊ณ ๋ฆฌ ๋‚ด ๋‹ค๋ฅธ ๊ธ€ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

Leave a comment