์ค๋์ ๋ก์ปฌ ์บ์( Local Cache )์ ๋ถ์ฐ ์บ์( Distributed Cache )์ ์ฐจ์ด์ ์ ํ ๊ธฐ์ค์ ๋ํด ์์๋ณด์ โ
๋ก์ปฌ ์บ์์ ๋ถ์ฐ ์บ์๋ ๋ฐ์ดํฐ๋ฅผ ์์๋ก ์ ์ฅํด ์์คํ
์ฑ๋ฅ์ ํฅ์์ํค๋ ๊ณตํต ๋ชฉ์ ์ ๊ฐ์ง์ง๋ง, ์ ์ฅ ์์น์ ์ฌ์ฉ ๋ฒ์์ ๋ฐ๋ผ ๊ตฌ์กฐ์ ์ฐจ์ด์ ์ ์ฉ ์ ๋ต์ด ํฌ๊ฒ ๋ค๋ฅด๋ค.
์ค๋์ ๊ทธ ์ฐจ์ด์ ์ ํ ๊ธฐ์ค์ ๋ํด ์์๋ณด์.
1 . ๐ ๋ก์ปฌ ์บ์ ( Local Cache ) ๋?
- ๋ฐ์ดํฐ๊ฐ ์ ํ๋ฆฌ์ผ์ด์
๋ด๋ถ ๋ฉ๋ชจ๋ฆฌ ( JVM Heap ) ์ ์ ์ฅ๋๋ ์บ์ ๋ฐฉ์์ด๋ค.
- ๋ํ์ ์ผ๋ก Ehcache, Caffeine, Guava Cache ๋ฑ์ด ์๋ค.
- ์บ์ ๋ฐ์ดํฐ๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ธ์คํด์ค ์์ ์กด์ฌํ๋ค.
โ
ํน์ง
- ์ฅ์
- ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๊ฐ์ ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ์ ์์ด์ ์กฐํ ์๋๊ฐ ๋น ๋ฅด๋ค
- ์ธ๋ถ ๋คํธ์ํฌ ์์ฒญ์ด ์์ผ๋ ์ง์ฐ ์ต์ํ
- ๋จ์
- ์ธ์คํด์ค ๊ฐ ๋ฐ์ดํฐ ๊ณต์ ๋ถ๊ฐ -> ๋ฉํฐ ์๋ฒ ํ๊ฒฝ์์๋ ๋ฐ์ดํฐ ๋ถ์ผ์น ๊ฐ๋ฅ
- JVM์ด ์ฌ์์๋๋ฉด ์บ์๊ฐ ์ฌ๋ผ์ง ( ๋น์์์ฑ )
2 . โ๏ธ ๋ถ์ฐ ์บ์ ( Distributed Cache ) ๋?
- ์ธ๋ถ ์บ์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์
์ธ์คํด์ค๊ฐ ์ด๋ฅผ ๊ณต์ ํ๋ค.
- ๋ํ์ ์ผ๋ก Redis, Memcached ๋ฑ์ด ์กด์ฌํ๋ค.
- ์บ์ ๋ฐ์ดํฐ๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ธ๋ถ์ ์์นํ๋ค.
โ
ํน์ง
- ์ฅ์
- ์ฌ๋ฌ ์๋ฒ๊ฐ ๊ฐ์ ์บ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ฏ๋ก ์ผ๊ด์ฑ ์ ์ง์ ๊ฐ์ ์ด ์์.
- ์ ํ๋ฆฌ์ผ์ด์
์ด ๋ง์์ ธ๋ ํ์ฅ์ฑ ํ๋ณด ๊ฐ๋ฅ
- ๋จ์
- ๋คํธ์ํฌ๋ฅผ ๊ฑฐ์น๋ฏ๋ก ๋ก์ปฌ๋ณด๋ค ์๋์ ์ผ๋ก ๋๋ฆผ
- ๋ณ๋ ์ธํ๋ผ ๊ตฌ์ฑ ๋ฐ ์ฅ์ ๋์ ํ์ ( ๋จ์ผ ์ฅ์ ์ , failover๋ฑ ๊ณ ๋ ค )
3 . ๐ฐ ๋ก์ปฌ ์บ์ VS ๋ถ์ฐ ์บ์
| ๊ตฌ๋ถ | ๋ก์ปฌ ์บ์ | ๋ถ์ฐ ์บ์ |
|---|
| ์ ์ฅ ์์น | ์ ํ๋ฆฌ์ผ์ด์
JVM ๋ด๋ถ | ์ธ๋ถ ์บ์ ์๋ฒ (Redis ๋ฑ) |
| ์๋ | ์ด๊ณ ์ (๋คํธ์ํฌ ์์) | ๋คํธ์ํฌ ์๋ณต ๋น์ฉ ์กด์ฌ |
| ์ผ๊ด์ฑ | ์ธ์คํด์ค๋ง๋ค ์บ์ ๋ถ๋ฆฌ โ ๋ถ์ผ์น ๋ฐ์ ๊ฐ๋ฅ | ์ฌ๋ฌ ์ธ์คํด์ค๊ฐ ๊ณต์ โ ์ผ๊ด์ฑ ๋ณด์ฅ |
| ํ์ฅ์ฑ | ์ธ์คํด์ค ์ ๋์ด๋๋ฉด ์บ์๋ ๋ถ์ฐ๋์ด ๊ด๋ฆฌ ์ด๋ ค์ | ์บ์ ์๋ฒ ํ์ฅ์ผ๋ก ์์ ์ ํ์ฅ ๊ฐ๋ฅ |
| ๋ณต์ก์ฑ | ์ค์ ๋ฐ ์ด์ ๊ฐ๋จ | ์ด์ ๋ณต์ก (์๋ฒ ๊ตฌ์ฑ/์ด์ ํ์) |
4 . ๐คทโโ๏ธ ์ธ์ ์ด๋ค ์บ์๋ฅผ ์ฌ์ฉํด์ผํ ๊น?
- ๋ก์ปฌ ์บ์
- ๋จ์ผ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์
- ์ฝ๊ธฐ ์ฑ๋ฅ์ด ์ต์ฐ์ ์ด๊ณ , ์ฝ๊ฐ์ ๋ฐ์ดํฐ ๋ถ์ผ์น๋ฅผ ๊ฐ์ํด๋ ๋๋ ๊ฒฝ์ฐ
- ex ) ๊ฐ์ธ ํ๋ก์ ํธ, ์๊ท๋ชจ ์๋น์ค, CPU ์บ์์ฒ๋ผ ์ด๊ณ ์ ์กฐํ๊ฐ ํ์ํ ๋ฐ์ดํฐ
- ๋ถ์ฐ ์บ์
- ๋ฉํฐ ์ธ์คํด์ค / ํด๋ฌ์คํฐ ํ๊ฒฝ ( ์๋น์ค๊ฐ ์ํ ํ์ฅ๋๋ ๊ฒฝ์ฐ )
- ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ด ์ค์ํ ๊ฒฝ์ฐ ( ex - ๋ก๊ทธ์ธ ์ธ์
, ์ฅ๋ฐ๊ตฌ๋, ์ฌ๊ณ ์๋ ๋ฑ )
- ํธ๋ํฝ์ด ํฌ๊ณ , ์บ์ ์ฉ๋์ด ์ ํ๋ฆฌ์ผ์ด์
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๊ณผํ ์ ์๋ ๊ฒฝ์ฐ
โ ์ค๋ฌด์์๋ ๋ก์ปฌ ์บ์์ ๋ถ์ฐ ์บ์๋ฅผ ๊ฒฝ์ ๊ด๊ณ๊ฐ ์๋, Multi-Level Cache ๊ตฌ์กฐ๋ก ๋ณํ ์ ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
5 . ๋ง๋ฌด๋ฆฌ ๐
์บ์๋ ๋จ์ํ ๋น ๋ฅธ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋๊ตฌ๊ฐ ์๋ ์๋น์ค ๊ตฌ์กฐ์ ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ์ ๋ต์ ์ผ๋ก ์ ํํด์ผํ๋ ์์์ด๋ค.
- ๋ก์ปฌ ์บ์ -> ๋น ๋ฅธ ์๋์ ๋จ์์ฑ
- ๋ถ์ฐ ์บ์ -> ์ผ๊ด์ฑ๊ณผ ํ์ฅ์ฑ
๊ฒฐ๊ตญ, ์ค๋ ์์๋ณธ ๊ฒ์ ํ ๋๋ก ์ค๋ฌด์์ ์๋น์ค ๊ท๋ชจ, ๋ฐ์ดํฐ ์ผ๊ด์ฑ ์๊ตฌ, ์ด์ ๋ณต์ก๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด๋ค ์บ์ ์ ๋ต์ ํํ ์ง ๊ฒฐ์ ํ ์ ์๋ ์ญ๋์ ๊ธธ๋ฌ๋ณด์ โโ