Monolitic Architecture / Micro Service Architecture

๋ชฝ๋ฃจ๋ฌธยท2023๋…„ 12์›” 7์ผ
0

TIL - ๊ฐœ๋ฐœ์ง€์‹

๋ชฉ๋ก ๋ณด๊ธฐ
3/10
post-thumbnail

๐Ÿ“ Architecture ์— ๊ด€ํ•œ ์กฐ์‚ฌ

์š”์ฆ˜ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์˜ ์ „๋ฐ˜์ ์ธ ๋ถ„์œ„๊ธฐ๊ฐ€ MA ( Monolitic Architecture ) ์—์„œ MSA ( Micro Service Architecture )๋กœ ๋ณ€ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.
์ด๋Ÿฌํ•œ ๊ฒฝํ–ฅ์— ๋”ฐ๋ผ์„œ MA์™€ MAS๋ฅผ ๋น„๊ตํ•˜๊ธฐ ์ „์— Software Architecture๋ž€ ๋ฌด์—‡์ธ์ง€ ์ •๋ฆฌํ•˜๊ณ 
MA์™€ MSA์— ๋Œ€ํ•ด์„œ๋„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.




๐Ÿšฉ Software Architecture ๋ž€?

  • Software Architecture์˜ ๊ฐœ๋…์ ์ธ ์ •์˜

    ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ์š”์†Œ์™€ ๊ทธ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ๊ฐ€์ง„ ํŠน์„ฑ ์ค‘ ์™ธ๋ถ€์— ๋“œ๋Ÿฌ๋‚˜๋Š” ํŠน์„ฑ
    ๊ทธ๋ฆฌ๊ณ  ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋‚˜ ๊ตฌ์กฐ์ฒด

์ด๋Ÿฌํ•œ ๊ฑฐ์ฐฝํ•œ ์˜๋ฏธ๋Š” ๊ฐœ๋…์ ์ธ ์˜๋ฏธ๋กœ๋งŒ ์•Œ์•„๋‘๊ณ  ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ๋„ ๊ฑด๋ฌผ์„ ์ง“๋“ฏ์ด ์„ค๊ณ„๊ฐ€ ๊ฐ€๋Šฅํ•œ๋ฐ Software Architecture๋Š” ํ”„๋กœ๊ทธ๋žจ ์„ค๊ณ„๊ฐ€ ์ด๋ฃจ์–ด์งˆ๋•Œ ๊ทธ๋ฆฌ๋Š” ์„ค๊ณ„๋„๋ฅผ ์˜๋ฏธํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฌ์šธ๊ฒƒ ๊ฐ™๋‹ค.
์„ค๊ณ„๋„์˜ ์ข…๋ฅ˜์—์„œ ๋”ฐ๋ผ์„œ ๋ฌด์Šจ Software Architecture ์ธ์ง€ ๋‚˜๋‰˜๋Š”๋ฐ ์˜ค๋Š˜ ์•Œ์•„๋ณผ ๋‘๊ฐ€์ง€ Software Architecture๋„ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค๊ณ„๋„๋ฅผ ๊ทธ๋ฆฌ๋Š” ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.


๐Ÿ“ Software Architecture ์˜ ๊ธฐ๋ณธ ์›๋ฆฌ

โ–  ๋ชจ๋“ˆํ™”

์†Œํ”„ํŠธ์›จ์–ด ์„ฑ๋Šฅ ํ–ฅ์ƒ ๋ฐ ์œ ์ง€๊ด€๋ฆฌ ๋“ฑ์ด ์šฉ์ดํ•˜๋„๋ก ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์„ ๋ชจ๋“ˆ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ

โ–  ์ถ”์ƒํ™”

์ „์ฒด์ ์ด๊ณ  ํฌ๊ด„์ ์ธ ๊ฐœ๋…์„ ์„ค๊ณ„ํ•œ ํ›„์— ๊ตฌ์ฒดํ™”์‹œ์ผœ ๋‚˜๊ฐ€๋Š” ๊ฒƒ

โ–  ๋‹จ๊ณ„์  ๋ถ„ํ•ด

์ƒ์œ„ ๊ฐœ๋…๋ถ€ํ„ฐ ํ•˜์œ„ ๊ฐœ๋…์œผ๋กœ ๊ตฌ์ฒดํ™” ์‹œํ‚ค๋Š” ๋ถ„ํ•  ๊ธฐ๋ฒ• ํ•˜ํ–ฅ์‹ ์„ค๊ณ„ ์ „๋žต

โ–  ์ •๋ณด์€๋‹‰

๋ชจ๋“ˆ ๋‚ด๋ถ€์— ์ •๋ณด์™€ ์ž๋ฃŒ๋“ค์„ ์ˆจ๊ฒจ์„œ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์ด ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ • ๋ชปํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ




๐Ÿšฉ Monolitic Architecture ๋ž€?

  • Monolitic Architecture์˜ ๊ฐœ๋…์ ์ธ ์ •์˜

    ํ•˜๋‚˜์˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ตฌ๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ ๋ชจ๋“  ๋ชจ๋“ˆ์„ ํ•œ ํ”„๋กœ์ ํŠธ์— ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ

Monolitic Architecture๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ฐฉ์‹์ด๋‹ค.
๋ชจ๋“  ๋ชจ๋“ˆ๊ณผ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•œ ํ”„๋กœ์ ํŠธ์—์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์›ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ตฌ๋™ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋งŒ ๊ฐ€๋™์‹œํ‚ค๋ฉด ํ•ด๋‹น ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ž‘๋™๋œ๋‹ค.


  • Monolitic Architecture๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๊ทธ๋ฆผ
    Monolitic Architecture

๐Ÿ“ Monolitic Architecture ์žฅ๋‹จ์ 

โ–  ์žฅ์ 

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

โ–  ๋‹จ์ 

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๊ฐ€ ์ ์  ๋งŽ์•„์ง€๊ณ  ์„œ๋น„์Šค๊ฐ€ ํ™•์žฅ๋˜๋ฉด ์ „์ฒด ๊ตฌ์กฐ๋‚˜ ์ฝ”๋“œ ํ๋ฆ„์„ ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
  • ํ•œ ํ”„๋กœ์ ํŠธ ๋‚ด์— ์žˆ๋Š” ์ฝ”๋“œ์ด๋ฏ€๋กœ ๊ฒฐํ•ฉ๋„๊ฐ€ ์–ด๋งˆ์–ด๋งˆํ•˜๊ฒŒ ํฌ๋‹ค.
    โ†’ ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ๋‘๋ ต๊ณ  ํ™•์žฅํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค.
  • ์ „์ฒด ์ฝ”๋“œ๋ฅผ ๋‹ค ์ž‘์„ฑํ•ด์•ผ ํ…Œ์ŠคํŠธ, ๋นŒ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ„์—…์ด ์–ด๋ ต๋‹ค.
  • ์ „์ฒด ์ฝ”๋“œ์— ์˜ํ–ฅ์ด ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌํŒฉํ† ๋ง์ด ์–ด๋ ต๋‹ค.



๐Ÿšฉ Micro Service Architecture ๋ž€?

  • Micro Service Architecture์˜ ๊ฐœ๋…์ ์ธ ์ •์˜

    ํ•˜๋‚˜์˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•˜์—ฌ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๋ชจ๋“ˆ๋ผ๋ฆฌ ๋ชจ์•„์„œ ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๋งŒ๋“ ๋’ค, ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๋ชจ์•„์„œ ํ•˜๋‚˜์˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ


  • Micro Service Architecture๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๊ทธ๋ฆผ
    Micro Service Architecture

๐Ÿ“ Micro Service Architecture์˜ ์žฅ๋‹จ์ 

โ–  ์žฅ์ 

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

โ–  ๋‹จ์ 

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



๐Ÿ“Œ Architecture์— ๋Œ€ํ•˜์—ฌ

Architecture์— ๋Œ€ํ•œ ์ •๋ณด ๋ฐ MS, MSA์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด์•˜๋‹ค.
MS์™€ MSA๋Š” ์„œ๋กœ ์ƒ๋ฐ˜๋˜์—ˆ๋‹ค๊ณ  ๋ด๋„ ๋ฌด๋ฐฉํ• ๋งŒํผ ๋Œ€์กฐ์ ์ธ Architecture์—ฌ์„œ ํ™•์‹คํ•œ ์žฅ๋‹จ์ ์˜ ์ฐจ์ด๊ฐ€ ์žˆ๊ธฐ์— ์–ด๋– ํ•œ Architecture๋ฅผ ์‚ฌ์šฉํ• ์ง€๋Š” ์ „์ ์œผ๋กœ ๊ฐœ๋ฐœ์ž์˜ ์—ญ๋Ÿ‰์— ๋‹ฌ๋ฆฐ๊ฑฐ ๊ฐ™๋‹ค.
๋ฌด์—‡์„ ์‚ฌ์šฉํ• ์ง€๋Š” ์ •๋‹ต์ด ์—†์œผ๋ฉฐ ํ”„๋กœ๊ทธ๋žจ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํ•˜๊ณ  ํŒ€์žฅ ๋ฐ ํŒ€์›๊ณผ์˜ ์†Œํ†ต์œผ๋กœ ์ ํ•ฉํ•œ Architecture๋ฅผ ์„ ํƒํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

profile
์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ์ •๋ฆฌํ•˜๊ณ , ์ƒˆ๋กœ์šด ๊ฒƒ์„ ์•Œ๊ธฐ์œ„ํ•ด ๋„์ ์ด๋Š”๊ณณ..

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