- ์ ํฌ ํ๋ก์ ํธ๋ 1๋ง๋ช
์ ๋์ ์๋งค ์์ฒญ์ ์์ ์ ์ผ๋ก ์์ฉํ ์ ์๋ ํฐ์ผ ์๋งค ์์คํ
๊ตฌ์ถ์ ๋ชฉํ๋ก ํฉ๋๋ค.
- ๊ณ ๊ฐ์ ์น ์ฌ์ดํธ์์ VIP ์ ์๋งค ์ ์ผ๋ฐ ์๋งค๋ฅผ ํตํด ํฐ์ผ ์๋งค๋ฅผ ํ ์ ์๊ณ , ์ฟ ํฐ์ ๋ฐ๊ธ ๋ฐ์ ํ ์ธ ๋ ๊ฐ๊ฒฉ์ผ๋ก ๊ฒฐ์ ๋ฅผ ์งํ ํ ์ ์์ต๋๋ค.
- ๊ธฐ์กด ์๋น์ค(์ธํฐํํฌ) ์ฐธ๊ณ ํ์ฌ MAU 100๋ง๋ช
์ผ๋ก ์ค์ ํ์์ต๋๋ค.
- 10,000์์ ์ข์ ๊ธฐ์ค 5๋ถ ๋ด ๋งค์ง๋๋ฉฐ ์คํ ์งํ 10์ด ์ด๋ด์ ์ ์ฒด ์์ฒญ์ 20% ๋ชฐ๋ฆฐ๋ค๊ณ ๊ฐ์ ํ์ต๋๋ค.
- ํธ๋กํธ ์ฝ์ํธ ์ฐธ๊ณ ํ์ฌ ๊ฒฝ์๋ฅ 10:1์ผ๋ก ์์ํ์ผ๋ฉฐ ์ธ๋น ํ๊ท 20๊ฑด์ ์ฌ์๋๊ฐ ์ด๋ฃจ์ด์ง๋ค๊ณ ๊ฐ์ ํ์ต๋๋ค.
| ํญ๋ชฉ | ๊ฐ |
|---|---|
| ์ค์ ์๋งค ์ฑ๊ณต ์ | 10,000๊ฑด |
| ์ ์ฒด ์์ฒญ ์ | 2,000,000๊ฑด |
| ํ๊ท TPS | 6,667 TPS |
| ๋ฒ์คํธ TPS | 40,000 TPS |
VIP ๊ณ ๊ฐ์ ์ํ
์ ์๋งค ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.์ํ๋ ์ข์ ์ ์ ์ ์คํจํ์ ๊ฒฝ์ฐ, ํด๋น ์ข์์
๋๊ธฐ์ด์ ๋ฑ๋กํ์ฌ ์๋ฒ์ ๊ธฐ๋ค๋ฆด ์ ์์ต๋๋ค.
Redis์Sorted Set์ ํ์ฉํด ๊ณ ์ฑ๋ฅ ๋๊ธฐ์ด ์์คํ ์ ๊ตฌํํ์ผ๋ฉฐ, ์์ฝ ์คํจ๋ ์ทจ์๊ฐ ๋ฐ์ํ๋ฉดKafka๋ฅผ ํตํด ์ข์ ๋ฐํ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๊ณ ๋ค์ ์๋ฒ์ ๊ณ ๊ฐ์ ์ ์ฅ ์ํค๋ ๋ฐฉ์์ ์๋น์ค๋ฅผ ์ง์ํฉ๋๋ค.
์ผ๋ฐ ๊ณ ๊ฐ์ ์ํ
์ผ๋ฐ ์๋งค ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.์ข์ ๋งต์์ ์ํ๋ ์ข์์ ์ ํํ ๋ค, ์ ์ ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ , ์ ์ ์ ์ฑ๊ณตํ๋ฉด ๊ฒฐ์ ๋ฅผ ์งํํ ์ ์์ต๋๋ค.
์๋ง์ ์์ฒญ์ด ๋์์ ๋ชฐ๋ฆฌ๋ ํ๊ฒฝ์์๋ ๋น ๋ฅธ ์ฒ๋ฆฌ๋ฅผ ์ํด,
Redis๋ฅผ ์ฌ์ฉํด ์ข์ ์ ์ ์ฒ๋ฆฌ๋ฅผ ์ํํ๊ณ ,Lua ์คํฌ๋ฆฝํธ๋ฅผ ํตํด์์์ฑ์ ํ๋ณดํ์ฌ ์์ ์ ์ธ ์๋งค ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ณ ๊ฐ์๊ฒ ๋ค์ํ
์ฟ ํฐ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.ํนํ,
์์ผ ๊ธฐ๋ ํ ์ธ ์ฟ ํฐ์ ๋ฐ๊ธํ์ฌ, ํ ์ธ๋ ๊ฐ๊ฒฉ์ผ๋ก ๊ฒฐ์ ํ ์ ์๋๋ก ์ง์ํ๊ณ ์์ต๋๋ค.
Spring Batch๋ฅผ ์ ์ฉํด ์์ผ ์ฟ ํฐ์ ์ผ๊ด ๋ฐ๊ธํ๊ณ ,๊ธฐ๊ฐ์ด ์ง๋ ์ฟ ํฐ์ ์๋์ผ๋ก ํ์ํ ์ ์๋๋ก ์ฒ๋ฆฌํ๊ณ ์์ต๋๋ค.
ํ ์คํ์ด(Toss Payments)๋ฅผ PG์ฌ๋ก ์ฐ๋ํ์ฌ ๊ฒฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.์ฟ ํฐ์ ์ ์ฉํด ํ ์ธ๋ ๊ฐ๊ฒฉ์ผ๋ก ๊ฒฐ์ ํ ์ ์์ผ๋ฉฐ, ์ ์ ํ ์ข์์
10๋ถ ์ด๋ด์ ๊ฒฐ์ ๋ฅผ ์๋ฃํด์ผ ํฉ๋๋ค.๊ฒฐ์ ์๊ฐ ์ ํ์ ์ํด,
Redis์TTL๊ธฐ๋ฅ์ ํ์ฉํด์๋งค ํ์์์๊ธฐ๋ฅ์ ๊ตฌํํ์ฌ,์๊ฐ ์ด๊ณผ ์ ์ข์ ์ ์ ์ด ์ทจ์๋๋๋ก ์ฒ๋ฆฌํ๊ณ ์์ต๋๋ค.
|
์ต์ฉ์ |
์ด์ ๋ก |
๊ถ์์ฐ |
์ ๊ท ๋ฏผ |
![]() ๋จ์ผ ํํฐ์ , ๋จ์ผ ์ปจ์๋จธ -> 500๋ช ๊ฒฐ๊ณผ |
![]() 50 ํํฐ์ , 50 ์ปจ์๋จธ -> 6500๋ช ๊ฒฐ๊ณผ |
![]() 1000๋ช |
![]() 3000๋ช |
![]() 6500๋ช |
![]() 1000๋ช |
![]() 3000๋ช |
![]() 6500๋ช |
- Lua Script๋ฅผ ์ฌ์ฉํ์ฌ ์ข์ ์๋งค ์์์ฑ ๋ณด์ฅ ๋ฐ ๋์์ฑ ์ ์ด
- Kafka & Outbox๋ฅผ ์ด์ฉํ ์์์ฑ ํ๋ณด ํธ๋์ญ์ ์ฒ๋ฆฌ
- Producer & Consumer ๊ฐ์ ํ์ ์ผ์น ๋ฐ ์ง๋ ฌํ ์ญ์ง๋ ฌํ ๋ฌธ์ ํด๊ฒฐ
- Redis Sentinel ๊ธฐ๋ฐ ๊ณ ๊ฐ์ฉ์ฑ ๋ฐ ๋ฐ์ดํฐ ์ ์ค ๋ฐฉ์ง ์ค๊ณ
- Redis๋ฅผ ์ด์ฉํ ์ข์ ๋งต ์กฐํ ๋ฐ ์๋งค ์ฒ๋ฆฌ ์๋ ๊ฐ์
- Spring Batch๋ฅผ ์ด์ฉํ Outbox ํ ์ด๋ธ ๋ถํ ๋ฐฉ์ง
์ข์ ์กฐํ ๊ฒฝ๋ก ์ต์ ํ(A/B/C-1/C-2A), venue ์ฑ๋ฅ ํ ์คํธ, ์ ์ฒด ์๋งค ํ๋ก์ฐ ๋ถํ ํ ์คํธ ๊ด๋ จ ์ ๋ฆฌ๋ loadtest/README.md์ wiki ๋ฌธ์๋ฅผ ์ฐธ๊ณ .











