๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

diary

๋งŒ๋“ค๋ฉด์„œ ๋ฐฐ์šฐ๋Š” ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ณ ์„ค๊ณ„์™€ ๊ตฌํ˜„ ๋ถ์Šคํ„ฐ๋””

* ์Šคํ„ฐ๋”” ๊ธฐ๊ฐ„ 2023/12/09~ 2024/01/27 

* ์ฐธ์—ฌ ์ด์œ : 23๋…„ ๋‚ด๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ฌ๋ฆฌ๋ฉด์„œ ๊ฐœ์ธ์ ์œผ๋กœ ๊ณต๋ถ€ํ•  ์‹œ๊ฐ„์„ ๊ฐ–์ง€ ๋ชปํ–ˆ๋‹ค(๋ผ๊ณ  ์“ฐ๊ณ  ์•ˆํ–ˆ๋‹ค๊ฐ€ ๋งž์„์ง€๋„). ๊ฐ•์ œ์ ์œผ๋กœ ๊ณต๋ถ€ํ–ˆ๋‹ค๋Š” ์„ฑ์ทจ๊ฐ์„ ์–ป๊ธฐ ์œ„ํ•ด์„œ ์ฐธ์—ฌ :)

* ์ฑ… ๊ฐ์ƒ๋ฌธ(?): ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ณ๋Š” DDD ์— ๊ด€์‹ฌ์žˆ๋‹ค๋ฉด ํ•œ๋ฒˆ์ฏค ๋“ค์–ด๋ดค์„ ๊ฒƒ์ด๊ณ , ์œ ์ง€๋ณด์ˆ˜์— ์ข‹์€ ์ฝ”๋“œ^-^์— ๊ด€์‹ฌ์ด ๋งŽ์€ ๋‚˜๋กœ์จ๋Š” ํฅ๋ฏธ๋กœ์šด ์ฑ…์ด๋ผ ์ƒ๊ฐํ–ˆ๋‹ค. ๋’ค๋กœ๊ฐˆ์ˆ˜๋ก ์™€๋‹ฟ์ง€ ์•Š๋Š” ๊ธฐ์ˆ  (์Šคํ”„๋ง์—๋งŒ ์ต์ˆ™ํ•œ ๋‚˜์—๊ฒŒ ์ƒ์†Œํ•œ ์ฟผ์ปค์Šค ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ..)์ด ๋“ฑ์žฅํ•˜๊ณ  ์ฝ”๋“œ ์˜ˆ์‹œ๊ฐ€ ์„œ๋น„์Šค ๋„๋ฉ”์ธ๊ณผ๋Š” ๋ฉ€์–ด๋ณด์—ฌ์„œ ํฌ๊ฒŒ ๋„์›€๋œ๊ฑฐ ๊ฐ™์ง„ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜๋„ ํšŒ์‚ฌ์˜ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๊ฐ€ ์ด ์ฑ…์—์„œ ์„ค๋ช…ํ•˜๋Š” ๊ตฌ์กฐ์™€ ๋น„์Šทํ•ด์„œ ๊ทธ๋‚˜๋งˆ ์ดํ•ด๊ฐ€ ๊ฐ”๋‹ค.

ํ•ญ์ƒ ๊ณ ๋ฏผ๋˜๋Š” ๋ถ€๋ถ„์€ ๊ฐ™์€ response ๋ฅผ ์ฃผ๋Š” ์—ฌ๋Ÿฌ api ๊ฐ€ ์žˆ์„ ๋•Œ, port ๊ฐ€ ๋‹ค๋ฅด๋‹ค๋Š” ์ด์œ ๋กœ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์ƒ์„ฑํ•ด์•ผํ•˜๋Š”๊ฑธ๊นŒ? ๋™์ผ ๋‚ด์šฉ์˜ ์—ฌ๋Ÿฌ๊ฐœ์˜ dto ๋ฅผ ์ƒ์„ฑํ•ด๋„ ์ฐœ์ฐœํ•˜๊ณ , ๋‹ค๋ฅธ api ์ธ๋ฐ ๊ฐ™์€ dto ๋ฅผ ์“ฐ๋Š” ๊ฒƒ๋„ ์ฐœ์ฐœํ•˜๋‹ค. ๊ทธ๋‚˜๋งˆ ๋œ ์ฐœ์ฐœํ•œ ํŽธ์€ dto ์˜ ๋„ค์ด๋ฐ์„ ์ž˜ ์ง€์–ด์„œ api ๋งˆ๋‹ค ๊ฐœ๋ณ„ dto๋ฅผ ์ƒ์„ฑํ•˜๋Š”๊ฒƒ ์ธ๊ฒƒ ๊ฐ™๊ธฐ๋„... 

23๋…„๋ถ€ํ„ฐ ๊ณ„์† ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ํŒ€์›๋“ค๊ณผ ์˜๊ฒฌ์„ ๋งž์ถ˜ ๊ฒƒ์€ api - service(domain) ์‚ฌ์ด์— ๊ฐ ๋„๋ฉ”์ธ๋“ค์„ ํ˜ธ์ถœํ•˜์—ฌ ๋ณต์žกํ•œ ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” facade ๋‹จ๊ณ„(๋‚˜๋Š” ์ฑ…์—์„œ ๋งํ•˜๋Š” usecase ์—ญํ• ์ด๋ผ ์ƒ๊ฐํ•œ๋‹ค)๋ฅผ ํ™œ์šฉ(?)ํ•˜๊ณ  ์žˆ๋‹ค. ์ž…๋ ฅ ์–ด๋Œ‘ํ„ฐ, ์ถœ๋ ฅ ์–ด๋Œ‘ํ„ฐ๋Š” controller/remote(infra)๋‹จ์—๋งŒ ์ ์šฉํ•˜๋ฉด์„œ ์ ๋‹นํžˆ ํƒ€ํ˜‘(?)๋ณธ ๊ตฌ์กฐ๋กœ ์ฝ”๋“œ๋ฅผ ์งœ๊ณ  ์žˆ๋Š”๋ฐ (๋‚ด ๊ธฐ์ค€)์ข‹์€๊ฒƒ ๊ฐ™๋‹ค :)