[MSA] MSA(MicroService Architecture)๋ž€๐Ÿค”โ“

sorzzzzyยท2022๋…„ 4์›” 21์ผ
1

MSA

๋ชฉ๋ก ๋ณด๊ธฐ
1/7
post-thumbnail

๐Ÿท What is MicroServices?

ํ•˜๋‚˜์˜ Application์„ ๋‹ค์ˆ˜์˜ ๋…๋ฆฝ์ ์ธ Service๋กœ ๊ตฌ์„ฑํ•˜๋Š” Architecture Style ์ด๋‹ค.

  • ๊ฐ์ž ๋ณ„๋„์˜ ํ”„๋กœ์„ธ์Šค์—์„œ ์‹คํ–‰๋˜๋ฉฐ HTTP API์™€ ๊ฐ™์€ ๊ฐ€๋ฒผ์šด ๋งค์ปค๋‹ˆ์ฆ˜์œผ๋กœ ํ†ต์‹ ํ•˜๋Š” ์ž‘์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‹ค.
  • ์ž‘์€ ์„œ๋น„์Šค๋“ค์€ ๊ฐ์ž์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๊ณ , ์™„์ „ ์ž๋™ํ™”๋œ ์ ˆ์ฐจ์— ๋”ฐ๋ผ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ๋œ๋‹ค.
  • ๊ฐ ์„œ๋น„์Šค๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋‚˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿท ์ „ํ†ต์  ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก  ๋ฐ Monolithic ์†Œ๊ฐœ

์ „ํ†ต์ ์ธ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก 

  • ์ „์ฒด ๊ธฐ๋Šฅ์„ ๋‹จ์ผ ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ๊ฐœ๋ฐœํ–ˆ๋‹ค.
  • ๋Œ€๊ทœ๋ชจ ๋‹จ์ผ ์ฝ”๋“œ ๋ฒ ์ด์Šค๋ฅผ ๋นŒ๋“œ/๋ฐฐํฌํ–ˆ๋‹ค.
  • ๋‹จ์ผ ํ†ตํ•ฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค

โžก๏ธ Monolithic System


Monolithic System์˜ ๋‹จ์ 

  1. ๊ธฐ๋Šฅ๋“ค ๊ฐ„ ๊ฒฐํ•ฉ๋„๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋†’๋‹ค.
  • ์ž‘์€ ์ˆ˜์ •์—๋„ ์ „์ฒด ์‹œ์Šคํ…œ์ด ์ „์ฒด์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•œ๋‹ค.
  • ํ•˜๋‚˜์˜ ๋ฒ„๊ทธ์— ์ „์ฒด ์‹œ์Šคํ…œ์ด ์‹คํŒจํ•  ์ˆ˜ ์žˆ๋‹ค.
  1. ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ ์‹œ ์˜ํ–ฅ๋„์˜ ํŒŒ์•…์ด ์–ด๋ ต๋‹ค.
  2. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ฝ”๋“œ๊ฐ€ ์šด์˜ํ™˜๊ฒฝ์— ๋ฏผ์ฒฉํ•˜๊ฒŒ ๋ฐฐํฌ๋˜๊ธฐ ์–ด๋ ต๋‹ค.

Monolithic System์˜ ์ข…๋ฅ˜

1. Single Monolithic Sytem

  • ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ํ˜•ํƒœ์ด๋‹ค.
  • ์ง„ํ™์ฒ˜๋Ÿผ ์‘์ง‘๋„๊ฐ€ ๋†’๋‹ค๊ณ  ํ•ด์„œ ํฐ ์ง„ํ™ ๊ณต ์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค.

2. Modular Monolithic Sytem

  • ๊ฐ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋ชจ๋“ˆํ™”๊ฐ€ ๋˜์–ด์žˆ๋Š” ํ˜•ํƒœ์ด๋‹ค.
  • MSA(MicroService Architecture)์˜ ์ข‹์€ ๋Œ€์•ˆ์ด ๋  ์ˆ˜ ์žˆ๋‹ค.
  • Monolithic์˜ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ์ธ ๊ฒฐํ•ฉ๋„๋ฅผ ์ž˜ ๋‹ค๋ฃฌ๋‹ค๋ฉด, ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋†’์€ SW๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค!
  • ์ด ์žฅ์ ์„ ์ทจํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ชจ๋“ˆ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ์ž์ฃผ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.

3. Single Monolithic Sytem

  • ๋ถ„์‚ฐ๋œ ํ˜•ํƒœ์˜ Monolithic Sytem ์ด๋‹ค.
  • ๋ถ„์‚ฐ๋˜์—ˆ์ง€๋งŒ ์„œ๋น„์Šค ๊ฐ„ ๊ฒฐํ•ฉ๋„๋Š” ๋งค์šฐ ๊ฐ•ํ•œ ์ƒํƒœ๋กœ ํ•ญ์ƒ ๊ฐ™์ด ๋ฐฐํฌ๋œ๋‹ค.

Monolithic์— ๋Œ€ํ•œ ์˜คํ•ด๐Ÿ˜…
Monolithic์˜ ๋‹จ์ ๋งŒ ์–ธ๊ธ‰ํ–ˆ๋‹ค๊ณ  ํ•ด์„œ ํ”ผํ•ด์•ผ ํ•  ํŒจํ„ด์€ ์ ˆ๋Œ€ ์•„๋‹ˆ๋‹ค!
Monolithic์€ ํ•˜๋‚˜์˜ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ผ ๋ฟ, ๋งŽ์€ ์ƒํ™ฉ์—์„œ ์ถฉ๋ถ„ํžˆ ์ข‹์€ ์—ญํ• ์„ ํ•œ๋‹ค.
๋’ค์ด์–ด ๋‚˜์˜ฌ MSA์˜ ๋‹จ์ ์ธ ์šด์˜ ๊ด€๋ฆฌ์˜ ์–ด๋ ค์›€์ด Monolithic์—์„œ๋Š” ์šด์˜ ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๋‹ค๋Š” ์žฅ์ ์œผ๋กœ ์ž‘์šฉํ•œ๋‹ค!

์ฆ‰, Monolithic ๊ณผ MSA ๋Š” Trade-Off ๊ฐ€ ์กด์žฌํ•˜๋ฏ€๋กœ ์ ์ ˆํ•œ ์„ ํƒ์ด ํ•„์š”ํ•˜๋‹ค!


๐Ÿท MSA(Microservice Architecture) ์žฅ/๋‹จ์ 

MSA(Microservice Architecture) ๋Š” Monolithic์ด ๊ฐ€์ง€๋Š” ๋‹จ์ ๋“ค์„ ๋ณด์™„ํ•ด์ค€๋‹ค.

  • ์ž‘์€ ์„œ๋น„์Šค ๋‹จ์œ„๋กœ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. โžก๏ธ ์ผ๋ถ€์˜ ์žฅ์• ๊ฐ€ ์‹œ์Šคํ…œ ์ „์ฒด ์žฅ์• ๋กœ ์ด์–ด์ง€์ง€ ์•Š๋Š”๋‹ค.
  • ์„œ๋น„์Šค ๋‹จ์œ„๋กœ ์ž์œจ์ ์ธ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. โžก๏ธ ๋น ๋ฅด๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ํ™˜๊ฒฝ์— ๋ฏผ์ฒฉํ•˜๊ฒŒ ๋Œ€์‘์ด ๊ฐ€๋Šฅํ•˜๋‹ค

MSA ์žฅ์ 

1. ๋น ๋ฅธ Delivery
๊ฐ ์„œ๋น„์Šค๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ๋˜๊ณ  ๋Š์Šจํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋œ๋‹ค.
์„œ๋น„์Šค ํฌ๊ธฐ ๋˜ํ•œ ์ž‘๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ ์ˆ˜์ •์— ๋Œ€ํ•œ ์˜ํ–ฅ ๋ฒ”์œ„๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘์•„์ง„๋‹ค.
์ด๋Š” ๊ณง ๋น ๋ฅธ ์˜ํ–ฅ๋„ ํŒŒ์•…/๋นŒ๋“œ/ํ…Œ์ŠคํŠธ ์ฆ‰ ๋น ๋ฅธ Delivery๋กœ ์ด์–ด์ง€๊ฒŒ ๋œ๋‹ค.

2. ํƒ„๋ ฅ์ ์ด๊ณ  ์„ ํƒ์ ์ธ ํ™•์žฅ
MSA๋Š” ์ž‘์€ ์„œ๋น„์Šค ๋‹จ์œ„๋กœ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
๋ฐ˜๋ฉด Monolithic์€ ํ™•์žฅ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ „์ฒด Scale-Out์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ๋น„ํšจ์œจ์ ์ด๋‹ค.

3. Polygot Architecture ์ง€์›
์กฐ์ง์˜ ํ‘œ์ค€ ๊ธฐ์ˆ ์„ ๋งŒ๋“ค๊ณ  ๋ชจ๋“  ์กฐ์ง์— ๊ฐ•์ œ์ ์œผ๋กœ ์ ์šฉํ•˜๋Š” ์ „ํ†ต์  ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ๋‹ฌ๋ฆฌ,
MSA๋Š” ํŠน์ • Task์— ๊ฐ€์žฅ ์ ์ ˆํ•œ ๊ธฐ์ˆ ์„ ์„ ํƒํ•ด ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

4. ์‹คํ—˜๊ณผ ํ˜์‹  ๊ฐ€๋Šฅ
์ตœ๊ทผ ๋น„์ฆˆ๋‹ˆ์Šค ์ƒํ™ฉ์—์„œ๋Š” ๊ธฐ์ˆ ์˜ ํ˜์‹ ์ด ํ•„์ˆ˜์ ์ด๋‹ค.
Monolith ํ™˜๊ฒฝ ์—์„œ๋Š” ๋‹จ์ˆœํ•œ ๊ธฐ์ˆ  ์‹คํ—˜๋„ ์–ด๋ ค์šด ๋ฐ˜๋ฉด, MSA๋Š” ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ๋“ค์„ ์‰ฝ๊ฒŒ ์‹คํ—˜ ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

5. ๋Œ€์ฒด ๊ฐ€๋Šฅ์„ฑ
๊ฐ ์„œ๋น„์Šค๋Š” ์ž‘๊ณ  ์„œ๋น„์Šค ๊ฐ„ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์— ์–ธ์–ด ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์™„์ „ํžˆ ์ƒˆ๋กญ๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

6. ๊ธฐ์ˆ  ๋ถ€์ฑ„ ๊ฒฝ๊ฐ
SW ๋˜ํ•œ ๋‚˜์ด๋ฅผ ๋จน๊ณ  ๊ด€๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ์ˆ  ๋ถ€์ฑ„๊ฐ€ ์Œ“์ด๊ฒŒ ๋œ๋‹ค.
MSA๋Š” ์„œ๋น„์Šค ํฌ๊ธฐ๊ฐ€ ์ž‘์•„ ํ’ˆ์งˆ ๊ด€๋ฆฌ์— ์šฉ์ดํ•˜๊ณ , ํ’ˆ์งˆ ํ–ฅ์ƒ์„ ์œ„ํ•œ ์ฝ”๋“œ ๊ฐœ์„  ์‹œ ๋ฐ›๋Š” ์˜ํ–ฅ๋„ ์ž‘๋‹ค.


MSA ๋‹จ์ 

1. ์ปดํ“จํŒ… ์ž์›์˜ ์‚ฌ์šฉ์ด Monolithic๋ณด๋‹ค ๋น„ํšจ์œจ์ ์ด๋‹ค.
๋‚ด๋ถ€ ํ˜ธ์ถœ์„ ํ•˜๋Š” Monolithic๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋Š๋ฆฌ๊ณ , jvm ๋“ฑ ์ค‘๋ณต์ ์ธ ์ž์› ์‚ฌ์šฉ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‚ญ๋น„๋œ๋‹ค.

2. ์šด์˜ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ต๋‹ค.
์ž‘์€ ์„œ๋น„์Šค ์—ฌ๋Ÿฌ๊ฐœ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋Š” ๋งŒํผ ์šด์˜ํ•ด์•ผ ํ•  ๋Œ€์ƒ ๋˜ํ•œ ๋Š˜์–ด๋‚˜๋ฉด์„œ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›Œ์ง€๊ณ , ๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ ๋˜ํ•œ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋œ๋‹ค.

3. ๋‹ค์–‘ํ•œ ์žฅ์•  ์ƒํ™ฉ ๋ฐœ์ƒ

4. ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ํŠธ๋žœ์žญ์…˜ ์–ด๋ ค์›€


๐Ÿท MSA ์ฃผ์š” ํŠน์ง•

์ง€๊ธˆ๋ถ€ํ„ฐ ์ •๋ฆฌํ•  ํŠน์ง•์€ Martin Fowler ๊ฐ€ ์ •์˜ํ•œ MSA์˜ ์ผ๋ฐ˜์  ํŠน์ง•์ด๋‹ค.

MSA๋ฅผ ์ฑ„ํƒํ•œ ์กฐ์ง์„ ๊ด€์ฐฐ/์กฐ์‚ฌ ํ›„ ๊ณตํ†ต์  ํŠน์ง•์„ ์ •๋ฆฌํ•œ ๊ฒƒ์œผ๋กœ, ๋ชจ๋“  MSA๊ฐ€ ๋งŒ์กฑํ•ด์•ผ ํ•˜๋Š” ํ•„์ˆ˜ ์กฐ๊ฑด์€ ์•„๋‹ˆ๋ผ๋Š” ์ ์— ์œ ์˜ํ•˜์ž.


ํŠน์ง• 1. ์„œ๋น„์Šค๋ฅผ ํ†ตํ•œ ์ปดํฌ๋„ŒํŠธํ™”

์ปดํฌ๋„ŒํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ์ •์˜ํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ ํ•˜๋Š๋ƒ๋Š” SW ์—…๊ณ„์—์„œ์˜ ์˜ค๋žœ ๊ณ ๋ฏผ ๊ฑฐ๋ฆฌ๋กœ ์ด์–ด์ง€๊ณ  ์žˆ๋‹ค.

MSA์—์„œ๋Š” ์„œ๋น„์Šค ๋‹จ์œ„๋ฅผ ์ปดํฌ๋„ŒํŠธ๋กœ ์ •์˜ํ•˜๊ณ  ์žˆ๋‹ค.
ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ๋Š” ํŠน์ • ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๊ณ , ๋…๋ฆฝ์ ์ธ ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰๋˜๋ฉฐ ์ž์œจ์ ์œผ๋กœ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋”ฐ๋ผ์„œ ์„œ๋น„์Šค๋Š” ์‘์ง‘๋„ ๋†’๊ฒŒ ์„ค๊ณ„๋˜์–ด์•ผ ํ•˜๊ณ , ์„œ๋น„์Šค ๊ฐ„์—๋Š” ๋ช…ํ™•ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ํ˜‘๋ ฅํ•ด์•ผ ํ•œ๋‹ค.


ํŠน์ง• 2. ๋น„์ฆˆ๋‹ˆ์Šค ์—ญ๋Ÿ‰์— ๋”ฐ๋ฅธ ์กฐ์ง ๊ตฌ์„ฑ

Conway์˜ ๋ฒ•์น™๐Ÿ’ก
์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•˜๋Š” ์กฐ์ง์€ ๊ทธ ์กฐ์ง์˜ ์†Œํ†ต ๊ตฌ์กฐ๋ฅผ ๋‹ฎ์€ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋งŒ๋“ ๋‹ค.
์ฆ‰, ์กฐ์ง์˜ ๊ตฌ์กฐ๊ฐ€ ์‹œ์Šคํ…œ์˜ ์•„ํ‚คํ…์ฒ˜์— ์˜ํ–ฅ์„ ์ค€๋‹ค๋Š” ๋œป์ด๋‹ค.

ํ•˜๋‚˜์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•˜๋ฉด, ๋‹ค์ˆ˜์˜ ํŒ€ ๊ฐ„์˜ ํ˜‘๋ ฅ์„ ํ•„์š”๋กœ ํ•˜๊ฒŒ ๋œ๋‹ค.
(๊ธฐํšํŒ€, ๋””์ž์ธํŒ€, FE๊ฐœ๋ฐœํŒ€, BE๊ฐœ๋ฐœํŒ€ ๋“ฑ...)

๊ทธ๋Ÿฌ๋‚˜ ๋น„์ฆˆ๋‹ˆ์Šค ์—ญ๋Ÿ‰์— ๋”ฐ๋ผ ์กฐ์ง์„ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ์œ„์™€ ๊ฐ™์ด ํ•œ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์—ญ๋Ÿ‰์„ ํ•œ ํŒ€ ๋‚ด์— ๋ชจ๋‘ ๊ฐ–์ถœ ์ˆ˜ ์žˆ๋‹ค.
ํŒ€ ๊ฐ„ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ์•„์ง€๋ฉด, ์ „์ฒด ์‹œ์Šคํ…œ์˜ ๊ฒฐํ•ฉ๋„ ๋˜ํ•œ ๋‚ฎ์•„์ง€๊ฒŒ ๋œ๋‹ค.


ํŠน์ง• 3. ํ”„๋กœ์ ํŠธ๋ณด๋‹ค ์ œํ’ˆ์— ์ง‘์ค‘

๊ธฐ์กด์—๋Š” ๊ฐœ๋ฐœ๊ณผ ์šด์˜์ด ๋ถ„๋ฆฌ๋˜์–ด, ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์ด ๋๋‚˜๋ฉด ํ•ด๋‹น ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์šด์˜ ์กฐ์ง์— ์ด๊ด€๋์—ˆ๋‹ค.
๋ฐ˜๋ฉด์— MSA๋Š” ํ•œ ํŒ€์—์„œ ๊ฐœ๋ฐœ/์šด์˜์„ ํฌํ•จํ•œ ์ „์ฒด ๋ผ์ดํ”„์‚ฌ์ดํด์„ ์ฑ…์ž„์ง„๋‹ค.

์ด๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ˆœ๊ธฐ๋Šฅ์„ ๊ฐ€์ ธ์˜จ๋‹ค.

  1. ๊ณ ๊ฐ๊ณผ์˜ ์ ‘์ ์„ ๋Š˜๋ฆฌ๊ณ  ํ”ผ๋“œ๋ฐฑ์„ ๋Š˜๋ ค ๋‚˜๊ฐ€๋ฏ€๋กœ, ํŒ€์›๋“ค์€ ์ž์‹ ๋“ค์ด ๋งŒ๋“œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ์‹œ๊ฐ์˜ ์ „ํ™˜์„ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

  2. ๋‹จ์ˆœํžˆ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๋„˜๊ธฐ๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๊ณ ๊ฐ์—๊ฒŒ ์–ด๋– ํ•œ ๊ฐ€์น˜๋ฅผ ์–ด๋–ป๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์„์ง€ ๊ณ ๋ฏผํ•˜๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋œ๋‹ค.

  3. ์†Œํ”„ํŠธ์›จ์–ด์™€ ๊ธฐ์—…์˜ ๋น„์ฆˆ๋‹ˆ์Šค ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋‹ค.


ํŠน์ง• 4. ๋˜‘๋˜‘ํ•œ End Point, ๋‹จ์ˆœํ•œ Pipe


ํŠน์ง• 5. ๋ถ„์‚ฐ๋œ ๊ฑฐ๋ฒ„๋„Œ์Šค

์ง€๋ฐฉ์ž์น˜์ œ๋„์™€ ์œ ์‚ฌํ•˜๊ฒŒ, ์ค‘์•™์˜ ๊ฐ•๋ ฅํ•œ ํ‘œ์ค€์ด๋‚˜ ์ ˆ์ฐจ์˜ ์ค€์ˆ˜๋ฅผ ๊ฐ•์š”ํ•˜์ง€ ์•Š๊ณ 
์Šค์Šค๋กœ ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•๋ก ๊ณผ ๋„๊ตฌ, ๊ธฐ์ˆ ์„ ์ฐพ์•„ ์ ์šฉํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.


ํŠน์ง• 6. ๋ถ„์‚ฐ๋œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ

MSA๋Š” ํ•ด๋‹น ์„œ๋น„์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ž ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ ์„œ๋น„์Šค๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐ ์„œ๋น„์Šค๋Š” ๋‹ค๋ฅธ ์„œ๋น„์Šค์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ , API๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋‹ค๋ฅธ ์„œ๋น„์Šค์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ฒŒ ๋œ๋‹ค.

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ์–ด๋ ค์›Œ์ง€๊ณ , ์ผ๊ด€์„ฑ ๋˜ํ•œ ์ฆ‰์‹œ ์ ์šฉ๋˜์ง€ ์•Š๊ณ  ์‹œ๊ฐ„์ด ์ง€๋‚˜์•ผ ์ ์šฉ๋˜๋Š” ๋ถˆํŽธํ•จ์ด ์ƒ๊ธด๋‹ค.


ํŠน์ง• 7. ์ธํ”„๋ผ ์ž๋™ํ™”

๋‹ค์ˆ˜์˜ ์„œ๋น„์Šค์™€ ์ธ์Šคํ„ด์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” ์ž๋™ํ™”๊ฐ€ ํ•„์ˆ˜์ด๋‹ค.
๋”ฐ๋ผ์„œ ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŒ…, ์ž๋™ํ™”๋œ CI, ์ž๋™ํ™”๋œ CD๊ฐ€ ํ•„์ˆ˜์ ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•˜๊ณ , ์‹ค์ œ๋กœ ๋งŽ์€ ์—ญ๋Ÿ‰์„ ์Ÿ๊ณ  ์žˆ๋‹ค.


ํŠน์ง• 8. ์žฅ์•  ๋ฐฉ์ง€ ์„ค๊ณ„

์–ด๋–ค ํ™˜๊ฒฝ์—์„œ๋“  ์žฅ์• ๋Š” ํ•ญ์ƒ ์ผ์–ด๋‚œ๋‹ค.
MSA์˜ ํŠน์ง•์€, ํŠน์ • ์„œ๋น„์Šค์˜ ์žฅ์• ๋Š” ํ•ญ์ƒ ์ผ์–ด๋‚˜๊ณ  ๋‹ค๋ฅธ ์„œ๋น„์Šค๋กœ ์ „ํŒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ผ๋ถ€ ์„œ๋น„์Šค ์žฅ์• ๊ฐ€ ์ „์ฒด ์‹œ์Šคํ…œ ์žฅ์• ๋กœ ์ „ํŒŒ๋˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š”๊ฒƒ์ด ์žฅ์•  ๋ฐฉ์ง€ ์„ค๊ณ„์˜ ํ•ต์‹ฌ์ด๋‹ค!

MSA๋Š” ๋งŽ์€ ์ˆ˜์˜ ์„œ๋น„์Šค๋‚˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ๋žŒ์˜ ์ง์ ‘ ๋ˆˆ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์€ ํ˜„์‹ค์ ์œผ๋กœ ์–ด๋ ต๋‹ค.
๋”ฐ๋ผ์„œ ์„œ๋น„์Šค์— ์ด์ƒ ๋™์ž‘์„ ์ตœ๋Œ€ํ•œ ์‹ ์†ํ•˜๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ณ , ๊ฐ€๋Šฅํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค.
โžก๏ธ Spring Cloud, Kubernetes๋ฅผ ์ด์šฉํ•˜๋ฉด ๋˜๋Š”๋ฐ ์ด๋Š” ์ถ”ํ›„์— ๋ฐฐ์šธ ์˜ˆ์ •์ด๋‹ค.

์‹ค์ œ ๋„ทํ”Œ๋ฆญ์Šค์—์„œ๋Š” ์ผ๋ถ€๋กœ ์žฅ์• ๋ฅผ ์ง์ ‘ ์ฃผ์ž…ํ•˜๊ณ  ์œ ๋ฐœํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.
ex) ์นด์˜ค์Šค ๋ฉํ‚ค, ์นด์˜ค์Šค ๊ณ ๋ฆด๋ผ, ์นด์˜ค์Šค ์ฝฉ

profile
Backend Developer

2๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2022๋…„ 7์›” 19์ผ

์•ˆ๋…•ํ•˜์„ธ์š” ใ…Žใ…Ž ๊ธ€ ์ž˜์ฝ์—ˆ์Šต๋‹ˆ๋‹ค.
Monolithic System์˜ ์ข…๋ฅ˜ ๋ถ€๋ถ„์—์„œ Single Monolithic Sytem ์ด ๋‘๋ฒˆ ์–ธ๊ธ‰๋˜๋Š”๊ฒƒ ๊ฐ™์€๋ฐ ํ˜น์‹œ ์˜คํƒ€๋Š” ์•„๋‹Œ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ
comment-user-thumbnail
2023๋…„ 5์›” 30์ผ

ํ˜น์‹œ ์ธํ”„๋Ÿฐ์ด๋‚˜ ์œ ๋ฐ๋ฏธ ๊ฐ™์€ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ ์ •๋ฆฌํ•˜์‹ ๊ฑธ๊นŒ์š”...? ๊ฐ•์˜ ์ •๋ณด๊ฐ€ ๋„ˆ๋ฌด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹คใ…œใ…œ!

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ