๐ฌweb application40 [distributed system] CAP ์ด๋ก ๊ณผ PACELC ์ ๋ํ ์ด์ผ๊ธฐ ๋ชฉ์ฐจ TL;DR ๋ถ์ฐ ์์คํ ์ 3 ๊ฐ์ง Gaurantee CAP ์ด๋ก CP ์์คํ AP ์์คํ CAP ์์คํ ์ด ์กด์ฌํ์ง ์๋ ์ด์ CAP ์ด๋ก ์ ํ๊ณ PACELC ์ด๋ก TL;DR ์ด๋ฒ ๊ธ์ ํต์ฌ์ ์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. CAP ์ด๋ก ํํฐ์ ์ด ํญ์ ๋ฐ์ํ ์ ๋ฐ์ ์๋ ๋ถ์ฐ ์์คํ ์์ C, A ์ค ํ๋๋ง ์ ํํ ์ ์์์ ์๋ฏธํ๋ ์ด๋ก Consistency Availability Partition Tolerance CAP ์ด๋ก ์ ํ๊ณ ์๋ฒฝํ CP, AP ์์คํ ์ ์กด์ฌํ์ง ์๋๋ค ๋๋ถ๋ถ์ ๋ถ์ฐ ์์คํ ์ CP ์ AP ์ฌ์ด ์ด๋์ฏค์ด๋ค PACELC ์ด๋ก partition ์ํฉ๊ณผ ์๋(else) ์ํฉ์ผ๋ก ๋๋๊ณ ๊ฐ๊ฐ trade off ์ ์ ๊ธ์๋ฅผ ๋ด ์ด๋ก ํํฐ์ partition ์ํฉ์ผ ๊ฒฝ์ฐ Avaliabilt.. 2023. 11. 12. [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. ์ด์ 1 2 3 4 5 ยทยทยท 7 ๋ค์