๐ฌweb application/- System architecture5 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. 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. CQRS ํจํด์ ๋ํ ์คํด ํ๊ธฐ ๋ชฉ์ฐจ ๋์ Query ์ Command ๋? CQRS ๋ CQRS ์ ์ฅ๋จ์ ๋์ ํ์ฌ ์์คํ ์ด ์ ํต์ ์ธ CRUD ์ ํ๋ฆฌ์ผ์ด์ ์์ Event ๊ธฐ๋ฐ์ ์์คํ ์ผ๋ก ๋ฐ๋์ด ๊ฐ๋ ๊ณผ์ ์ ํ์ ํฉ๋ฅ๋ฅผ ํ๊ฒ ๋์ด ๋์ ์ต๊ทผ ๊ฐ์ฅ ํฐ ๊ด์ฌ์ฌ๊ฐ ๋ฐ๋ก ์ด CQRS ์ด๋ค. ํ๋ถ ์์ ์๋ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๊ณต๋ถํ๋ฉฐ ์ ๊น ์ ๊น ๋ดค๋ CQRS ๋ ์ด๋ฆ ๋ถํฐ ์์ํ๊ธฐ์ ๊ฒ์ ๋จน์๋ ๊ธฐ์ต์ด ๋๋ค. ํ์ง๋ง CQRS ์ ์๋ฆฌ ์์ฒด๋ ์ฌ์ค ๋๊ฒ ๊ฐ๋จํ๋ค Command ์ Query ๋ฅผ ๋ถ๋ฆฌํ์! Command ์ Query ๋ฅผ ๋จผ์ ์ ์ํ๊ณ ์ด์ผ๊ธฐ๋ฅผ ๊ณ์ ํด๋ณด์ Query ์ Command ๋? Query ์ Command ์ ๋ํด์ ์ด์ผ๊ธฐ ํ๊ธฐ ์ํด์๋ CQS ์ ๋ํด์ ๋จผ์ ์์๋ณผ ํ์๊ฐ ์๋ค. CQS ๋ Design By Contr.. 2022. 6. 11. [Event-Driven-Architecture] Message Oriented Middleware๊ณผ Message Broker์ ์ฐจ์ด ๋ฐ ์๋ฆฌ ๋ชฉ์ฐจ ๋ฏธ๋ค์จ์ด๋? MOM ์ด๋? MOM ๊ตฌ์ฑ์์ MOM vs without MOM Messaging ์ 2๊ฐ์ง ๋ฐฉ์ PTP Messaging Pub/Sub Messaging Message Broker ๋ํ์ ์ธ MOM ์๋ฃจ์ ์ค๋์ ์์ฆ ๋ง์ ๋ถ์ผ์์ ์ฑํ๋์ด ์ฌ์ฉ๋๊ณ ์๋ Message Oriented Middleware ์ ๋ํด์ ์์๋ณด๋ ค ํ๋ค. Message Oriented Middleware, MOM ์ด๋ ํ๋์ ์ํํธ์จ์ด๋ ์๋ฃจ์ ๋ณด๋ค๋ ๋ ์์ ๊ฐ๋ ์ผ๋ก ์ํคํ ์ฒ ํจํด์ด๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ์ ํด๋นํ๋ค๊ณ ์๊ฐํ๋ค. ๋ฌผ๋ก MOM์ ์ํคํผ๋์์์๋ ์์ฉ ์ํํธ์จ์ด ๊ฐ์ ๋ฐ์ดํฐ ํต์ ์ ์ํ ์ํํธ์จ์ด๋ผ๊ณ ๋ถ๋ฅด์ง๋ง ์ฐ๋ฆฌ๋ ์กฐ๊ธ ๋ ํฐ ๊ฐ๋ ์์ ์ดํดํด๋ณด์. ์ด๋ฐ MOM ์ ์ดํดํ๊ธฐ ์ํด์๋ ์ฐ์ Middlew.. 2021. 5. 19. ์ด์ 1 ๋ค์