๐ฌapplication39 DDD ์ aggregate ์ ๋ํ ์ด์ผ๊ธฐ TL;DR ์ด๋ฒ ๊ธ์ ํต์ฌ์ ์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค aggregate ๋ ๋ฌด์์ธ๊ฐ 3๊ฐ์ง ํต์ฌ ๋๋ฉ์ธ ๊ตฌ์ฑ์์ ์ค ๊ฐ์ฅ ๊ธฐ๋ณธ entity ์ value ์ composition ์์ ํ ํ๋์ ๊ฐ๋ ์ aggregate ๊ฐ ํ์ํ ๊น ๊ณ ์ ์(invariant) ์ ์ผ๊ด์ฑ (consistency) ์ ์งํค๋ ํต์ฌ ๊ฐ์ฒด aggregate ์ ํต์ฌ ๊ตฌ์ฑ์์ 3๊ฐ์ง entity, root-entity, value aggregate ์ ์ค๊ณํ๊ธฐ 3๊ฐ์ง ์ค๊ณ ์งํ ์ผ๊ด์ฑ์ ๊ธฐ์ค์ผ๋ก ๋๋๊ธฐ actor ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋๊ธฐ usecase ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋๊ธฐ ์ ๋๋์ด์ง aggregate ์ ํน์ฑ aggregate ๋ ๋ฌด์์ธ๊ฐ ์๋ฆญ ์๋ฐ์ค๊ฐ ์ ์ํ DDD, domain driven design ์์ ํต์ฌ ๋๋ฉ์ธ ๊ตฌ์ฑ์์๋ 3๊ฐ.. 2024. 4. 10. cache 101 - Spring Cache ์ ๋ํ์ฌ (feat. ์บ์๋ก todo list ๋ฅผ ๋ง๋ค์ด๋ณด์) cache 101 ์๋ฆฌ์ฆ๋ web application ์ ๊ฐ๋ฐํ๋ฉฐ ๋ง์ฃผํ๋ cache ์ ๋ํด ํ์ํ ์ง์๊ณผ ๋๊ตฌ๋ค์ ์ฌ์ฉ๋ฒ์ ํ์ตํ๋ ์๋ฆฌ์ฆ์ ๋๋ค. 1. Cache ์ ๋ํ ๊ฑฐ์ ๋ชจ๋ ๊ฒ ์ ์์๋๋ก ๊ธ์ ์ฝ์ผ์๋ฉด ํ์ต์ ๋ ๋ง์ ๋์์ด ๋ฉ๋๋ค. ์ค๋์ Spring ์์ ์ ๊ณตํ๋ Cache ์ ๋ํด์ ์ด์ผ๊ธฐ ํด๋ณผ ๊ฒ์ด๋ค Spring ์์๋ Cache ์ ๋ํ์ฌ Spring Transaction ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋์ ์ถ์ํ๋ฅผ ์ ๊ณตํ๋ค @Transactional // spring transaction support public Todo create() {} @Cacheable // spring cache support public Todo create() {} Spring ์์๋ ์ด๋ฅผ Cache Abstr.. 2024. 3. 13. cache 101 - ์บ์์ ๋ํ ๊ฑฐ์ ๋ชจ๋ ๊ฒ ์ด๋ฒ์๋ cache ์ ๋ํด์ ์์๋ณผ ๊ฒ์ด๋ค. cache ๋ผ๊ณ ํ๋ค๋ฉด computer science ์์ ์ ๋ง ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ๋๊ณ , ๋์ผํ ๊ธฐ๋ฅ์ ์ํํ์ง๋ง ๋ฌธ๋งฅ์ ๋ฐ๋ผ์ ๋ค๋ฅธ ์ดํด๋๊ฐ ํ์ํ๋ค. ๋๋ cache ์ ๋ํด์ web application layer ์ ๋ฌธ๋งฅ์์ ์ค๋ช ์ ํ ๊ฒ์ด๊ณ , software cache ์ ๋ํ ์ค๋ช ์ ์ฃผ๋ก ํ ๊ฒ์ด๋ค. hardware cache ์ ๋ low level ์ cache ๋ฅผ ์ํ๋ค๋ฉด ์ด ๊ธ์ ์ ํฉํ์ง ์์ ์ ์๋ค. TL;DR ์ด๋ฒ ๊ธ์ ํต์ฌ์ ์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค 1. ์บ์๋ ๋ฌด์์ธ๊ฐ cache: ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ ๋ฏธ๋์ ํด๋น ๋ฐ์ดํฐ์ ๋ํ ์์ฒญ์ ๋ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ hardware ํน์ software cache ์ ์ข ๋ฅ h/w ca.. 2024. 2. 1. ์คํ์ ํ์ด์ง, ๋จ๊ณ๋ณ๋ก ์ต์ ํํ๊ธฐ ์ด ๊ธ์ offset based pagination ์ ๋น๋ฏธ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด๋ถ ๋์๊ณผ ์ฌ๋ฌ ๊ฐ๋ ๋ค์ ์์๋ณด๋ ๊ธ ์ ๋๋ค. 2๊ฐ์ ๊ธ๋ก ๊ตฌ์ฑ๋์ด ์๊ณ , ๊ฐ๊ฐ์ ๊ธ์์ ์ป์ ์ ์๋ insight ๊ฐ ๋ค๋ฅด๋ ํจ๊ป ์ฝ์ผ๋ฉด ๋์ฑ ์ ์ตํฉ๋๋ค. ์คํ์ ํ์ด์ง์ด ๋๋ฆฐ ์ง์ง ์ด์ ์คํ์ ํ์ด์ง, ๋จ๊ณ๋ณ๋ก ์ต์ ํํ๊ธฐ 2023. 11. 19. ์คํ์ ํ์ด์ง์ด ๋๋ฆฐ ์ง์ง ์ด์ ์ด ๊ธ์ offset based pagination ์ ๋น๋ฏธ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด๋ถ ๋์๊ณผ ์ฌ๋ฌ ๊ฐ๋ ๋ค์ ์์๋ณด๋ ๊ธ ์ ๋๋ค. 2๊ฐ์ ๊ธ๋ก ๊ตฌ์ฑ๋์ด ์๊ณ , ๊ฐ๊ฐ์ ๊ธ์์ ์ป์ ์ ์๋ insight ๊ฐ ๋ค๋ฅด๋ ํจ๊ป ์ฝ์ผ๋ฉด ๋์ฑ ์ ์ตํฉ๋๋ค. ์คํ์ ํ์ด์ง์ด ๋๋ฆฐ ์ง์ง ์ด์ ๋๋ฆผ์ ๊ทผ๋ณธ์ ์ธ ์์ธ 0๋ฒ offset ๋ถํฐ ์์ offset ๊น์ง์ ๋ฐ์ดํฐ๋ ๋ฒ๋ ค์ง๊ณ 10๊ฑด๋ง ๊ฒฐ๊ณผ๋ก ๋ฐํ๋จ offset based pagination ์ด ๋๋ฆฐ ์ด์ ๋ฌธ์ ๋ ์ ๋ ฌ ๋ฐฉ์์ ์์ ์ ๋ ฌ์ ์ํด ๊ฒฐ๊ณผ ์ฒ๋ฆฌ๋ฅผ streaming ์ด ์๋ buffering ๋ฐฉ์์ผ๋ก ์ ํ streaming vs buffering streaming: ์ฟผ๋ฆฌ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ฆ์ client ์๊ฒ ๋ฐํ LIMIT ๊ตฌ๋ฌธ๊ณผ ํจ๊ป ์ฌ์ฉํ ๋ ์ด์ ์กด์ฌ bufferi.. 2023. 11. 19. [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. ์ด์ 1 2 3 4 ยทยทยท 7 ๋ค์