๐ฌweb application40 100๋ง๊ฐ 1000๋ง๊ฐ์ ๋๋ฏธ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ TL;DR ์ด๋ฒ ๊ธ์ ํต์ฌ์ ์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค ๊ฐ์ฅ ํจ์จ์ ์ธ ๋๋ฏธ๋ฐ์ดํฐ ์์ฑ ๋ฐฉ๋ฒtemp table ์ ์ด์ฉํ์ฌ insert Query ๋ ๋ฆฌ๊ธฐtemp table ์์ฑgenerate_series ์ random ํจ์๋ฅผ ์ด์ฉํ์ฌ insertdocker-compose ๋ก ์คํdocker-compose ์ด์ฉํ๊ธฐapplication runner ์ด์ฉํ๊ธฐ๋ฑ๋ฑ ๊ฐ์ฅ ํจ์จ์ ์ธ ๋๋ฏธ๋ฐ์ดํฐ ์์ฑ ๋ฐฉ๋ฒ DB ๋ Application ์ ์ฒ๋ฆฌ๋ ํน์ ํน์ ๋๋ ๋ฐ์ดํฐ์ ์ํฉ์ ํ ์คํธํ๊ธฐ ์ํด ๋๋ฏธ ๋ฐ์ดํฐ๊ฐ ํ์ํ๋ค. excel, mockaroo, bulk insert ๋ฑ๋ฑ ๋ค์ํ ๋ฐฉ๋ฒ์ ์ด์ฉํด์ ๋๋์ ๋ฐ์ดํฐ๊ฐ ์๋ ์ค์ต ํ๊ฒฝ์ ๊ตฌ์ฑํด๋ดค๋๋ฐ ์ผ์ด์ค์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ง๋ง ์ด ๋ฐฉ๋ฒ์ด ๊ฐ์ฅ ํจ์จ์ ์ด์๋ค. ์๋์ ํต์ฌ ์ปจ์ ๋ง ์ดํดํ.. 2024. 10. 20. 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. ์ด์ 1 2 3 4 ยทยทยท 7 ๋ค์