JiwonDev

์šฐ์•„ํ•œ ๋ชจ๋…ธ๋ฆฌ์Šค

by JiwonDev

https://www.youtube.com/watch?v=SrQeIz3gXZg&t=162s 

 

๐Ÿ’ญ MSA๊ฐ€ ๋ฌด์กฐ๊ฑด ์ข‹์„๊นŒ?

์ด ๋‘ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋Œ€๊ฒฐ๊ตฌ๋„์ผ๊นŒ? ๋ชจ๋…ธ๋ฆฌํ‹ฑ์€ ๋ฌด์กฐ๊ฑด ๋‚˜์˜๊ณ , MSA๋Š” ๋ฌด์กฐ๊ฑด ์ข‹์•„?

๋‹น์—ฐํžˆ ์•„๋‹ˆ๋‹ค. ์›๋ž˜ ํ•˜๋‚˜์˜€๋˜ ๊ฒƒ์„ ์—ฌ๋Ÿฌ๊ฐœ๋กœ ์ชผ๊ฐ  ๊ฒƒ์ด๋‹ค.

์ฆ‰ ์›๋ž˜ ํ˜ผ์ž์„œ ํ•ด๊ฒฐํ–ˆ๋˜ ๋ฌธ์ œ๋ฅผ, ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์—์„œ ๋‚˜๋ˆ„์–ด์„œ ๊ฐ’์„ ์ „๋‹ฌํ•ด์•ผํ•œ๋‹ค.

๊ธฐ๋Šฅ์ด ๋ณต์žกํ•ด์ง€๊ณ  ์ฝ”๋“œ์™€ ๋กœ์ง์ด ๋ถ„์‚ฐ๋˜์–ด์žˆ๋‹ค. โžก ์ƒˆ๋กœ์šด ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ์„ ๋น ๋ฅด๊ฒŒ ๋ฐ˜์˜ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

๋‹น์—ฐํžˆ ๊ฐœ๋ฐœ๊ณผ ํ…Œ์ŠคํŠธ๋Š” ๋” ๋งŽ์•„์ง„๋‹ค. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ์—ฌ๋Ÿฌ ๊ณณ์„ ์†๋Œ€์•ผํ•œ๋‹ค.

์ด๊ฒŒ ํ•œ ๊ฐœ๋ฐœ์ž, ํ•œ ํŒ€์•ˆ์—์„œ ์ผ์–ด๋‚˜๋Š” ์ผ์ด๋ฉด ๊ทธ๋‚˜๋งˆ ๊ดœ์ฐฎ๋‹ค. ๊ท€์ฐฎ๋”๋ผ๋„ ํ•˜๋ฉด ๋˜๋‹ˆ๊นŒ.

ํ•˜์ง€๋งŒ ํ˜‘์—…์„ ํ•˜๋Š” ์„œ๋น„์Šค๊ฐ€ ๋‹ค๋ฅธ ํŒ€์˜ ์„œ๋น„์Šค๋ผ๋ฉด? ๋Œ€๊ทœ๋ชจ ์„œ๋น„์Šค๋ผ์„œ ํŒ€ ๊ตฌ์„ฑ์ด ๋ณต์žกํ•˜๋‹ค๋ฉด?

 

์‹ค์ œ ์„œ๋น„์Šค๋Š” ์‹œ๊ฐ„์  ์—ฌ์œ ๊ฐ€ ๋„‰๋„‰ํ•˜์ง€ ์•Š๋‹ค. ์ผ๋‹จ ๋™์ž‘ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„ , ๊ฐœ๋ฐœํŒ€์ด ์–ด๋””๋ฅผ ์ง‘์ค‘ํ•ด์•ผํ• ๊นŒ?

โžก MSA์˜ ๊ตฌ์กฐ๋Š” ๊ธฐ์ˆ ๋ถ€์ฑ„๋ฅผ ๊ฐ€์†ํ™” ์‹œํ‚จ๋‹ค. ์ „์ฒด๋ฅผ ์† ๋ณด๊ธฐ ๋„ˆ๋ฌด ์–ด๋ ค์šฐ๋‹ˆ๊นŒ

ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ ์†๋Œˆ์ˆ˜๋Š” ์—†๋‹ค. ๊ฐœ๋ฐœํŒ€์€ ๋‚˜๋ฃจํ† ๊ฐ€ ์•„๋‹ˆ๋‹ค.

 

๐Ÿ“‘ ?? ์œ ๋ช…ํ•œ ๊ธฐ์—…๋“ค์€ ๋‹ค MSA ์“ด๋‹ค๋ฉด์„œ์š”?

๋ชจ๋“  ๊ฒƒ์€ ํŠธ๋ ˆ์ด๋“œ ์˜คํ”„์ด๋‹ค.

์•„๋ž˜์˜ MSA๋ฅผ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์—…๋“ค์€, ์„œ๋น„์Šค ํŠธ๋ž˜ํ”ฝ์ด ์–ด๋งˆ์–ด๋งˆํ•˜๋‹ค.

๊ธฐ์กด์˜ ๋ชจ๋…ธ๋ฆฌ์Šค๋กœ ๊ฐ๋‹นํ•˜๊ธฐ ์–ด๋ ค์šด ํŠธ๋ž˜ํ”ฝ์„ MSA๋กœ ๋ถ€๋‹ด์„ ๋‚˜๋ˆ„๊ณ  ์‹œ์Šคํ…œ์„ ์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚  ๋•Œ ๋ณ€๊ฒฝ์˜ ์—ฌํŒŒ๊ฐ€ ํฌ๋‹ค.
    โžก A ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•˜๋ฉด B๋„ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค. (ํ•จ๊ป˜ ํ…Œ์ŠคํŠธ ํ•ด์ค˜์•ผํ•œ๋‹ค. ๋ฐฐํฌ & ์ถœ์‹œ๊ฐ€ ๋Šฆ์–ด์ง„๋‹ค.)
  • ๋‹จ์ผ ์‹œ์Šคํ…œ์ด๋ผ์„œ, ํŠน์ • ๋ถ€๋ถ„์˜ ์žฅ์• ๊ฐ€ ์ „์ฒด ์žฅ์• ๋กœ ํผ์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • ๋‹จ์ผ ์‹œ์Šคํ…œ์ด๋ผ์„œ, ์‹œ์Šคํ…œ์„ ์ˆ˜ํ‰ ํ™•์žฅํ•˜๊ธฐ ์–ด๋ ค์šด ๊ตฌ์กฐ์ด๋‹ค. Scale-out์ด ํž˜๋“ค๋‹ค.

๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋Š” ์ด๋Ÿฌํ•œ ์ ์„ ๋งŽ์ด ํ•ด๊ฒฐํ•ด์ค€๋‹ค.

MSA๋Š” ๊ฐ ์„œ๋น„์Šค๊ฐ€ ์ž์œจ์ ์ด๋‹ค. ์ž์‹ ์˜ ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์Šค์Šค๋กœ ๊ฒฐ์ •ํ•˜๊ณ , ์ฑ…์ž„์งˆ ์ˆ˜ ์žˆ๋‹ค.

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

๊ทผ๋ฐ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐ”๋กœ ํ•ด๊ฒฐ๋ ๊นŒ?

MSA๋ฅผ ์–ธ๊ธ‰ํ•˜๋ฉด ๋งค๋ฒˆ ๋‚˜์˜ค๋Š” ๋ง์ด ์žˆ๋‹ค. Conway's law (์ฝ˜์›จ์ด ๋ฒ•์น™)

์กฐ์ง์ด ์„ค๊ณ„ํ•œ [์‹œ์Šคํ…œ ๋””์ž์ธ]์€ ํ•ด๋‹น [์กฐ์ง์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๊ตฌ์กฐ]๋ฅผ ๋”ฐ๋ฅธ๋‹ค
๋”๋ณด๊ธฐ

์ฐธ๊ณ ๋กœ Conway's law๋Š” IT๊ธฐ์—…์„ ์œ„ํ•ด ์ž‘์„ฑ๋œ ๋…ผ๋ฌธ์ด ์•„๋‹ˆ์—ˆ๋‹ค.

How Do Committees Invent?(Conway) - https://www.melconway.com/Home/pdf/committees.pdf

 

ํ˜„์žฌ์—๋„ ๋งŽ์€ ๊ธฐ์—…์€, '์—…๋ฌด'๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์šด์˜๋œ๋‹ค. ๊ทธ ์—…๋ฌด์˜ ์ „๋ฌธ๊ฐ€๋“ค์„ ๋ชจ์•„ ํ•œ ํŒ€์œผ๋กœ ๊ฒฐ์„ฑํ•˜๋ฉด ๋” ํšจ์œจ์ด ์ข‹์•„์งˆํ…Œ๋‹ˆ๊นŒ.

 

ํ•˜์ง€๋งŒ IT ๊ธฐ์—…์€ ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๊ฐ€ ์ข‹์ง€ ์•Š๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด๋Š” ํ•œ๋ฒˆ ์ง“๊ณ ๋‚˜๋ฉด ํ‹€์ด ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋นŒ๋”ฉ์ด ์•„๋‹ˆ๋‹ค.

์‹œ์žฅ์€ ๋Š์ž„์—†์ด ๋ณ€ํ•œ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค๋Š” ์‹œ์žฅ์— ๋”ฐ๋ผ๊ฐ€๋ฉฐ ๋Š์ž„์—†์ด ๋ณ€ํ™”ํ•ด์•ผํ•œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด '์˜ˆ์•ฝ ์‹œ์Šคํ…œ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.' ๋ผ๋Š” ์š”๊ตฌ์‚ฌํ•ญ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.

  1. ๊ธฐํš์ž๊ฐ€ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ์„ ๊ธฐํšํ•œ๋‹ค.
  2. ๋””์ž์ด๋„ˆ์—๊ฒŒ ํ•„์š”ํ•œ ๊ทธ๋ฆผ์„ ์š”์ฒญํ•œ๋‹ค. (๋””์ž์ด๋„ˆ๋Š” ์ด๊ฒŒ ๋ฌด์—‡์„ ์œ„ํ•œ ๊ทธ๋ฆผ์ธ์ง€ ๋ชจ๋ฅธ๋‹ค.)
  3. ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์‹œ์Šคํ…œ์„ ์š”์ฒญํ•œ๋‹ค. (๊ฐœ๋ฐœ์ž๋„ ๊ทธ๋ƒฅ ๊ธฐํš์ž๊ฐ€ ์‹œํ‚ค๋Š”๋Œ€๋กœ ๋งŒ๋“ค ๋ฟ์ด๋‹ค.)
  4. ํ…Œ์Šคํ„ฐ์—๊ฒŒ ์‹œ์Šคํ…œ QA๋ฅผ ์š”์ฒญํ•œ๋‹ค. 

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

์†Œํ”„ํŠธ์›จ์–ด๋Š” ์š”๊ตฌ์‚ฌํ•ญ์ด ์–ธ์ œ๋“ ์ง€ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ์กฐ์ง์— ์š”์ฒญํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์กฐ์ง๋ณ„ ์ดํ•ด๊ด€๊ณ„๊ฐ€ ํ‹€์–ด์ง€๊ณ  ์†Œํ†ต์—๋„ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ฒŒ๋œ๋‹ค.  (์•„๋‹ˆ ๋ฐ”์˜๋‹ค๊ณ ์š”. ๊ทธ๊ฑธ ์–ธ์ œ ๋˜ ์ถ”๊ฐ€ํ•ด์š”?)

 

์‹œ์Šคํ…œ์„ ์ดํ•ดํ•˜๊ณ  ๋ณ€ํ™”์— ์‰ฝ๊ฒŒ ๋Œ€์‘ํ•˜๋ ค๋ฉด ์กฐ์ง์˜ ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์•„์•ผํ•œ๋‹ค.

๊ฐ ๋ถ„์•ผ์˜ ํŒ€์›์„ ๋ชจ์•„์„œ ์†Œ๊ทœ๋ชจ๋กœ ์—ฌ๋Ÿฌ ํŒ€์„ ๊ตฌ์„ฑํ•ด์•ผํ•œ๋‹ค.

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

์กฐ์ง์ด ์„ค๊ณ„ํ•œ [์‹œ์Šคํ…œ ๋””์ž์ธ]์€ ํ•ด๋‹น [์กฐ์ง์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๊ตฌ์กฐ]๋ฅผ ๋”ฐ๋ฅธ๋‹ค

์ด ๋ง์€, ์‹œ์Šคํ…œ ๋””์ž์ธ์„ ํ•˜๊ธฐ ์•ž์„œ ์กฐ์ง์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๊ตฌ์กฐ๋ฅผ ํ•จ๊ป˜ ๊ฐœ์„ ์‹œํ‚ฌ ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

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

MSA ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค๋ ค๋ฉด, ํŒ€ ๋˜ํ•œ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•œ๋‹ค.
๋…๋ฆฝ๋œ ์„œ๋น„์Šค์— ๋งž์ถฐ ํŒ€์„ ๊ตฌ์„ฑํ•˜์ž.

์˜คํžˆ๋ ค ๋” ๋ณต์žกํ•ด์ง„๋‹ค. (์ด๋ฅผ ๋ถ„์‚ฐ๋œ ๋ชจ๋…ธ๋ฆฌ์Šค๋ผ๊ณ ๋„ ๋งํ•œ๋‹ค.)

๋†’์€ ์‘์ง‘๋„(Cohesion)์™€ ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„(Coupling)๋ฅผ ๋จผ์ € ์ฑ™๊ฒจ์•ผํ•œ๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด๋Š” ์›๋ž˜ ๋ณต์žกํ•˜๋‹ค. ์˜๋„์น˜์•Š์€ ๋ณต์žก์„ฑ์„, ์˜๋„ํ•œ ๋ณต์žก์„ฑ์œผ๋กœ ๋ฐ”๊ฟ”์•ผํ•œ๋‹ค. ์ œ์–ดํ•ด์•ผํ•œ๋‹ค.

  • ๋ณ€ํ™”๊ฐ€ ํ•จ๊ป˜ ์ผ์–ด๋‚˜๋Š” ์ฝ”๋“œ๋งŒ ๋ชจ์—ฌ์žˆ์œผ๋ฉด [์‘์ง‘๋„]๊ฐ€ ๋†’์€ ๊ฒƒ์ด๋‹ค.
  • ์–ด๋–ค ๊ฐ์ฒด๋ฅผ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ, ๊ด€๊ณ„ ์—†๋Š” ๋‹ค๋ฅธ ๊ณณ์ด ์˜ํ–ฅ๋ฐ›๋Š”๋‹ค๋ฉด [๊ฒฐํ•ฉ๋„]๊ฐ€ ๋†’์€ ๊ฒƒ์ด๋‹ค.

๋†’์€ ์‘์ง‘๋„, ๋Š์Šจํ•œ ๊ฒฐํ•ฉ์ด ์ข‹๋‹ค.

์„œ๋น„์Šค๋ฅผ ๋„ˆ๋ฌด ๋งˆ์ดํฌ๋กœ๋กœ ์ชผ๊ฐœ๋ฉด ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’์•„์ง€๊ธฐ ์‰ฝ๋‹ค. ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์ฒด๊ฐ€ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋‹ˆ๊นŒ.

์„œ๋น„์Šค๋ฅผ ํ•˜๋‚˜๋กœ ํฌ๊ฒŒ ๊ฐ€์ ธ๊ฐ€๋ฉด ์‘์ง‘๋„๊ฐ€ ๋‚ฎ์•„์ง€๊ธฐ ์‰ฝ๋‹ค. ๊ด€๊ณ„์—†๋Š” ์ฝ”๋“œ๋“ค์ด ํ•œ ์„œ๋น„์Šค์— ๋ญ‰์ณ์žˆ์œผ๋‹ˆ๊นŒ

ํŠธ๋ ˆ์ด๋“œ ์˜คํ”„๋ฅผ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค.

MSA๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ๋งŒํผ ์‹œ์Šคํ…œ์ด ๋ณต์žกํ•ด์ง€๊ณ , ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’์•„์ง€๊ธฐ ์‰ฝ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ๋งŒ๋“œ๋Š” ์„œ๋น„์Šค๋Š” ์–ด๋–ค๊ฐ€

MSA๋ฅผ ๋„์ž…ํ•จ์— ์žˆ์–ด ์–ป๋Š” ์žฅ์ ์ด ๊ผญ ํ•„์š”ํ• ๊นŒ? ์ •๋ง ์ „์ฒด ์‹œ์Šคํ…œ์ด ๋ป—์–ด๋ฒ„๋ฆด ์ •๋„์˜ ํŠธ๋ž˜ํ”ฝ์ด ๋ฐœ์ƒํ• ๊นŒ?

 

์‹ค์ œ๋กœ ๋ฐฐ๋ฏผ, ๋„ทํ”Œ๋ฆญ์Šค๊ฐ™์€ ๋Œ€๊ธฐ์—…๋„ ๋ชจ๋“  ๊ตฌ์กฐ๋ฅผ ๋ฌด์ง€์„ฑ์œผ๋กœ MSA๋กœ ๋งŒ๋“ค์ง€๋Š” ์•Š๋Š”๋‹ค.

์ ์ ˆํ•˜๊ฒŒ ์„ž์–ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. ํŠธ๋ ˆ์ด๋“œ ์˜คํ”„์™€ ๋„์ž…ํ–ˆ์„ ๋•Œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๋ถ€์ˆ˜ ํšจ๊ณผ๋ฅผ ๊ณ ๋ คํ•˜์ž.

์ ๋‹นํžˆ ์„ž์–ด์„œ ์‚ฌ์šฉํ•˜์ž. ์žˆ์–ด๋ณด์ด๋Š” ๋ง๋กœ [๋ชจ๋“ˆํ˜• ๋ชจ๋…ธ๋ฆฌ์Šค]

๋ชจ๋…ธ๋ฆฌ์Šค ์‹œ์Šคํ…œ์œผ๋กœ ๊ฐœํŒ๋‚œ ์กฐ์ง์€, ์•„ํ‚คํ…์ฒ˜๋ฅผ MSA๋กœ ๋ฐ”๊ฟ”๋ดค์ž ํฐ ์ฐจ์ด์—†๋‹ค.

์˜คํžˆ๋ ค ์‹œ์Šคํ…œ์ด ๋” ์–ด๋ ค์›Œ์งˆ ๋ฟ.

MSA ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค๋ ค๋ฉด, ํŒ€ ๋˜ํ•œ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

๐Ÿ’ญ ๋ชจ๋“ˆํ™”์™€ ์•„ํ‚คํ…์ฒ˜์˜ ๋ณธ์งˆ

๋ณ€๊ฒฝ์„ ์–ผ๋งˆ๋‚˜ ๋น ๋ฅด๊ฒŒ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€.

๋ณต์žก๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ๋ฐฉ๋ฒ•. ๋‚ด๋ถ€๋ฅผ ์ˆจ๊ธฐ๊ณ  API๋กœ ๋Œ€ํ™”ํ•˜๋ผ.

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ, ๋„๋ฉ”์ธ์„ ๊ตฌ์ฒด์ ์ธ ๋™์ž‘์—์„œ ๋ถ„๋ฆฌ์‹œํ‚ค๋Š” ๊ฒƒ

์™ธ๋ถ€์˜ ๊ตฌ์ฒด์ ์ธ ์ˆ˜ํ–‰๋ฐฉ์‹์€ ์–ธ์ œ๋“ ์ง€ ๋ณ€๊ฒฝ ๋  ์ˆ˜์žˆ๋‹ค.

Core = ์•„ํ‚คํ…์ฒ˜ (๋„๋ฉ”์ธ ๋ชจ๋ธ), ์™ธ๋ฒฝ = ์ธํ„ฐํŽ˜์ด์Šค


๐Ÿ’ญ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์•Œ์•„๋ณด์ž

๊ฐ„๋‹จํ•œ ์ด์ปค๋จธ์Šค๋ฅผ ํ†ตํ•ด ํ•จ๊ป˜ ๊ฐœ์„ ์‹œ์ผœ๋ณด์ž.

๋‹คํŒŒ๋ผ ๋‹ท์ปด์„ ๋งŒ๋“ค์–ด ๋ณด์ž.

์ด ์‹œ์Šคํ…œ์€ [์ƒํ’ˆ] [์ฃผ๋ฌธ] [๋ฐฐ์†ก] ์ด๋ผ๋Š” ๋„๋ฉ”์ธ์ด ์žˆ๋‹ค.

๋„๋ฉ”์ธ์„ ์ค‘์‹ฌ์œผ๋กœ ์‘์ง‘๋„ ๋†’์€ ๋ชจ๋“ˆ์„ ๊ตฌ์„ฑํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

๊ณ„์ธต (๋ ˆ์ด์–ด)๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๋ชจ๋“ˆํ™”ํ•˜๋ฉด, ์‹œ์Šคํ…œ์ด ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ๋ณ€ํ™”๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

๋…๋ฆฝ์ ์ธ ๋ชจ๋“ˆ์„ ๋งŒ๋“ค๋ ค๋ฉด ๋„๋ฉ”์ธ์„ ์ค‘์‹ฌ์œผ๋กœ ๋ชจ๋“ˆํ™” ํ•ด์•ผํ•œ๋‹ค.

๋˜๋Š” ๊ด€์‹ฌ์‚ฌ์— ๋”ฐ๋ผ ๋ชจ๋“ˆํ™”ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ๊น…, ๋ณด์•ˆ๊ณผ ๊ฐ™์ด ์ „์ฒด์— ๋‹ค ๋ฒ”์šฉ์ ์œผ๋กœ ์ ์šฉ๋˜๋Š” [์ˆ˜ํ‰์  ๊ด€์‹ฌ์‚ฌ]

์žฌ์‚ฌ์šฉ์„ฑ์€ ๋ณ„๋กœ ์ค‘์š”ํ•˜์ง€์•Š๊ณ , ๊ทธ ๋น„์ฆˆ๋‹ˆ์Šค๋ฅผ ๊ตฌํ˜„ํ•œ [์ˆ˜์ง์  ๊ด€์‹ฌ์‚ฌ]

 

๐Ÿ’ญ ๋ชจ๋“ˆ์„ ๋‚˜๋ˆด๋‹ค๋ฉด ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•˜์ž.

์˜์กด์„ฑ์€ ํ•œ์ชฝ์œผ๋กœ๋งŒ ํ˜๋Ÿฌ์•ผํ•œ๋‹ค. - ์กฐ์˜ํ˜ธ ์˜ค๋ธŒ์ ํŠธ

 

 

๐Ÿ’ญ ์ฝ”๋“œ ์‹œ์ž‘

  • step_1: modularization - ๋„๋ฉ”์ธ ์ค‘์‹ฌ ๋ชจ๋“ˆํ™”์™€ ๋ชจ๋“ˆ๊ฐ„ ์˜์กด์„ฑ ๊ด€๋ฆฌ
  • step_2: encapsulation and separately - ๋ชจ๋“ˆ์„ ๋ณดํ˜ธํ•˜๊ณ , ๋ชจ๋“ˆ๊ฐ„ ์˜์กด์„ฑ ๋ถ„๋ฆฌ
  • step_3: context boundaries - ๋ชจ๋“ˆ ์ž์œจ์„ฑ์„ ์ง€ํ‚ค๋Š” ์ปจํ…์ŠคํŠธ ๊ฒฝ๊ณ„
  • step_4: modularizing configurations - ์ปจํ…์ŠคํŠธ ํ™˜๊ฒฝ ๋ชจ๋“ˆํ™”
  • step_5: decomposing system and stand alone services - ์‹œ์Šคํ…œ ๋ถ„๋ฆฌ์™€ ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค๋กœ ์„ฑ์žฅ

๋ชจ๋“ˆ์€ ์ •๋ง ์‰ฝ๊ฒŒ ๊ฒฐํ•ฉ ๋  ์ˆ˜ ์žˆ๋‹ค. ๊ฒฝ๊ณ„๋ฅผ ํ™•์‹คํ•˜๊ฒŒ ๋‚˜๋ˆ ์•ผํ•œ๋‹ค.
์ด๋ฅผ ์–ธ์–ด(์ปดํŒŒ์ผ๋Ÿฌ) ์ฐจ์›์—์„œ ๋ง‰๋Š”๊ฒŒ ๊ฐ€์žฅ ์ข‹๋‹ค. 

๋˜๋Š” ํ•œ๋ฐœ ๋” ๋‚˜์•„๊ฐ€์„œ, Gradle๋กœ ์˜์กด์„ฑ์„ ๋ถ„๋ฆฌํ•ด๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋‹ค.

ํ•˜๋‚˜์˜ ์ €์žฅ์†Œ์—์„œ ๋ชจ๋“ˆ๋ณ„๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ. ์•„์˜ˆ ์˜์กด์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜๊ฐ€ ์—†๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด ๋ชจ๋“ˆ๋“ค์ด ํ˜‘๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” Service (์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜)๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ.
์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ
์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์ฒ˜๋Ÿผ ๋งŒ๋“ค๊ธฐ.

 

 

ArchUnit

Moduliths

Across Framework ๋“ฑ

 

 

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

JiwonDev

JiwonDev

ํ™œ๋™ํ•˜๊ธฐ