What is Cache?
Cache์ ๋ํด ์์๋ณด์์
References: jehovah's brunch
Cache๋?
ํ ๋ฒ ์ฝ์ด์จ data๋ฅผ ์์์ ๊ณต๊ฐ์ ์ ์ฅํ์ฌ,
๋ค์์ ์ฝ์ ๋๋ ๋น ๋ฅด๊ฒ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ์ ์ ์๋๋ก ๋์์ฃผ๋ ๊ณต๊ฐ
๊ฐ์ ์์ฒญ์ด ์ฌ๋ฌ๋ฒ ๋ค์ด์ค๋ ๊ฒฝ์ฐ Cache Server ์์ ๋ฐ๋ก ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํด์ฃผ๊ธฐ ๋๋ฌธ์ DB ๋ถํ๋ฅผ ์ค์ผ ์ ์๋ค
ํ๋ก๊ทธ๋จ์ด ์ํ๋ ๋ ๋ํ๋๋ ์ง์ญ์ฑ์ ์ด์ํ์ฌ memory๋ disk ์์ ์ฌ์ฉ๋์๋ ๋ด์ฉ์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๋ ๊ณณ์ ๋ณด๊ดํ๊ณ , ๊ด๋ฆฌํจ์ผ๋ก์จ ๋ค์์ ํ์ํ ๋ ๋น ๋ฅด๊ฒ ์ฐธ์กฐํ ์ ์๋๋ก ํ๋ ๊ฒ
์ฆ, ์ฌ์ฉ๋์๋ data ๋ ๋ค์ ์ฌ์ฉ๋์ด์ง ๊ฐ๋ฅ์ฑ์ด ๋๋ค ๋ผ๋ ๊ฐ๋ ์ ์ด์ฉํ ๊ฒ
๋ค์ ์ฌ์ฉ๋ ํ๋ฅ ์ด ๋์ data๋ค์ ์ข ๋ ๋น ๋ฅด๊ฒ ์ ๊ทผ ๊ฐ๋ฅํ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค!
์ฌ์ฉ ํจํด
Cache ์ฌ์ฉ ํจํด 1 - Data Cache
Client๊ฐ web server์ request๋ฅผ ๋ณด๋ด๋ฉด, web server๋ DB์์ data๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ ์ Cache ์ data๊ฐ ์๋์ง ํ์ธํ๋ค
Cache server์ data๊ฐ ์์ผ๋ฉด,
Data๋ฅผ DB์ ์์ฒญํ์ง ์๊ณ , client์ cache๋ data๋ฅผ ๋ฐํํ๋ค
์ด๊ฒ์
Cache hit
๋ผ๊ณ ํ๋ค
Cache server์ data๊ฐ ์์ผ๋ฉด,
Cache miss
์ ์ํฉ์ด๋ฉฐ, DB์ ํด๋น data๋ฅผ ์์ฒญํ๋คDB๋ ์ฌ์ฉ์๊ฐ ์ํ๋ data๋ฅผ ๋ฐํํด์ฃผ๊ณ ,
Web Server๋ ๋ฐํ๋ data๋ฅผ ๋ค์์ ์ฌ์ฉํ ์ ์๋๋ก cache์ ์ ์ฅํ ํ client์ ๋ฐํํ๋ค
์ดํ์ ๊ฐ์ ์์ฒญ์ด ์ฌ ๋ cache์ ์ ์ฅ๋ data๋ฅผ ๋ฐํํ ์ ์์ผ๋ฏ๋ก
Cache hit
์ด ๋ฐ์ํ๋ค
์ด ๊ตฌ์กฐ๋ Static assets๋ฅผ cache ํด์ฃผ๋ CDN service์ ๋์ผํ ๊ตฌ์กฐ์ด๋ค
Amazon CloudFront
์ ๊ฐ์ CDN service๋ค์ data ์๋ณธ์ ๊ฐ์ง๊ณ ์๋ origin (ex. Amazon S3) ์ data๋ฅผ cacheํด์,๋ค์์ ๊ฐ์ ์์ฒญ์ด ์์ ๋ origin data๋ฅผ ์์ฒญํ์ง ์๊ณ ๋ฐ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ ์ ์๋ค
Cache ์ฌ์ฉ ํจํด 2 - ๋์๋ค๋ฐ์ ์ธ ์ฐ๊ธฐ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ
๋์๋ค๋ฐ์ ์ฐ๊ธฐ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ DB์ ๊ฐ์๊ธฐ ์ฐ๊ธฐ ์์ฒญ์ด ๋ชฐ๋ ค์ DB๊ฐ ํฐ์ง ์ ์๋๋ฐ, ์ด๋ด ๋ Cache๋ฅผ ํ์ฉํ ์ ์๋ค
Client๋ web server์ ์ฐ๊ธฐ ์์ฒญ์ ํ๊ณ ,
web server๋ cache์ data๋ฅผ writeํ ํ ๋ฐ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค
Cache๋ ๋ณดํต memory๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์๋๊ฐ ์๋นํ ๋น ๋ฅด๋ค
๋ฐ๋ก ์๋ํ๊ณ ์๋ worker server ๋ค์
cache server์ ์๋ data๋ฅผ ๊ฐ์ ธ์์
์์ ์ ์ํํ๊ณ ,
๊ฒฐ๊ณผ๋ฅผ DB์ writeํ๋ค
์ด๋ ๊ฒ ํจ์ผ๋ก์จ DB๋ ์์ฐจ์ ์ผ๋ก transaction์ ์ฒ๋ฆฌํ ์ ์๊ฒ ๋๋ค
Terms
Cache hit
์ฐธ์กฐํ๊ณ ์ ํ๋ data๊ฐ cache์ ์กด์ฌํ๊ณ ์์ ๊ฒฝ์ฐ
Cache miss
์ฐธ์กฐํ๊ณ ์ ํ๋ data๊ฐ cache์ ์กด์ฌํ์ง ์์ ๋
Last updated