[REDIS] ๐ ์บ์(Cache) ์ค๊ณ ์ ๋ต ์ง์นจ ๐ฏ ์ด์ ๋ฆฌ
Redis - ์บ์(Cache) ์ ๋ต
์บ์ฑ ์ ๋ต์ ์น ์๋น์ค ํ๊ฒฝ์์ ์์คํ ์ฑ๋ฅ ํฅ์์ ๊ธฐ๋ํ ์ ์๋ ์ค์ํ ๊ธฐ์ ์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก ์บ์(cache)๋ ๋ฉ๋ชจ๋ฆฌ(RAM)๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ์๋ตํ ์ ์์ด ์ด์ฉ์์๊ฒ ๋น ๋ฅด๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋ค.
ํ์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก RAM์ ์ฉ๋์ ์ปค๋ด์ผ 16 ~ 32G ์ ๋๋ผ, ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์บ์์ ์ ์ฅํด๋ฒ๋ฆฌ๋ฉด ์ฉ๋ ๋ถ์กฑ ํ์์ด ์ผ์ด๋ ์์คํ ์ด ๋ค์ด ๋ ์ ์๋ค.
๋ฐ๋ผ์ ์ด๋ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ์บ์์ ์ ์ฅํ ์ง, ์ผ๋งํผ ๋ฐ์ดํฐ๋ฅผ ์บ์์ ์ ์ฅํ ์ง, ์ผ๋ง๋์ ์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ์บ์์์ ์ ๊ฑฐํ๋์ง์ ๋ํ '์ง์นจ ์ ๋ต' ์ ์์งํ ํ์๊ฐ ์๋ค.
์บ์๋ฅผ ํจ์จ์ ์ผ๋ก ์ด์ฉํ๊ธฐ์ํด์๋ ์บ์์ ์ ์ฅํ ๋ฐ์ดํฐ ํน์ฑ๋ ๊ณ ๋ คํด์ผ ํ๋ค.
์๋ฅผ๋ค์ด ์์ฃผ ์กฐํ๋๋ ๋ฐ์ดํฐ, ๊ฒฐ๊ณผ๊ฐ์ด ์์ฃผ ๋ณ๋๋์ง ์๊ณ ์ผ์ ํ ๋ฐ์ดํฐ, ์กฐํํ๋๋ฐ ์ฐ์ฐ์ด ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํด๋๋ฉด ์ข๋ค.
์ด์ Redis๋ฅผ ์๊ฐํ๋ ๊ธ ์์ ์ ๊น ๋ ๋์ค ์บ์ ํ์ฉ์ฌ๋ก๋ฅผ ๋ค์์๋๋ฐ, ์ด๋ฒ ์๊ฐ์๋ ์บ์ ๋ฐฐ์น ์ ๋ต ์ข ๋ฅ์ ๋ํด ์ข๋ ์์ธํ ์์๋ณด๊ณ , redis์์ ์บ์ฌ๋ฅผ ๋ค๋ฃฐ๋ ์ด๋ค ์ ์ ์ ์ํด์ ์ค๊ณ ํด์ผ ๋๋์ง ์ ์ ํ ์บ์ฑ ์ ๋ต ์ ํ ์ง์นจ ์ด๋ก ์ ์ ๋ฆฌํด ๋ณผ ์์ ์ด๋ค.
๋ ธ๋๋ ์คํ๋ง์ผ๋ก ์๋ฒ๋ฅผ ๋ง๋๋๋ฐ ์์ด, ์์ ์ ํ๋ก์ ํธ์ ์บ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฉํ๋ ค ํ ๋, ์์ฒญ(request)์ด ๋ผ์ฐํฐ์ ์ค๋ฉด ์ด๋ ์ํฉ์์ ์ด๋ค์์ผ๋ก ์บ์๋ฅผ ์ฌ์ฉํ ๊ฒ์ธ์ง ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์๋น์ค๊ฐ ๋น ๋ฆฟ๋น ๋ฆฟํ๊ฒ ๋์๊ฐ๋๋ก ์ค๊ณ ํ๋๋ฐ ์์ด ์ฐธ๊ณ ๊ฐ ๋๊ธฐ๋ฅผ ๋ฐ๋๋ค.
์ฐธ๊ณ ๋ก ๋ค์ด๊ฐ๊ธฐ ์์ ์ ์ ์ง์์ด ํ์ํ๋ฐ, ๋ฐ๋ก cache hit ๊ณผ cache miss ์ด๋ค.
- cache hit : ์บ์ ์คํ ์ด(redis)์ ๋ฐ์ดํฐ๊ฐ ์์ ๊ฒฝ์ฐ ๋ฐ๋ก ๊ฐ์ ธ์ด (๋น ๋ฆ)
- cache miss : ์บ์ ์คํ ์ด(redis)์ ๋ฐ์ดํฐ๊ฐ ์์ ๊ฒฝ์ฐ ์ด์ฉ์์์ด DB์์ ๊ฐ์ ธ์ด (๋๋ฆผ)
์บ์ฑ ์ ๋ต ํจํด ์ข ๋ฅ
์บ์๋ฅผ ์ด์ฉํ๊ฒ ๋๋ฉด ๋ฐ๋์ ๋ฅ์ณ์ค๋ ๋ฌธ์ ์ ์ด ์๋๋ฐ ๋ฐ๋ก ๋ฐ์ดํฐ ์ ํฉ์ฑ ๋ฌธ์ ์ด๋ค.
๋ฐ์ดํฐ ์ ํฉ์ฑ์ด๋, ์ด๋ ํ ๋ฐ์ดํฐ๊ฐ ์บ์(Cache Store)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Data Store) ์ด ๋ ๊ณณ์์ ๊ฐ์ ๋ฐ์ดํฐ์์๋ ๋ถ๊ตฌํ๊ณ ๋ฐ์ดํฐ ์ ๋ณด๊ฐ์ด ์๋ก ๋ค๋ฅธ ํ์์ ๋งํ๋ค.
์ฝ๊ฒ ๋งํ๋ฉด, ์บ์์๋ ์ด๋ค ๊ฒ์๊ธ์ ์ข์์ ๊ฐฏ์๊ฐ 10๊ฐ๋ก ์ ์ฅ๋์ด ์๋๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ 7๊ฐ๋ก ์ ์ฅ๋์ด์์ ๊ฒฝ์ฐ ์ ๋ณด ๋ถ์ผ์น๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค.
์ด์ ์๋ ๊ทธ๋ฅ DB์์ ๋ฐ์ดํฐ ์กฐํ์ ์์ฑ์ ์ฒ๋ฆฌํ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์ ํฉ์ฑ ๋ฌธ์ ๊ฐ ๋ํ๋์ง ์์์ง๋ง, ์บ์๋ผ๋ ๋๋ค๋ฅธ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ์ด์ฉํ๊ธฐ ๋๋ฌธ์, ๊ฒฐ๊ตญ ๊ฐ์ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ผ๋ ๋ ์ ์ฅ์์์ ์ ์ฅ๋ ๊ฐ์ ์๋ก ๋ค๋ฅผ์ ์๋ ํ์์ด ์ผ์ด๋ ์ ๋ฐ์ ์๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ ์ ์ ํ ์บ์ ์ฝ๊ธฐ ์ ๋ต(Read Cache Strategy)๊ณผ ์บ์ ์ฐ๊ธฐ ์ ๋ต(Write Cache Strategy)์ ํตํด, ์บ์์ DB๊ฐ์ ๋ฐ์ดํฐ ๋ถ์ผ์น ๋ฌธ์ ๋ฅผ ๊ทน๋ณตํ๋ฉด์๋ ๋น ๋ฅธ ์ฑ๋ฅ์ ์์ง ์๊ฒ ํ๊ธฐ ์ํด ๊ณ ์ฌํ ์ฐ๊ตฌ๋ฅผ ํ ํ์๊ฐ ์๋ค.
์บ์ ์ฝ๊ธฐ ์ ๋ต (Read Cache Strategy)
Look Aside ํจํด
- Cache Aside ํจํด์ด๋ผ๊ณ ๋ ๋ถ๋ฆผ.
- ๋ฐ์ดํฐ๋ฅผ ์ฐพ์๋ ์ฐ์ ์บ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ์๋์ง ์ฐ์ ์ ์ผ๋ก ํ์ธํ๋ ์ ๋ต.
๋ง์ผ ์บ์์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด DB์์ ์กฐํํจ. - ๋ฐ๋ณต์ ์ธ ์ฝ๊ธฐ๊ฐ ๋ง์ ํธ์ถ์ ์ ํฉ.
- ์บ์์ DB๊ฐ ๋ถ๋ฆฌ๋์ด ๊ฐ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ํ๋ ๋ฐ์ดํฐ๋ง ๋ณ๋๋ก ๊ตฌ์ฑํ์ฌ ์บ์์ ์ ์ฅ
- ์บ์์ DB๊ฐ ๋ถ๋ฆฌ๋์ด ๊ฐ์ฉ๋๊ธฐ ๋๋ฌธ์ ์บ์ ์ฅ์ ๋๋น ๊ตฌ์ฑ์ด ๋์ด์์.
๋ง์ผ redis๊ฐ ๋ค์ด ๋๋๋ผ๋ DB์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ์ ์์ด ์๋น์ค ์์ฒด๋ ๋ฌธ์ ๊ฐ ์์. - ๋์ ์ ์บ์์ ๋ถ์ด์๋ connection์ด ๋ง์๋ค๋ฉด, redis๊ฐ ๋ค์ด๋ ์๊ฐ ์๊ฐ์ ์ผ๋ก DB๋ก ๋ชฐ๋ ค์ ๋ถํ ๋ฐ์.
Look Asdie Cache ํจํด์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์บ์ฑ์ ์ด์ฉํ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ์ ์ธ ์บ์ ์ ๋ต์ด๋ค.
์ด ๋ฐฉ์์ ์บ์์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ DB์ ์์ฒญ์ ์ ๋ฌํจ์ผ๋ก์จ ์บ์ ์ฅ์ ๋ก ์ธํ ์๋น์ค ๋ฌธ์ ๋ ๋๋นํ ์ ์์ง๋ง, Cache Store์ Data Store(DB)๊ฐ ์ ํฉ์ฑ ์ ์ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ์ด๊ธฐ ์กฐํ ์ ๋ฌด์กฐ๊ฑด Data Store๋ฅผ ํธ์ถ ํด์ผ ํ๋ฏ๋ก ๋จ๊ฑด ํธ์ถ ๋น๋๊ฐ ๋์ ์๋น์ค์ ์ ํฉํ์ง ์๋ค. ๋์ ๋ฐ๋ณต์ ์ผ๋ก ๋์ผ ์ฟผ๋ฆฌ๋ฅผ ์ํํ๋ ์๋น์ค์ ์ ํฉํ ์ํคํ ์ฒ์ด๋ค.
์ด๋ฐ ๊ฒฝ์ฐ DB์์ ์บ์๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋ฆฌ ๋ฃ์ด์ฃผ๋ ์์ ์ ํ๊ธฐ๋ ํ๋๋ฐ ์ด๋ฅผ Cache Warming์ด๋ผ๊ณ ํฉ๋๋ค.
[ Cache Warming ]
๋ฏธ๋ฆฌ cache๋ก db์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ด ๋ฃ์ด๋๋ ์์ ์ ์๋ฏธํ๋ค.
์ด ์์ ์ ์ํํ์ง ์์ผ๋ฉด ์๋น์ค ์ด๊ธฐ์ ํธ๋ํฝ ๊ธ์ฆ์ ๋๋์ cache miss ๊ฐ ๋ฐ์ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ถํ๊ฐ ๊ธ์ฆ ํ ์ ์๋ค. (Thundering Herd)
๋ค๋ง, ์บ์ ์์ฒด๋ ์ฉ๋์ด ์์ ๋ฌดํ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ค๊ณ ์์์๋ ์์ด ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด expire๋๋๋ฐ, ๊ทธ๋ฌ๋ฉด ๋ค์ Thundering Herd๊ฐ ๋ฐ์๋ ์ ์๊ธฐ ๋๋ฌธ์ ์บ์์ TTL์ ์ ์กฐ์ ํ ํ์๊ฐ ์๋ค. (๋ค์์ ์์ธํ ์ค๋ช )
Thundering Herd๋ ๋ชจ๋ ์ง์ ์์ ๋ฐ์๋๋ ๊ฒ์ ์๋๊ณ , ์๋น์ค์ ์ฒซ ํ์ด์ง์ ๊ฐ์ ๋๋ถ๋ถ์ ์กฐํ๊ฐ ๋ชฐ๋ฆฌ๋ ์ง์ ์์ ์ฃผ๋ก ๋ฐ์๋๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
Read Through ํจํด
- ์บ์์์๋ง ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ์ ๋ต (inline cache)
- Look Aside ์ ๋น์ทํ์ง๋ง ๋ฐ์ดํฐ ๋๊ธฐํ๋ฅผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ์บ์ ์ ๊ณต์์๊ฒ ์์ํ๋ ๋ฐฉ์์ด๋ผ๋ ์ฐจ์ด๊ฐ ์์.
- ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋๋ฐ ์์ด ์ ์ฒด์ ์ผ๋ก ์๋๊ฐ ๋๋ฆผ.
- ๋ํ ๋ฐ์ดํฐ ์กฐํ๋ฅผ ์ ์ ์ผ๋ก ์บ์์๋ง ์์งํ๋ฏ๋ก, redis๊ฐ ๋ค์ด๋ ๊ฒฝ์ฐ ์๋น์ค ์ด์ฉ์ ์ฐจ์ง์ด ์๊ธธ์ ์์.
- ๋์ ์ ์บ์์ DB๊ฐ์ ๋ฐ์ดํฐ ๋๊ธฐํ๊ฐ ํญ์ ์ด๋ฃจ์ด์ ธ ๋ฐ์ดํฐ ์ ํฉ์ฑ ๋ฌธ์ ์์ ๋ฒ์ด๋ ์ ์์
- ์ญ์ ์ฝ๊ธฐ๊ฐ ๋ง์ ์ํฌ๋ก๋์ ์ ํฉ
Read Through ๋ฐฉ์์ Cache Aside ๋ฐฉ์๊ณผ ๋น์ทํ์ง๋ง, Cache Store์ ์ ์ฅํ๋ ์ฃผ์ฒด๊ฐ Server์ด๋ ๋๋ Data Store ์์ฒด์ด๋์์ ์ฐจ์ด์ ์ด ์๋ค.
์ด ๋ฐฉ์์ ์ง์ ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ์ ์ต์ํํ๊ณ Read ์ ๋ํ ์๋ชจ๋๋ ์์์ ์ต์ํํ ์ ์๋ค.
ํ์ง๋ง ์บ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์์ ๊ฒฝ์ฐ ์ด๋ ๋ฐ๋ก ์๋น์ค ์ ์ฒด ์ค๋จ์ผ๋ก ๋น ์ง ์ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ redis๊ณผ ๊ฐ์ ๊ตฌ์ฑ ์์๋ฅผ Replication ๋๋ Cluster๋ก ๊ตฌ์ฑํ์ฌ ๊ฐ์ฉ์ฑ์ ๋์ฌ์ผ ํ๋ค.
์ด ๋ฐฉ์ ๋ํ ์๋น์ค ์ด์ ์ด๋ฐ์ cache warming์ ์ํํ๋ ๊ฒ์ด ์ข๋ค.
์บ์ ์ฐ๊ธฐ ์ ๋ต (Write Cache Strategy)
Write Back ํจํด
- Write Behind ํจํด ์ด๋ผ๊ณ ๋ ๋ถ๋ฆผ.
- ์บ์์ DB ๋๊ธฐํ๋ฅผ ๋น๋๊ธฐํ๊ธฐ ๋๋ฌธ์ ๋๊ธฐํ ๊ณผ์ ์ด ์๋ต
- ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ DB์ ๋ฐ๋ก ์ฟผ๋ฆฌํ์ง์๊ณ , ์บ์์ ๋ชจ์์ ์ผ์ ์ฃผ๊ธฐ ๋ฐฐ์น ์์ ์ ํตํด DB์ ๋ฐ์
- ์บ์์ ๋ชจ์๋จ๋ค๊ฐ DB์ ์ฐ๊ธฐ ๋๋ฌธ์ ์ฐ๊ธฐ ์ฟผ๋ฆฌ ํ์ ๋น์ฉ๊ณผ ๋ถํ๋ฅผ ์ค์ผ ์ ์์
- Write๊ฐ ๋น๋ฒํ๋ฉด์ Read๋ฅผ ํ๋๋ฐ ๋ง์ ์์ Resource๊ฐ ์๋ชจ๋๋ ์๋น์ค์ ์ ํฉ
- ๋ฐ์ดํฐ ์ ํฉ์ฑ ํ๋ณด
- ์์ฃผ ์ฌ์ฉ๋์ง ์๋ ๋ถํ์ํ ๋ฆฌ์์ค ์ ์ฅ.
- ์บ์์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ ์์คํจ.
Write Back ๋ฐฉ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ DB๊ฐ ์๋ ๋จผ์ ์บ์์ ์ ์ฅํ์ฌ ๋ชจ์๋์๋ค๊ฐ ํน์ ์์ ๋ง๋ค DB๋ก ์ฐ๋ ๋ฐฉ์์ผ๋ก ์บ์๊ฐ ์ผ์ข ์ Queue ์ญํ ์ ๊ฒธํ๊ฒ ๋๋ค.
์บ์์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์๋ค๊ฐ ํ ๋ฒ์ DB์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ DB ์ฐ๊ธฐ ํ์ ๋น์ฉ๊ณผ ๋ถํ๋ฅผ ์ค์ผ ์ ์์ง๋ง, ๋ฐ์ดํฐ๋ฅผ ์ฎ๊ธฐ๊ธฐ ์ ์ ์บ์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ฐ์ดํฐ ์ ์ค์ด ๋ฐ์ํ ์ ์๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ค. ํ์ง๋ง ์คํ๋ ค ๋ฐ๋๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์ง์์ ์ธ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋๋ก ๋ณด์ฅํ๊ธฐ๋ ํ๋ค.
์ด ์ ๋ต ๋ํ ์บ์์ Replication์ด๋ Cluster ๊ตฌ์กฐ๋ฅผ ์ ์ฉํจ์ผ๋ก์จ Cache ์๋น์ค์ ๊ฐ์ฉ์ฑ์ ๋์ด๋ ๊ฒ์ด ์ข์ผ๋ฉฐ, ์บ์ ์ฝ๊ธฐ ์ ๋ต์ธ Read-Through์ ๊ฒฐํฉํ๋ฉด ๊ฐ์ฅ ์ต๊ทผ์ ์ ๋ฐ์ดํธ๋ ๋ฐ์ดํฐ๋ฅผ ํญ์ ์บ์์์ ์ฌ์ฉํ ์ ์๋ ํผํฉ ์ํฌ๋ก๋์ ์ ํฉํ๋ค.
Write Through ํจํด
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ Cache์ ๋์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ ๋ต
- ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ๋จผ์ ์บ์์ ์ ์ฅํ ๋ค์ ๋ฐ๋ก DB์ ์ ์ฅ (๋ชจ์๋์๋ค๊ฐ ๋์ค์ ์ ์ฅ์ด ์๋ ๋ฐ๋ก ์ ์ฅ)
- Read Through ์ ๋ง์ฐฌ๊ฐ์ง๋ก DB ๋๊ธฐํ ์์ ์ ์บ์์๊ฒ ์์
- DB์ ์บ์๊ฐ ํญ์ ๋๊ธฐํ ๋์ด ์์ด, ์บ์์ ๋ฐ์ดํฐ๋ ํญ์ ์ต์ ์ํ๋ก ์ ์ง
- ์บ์์ ๋ฐฑ์ ์ ์ฅ์์ ์ ๋ฐ์ดํธ๋ฅผ ๊ฐ์ด ํ์ฌ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์์ด์ ์์ ์
- ๋ฐ์ดํฐ ์ ์ค์ด ๋ฐ์ํ๋ฉด ์ ๋๋ ์ํฉ์ ์ ํฉ
- ์์ฃผ ์ฌ์ฉ๋์ง ์๋ ๋ถํ์ํ ๋ฆฌ์์ค ์ ์ฅ.
- ๋งค ์์ฒญ๋ง๋ค ๋๋ฒ์ Write๊ฐ ๋ฐ์ํ๊ฒ ๋จ์ผ๋ก์จ ๋น๋ฒํ ์์ฑ, ์์ ์ด ๋ฐ์ํ๋ ์๋น์ค์์๋ ์ฑ๋ฅ ์ด์ ๋ฐ์
- ๊ธฐ์ต์ฅ์น ์๋๊ฐ ๋๋ฆด ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋กํ ๋ CPU๊ฐ ๋๊ธฐํ๋ ์๊ฐ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ ๊ฐ์
Write Through ํจํด์ Cache Store์๋ ๋ฐ์ํ๊ณ Data Store์๋ ๋์์ ๋ฐ์ํ๋ ๋ฐฉ์์ด๋ค. (Write Back์ ์ผ์ ์๊ฐ์ ๋๊ณ ๋์ค์ ํ๊บผ๋ฒ์ ์ ์ฅ)
๊ทธ๋์ ํญ์ ๋๊ธฐํ๊ฐ ๋์ด ์์ด ํญ์ ์ต์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
ํ์ง๋ง ๊ฒฐ๊ตญ ์ ์ฅํ ๋๋ง๋ค 2๋จ๊ณ ๊ณผ์ ์ ๊ฑฐ์ณ์น๊ธฐ ๋๋ฌธ์ ์๋์ ์ผ๋ก ๋๋ฆฌ๋ฉฐ, ๋ฌด์กฐ๊ฑด ์ผ๋จ Cache Store์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์บ์์ ๋ฃ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ๋ง ํ๊ณ ์ฌ์ฉํ์ง ์์ ๊ฐ๋ฅ์ฑ์ด ์์ด์ ๋ฆฌ์์ค ๋ญ๋น ๊ฐ๋ฅ์ฑ์ด ์๋ค.
write throuth ํจํด๊ณผ write back ํจํด ๋ ๋ค ๋ชจ๋ ์์ฃผ ์ฌ์ฉ๋์ง ์๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ๋ฆฌ์์ค ๋ญ๋น๊ฐ ๋ฐ์๋๋ ๋ฌธ์ ์ ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์, ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด TTL์ ๊ผญ ์ฌ์ฉํ์ฌ ์ฌ์ฉ๋์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋์ ์ญ์ ํด์ผ ํ๋ค. (expire ๋ช ๋ น์ด)
Write-Through ํจํด๊ณผ Read-Through ํจํด์ ํจ๊ป ์ฌ์ฉํ๋ฉด, ์บ์์ ์ต์ ๋ฐ์ดํฐ ์ ์ง์ ๋๋ถ์ด ์ ํฉ์ฑ ์ด์ ์ ์ป์ ์ ์๋ค.
๋ํ์ ์ธ ์๋ก AWS์ DynamoDB Accelerator(DAX)๊ฐ ์๋ค.
DAX ํจํด์ ํตํด DynamoDB์ ๋ํ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ํํ ์ ์๋ค.
Write Around ํจํด
- Write Through ๋ณด๋ค ํจ์ฌ ๋น ๋ฆ
- ๋ชจ๋ ๋ฐ์ดํฐ๋ DB์ ์ ์ฅ (์บ์๋ฅผ ๊ฐฑ์ ํ์ง ์์)
- Cache miss๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์๋ง DB์ ์บ์์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
- ๋ฐ๋ผ์ ์บ์์ DB ๋ด์ ๋ฐ์ดํฐ๊ฐ ๋ค๋ฅผ ์ ์์ (๋ฐ์ดํฐ ๋ถ์ผ์น)
Write Around ํจํด์ ์๋๊ฐ ๋น ๋ฅด์ง๋ง, cache miss๊ฐ ๋ฐ์ํ๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋์์ ๋, ์ฌ์ฉ์๊ฐ ์กฐํํ๋ cache์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ๋ฐ์ดํฐ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค.
๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ์์ , ์ญ์ ๋ ๋๋ง๋ค, Cache ๋ํ ์ญ์ ํ๊ฑฐ๋ ๋ณ๊ฒฝํด์ผ ํ๋ฉฐ, Cache์ expire๋ฅผ ์งง๊ฒ ์กฐ์ ํ๋ ์์ผ๋ก ๋์ฒํด์ผ ํ๋ค.
Write Around ํจํด์ ์ฃผ๋ก Look aside, Read through์ ๊ฒฐํฉํด์ ์ฌ์ฉ๋๋ค.
๋ฐ์ดํฐ๊ฐ ํ ๋ฒ ์ฐ์ฌ์ง๊ณ , ๋ ์์ฃผ ์ฝํ๊ฑฐ๋ ์ฝ์ง ์๋ ์ํฉ์์ ์ข์ ์ฑ๋ฅ์ ์ ๊ณตํ๋ค.
์บ์ ์ฝ๊ธฐ + ์ฐ๊ธฐ ์ ๋ต ์กฐํฉ
Look Aside + Write Around ์กฐํฉ
- ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์์ฃผ ์ฐ์ด๋ ์กฐํฉ
Read Through + Write Around ์กฐํฉ
- ํญ์ DB์ ์ฐ๊ณ , ์บ์์์ ์ฝ์๋ ํญ์ DB์์ ๋จผ์ ์ฝ์ด์ค๋ฏ๋ก ๋ฐ์ดํฐ ์ ํฉ์ฑ ์ด์์ ๋ํ ์๋ฒฝํ ์์ ์ฅ์น๋ฅผ ๊ตฌ์ฑํ ์ ์์
Read Through + Write Through ์กฐํฉ
- ๋ฐ์ดํฐ๋ฅผ ์ธ๋ ํญ์ ์บ์์ ๋จผ์ ์ฐ๋ฏ๋ก, ์ฝ์ด์ฌ๋ ์ต์ ์บ์ ๋ฐ์ดํฐ ๋ณด์ฅ
- ๋ฐ์ดํฐ๋ฅผ ์ธ๋ ํญ์ ์บ์์์ DB๋ก ๋ณด๋ด๋ฏ๋ก, ๋ฐ์ดํฐ ์ ํฉ์ฑ ๋ณด์ฅ
์บ์ ์ ์ฅ ๋ฐฉ์ ์ง์นจ
์บ์ ์๋ฃจ์ ์ ์์ฃผ ์ฌ์ฉ๋๋ฉด์ ์์ฃผ ๋ณ๊ฒฝ๋์ง ์๋ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ์บ์ ์๋ฒ์ ์ ์ฉํ์ฌ ๋ฐ์ํ ๊ฒฝ์ฐ ๋์ ์ฑ๋ฅ ํฅ์์ ์ด๋ค๋ผ ์ ์๋ค. ์ด๋ฅผ Cache Hit Rating์ด๋ผ๊ณ ํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ์บ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋ ํํ๋ฅผ ์ ํธํ๋ค.
๋ฉ๋ชจ๋ฆฌ ์ ์ฅ์๋ก๋ ๋ํ์ ์ผ๋ก Redis์ MemCached๊ฐ ์์ผ๋ฉฐ ์ด์ ๊ฐ์ ์๋ฃจ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ 1์ฐจ ์ ์ฅ์๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋์คํฌ์ ๋ฌ๋ฆฌ ์ ์ฝ์ ์ธ ์ ์ฅ ๊ณต๊ฐ์ ์ฌ์ฉํ๊ฒ ๋๋ค.
๋ง์์ผ ์์ญ๊ธฐ๊ฐ ์ ๋์ ์ ์ฅ์๋ฅผ ๋ณด์ ํ๊ฒ ๋๋ฉฐ, ์ด๋ ๊ฒฐ๊ตญ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ฝ์ ์บ์์ ์ ์ฅํ๊ณ ์์ฃผ ์ฌ์ฉํ์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ ๊ฑฐํด ๋๊ฐ ๊ฒ์ด๋๋ฅผ ์ง์์ ์ผ๋ก ๊ณ ๋ฏผํด์ผ ํ ํ์์ฑ์ด ์๋ค.
๋ฐ๋ผ์ ์บ์๋ฅผ ์ ์ฅํ๋ ์์ ์ ์์ฃผ ์ฌ์ฉ๋๋ฉฐ ์์ฃผ ๋ณ๊ฒฝ๋์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋กํ๋ ๊ฒ์ด ์ข๋ค.
๋ํ ํ๊ฐ์ง ๊ณ ๋ฏผํด์ผ ํ ์ฌํญ์ ์บ์ ์๋ฃจ์
์ ์ธ์ ๋ ์ง ๋ฐ์ดํฐ๊ฐ ๋ ๋ผ๊ฐ ์ ์๋ ํ๋ฐ์ฑ์ ๊ธฐ๋ณธ์ผ๋ก ํ๋ค๋ ์ ์ด๋ค.
์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๋์คํฌ์ ์ ์ฅํจ์ผ๋ก์ ์ด๋์ ๋ ํด๊ฒฐ์ ๋ณผ์๋ ์์ง๋ง, ์ค์๊ฐ์ผ๋ก ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ ์ฅํ ๊ฒฝ์ฐ ์ฑ๋ฅ ์ ํ๋ฅผ ์ผ์ผํฌ ์ ์์ด ์ด๋ ์ ๋ ๋ฐ์ดํฐ ์์ง๊ณผ ์ ์ฅ ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง๋๋ก ์ค๊ณ ํด์ผ ๋๋ค.
์ฆ ๋ฐ์ดํฐ์ ์ ์ค ๋๋ ์ ํฉ์ฑ์ด ์ผ์ ๋ถ๋ถ ๊นจ์ง ์ ์๋ค๋ ์ ์ ํญ์ ๊ณ ๋ คํด์ผ ํ๋ค.
๋ฐ๋ผ์์บ์์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ ์ค์ํ ์ ๋ณด, ๋ฏผ๊ฐ ์ ๋ณด ๋ฑ์ ์ ์ฅํ์ง ์๋ ๊ฒ์ด ์ข์ผ๋ฉฐ, ์บ์ ์๋ฃจ์ ์ด ์ฅ์ ๊ฐ ๋ฐ์ํ์ ๊ฒฝ์ฐ ์ ์ ํ ๋์๋ฐฉ์์ ๋ชจ์ํด ๋๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค. (TimeOut, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐํ ๋ณํ ๋ฑ)
[ ํ๋ ํ ๋ฒ์น - 8:2 ๋ฒ์น ]
ํ๋ ํ ๋ฒ์น์ด๋ ์ ์ฒด ๊ฒฐ๊ณผ์ 80%๊ฐ ์ ์ฒด ์์ธ์ 20%์์ ์ผ์ด๋๋ ํ์์ ๊ฐ๋ฆฌํจ๋ค.
์๋น์ค์ ๋น๋์ด ํํํ์๋ฉด 80%์ ํ๋์ 20%์ ์ ์ ๊ฐ ํ๊ธฐ ๋๋ฌธ์ 20%์ ๋ฐ์ดํฐ๋ง ์บ์ ํด๋ ์๋น์ค ๋๋ถ๋ถ์ ๋ฐ์ดํฐ๋ฅผ ์ปค๋ฒํ ์ ์๊ฒ ๋๋ค๋ ๋ง์ด๋ค.
์ฆ, ์บ์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํ์ ์์ด "ํ๋ ํ ๋ฒ์น"์ ๋ฐ๋ผ ์ผ๋ถ๋ง ์ ์ฅํด๋ ๋๋ถ๋ถ์ ๋ฐ์ดํฐ๋ฅผ ์ปค๋ฒํ ์ ์๋ค๋ ์ ์ฅ ์ง์นจ์ด๋ค.
์บ์ ์ ๊ฑฐ ๋ฐฉ์ ์ง์นจ
์บ์ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ์บ์ ์๋ฒ์๋ง ๋จ๋ ์ผ๋ก ์ ์ฅ๋๋ ๊ฒฝ์ฐ๋ ์์ง๋ง, ๋๋ถ๋ถ ์๊ตฌ ์ ์ฅ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๋ณต์ฌ๋ณธ์ผ๋ก ๋์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
์ด๋ 2์ฐจ ์ ์ฅ์(์๊ตฌ ์ ์ฅ์)์ ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ์ ์บ์ ์๋ฃจ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํ ํ๋ ์์ ์ด ๋ฐ๋์ ํ์ํจ์ ์๋ฏธํ๋ฉฐ, ๊ฐ๋ฐ ๊ณผ์ ์ ๊ณ ๋ ค์ฌํญ์ด ๋์ด๋๋ค๋ ์ ์ ๋ฐ๋์ ๊ธฐ์ตํด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด ์บ์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ commit ์์ ์ ๋ํ ๊ณ ๋ ค ๋ฑ์ด ์๊ฐ ๋ ์ ์๋ค.
์บ์์ ๋ง๋ฃ ์ ์ฑ ์ด ์ ๋๋ก ๊ตฌํ๋์ง ์์ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ๋ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์์์๋ ์ค๋๋ ์ ๋ณด๊ฐ ์บ์ฑ ๋์ด์์ด ์ค๋๋ ์ ๋ณด๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๋ฌธ์ ์ ์ด ๋ฐ์ํ๋ค.
๋ฐ๋ผ์ ์บ์๋ฅผ ๊ตฌ์ฑํ ๋ ๊ธฐ๋ณธ ๋ง๋ฃ ์ ์ฑ
์ ์ค์ ํด์ผ ํ๋ค.
์บ์๋ ๋ฐ์ดํฐ๊ฐ ๊ธฐ๊ฐ ๋ง๋ฃ ๋๋ฉด ์บ์์์ ๋ฐ์ดํฐ๊ฐ ์ ๊ฑฐ ๋๊ณ , ์์ฉ ํ๋ก๊ทธ๋จ์ ์๋ ๋ฐ์ดํฐ ์ ์ฅ์์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ ํด์ผ ํ๋ค.
๊ทธ๋์ ์บ์ ๋ง๋ฃ ์ฃผ๊ธฐ๊ฐ ๋๋ฌด ์งง์ผ๋ฉด ๋ฐ์ดํฐ๋ ๋๋ฌด ๋นจ๋ฆฌ ์ ๊ฑฐ๋๊ณ ์บ์๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ์ค์ด๋ ๋ค.
๋ฐ๋๋ก ๋๋ฌด ๊ธฐ๊ฐ์ด ๊ธธ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๊ฐ๋ฅ์ฑ๊ณผ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ํ์์ด ๋ฐ์ํ๊ฑฐ๋, ์์ฃผ ์ฌ์ฉ๋์ด์ผ ํ๋ ๋ฐ์ดํฐ๊ฐ ์ ๊ฑฐ๋๋ ๋ฑ์ ์ญํจ๊ณผ๋ฅผ ๋ํ๋ผ ์๋ ์๋ค.
Cache Stampede ํ์
๋๊ท๋ชจ ํธ๋ํฝ ํ๊ฒฝ์์ TTL ๊ฐ์ด ๋๋ฌด ์๊ฒ ์ค์ ํ๋ฉด cache stampede ํ์์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
์์์ ๋ฐฐ์ ๋ฏ์ด Look-aside ํจํด์์ redis์ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ ์๋ต์ ๋ฐ์ ์๋ฒ (์บ์ ๋ฏธ์ค)๊ฐ ์ง์ DB๋ก ๋ฐ์ดํฐ ์์ฒญํ ๋ค, ๋ค์ redis์ ์ ์ฅํ๋ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
๊ทธ๋ฐ๋ฐ ์ ์ํฉ์์ key๊ฐ ๋ง๋ฃ(Key Expires)๋๋ ์๊ฐ ๋ง์ ์๋ฒ์์ ์ด key๋ฅผ ๊ฐ์ด ๋ณด๊ณ ์์๋ค๋ฉด ๋ชจ๋ ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ์์ DB๋ก ๊ฐ์ ์ฐพ๊ฒ ๋๋ duplicate read ๊ฐ ๋ฐ์ํ๋ค.
๋ ์ฝ์ด์จ ๊ฐ์ ๊ฐ ๊ฐ redis์ ์ฐ๋ duplicate write ๋ ๋ฐ์๋์ด, ์ฒ๋ฆฌ๋๋ ๋ค ๊ฐ์ด ๋๋ ค์ง ๋ฟ ์๋๋ผ ๋ถํ์ํ ์์ ์ด ๊ต์ฅํ ๋์ด๋ ์์ฒญ์ ํญ์ฃผ๋ก ์ฅ์ ๋ก ์ด์ด์ง ๊ฐ๋ฅ์ฑ ๋ ์๋ค.
์บ์ ๊ณต์ ๋ฐฉ์ ์ง์นจ
์บ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ์ธ์คํด์ค์์ ๊ณต์ ํ๋๋ก ์ค๊ณ๋๋ค.
๊ทธ๋์ ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ธ์คํด์ค๊ฐ ์บ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์์ ํ ์ ์๋ค.
๋ฐ๋ผ์ ์ด๋ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์บ์์ ๋ณด์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์ธ์คํด์ค๊ฐ ๋ง๋๋ ์ ๋ฐ์ดํธ๊ฐ ๋ค๋ฅธ ์ธ์คํด์ค๊ฐ ๋ง๋ ๋ณ๊ฒฝ์ ๋ฎ์ด์ฐ์ง ์๋๋ก ํด์ผ ํ๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฐ์ดํฐ ์ ํฉ์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด๋ค. (๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ง๋ค ํ์๋๋ ๊ฐฏ์๊ฐ ๋ฌ๋ผ์ง๋ ํ์)
๋ฐ์ดํฐ์ ์ถฉ๋์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๋ฐฉ์์ ์ทจํด์ผ ํ๋ค.
๋จผ์ , ์บ์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ง์ ์ ๋ฐ์ดํฐ๊ฐ ๊ฒ์๋ ์ดํ ๋ณ๊ฒฝ๋์ง ์์๋์ง ์ผ์ผํ ํ์ธํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ณ๊ฒฝ๋์ง ์์๋ค๋ฉด ์ฆ์ ์ ๋ฐ์ดํธํ๊ณ ๋ณ๊ฒฝ๋์๋ค๋ฉด ์ ๋ฐ์ดํธ ์ฌ๋ถ๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ๋ ๋ฒจ์์ ๊ฒฐ์ ํ๋๋ก ์์ ํด์ผ ํ๋ค.
์ด์ ๊ฐ์ ๋ฐฉ์์ ์
๋ฐ์ดํธ๊ฐ ๋๋ฌผ๊ณ ์ถฉ๋์ด ๋ฐ์ํ์ง ์๋ ์ํฉ์ ์ ์ฉํ๊ธฐ ์ฉ์ดํ๋ค.
๋๋ฒ์งธ๋ก, ์บ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธ ํ๊ธฐ ์ ์ Lock์ ์ก๋ ๋ฐฉ์์ด๋ค.
์ด์ ๊ฐ์ ๊ฒฝ์ฐ ์กฐํ์ฑ ์ ๋ฌด๋ฅผ ์ฒ๋ฆฌํ๋ ์๋น์ค์ Lock์ผ๋ก ์ธํ ๋๊ธฐํ์์ด ๋ฐ์ํ๋ค.
์ด ๋ฐฉ์์ ๋ฐ์ดํฐ์ ์ฌ์ด์ฆ๊ฐ ์์ ๋น ๋ฅด๊ฒ ์ ๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅํ ์ ๋ฌด์ ๋น๋ฒํ ์ ๋ฐ์ดํธ๊ฐ ๋ฐ์ํ๋ ์ํฉ์ ์ ์ฉํ๊ธฐ ์ฉ์ดํ๋ค.
์บ์ ๊ฐ์ฉ์ฑ ์ง์นจ
์บ์๋ฅผ ๊ตฌ์ฑํ๋ ๋ชฉ์ ์ ๋น ๋ฅธ ์ฑ๋ฅ ํ๋ณด์ ๋ฐ์ดํฐ ์ ๋ฌ์ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ์ ์์์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํจ์ด ์๋๋ผ๋ ์ ์ ๊ธฐ์ตํ๊ณ ์ค๊ณํด์ผ ํ๋ค.
๋ฐ์ดํฐ์ ์์์ฑ์ ๊ธฐ์กด ๋ฐ์ดํฐ ์คํ ์ด์ ์์ํ๊ณ , ์บ์๋ ๋ฐ์ดํฐ ์ฝ๊ธฐ์ ์ง์คํ๋ ๊ฒ์ด ์ฑ๋ฅ ํ๋ณด์ ์ง์นจ ์ฌํญ์ด ๋ ์ ์๋ค.
๋ํ, ์บ์ ์๋ฒ๊ฐ ์ฅ์ ๋ก ์ธํด ๋ค์ด๋์์ ๊ฒฝ์ฐ๋ ์๋น์ค๊ฐ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ์๋ ์ง์์ ์ธ ์๋น์ค๊ฐ ๊ฐ๋ฅํด์ผ ํ๋ค.
์ด๋ ์บ์์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ ๊ฒฐ๊ตญ ๊ธฐ์กด ์๊ตฌ ๋ฐ์ดํฐ ์คํ ์ด์ ๋์ผํ๊ฒ ์ ์ฅ๋๊ณ ์ ์ง๋๋ค๋ ์ ์ ๋ท๋ฐ์นจํ๋ ์ค๊ณ๋ฐฉ์์ด๋ค. (Write Through)
์ฆ, ์บ์ ์๋ฒ๊ฐ ์ฅ์ ๋ก ๋ถํฐ ๋ณต๊ตฌ๋๋ ๋์ ์ฑ๋ฅ์์ ์ง์ฐ์ ๋ฐ์ํ ์ ์์ง๋ง, ์๋น์ค๊ฐ ๋ถ๊ฐ๋ฅํ ์ํ๊ฐ ๋์ง ์๋๋ก ๊ณ ๋ คํด์ผ ํ๋ค๋ ๋ง์ด๋ค.
# ์ฐธ๊ณ ์๋ฃ
https://waspro.tistory.com/697
https://medium.com/garimoo/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-%EB%A0%88%EB%94%94%EC%8A%A4-%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC-02-f1029893e263