โRedis ์บ์ฑ์ผ๋ก ๊ธ์ต ์๋น์ค ์์ ์ฑ ๊ฐํโ
๐ฅ ๋ฐํ ์์ ๋ณด๋ฌ๊ฐ๊ธฐ
-
๊ธ์ต ์๋น์ค๋ ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ด ํ์์ ๋๋ค.
-
์ ํต์ ์ธ 3-Tier ๊ตฌ์กฐ ์์คํ ์ ํธ๋ํฝ ํญ์ฆ ์ DB์ API ์๋ฒ์ ๋ณ๋ชฉ์ด ์ฝ๊ฒ ๋ฐ์ํฉ๋๋ค.
-
์ฐ๋ฆฌ๋ ๊ฐ๋ฐ์ ๊ด์ ์์ ์ค์ง์ ์ธ ์ฑ๋ฅ ๊ฐ์ ๋ฐฉ๋ฒ์ ํ๊ตฌํ๊ณ , ์บ์ฑ ์ ๋ต์ ์ ์ฉํด ๋ณ๋ชฉ ํ์์ ์ํํ์ต๋๋ค.
-
์ด๋ฅผ ์คํ์ผ๋ก ๊ฒ์ฆํด ์ฑ๋ฅ ๊ฐ์ ํจ๊ณผ๋ฅผ ์์น๋ก ํ์ธํ์ต๋๋ค.
๐๐ป ๋จ์ ๊ธฐ๋ฅ ๊ตฌํ์ด ์๋, ํธ๋ํฝ ๊ด๋ฆฌ์ ์์คํ ์์ ์ฑ์ด ํต์ฌ ๊ณผ์
- ์ค์ ๊ธ์ต๊ถ๊ณผ ์ ์ฌํ 3-Tier ๊ตฌ์กฐ์์
- ์บ์ ๋ฏธ์ ์ฉ/Cache Update/Cache Evict ์ ๋ต์ ๋น๊ต
- k6 + Grafana + Prometheus๋ก ๋๊ท๋ชจ ํธ๋ํฝ ์๋ฎฌ๋ ์ด์
- DB ๋ถํ, ์๋ต์๋, ์๋ฌ์จ ๋ฑ ์ ๋์ ์งํ ๊ธฐ๋ฐ ์ฑ๋ฅ ๋ถ์
- Spring Boot โ API ์๋ฒ ๋ฐ ๋น์ฆ๋์ค ๋ก์ง
- Redis โ ์บ์ฑ ๋ฐ ๋ถ์ฐ๋ฝ ๊ตฌํ
- Oracle โ RDBMS
- k6 โ ๋ถํ ํ ์คํธ
- Prometheus, Grafana โ ๋ชจ๋ํฐ๋ง ๋ฐ ์๊ฐํ
| ์ ๋ต | ์ค๋ช | ๊ธฐ๋ ํจ๊ณผ |
|---|---|---|
| No Cache | ๋ชจ๋ ์์ฒญ์ DB ์ง์ ์กฐํ | ๋ณ๋ชฉยท์๋ต ์ง์ฐยท์ฅ์ ์ํ |
| Cache Update | ๊ฐ ๋ณ๊ฒฝ ์ ์บ์ ๊ฐฑ์ | ๋น ๋ฅธ ์๋ต, DB ๋ถํ ์ํ |
| Cache Evict | ๊ฐ ๋ณ๊ฒฝ ์ ์บ์ ์ญ์ | ์ ํฉ์ฑโ, hit/miss ๋น๊ต ๊ฐ๋ฅ |
API
- ๊ณ์ข ์ด์ ์กฐํ, ์ก๊ธ, ์์ธ์กฐํ ๋ฑ ์ค์ ๊ธ์ต ์๋น์ค ํจํด ๋ฐ์
-
๐ฅ ๋์ ์ฌ์ฉ์: 100๋ช
-
โฑ ์ง์ ์๊ฐ: 10๋ถ
- ์ฒ๋ฆฌ๋: ์ด๋น ์์ฒญ ์(RPS), ์ด ์ฒ๋ฆฌ ์์ฒญ ์
- ์๋ต์๋: ํ๊ท , ์ต๋, p95 ๋ฑ ๋ถํฌ
- ์๋ฌ์จ: ์คํจ ์์ฒญ ๋น์จ (์ฑ๊ณต๋ฅ )
- ์์คํ ๋ฆฌ์์ค: CPU, ๋ฉ๋ชจ๋ฆฌ ๋ฑ (Prometheus ํ์ฉ)
| ์ ๋ต | ์ด ์ฒ๋ฆฌ ๊ฑด์ | ํ๊ท RPS |
|---|---|---|
| No Cache | 23,715 | 39.0 |
| Cache Update | 59,001 | 99.2 |
| Cache Evict | 59,254 | 96.7 |
- ์บ์ ๋ฏธ์ ์ฉ: DB ๊ณผ๋ถํ, ์๋ต ์ง์ฐ, ์ฅ์ ๋ฐ์ ๊ฐ๋ฅ์ฑ ๋์
- ์บ์ Update/Evict: ๋ชจ๋ ์ฑ๋ฅ ๊ฐ์ ํจ๊ณผ
- ํ
์คํธ ํ๊ฒฝ์์๋ ์ฝ 2.5% ์ฑ๋ฅ ์ฐจ์ด
(ํธ๋ํฝยท์บ์ ๋ฏธ์ค ํญ์ฆ ์ ์ฐจ์ด ๋ ์ปค์ง ์ ์์)
- ํ
์คํธ ํ๊ฒฝ์์๋ ์ฝ 2.5% ์ฑ๋ฅ ์ฐจ์ด
- 100% ์ฑ๊ณต๋ฅ , ํ๊ท 39 RPS, ์ต๋ 53.5 RPS
โ ์ค์ ๊ธ์ต ์๋น์ค ์๊ตฌ์น์ ๊ทผ์ ํ๋ ์์ ์ฑ ํ์ธ
๐ก Cache Update๊ฐ RPS๋ ๋์๋ฐ Cache Evict๋ณด๋ค ์ด ์ฒ๋ฆฌ ๊ฑด์๊ฐ ์ ์ ์ด์ โ Cache Evict ์ ๋ต์ ๊ฐ ๋ณ๊ฒฝ ์ ์บ์๋ฅผ ์ญ์ ํ๋ฏ๋ก, ์ดํ ํด๋น ํค ์กฐํ ์ ์บ์ ๋ฏธ์ค๊ฐ ๋ฐ์. ์ด ๋ฏธ์ค ์์ฒญ์ด DB๋ฅผ ๊ฑฐ์ณ ์ฒ๋ฆฌ๋์ง๋ง, ํ ์คํธ ์ง๊ณ์์๋ ์ด๊ฒ๋ ์ด ์ฒ๋ฆฌ ๊ฑด์์ ํฌํจ๋๊ธฐ ๋๋ฌธ์ ๊ฑด์๊ฐ ๋ ๋๊ฒ ๋ํ๋จ.
๐ ๋ถ์ ๊ฒฐ๊ณผ
-
Cache Update โ ์ฑ๋ฅ ์ต๊ณ (99.2 req/s), ๊ทธ๋ฌ๋ ๊ตฌํ ๋ณต์กยท๋์์ฑ ์ ์ด ๋ถ๋ด
-
Cache Evict โ 2.5% ๋๋ฆฌ์ง๋ง ์๋ฒฝํ ๋ฐ์ดํฐ ์ ํฉ์ฑยท์ ์ง๋ณด์์ฑ ์ฐ์
๊ธ์ต๊ถ ํน์ฑ์ ์ ํฉ์ฑ๊ณผ ์ ๋ขฐ์ฑ > ๋ฏธ๋ฏธํ ์ฑ๋ฅ ์ฐจ์ด โ ์ต์ข ์ฑํ: Cache Evict
๐ ๊ธฐ์ ์ ์ธ์ฌ์ดํธ
-
ํธ๋ํฝ ๊ด๋ฆฌยท์บ์ฑ ์ ๋ต ์ค๊ณ๋ ์ค๋ฌด ๊ฒฝ์๋ ฅ์ ์ข์ฐํ๋ ํต์ฌ ์ญ๋
-
๋จ์ ๊ธฐ๋ฅ ๊ตฌํ๋ณด๋ค ์์คํ ๊ตฌ์กฐยท์ด์ ๊ด์ ์์์ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ด ์ค์
-
์คํ, ๋ถ์, ํ์ ๊ณผ์ ์ ํตํด ํ ๋ชจ๋๊ฐ ์ฑ์ฅ
โ ํจ๊ป ๊ณ ๋ฏผํ๊ณ ์ง์ ๊ฒ์ฆํ ๊ฒฝํ์ด ๊ฐ์ฅ ๊ฐ์ง
- WeMakeIT ํ์ ๊ธฐ์ ํ ๋ก , ์คํ, ๊ฒฐ๊ณผ ๊ณต์ ๊น์ง ์ ์ ์ ๊ทน ์ฐธ์ฌ
- ๊ฐ์ ์ญํ (๋ฐฑ์๋, ์ธํ๋ผ, ํ
์คํธ, ์๊ฐํ ๋ฑ)์ ๋ถ๋ดํด
ํจ๊ป ๋ฌธ์ ๋ฅผ ์ ์ยทํด๊ฒฐยท์ฑ์ฅํ๋ ๋ฌธํ๋ฅผ ๊ฒฝํ
์ด๋ฒ ํ๋ก์ ํธ๋ ๊ฐ๋ฐ์๋ก์ ๊ธ์ต๊ถ IT์ ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ๊ธฐ์ฌํ ์ ์๋ ์๋ฏธ ์๋ ๊ฒฝํ์ด์์ต๋๋ค. ์ํ ์์คํ ์์ ๋ฐ์ํ ์ ์๋ ๋ณ๋ชฉ ํ์์ ์ง์ ๋ค๋ค๋ณด๊ณ , ์ด๋ฅผ ํด๊ฒฐํด๋ณด๋ ๊ณผ์ ์์ ๋ง์ ๊ฒ์ ๋ฐฐ์ฐ๊ณ ์ฑ์ฅํ ์ ์์์ต๋๋ค.
๐ฌ ๋ฌธ์ยทํ์ ยทํผ๋๋ฐฑ์ PR/์ด์/๋์ค์ปค์ ์ผ๋ก ์ธ์ ๋ ํ์ํฉ๋๋ค!



