(๐Ÿ‡ฐ๐Ÿ‡ท Kor) ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜ ์‹œ๋†‰์‹œ์Šค Hexagonal Architecture Synopsis

(๐Ÿ‡ฐ๐Ÿ‡ท Kor) ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜ ์‹œ๋†‰์‹œ์Šค Hexagonal Architecture Synopsis

โฌก ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜ ์‹ ํ˜ผ์ง‘์Šค ๋งˆ๋ จ์“ฐ โฌก

ยท

4 min read

๐Ÿ‡ฐ๐Ÿ‡ท Kor: ์ง€๊ธˆ ๋ณด๋Š” ์ค‘!
๐Ÿ—บ Eng: Coming soon!
๐Ÿ‡ฏ๐Ÿ‡ต Jap: ใพใ ใงใ™ใ€‚


โฌก ์™œ ์œก๊ฐ์ธ๊ฐ€ โฌก

๐Ÿ›ฐ ์ผ์ƒ์—์„œ ๋ณด๋Š” ์ œํ’ˆ์—์„  ํ”์น˜ ์•Š๊ฒŒ๋„ ์ธ๊ณต์œ„์„ฑ ์ค‘์—๋Š” 6๊ฐœ์˜ ์ธก๋ฉด ํŒจ๋„์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด ๊ฒฝ์šฐ๋ฅผ ์ž˜ ๋ณด๋ฉด ์œก๊ฐ ๊ตฌ์กฐ๋ฅผ ๋ค ์ œํ’ˆ๋“ค์ด ๋ชธ์ฒด์— ๋งŽ์€ ๋ชจ๋“ˆ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ตฌ์กฐ๊ฐ€ ์ผ๋ฐ˜์ ์ธ ์‚ฌ๊ฐ ๋‹จ๋ฉด ๊ตฌ์กฐ์— ๋น„ํ•ด ๊ณต๊ฐ„ ํšจ์œจ์ด ์ข‹๊ธฐ ๋•Œ๋ฌธ์ด์—์š”.

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

๐Ÿ“ท ์‚ฌ์ง„ ์ถœ์ฒ˜: ์•„์ด๋ž‘ 3ํ˜ธ(KOMSAT-3A)์— ๋Œ€ํ•œ Russian Space Web ๋‹ท์ปด์˜ ์„ค๋ช… ์ž๋ฃŒ


์ด๋Ÿฐ ์œก๊ฐ ๊ตฌ์กฐ๋ฌผ์—์„œ "ํ•˜๋‚˜์˜ ๋ณธ์ฒด์— ๋‹ค์–‘ํ•œ ๋ชจ๋“ˆ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค."๋ผ๋Š” ํŠน์ง•์ด ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜(Hexagonal Architecture)์˜ ๋ช…๋ช… ๋ฐฐ๊ฒฝ์ด๋ผ๊ณ  ์ถ”์ธกํ•˜๊ณ  ์žˆ์–ด์š”. ์œก๊ฐํ˜•๊ณผ ๋‹ค๋ฅธ ์—ฐ๊ด€์ด ์—†๋Š” ํŽธ์ธ๋ฐ, ์ด๋ ‡๊ฒŒ ๋‹ค์–‘ํ•œ ๋ชจ๋“ˆ์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ์ฝ˜์…‰ํŠธ๊ฐ€ ๋‹ฎ์•„ ์žˆ๊ฑฐ๋“ ์š”.

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

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

๊ธฐ์กด์˜ ๋ฐฉ๋ฒ•๋ก (์ฃผ๋กœ ๋ ˆ์ด์–ด๋“œ ์•„ํ‚คํ…์ฒ˜)์—์„œ ํ•˜๋˜ ๊ฒƒ๊ณผ ์ฐจ์ด๋Š” "๋ณธ์ฒด์˜ ํฌํŠธ๊ฐ€ I/O ์ŠคํŽ™์„ ๊ฒฐ์ •ํ•˜๊ณ , ๊ฐ ๋ชจ๋“ˆ์—์„œ๋Š” ๊ทธ ์ŠคํŽ™๋Œ€๋กœ ์–ด๋Œ‘ํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค."๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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


โฌก ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜, ๋ฌด์—‡์ผ๊นŒ? โฌก

์•„๋งˆ์กด CEO ์ œํ”„ ๋ฒ ์กฐ์Šค์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„, MSA ์ง„์˜์—์„œ ๊ถŒ์žฅํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ทœ์น™์—๋Š” ๋‹ค์Œ ๋‚ด์šฉ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • (ํŒ€ ๊ฐ„์˜) ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์€ ์„œ๋น„์Šค ์ธํ„ฐํŽ˜์ด์Šค๋กœ๋งŒ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

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

๊ธฐ์กด ์•„ํ‚คํ…์ฒ˜์™€ ๋น„๊ต

๊ธฐ์กด์— ๋งŽ์ด ์‚ฌ์šฉํ•˜๋˜ ๋ ˆ์ด์–ด๋“œ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ์ปจํŠธ๋กค๋Ÿฌ โ†’ ์„œ๋น„์Šค โ†’ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ ๋ฐฉํ–ฅ์œผ๋กœ ์˜์กด์„ฑ์„ ์ด๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์„œ๋น„์Šค ๋กœ์ง์ด ์˜ํ–ฅ์„ ๋ฐ›๊ณ , ์„œ๋น„์Šค ๋กœ์ง์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›์•˜์ฃ .

  • ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์„œ๋น„์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋Œ€๋กœ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์„œ๋น„์Šค๋Š” ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋Œ€๋กœ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ๋ฌธ์ œ๋Š” ํ•˜์œ„ ๊ณ„์ธต์ด ์ž๊ธฐ๊ฐ€ ์ œ๊ณตํ•  ๊ธฐ๋Šฅ์„ ๊ฒฐ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ•˜์œ„ ๊ณ„์ธต์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ๋ถ€๋‹ด์ด ๋œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜๋Š” ์—ฌ๊ธฐ์„œ '๊ธฐ๋Šฅ์˜ ์ŠคํŽ™์„ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ๊ฐ€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์—†๋„๋ก' ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ์ด ๋œํ•˜๋ฉด ์ข‹๊ฒ ๋Š” ๊ฒƒ์„ '๋ณธ์ฒด'๋กœ ๋‘๊ณ , ๋ณธ์ฒด ์ฃผ๋ณ€์œผ๋กœ ์ปจํŠธ๋กค๋Ÿฌ๋‚˜ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ๊ฐ€ ์–ด๋Œ‘ํ„ฐ ํ˜•์‹์œผ๋กœ ๋ถ™๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ณธ์ฒด๊ฐ€ ๋ชจ๋“  ์ŠคํŽ™('ํฌํŠธ'๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.)์„ ์ œ๊ณตํ•˜๊ณ , ์ปจํŠธ๋กค๋Ÿฌ๋‚˜ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ๋Š” ์ด ๋ณธ์ฒด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํฌํŠธ(์ฃผ๋กœ ์ธํ„ฐํŽ˜์ด์Šค)์—๋งŒ ๋งž์ถ”๋Š” ์‹์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ด€๊ณ„๊ฐ€ ๋‹ค์Œ์ฒ˜๋Ÿผ ๋ณ€๊ฒฝ๋˜์ฃ .

๋ณธ์ฒด์—์„œ๋Š” 'ํฌํŠธ(port)'๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์™ธ๋ถ€์— ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€์— ์žˆ๋˜ ๋ชจ๋“ˆ์€ '์–ด๋Œ‘ํ„ฐ(adapter)'๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ, ๋ณธ์ฒด์˜ ํฌํŠธ(์ธํ„ฐํŽ˜์ด์Šค)๋ฅผ ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด ํฌํŠธ์™€ ์–ด๋Œ‘ํ„ฐ๊ฐ€ ๋ชจ๋“ˆ๊ณผ ๋ณธ์ฒด ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”(I/O) ์ผ์ข…์˜ ์†Œํ†ต ์ฐฝ๊ตฌ์ธ ์…ˆ์ด์ฃ . ์ด๊ฒƒ์„ ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ ์•ˆ์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ„์ธต์˜ ๊ตฌ์„ฑ

์šฐ๋ฆฌ๊ฐ€ ์•ž์„œ ์ด์•ผ๊ธฐํ•œ ๋ณธ์ฒด๋ฅผ Application ๊ณ„์ธต์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ์ฃผ์š” ๋ถ€๋ถ„์„ ์ž‘์„ฑํ•  ๊ณ„์ธต์ด๊ธฐ๋„ ํ•˜์ฃ . ๊ทธ๋ž˜์„œ ์„œ๋น„์Šค ํด๋ž˜์Šค๋„ ์ด๊ณณ์— ์žˆ๊ณ , ์„œ๋น„์Šค ํด๋ž˜์Šค๊ฐ€ ์‚ฌ์šฉํ•  '์ธํ„ฐํŽ˜์ด์Šค'๋„ ์ด๊ณณ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด ์ธํ„ฐํŽ˜์ด์Šค ์ค‘ ์ผ๋ถ€๊ฐ€ ๋ฐ”๋กœ 'ํฌํŠธ'์ด๊ธฐ๋„ ํ•˜์ฃ .

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์˜ ๋‚ด๋ถ€์—๋Š” Domain ๊ณ„์ธต์ด ์žˆ๊ณ , ์ด๊ฑด ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ทธ ๋„๋ฉ”์ธ ๋ชจ๋ธ, ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์ทจ๊ธ‰ํ•  ๊ด€์‹ฌ์‚ฌ ๋ฐ์ดํ„ฐ ๋ฐ ๊ทธ ์ŠคํŽ™์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„ค๋ช…์—์„  ๋น„์ค‘์ด ๋œํ•œ ํŽธ์ด์ฃ .

๊ทธ๋ฆฌ๊ณ  '์™ธ๋ถ€'๋ผ๊ณ  ํ‘œํ˜„๋˜๊ธฐ๋„ ํ•˜๋Š” ๊ฐ๊ฐ์˜ Adapter ๋ชจ๋“ˆ์—, ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํฌํŠธ๋ฅผ ๊ตฌํ˜„ํ•œ ์–ด๋Œ‘ํ„ฐ ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์˜ Repository ํฌํŠธ(์ธํ„ฐํŽ˜์ด์Šค)๋ฅผ RDB Adapter๋ผ๋Š” ๋ชจ๋“ˆ์—์„œ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ์ฃ . ๋˜ Web API ์–ด๋Œ‘ํ„ฐ์—์„œ Controller๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜์กด์„ฑ์˜ ๋ฐฉํ–ฅ?!

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

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

์˜์กด์„ฑ ๋ฐฉํ–ฅ์€ ์‹ค์ œ ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜์˜ ์„ธ๋ถ€ ๊ตฌํ˜„์—์„œ ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์ด๋“ค ์‹ค์ˆ˜ํ•˜๋Š” ๊ณ ๋ ค ๋Œ€์ƒ์ด์—์š”.

๋“œ๋ผ์ด๋น™๊ณผ ๋“œ๋ฆฌ๋ธ

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

์˜ˆ๋ฅผ ๋“ค์–ด ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ณธ์ฒด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ด€๊ณ„์ฃ . ์ด๋ฅผ ๋“œ๋ผ์ด๋น™ ์–ด๋Œ‘ํ„ฐ๋กœ ๋ถ„๋ฅ˜ํ•ฉ๋‹ˆ๋‹ค. JPA ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ๋Š” ๋ณธ์ฒด๊ฐ€ ์š”๊ตฌํ•˜๋Š” ์„ธ๋ถ€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋ณธ์ฒด์— ์ œ๊ณตํ•˜๋Š” ๊ด€๊ณ„์ฃ . ์ด๋ฅผ ๋“œ๋ฆฌ๋ธ ์–ด๋Œ‘ํ„ฐ๋กœ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.


์ถœ์ฒ˜๋ฅผ ์ž‘์„ฑ ์•ˆ ํ•œ ์ž๋ฃŒ๋Š” DALLยทE, excalidraw, Power Point ๋“ฑ์„ ํ†ตํ•ด ์Šค์Šค๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. (๊ทธ๋ž˜์„œ ์˜์–ด๊ฐ€ ์–ด์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.) ์–ด์ƒ‰ํ•œ ์˜์–ด ๋ฌธ์žฅ์€ ๋‚จ๋Œ€๋ฌธ ์—ด๋ ธ๋‹ค๊ณ  ์•Œ๋ ค ์ฃผ๋“ฏ ์‚ด์ง ๋ง์”€ํ•ด ์ฃผ์‹œ๋ฉด ์–ผ๋ฅธ ๊ณ ์ณ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‹ค๋“ค ๋ชจ์ชผ๋ก ์ฐฉํ•œ ๊ฐœ๋ฐœ ํ•˜์„ธ์š”.

ย