๐ฌ์ํคํ ์ฒ39 [DDD] Value Object ์ ๋ํ ์ฌ๋ฌ ์ด์ผ๊ธฐ ๋ชฉ์ฐจ entity ์ ๋ํ ์งง์ ์๊ฐ ๋ชจ๋ ๊ฐ์ฒด๊ฐ entity ์ผ๊น? value object entity ์ value object value object ์ 3๊ฐ์ง ํน์ฑ ์ธก๋, ์ธก์ , ์๋ํ, ํํ ๋ถ๋ณ์ฑ ๋ฑ๊ฐ์ฑ value object ๋ ์ด๋ ๊ฒ ์ด๋ค java ์์ lombok ์ @Value ๊ฐ ์๋ค value object ์ context ๊ฐ๋ ์ ํ๋ ์ํฐํฐ์ ์ฑ ์ ๋ถ์ฐ ์๋ก ์ง๋์๊ฐ์ ์ฌ๋ฌ๋ฒ์ ๊ฑธ์ณ์ entity ์ ๋ํด์ ์ด์ผ๊ธฐ๋ฅผ ํด๋ณด์๋ค. ๊ธฐ๋ณธ์ ์ธ entity ์ ๊ฐ๋ ๊ณผ ํน์ฑ ๋ถํฐ ์์ํด์ entity ์ ์๋ณ์์ ๋ํ ์ด์ผ๊ธฐ๊น์ง.. ์ด๋ฒ์๊ฐ์๋ ์ํฐํฐ์ ๋๋ถ์ด ๋๋ฉ์ธ ๋ชจ๋ธ์ ํต์ฌ ๊ตฌ์ฑ์์์ธ Value Object, ๊ฐ ๊ฐ์ฒด์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ๋ค entity ์ ๋ํ ์งง์ recap va.. 2023. 7. 23. [DDD] Entity ์ ์๋ณ์(identifier) ์ ๋ํ ์ฌ๋ฌ ์ด์ผ๊ธฐ ๋ชฉ์ฐจ ์๋ก ์๋ณ์๋ ๋ฌด์์ธ๊ฐ ์๋ณ์์ ์ข ๋ฅ ์ ์ญ ์๋ณ์์ ์ง์ญ ์๋ณ์ ์๋ณ์๋ ์ธ์ ์์ฑ๋๋๊ฐ? ๋น ๋ฅธ ์๋ณ์ ์์ฑ๊ณผ ๋ฆ์ ์๋ณ์ ์์ฑ ๋น ๋ฅธ ์๋ณ์: ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ๋ฆ์ ์๋ณ์: ๊ฐ์ฒด๊ฐ ์์ํ ๋ ๋ 3๊ฐ์ง ์๋ณ์ ์์ฑ ๋ฐฉ๋ฒ db ์์ ์์ฑ application ์์ ์์ฑ ๋ค๋ฅธ aggregate ์์ ์์ฑ ์๋ก ์ง๋์๊ฐ entity ๋ ๋ฌด์์ธ๊ฐ์ ๋ํด์ ์ด์ผ๊ธฐ๋ฅผ ๋๋ด๋ค. [DDD] Entity ์ ๋ํ ์ฌ๋ฌ ์ด์ผ๊ธฐ ๋ชฉ์ฐจ ์๋ก entity ๋ ๋ฌด์์ธ๊ฐ ๋๋ฉ์ธ ์ธ์ ์ด์ผ๊ธฐ vo ์ entity ๊ฐ ์๋ค ๋ฌด์์ด entity ๋ฅผ ๊ฒฐ์ ํ๋๊ฐ? entity ์ ์์ฑ invariant immutable entity ์ ํ์ object autonomy self encapsulation ์๋ก DDD .. 2023. 7. 15. [DDD] Entity ์ ๋ํ ์ฌ๋ฌ ์ด์ผ๊ธฐ ๋ชฉ์ฐจ ์๋ก entity ๋ ๋ฌด์์ธ๊ฐ ๋๋ฉ์ธ ์ธ์ ์ด์ผ๊ธฐ vo ์ entity ๊ฐ ์๋ค ๋ฌด์์ด entity ๋ฅผ ๊ฒฐ์ ํ๋๊ฐ? entity ์ ์์ฑ invariant immutable entity ์ ํ์ object autonomy self encapsulation ์๋ก DDD ์์๋ ์ ๋น์ฟผํฐ์ค ๋ญ๊ท์ง๋ฅผ ํตํ์ฌ ์ฌ๋ฌ ์ดํด๊ด๊ณ์๋ค๊ณผ ๋น์ฆ๋์ค ์์ญ์ ๋ํด ํฉ์ (Cosensus) ๋ฅผ ๋ง์ถ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฌผ๋ก ๋๋ฉ์ธ์ ๋ํ ๋ชจ๋ธ๋ง ์ฆ, domain model ์ด ์ฐ์ถ๋๋ค. ์ด domain model ์ ์ฌ๋ฌ ์ํธ์์ฉ์ ํตํด ๋น์ฆ๋์ค๋ฅผ ์งํฑํ๊ฒ ๋๋๋ฐ, domain model ์ ๊ฐ์ฅ ๊ธฐ์ด๊ฐ ๋๋ ๋๊ฐ์ง ํ์ ์ ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋ค. Entity Value Object ์ค๋์ ์ด Entity ์ ๋ํด์ ์์๋ณด๋๋ก ํ์ Ent.. 2023. 7. 15. Repository Pattern - ์ค์ ํธ (Spring ์์ DIP ๋ฅผ ํตํด Repository ์ ์ ์ธ๊ณผ ๊ตฌํ ๋ถ๋ฆฌ์ํค๊ธฐ) ์ด ๊ธ์ ์ด๋ก ๊ณผ ์ค์ต, ๋ ํํธ๋ก ๋๋์ด์ ธ ์์ต๋๋ค. Repository Pattern ์ ๋ํด์, ์ด๋ก ํธ Repository Pattern - ์ค์ ํธ (Spring ์์ DIP ๋ฅผ ํตํด Repository ์ ์ ์ธ๊ณผ ๊ตฌํ ๋ถ๋ฆฌ์ํค๊ธฐ) 2022. 8. 28. [DDD] Repository Pattern ์ด๋, ์ด๋ก ํธ ์ด ๊ธ์ ์ด๋ก ๊ณผ ์ค์ต, ๋ ํํธ๋ก ๋๋์ด์ ธ ์์ต๋๋ค. Repository Pattern ์ ๋ํด์, ์ด๋ก ํธ 2022. 8. 23. Event-Driven-Architecture ์ ๋ํ Overview ์ ์ฌ๋ฌ ๊ณ ๋ ค์ฌํญ๋ค ๋ชฉ์ฐจ Event ๋ Event Driven Architecture ๋ Event Driven Architecture ์ ๊ตฌํ ๋ชจ๋ธ Event-Driven-Architecture ์์ ๊ณ ๋ คํด์ผํ ๋ฌธ์ ๋ค Event ๋ Event ๋ ๋ฌด์์ผ๊น? Event ์ ๊ฐ๋ ์ ๊ฐ๋จํ๋ค. ์ด๋ฒคํธ๋ ๊ณผ๊ฑฐ์ ์ผ์ด๋ ์ด๋ ํ ์ฌ๊ฑด์ด๋ค. Event-Streaming-Platform ์์๋ ์ด๋ฌํ ์ด๋ฒคํธ๋ฅผ ํตํด์ ๋ถ์ฐ๋ ํ๊ฒฝ์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ ์ด๋ ํ side effect ๋ฅผ ์ผ์ผํค๊ฑฐ๋ ํน์ process ๋ฅผ trigger ํ๋ฉฐ ์ด๋จ ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํ๋ฅผ ํ๊ธฐ๋ ํ๋ค. ์ด๋ฌํ ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ์ฌ๋ฌ ์ด์ ๊ฐ ์๊ฒ ์ง๋ง ๊ฐ์ธ์ ์ผ๋ก ์๊ฐํ๋ ๊ฐ์ฅ ํฐ ์ด์ ๋ ๋ฐ๋ก ์์คํ ๊ฐ ๊ฐํ๊ฒ ๊ฒฐํฉ๋ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋ค. ์๋ฅผ ๋ค์ด์ ๋ค์๊ณผ ๊ฐ์.. 2022. 8. 22. ์ด์ 1 2 3 4 5 ยทยทยท 7 ๋ค์