๊ด€๋ฆฌ ๋ฉ”๋‰ด

Tech Log ๐Ÿ› ๏ธ

๋„๋ฉ”์ธ ์ฃผ๋„ ๊ฐœ๋ฐœ ์‹œ์ž‘ํ•˜๊ธฐ - ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ ๋ณธ๋ฌธ

๊ฐœ๋ฐœ ์„œ์ /DDD ์‹œ์ž‘ํ•˜๊ธฐ

๋„๋ฉ”์ธ ์ฃผ๋„ ๊ฐœ๋ฐœ ์‹œ์ž‘ํ•˜๊ธฐ - ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ

sehaan 2023. 10. 21. 01:59

์• ๊ทธ๋ฆฌ๊ฑฐํŠธ

๊ฐ์ฒด ๋ชจ๋ธ์ด ๋ณต์žกํ•ด์ง€๋ฉด ๊ฐœ๋ณ„ ๊ตฌ์„ฑ์š”์†Œ ์œ„์ฃผ๋กœ ๋ชจ๋ธ์„ ์ดํ•ดํ•˜๊ฒŒ ๋˜๊ณ  ์ „๋ฐ˜์ ์ธ ๊ตฌ์กฐ๋‚˜ ํฐ ์ˆ˜์ค€์—์„œ ๋„๋ฉ”์ธ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค.

-> ์ƒ์œ„ ์ˆ˜์ค€์—์„œ ๋ชจ๋ธ์„ ์กฐ๋งํ•ด์•ผํ•˜๋Š”๋ฐ , ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์• ๊ทธ๋ฆฌ๋ฆฌ๊ฑฐํŠธ๋Š” ๋ณต์žกํ•œ ๋„๋ฉ”์ธ์„ ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.

์• ๊ทธ๋ฆฌ๊ฑฐํŠธ์— ์†ํ•œ ๊ฐ์ฒด๋Š” ์œ ์‚ฌํ•˜๊ฑฐ๋‚˜ ๋™์ผํ•œ ๋ผ์ดํ”„ ์‚ฌ์ดํด์„ ๊ฐ€์ง€๋ฉฐ ๋‹ค๋ฅธ ์• ๊ทธ๋ฆฌ์ปคํŠธ์— ์†ํ•œ ๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ์• ๊ทธ๋ฆฌ์ปคํŠธ์—

์†ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

์• ๊ทธ๋ฆฌ๊ฑฐํŠธ ๋ฃจํŠธ

 

์• ๊ทธ๋ฆฌ๊ฑฐํŠธ ์ „์ฒด๋ฅผ ๊ด€๋ฆฌํ•  ์ฃผ์ฒด๊ฐ€ ํ•„์š”ํ•œ๋ฐ, ์ด ์ฑ…์ž„์„ ์ง€๋Š” ๊ฒƒ์ด ๋ฃจํŠธ ์—”ํ‹ฐํ‹ฐ์ด๋‹ค.

ex) Order -> (OrderLine) , (Orderer) , (Address)

 

ํ•ต์‹ฌ ์—ญํ• ์€ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ์˜ ์ผ๊ด€์„ฑ์ด ๊นจ์ง€์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋ฃจํŠธ๋Š” ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๊ฐ€ ์ œ๊ณตํ•ด์•ผํ•  ๋„๋ฉ”์ธ์„ ๊ตฌํ˜„ํ•œ๋‹ค.

 

์• ๊ทธ๋ฆฌ๊ฑฐํŠธ ์™ธ๋ถ€์—์„œ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ์— ์†ํ•œ ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

Info info = order.info();
info.setAddress(newAddress);

 

๋„๋ฉ”์ธ ๋ชจ๋ธ์— ๋Œ€ํ•ด ๋‹ค์Œ ๋‘๊ฐ€์ง€๋ฅผ ์ง€์ผœ์•ผํ•œ๋‹ค.

1. ๋‹จ์ˆœํ•œ set ๋ฉ”์†Œ๋“œ๋ฅผ ๊ณต๊ฐœ ๋ฒ”์œ„๋กœ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค.

2. ๋ฐธ๋ฅ˜ ํƒ€์ž…์€ ๋ถˆ๋ณ€์œผ๋กœ ํ•œ๋‹ค.

 

์ž ๊ธˆ ๋Œ€์ƒ์ด ๋งŽ์•„์ง„๋‹ค๋Š” ๊ฒƒ์€ ๊ทธ๋งŒํ‹ˆ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํŠธ๋žœ์žญ์…˜ ๊ฐœ์ˆ˜๊ฐ€ ์ค„์–ด๋“ ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. 

-> ์„ฑ๋Šฅ์˜ ์ €ํ•˜

 

ํ•œ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ๋Š” ํ•œ ๊ฐœ์˜ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๋งŒ ์ˆ˜์ •ํ•ด์•ผํ•œ๋‹ค.

ํ•œ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๊ฐ€ ๋‹ค๋ฅธ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ์˜ ๊ธฐ๋Šฅ์— ์˜์กดํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ ๊ฐ„ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’์•„์ง„๋‹ค.

 

๋ฆฌํฌ์ง€ํ„ฐ๋ฆฌ์™€ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ

๊ฐ์ฒด์˜ ์˜์†์„ฑ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฆฌํฌ์ง€ํ„ฐ๋ฆฌ๋Š” ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ ๋‹จ์œ„๋กœ ์กด์žฌํ•œ๋‹ค.

์• ๊ทธ๋ฆฌ๊ฑฐํŠธ ์ „์ฒด๋ฅผ ์ €์žฅ์†Œ์— ์˜์†ํ™”ํ•ด์•ผํ•œ๋‹ค.

 

ID๋ฅผ ์ด์šฉํ•œ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ ์ฐธ์กฐ

์• ๊ทธ๋ฆฌ๊ฑฐํŠธ์—์„œ ๋‹ค๋ฅธ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ์˜ ๋คํŠธ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๋ฅผ ์ง์ ‘ ์ฐธ์กฐํ•  ๋•Œ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” ํŽธ๋ฆฌํ•จ์„ ์˜ค์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

-> ID๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋‹ค๋ฅธ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๋ฅผ ์ฐธ์กฐํ•˜์ž

 

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

 

์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๋ฅผ ํŒฉํ† ๋ฆฌ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ

์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด์„œ ๋‹ค๋ฅธ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋‹ค๋ฅธ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ์— ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด๋ณด์ž