๐Ÿงถ Spring | Spring Boot/Spring Cloud & MSA

Monolithic vs MSA

  • -

Monolithic Architecture

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

์žฅ์ 

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

๋‹จ์ 

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

Micro Service Architecture

  • ์—ฌ๋Ÿฌ ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ชจ์—ฌ ํ•˜๋‚˜์˜ ๋น„์ฆˆ๋‹ˆ์Šค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ์•„ํ‚คํ…์ณ
  • ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ ๋ณ„๋กœ ์„œ๋น„์Šค๊ฐ€ ๊ฐœ๋ฐœ๋˜์–ด ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ๋˜๋Š” ํ˜•ํƒœ
  • ๊ฐ ์„œ๋น„์Šค๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜๋ฉฐ HTTP API์™€ ๊ฐ™์€ ๊ฐ€๋ฒผ์šด ์ˆ˜๋‹จ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ 

์žฅ์ 

  • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ•˜๋‚˜์˜ ๋‹จ์œ„๊ฐ€ ์ž‘์•„์ ธ ๋นŒ๋“œ, ๋ฐฐํฌ๊ฐ€ ๋น ๋ฆ„
  • ํ•˜๋‚˜๋ฅผ ์ˆ˜์ •ํ•˜๋”๋ผ๋„ ์ˆ˜์ •ํ•œ ์„œ๋น„์Šค๋งŒ ๋น ๋ฅด๊ฒŒ ๋นŒ๋“œํ•ด์„œ ๋ฐฐํฌ ๊ฐ€๋Šฅ
  • ๊ธฐ๋Šฅ๋ณ„๋กœ ๊ฐœ๋ฐœ๋˜์–ด์žˆ๊ธฐ๋•Œ๋ฌธ์— ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์›€
  • ํ•˜๋‚˜์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ํ•ด๋‹น ์„œ๋น„์Šค๋งŒ ๊ฒฉ๋ฆฌ ์‹œํ‚จ ํ›„ ๋ณต๊ตฌ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅด๊ฒŒ ์ •์ƒํ™” ๊ฐ€๋Šฅ
  • ํ•ด๋‹น ๊ธฐ๋Šฅ์— ๋งž๋Š” ๊ธฐ์ˆ , ์–ธ์–ด ๋“ฑ์„ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ → ํด๋ฆฌ๊ธ€๋ž(Polyglot)ํ•˜๋‹ค.
  • ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆฌ๋”๋ผ๋„ ๋ชฐ๋ฆฌ๋Š” ์„œ๋น„์Šค๋งŒ ์Šค์ผ€์ผ ์•„์›ƒํ•˜์—ฌ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์Œ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์„œ๋น„์Šค๋ณ„๋กœ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํƒ„๋ ฅ์ ์œผ๋กœ ๋Œ€์ฒ˜ ๊ฐ€๋Šฅ

๋‹จ์ 

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

 

๊ธฐํƒ€ ์žก๋‹ด

MSA๊ฐ€ ์ข‹๊ณ  Monolithic์€ ์•ˆ์ข‹๋‹ค! ๋ผ๋Š”๊ฒŒ ์•„๋‹Œ ๊ฐ๊ธฐ ์ƒํ™ฉ์— ๋งž์ถฐ ์ ์ ˆํ•œ ์•„ํ‚คํ…์ณ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

๊ธฐ์—…๋“ค๋„ ์ž์ฒด ์„œ๋ฒ„๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž์‚ฌ์˜ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„์ง€๊ณ  ์žˆ์œผ๋‹ˆ MSA๋กœ ๊ฐœ๋ฐœํ•ด๋ณด๋Š” ๊ฒฝํ—˜์„ ๊ฐ€์ ธ๊ฐ€์•ผํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค...

 

 

'๐Ÿงถ Spring | Spring Boot > Spring Cloud & MSA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Cloud Native Application  (0) 2022.10.26
Cloud Native Architecture  (0) 2022.10.26
On-Premise์™€ Cloud  (0) 2022.10.26
Spring Cloud Netflix Eureka  (0) 2022.10.24
Service Discovery Pattern  (0) 2022.10.24
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.