API Rate Limit ๊ณ์ฐ๊ธฐ
API ํธ์ถ ์ ํ์ ๊ณ์ฐํ๊ณ ์ฌ๋ฌ ์๋ํฌ์ธํธ ์ฌ์ฉ๋์ ๋ถ์ํฉ๋๋ค. ์ธ๊ธฐ API ํ๋ฆฌ์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์์ํ์ธ์.
Rate Limit ์ค์
Rate Limit ๋ถ์ ๊ฒฐ๊ณผ
์๋ํฌ์ธํธ๋ณ ์ฌ์ฉ๋ ๊ณ์ฐ
์ฌ๋ฌ API ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ ๋ ์ด ์ฌ์ฉ๋์ ๊ณ์ฐํฉ๋๋ค.
Rate Limit ๋ด ์ฌ์ฉ ๊ฐ๋ฅ
์ด ์ฌ์ฉ๋: 100/์๊ฐ(2%)
์ธ๊ธฐ API Rate Limit ์ฐธ๊ณ ํ
| API | ์ ํ | RPS | RPH |
|---|---|---|---|
| GitHub API | 5000/1h | 1.39 | 5.00K |
| Twitter/X API | 300/15m | 0.33 | 1.20K |
| OpenAI API | 60/1m | 1 | 3.60K |
| Google Maps | 50/1s | 50 | 180.00K |
| Stripe API | 100/1s | 100 | 360.00K |
| Slack API | 1/1s | 1 | 3.60K |
| Discord API | 50/1s | 50 | 180.00K |
| Spotify API | 180/30s | 6 | 21.60K |
| YouTube Data API | 10000/1d | 0.12 | 416.67 |
| SendGrid API | 100/1s | 100 | 360.00K |
๐ ์ฌ์ฉ๋ฒ
- API ํ๋ฆฌ์ ์ ์ ํํ๊ฑฐ๋ ์ง์ ์ ๋ ฅํ์ธ์
- ํ์ฌ ์ฌ์ฉ๋์ ์ ๋ ฅํ๋ฉด ์ฌ์ ๋ถ์ ํ์ธํ ์ ์์ต๋๋ค
- ์ฌ๋ฌ ์๋ํฌ์ธํธ ์ฌ์ฉ ์ ๊ฐ๊ฐ ์ถ๊ฐํ์ฌ ์ด ์ฌ์ฉ๋์ ๊ณ์ฐํ์ธ์
- 80% ์ดํ๋ก ์ ์งํ๋ฉด ์์ ํฉ๋๋ค
โจ ์ฃผ์ ๊ธฐ๋ฅ
- โ์ธ๊ธฐ API Rate Limit ํ๋ฆฌ์ ์ ๊ณต
- โ์ด๋น/๋ถ๋น/์๊ฐ๋น/์ผ๋น/์๋น ์์ฒญ ์ ๊ณ์ฐ
- โํ์ฌ ์ฌ์ฉ๋ ๋๋น ์ฌ์ ๋ถ ๋ถ์
- โ์ฌ๋ฌ ์๋ํฌ์ธํธ ์ด ์ฌ์ฉ๋ ๊ณ์ฐ
- โRate Limit ์ด๊ณผ ์ฌ๋ถ ์๊ฐํ
๐ ๊ณ์ฐ ๊ณต์
RPS = ์์ฒญ ์ รท ์๊ฐ(์ด), RPH = RPS ร 3600๐ก ๊ณ์ฐ ์๋ฆฌ
- โขRate Limit์ API ์๋ฒ ๋ณดํธ์ ๊ณต์ ํ ์ฌ์ฉ์ ์ํ ํธ์ถ ์ ํ์ ๋๋ค.
- โขRPS(Requests Per Second)๋ ์ด๋น ์ฒ๋ฆฌ ๊ฐ๋ฅํ ์์ฒญ ์์ ๋๋ค.
- โข๋๋ถ๋ถ์ API๋ ์๊ฐ๋น(RPH) ๋๋ ๋ถ๋น(RPM) ์ ํ์ ์ฌ์ฉํฉ๋๋ค.
- โข์ ํ์ ๊ฐ๊น์์ง๋ฉด 429 Too Many Requests ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
- โข์์ ํ ์ด์์ ์ํด Rate Limit์ 80% ์ดํ๋ก ์ ์งํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- โข์ฌ๋ฌ ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ํฉ์ฐํ์ฌ ์ ํ์ ํ์ธํด์ผ ํฉ๋๋ค.
โ ์์ฃผ ๋ฌป๋ ์ง๋ฌธ
Q. Rate Limit์ด ์ ํ์ํ๊ฐ์?
A. ์๋ฒ ๊ณผ๋ถํ ๋ฐฉ์ง, ๊ณต์ ํ ๋ฆฌ์์ค ๋ถ๋ฐฐ, DDoS ๊ณต๊ฒฉ ๋ฐฉ์ด, ๋น์ฉ ๊ด๋ฆฌ ๋ฑ์ ์ํด ํ์ํฉ๋๋ค.
Q. Rate Limit์ ์ด๊ณผํ๋ฉด ์ด๋ป๊ฒ ๋๋์?
A. HTTP 429 ์๋ฌ๊ฐ ๋ฐํ๋๊ณ , ์ผ์ ์๊ฐ(๋ณดํต Retry-After ํค๋์ ๋ช ์) ํ์ ๋ค์ ์์ฒญํด์ผ ํฉ๋๋ค.
Q. Rate Limit์ ๋๋ฆด ์ ์๋์?
A. ์ ๋ฃ ํ๋ ์ ๊ทธ๋ ์ด๋, API ์ ๊ณต์์๊ฒ ์์ฒญ, ๋๋ ์ฌ๋ฌ API ํค ์ฌ์ฉ ๋ฑ์ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
Q. ํด๋ผ์ด์ธํธ์์ Rate Limit์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์?
A. Exponential Backoff, ์์ฒญ ํ์, ํ ํฐ ๋ฒํท ์๊ณ ๋ฆฌ์ฆ ๋ฑ์ ๊ตฌํํ์ฌ ์ ํ์ ์ค์ํฉ๋๋ค.
Q. API ๋ ์ดํธ ๋ฆฌ๋ฐ์ด๋?
A. ์ผ์ ์๊ฐ ๋ด ํ์ฉ๋๋ ์ต๋ API ํธ์ถ ํ์์ ๋๋ค. ์: "๋ถ๋น 60ํ"๋ 1๋ถ์ 60๋ฒ๊น์ง ์์ฒญ ๊ฐ๋ฅ. ์ด๊ณผ ์ 429(Too Many Requests) ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
Q. ๋ ์ดํธ ๋ฆฌ๋ฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ค๋ฉด?
A. ์์ฒญ์ ๋ฐฐ์น ์ฒ๋ฆฌํ๊ณ , ์ง์ ๋ฐฑ์คํ(exponential backoff) ์ฌ์๋ ์ ๋ต์ ์ฌ์ฉํ์ธ์. ์บ์ฑ์ผ๋ก ๋ถํ์ํ API ํธ์ถ์ ์ค์ด๋ ๊ฒ๋ ํจ๊ณผ์ ์ ๋๋ค.
์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค.