๐Ÿ‘จ‍๐Ÿ‘ฉ‍๐Ÿ‘ง‍๐Ÿ‘ฆ Project/๐Ÿ“ฉ DevTalk

๋‹จ๊ณ„๋ณ„๋กœ ์„ฑ์žฅํ•˜์ž!
1. ๋ฌธ์ œ์ƒํ™ฉ Repository๋‹จ์—์„œ Command์™€ Query๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์ฑ…์ž„์„ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ์ฝ”๋“œ ์‘์ง‘๋„์™€ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๊ณ ์ž ํ•˜์˜€๋‹ค. ์ด์— ์ฒ˜์Œ ์‹œ๋„ํ–ˆ๋˜ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. Create, Update, Delete๋ฅผ ๋‹ด๋‹นํ•  CommandableRepo Interface์™€ Read๋ฅผ ๋‹ด๋‹นํ•  QueryableRepo Interface๋กœ ๋‚˜๋ˆ„์—ˆ๋‹ค. ๊ตฌํ˜„์ฒด๋Š” CommandRepo, QueryRepo๋กœ ๊ตฌํ˜„ํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ์–ด๋– ํ•œ ์—”ํ‹ฐํ‹ฐ๋ฅผ saveํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์„ ๊ฐ€์ •ํ•  ๋•Œ, ์ค‘๋ณต์กฐํšŒ๋‚˜ ๋‹ค๋ฅธ ์กฐํšŒ ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์ฃผ๋กœ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ด๋Ÿด๋•Œ, Repository๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” Service ๊ณ„์ธต์—์„œ ์˜์กด์„ฑ์ด ๋„ˆ๋ฌด๋‚˜ ๋งŽ์•„์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. 2. ๋ฌธ์ œํ•ด๊ฒฐ ๊ณผ์ • 1 - interf..
โœข ํ”„๋กœ์ ํŠธ์—์„œ ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๊ณ , MSA ๋ฐฉ์‹์œผ๋กœ ๊ฐ์ž ๋ถ„๋ฆฌ๋œ ๋‹ด๋‹น ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•œ๋‹ค. ์•„๋ฌด๋ฆฌ ๋ถ„๋ฆฌ๋œ ์„œ๋น„์Šค๋ผ๊ณ  ํ•ด๋„ ์ฒ˜์Œ์—๋Š” ํŒจํ‚ค์ง€ ๊ตฌ์กฐ๋‚˜ ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜์„ ์ •ํ•ด๋†“๋Š” ๊ฒŒ ์ถ”ํ›„์— ์„œ๋กœ ์ฝ”๋“œ๋ฆฌ๋ทฐํ•  ๋•Œ ํŽธํ•˜๊ณ  ์—ฌ๋Ÿฌ ์žฅ์ ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ๋ฏธ๋ฆฌ ์„ค๊ณ„ํ•˜์˜€๋‹ค. 1. ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ ์— ๋Œ€ํ•œ ๊ฒƒ์€ ์ด์ „ ํฌ์ŠคํŒ…์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”. 2023.07.06 - [๐Ÿ‘จ‍๐Ÿ‘ฉ‍๐Ÿ‘ง‍๐Ÿ‘ฆ Project/๐Ÿ“ฉ DevTalk] - ํ—ฅ์‚ฌ๊ณ ๋‚ (Hexagonal) ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ณต๋ถ€ํ•ด ๋ณด์ž (with Layered, Clean Architecture) 2. ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ src.groupname ใ„ด global ใ„ด config ใ„ด util ใ„ด error ใ„ด exception ใ„ด handler ใ„ด {์• ๊ทธ๋ฆฌ๊ฑฐํŠธ ์ด๋ฆ„} ใ„ด..
โœข ๋ฐ๋ธŒํ†ก ํ”„๋กœ์ ํŠธ์—์„œ ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ ์šฉํ•ด ๋ณด์ž๊ณ  ์ œ์•ˆํ•ด ๋ณด๊ธฐ ์œ„ํ•ด ๊ณต๋ถ€ํ•˜์˜€๊ณ  ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€๋‹ค. ์ ์šฉํ•ด๋ณด๊ณ ์ž ํ•˜๋Š” ์ด์œ ๋Š” ๋ฐ๋ธŒํ†ก์€ MSA๋กœ์จ Port&Adapter ์•„ํ‚คํ…์ฒ˜์ธ ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์ข‹์„ ๊ฒƒ ๊ฐ™์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. (1) ์ „ํ†ต์ ์ธ ๋ ˆ์ด์–ด๋“œ ์•„ํ‚คํ…์ฒ˜์˜ ๋ฌธ์ œ 1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฃผ๋„ ์„ค๊ณ„๋ฅผ ์œ ๋„ํ•œ๋‹ค. ์ „ํ†ต์ ์ธ ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜์˜ ํ† ๋Œ€๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋‹ค. ์›น ๊ณ„์ธต์€ ๋„๋ฉ”์ธ ๊ณ„์ธต์— ์˜์กดํ•˜๊ณ , ๋„๋ฉ”์ธ ๊ณ„์ธต์€ ์˜์†์„ฑ ๊ณ„์ธต์— ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ DB์— ์˜์กดํ•˜๊ฒŒ ๋œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋ณดํ†ต ๊ฐœ๋ฐœํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ชฉ์ ์€ ๋น„์ง€๋‹ˆ์Šค๋ฅผ ๊ด€์žฅํ•˜๋Š” ๊ทœ์น™์ด๋‚˜ ์ •์ฑ…์„ ๋ฐ˜์˜ํ•œ ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋•Œ ์šฐ๋ฆฌ๋Š” State๊ฐ€ ์•„๋‹ˆ๋ผ Behavior๋ฅผ ์ค‘..
DevPoong
'๐Ÿ‘จ‍๐Ÿ‘ฉ‍๐Ÿ‘ง‍๐Ÿ‘ฆ Project/๐Ÿ“ฉ DevTalk' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก