🧷 처리율 μ œν•œ μž₯치

졜호빈·2025λ…„ 5μ›” 19일
0
post-thumbnail

처리율 μ œν•œ μž₯μΉ˜λž€?

λ„€νŠΈμ›Œν¬ μ‹œμŠ€ν…œμ—μ„œ 처리율 μ œν•œ μž₯μΉ˜λŠ” ν΄λΌμ΄μ–ΈνŠΈ λ˜λŠ” μ„œλΉ„μŠ€κ°€ λ³΄λ‚΄λŠ” νŠΈλž˜ν”½μ˜ μ²˜λ¦¬μœ¨μ„ μ œμ–΄ν•˜κΈ° μœ„ν•œ μž₯μΉ˜μ΄λ‹€. 예λ₯Ό λ“€μ–΄, νŠΉμ • κΈ°κ°„ 내에 μ „μ†‘λ˜λŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­ 횟수(API μš”μ²­)λ₯Ό μ œν•œν•œλ‹€. API μš”μ²­ νšŸμˆ˜κ°€ μž„κ³„μΉ˜λ₯Ό λ„˜μ–΄μ„œλ©΄ μΆ”κ°€λ‘œ λ„λ‹¬ν•œ λͺ¨λ“  ν˜ΈμΆœμ€ μ²˜λ¦¬κ°€ μ€‘λ‹¨λœλ‹€. 이런 경우 HTTP μƒνƒœ μ½”λ“œ 429(Too many Requests)λ₯Ό μ „μ†‘ν•œλ‹€.

  • Ex) μ‚¬μš©μžλŠ” μ΄ˆλ‹Ή 2회 이상 μƒˆ 글을 올릴 수 μ—†μŒ. 같은 IP μ£Όμ†Œλ‘œλŠ” ν•˜λ£¨μ— 10개 μ΄μƒμ˜ 계정을 생성할 수 μ—†μŒ.


μž₯점

  • Dos 곡격에 μ˜ν•œ μžμ› 고갈 λ°©μ§€
  • λΉ„μš© 절감
    • μ„œλ²„λ₯Ό 많이 두지 μ•Šμ•„λ„ 됨.
    • μš°μ„ μˆœμœ„κ°€ 높은 API에 더 λ§Žμ€ μžμ› ν• λ‹Ή κ°€λŠ₯
    • 제 3자 APIλ₯Ό μ‚¬μš©ν•˜λŠ” κ²½μš°μ— λŒ€ν•΄ 과금 λ°©μ§€
  • μ„œλ²„ κ³ΌλΆ€ν•˜ λ°©μ§€
    • 봇 or μ‚¬μš©μžμ˜ 잘λͺ»λœ 이용으둜 μΈν•œ νŠΈλž˜ν”½ κ±°λ₯΄κΈ°



κ΅¬ν˜„ 방식

처리율 μ œν•œ μž₯치λ₯Ό ν΄λΌμ΄μ–ΈνŠΈ 츑에 λ‘˜ 경우

  • 일반적으둜 μ•ˆμ •μ μ΄μ§€λŠ” μ•Šλ‹€.
  • ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­μ€ μ‰½κ²Œ μœ„λ³€μ‘° κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έ.

처리율 μ œν•œ μž₯치λ₯Ό μ„œλ²„ 츑에 λ‘˜ 경우

  1. API μ„œλ²„μ— λ‘λŠ” 경우
  2. 미듀웨어 ν˜•νƒœλ‘œ ν΄λΌμ΄μ–ΈνŠΈ ↔ API μ„œλ²„ 사이λ₯Ό ν†΅μ œ
    • 주둜 API κ²Œμ΄νŠΈμ›¨μ΄λΌ λΆˆλ¦¬λŠ” μ»΄ν¬λ„ŒνŠΈμ— κ΅¬ν˜„λ¨.
    • 처리율 μ œν•œ, SSL 쒅단, μ‚¬μš©μž 인증, IP ν—ˆμš© λͺ©λ‘ 관리 등을 지원

➑️ λ‘˜ 쀑 정닡은 μ—†λ‹€. API μ„œλ²„μ— λ‘λŠ” κ²½μš°λŠ” μ•Œκ³ λ¦¬μ¦˜μ„ 자유둭게 선택 κ°€λŠ₯



처리율 μ œν•œ μ•Œκ³ λ¦¬μ¦˜

토큰 버킷, λˆ„μΆœ 버킷, κ³ μ • μœˆλ„μš° μΉ΄μš΄ν„°, 이동 μœˆλ„μš° 둜그, 이동 μœˆλ„μš° μΉ΄μš΄ν„° λ“± λ‹€μ–‘ν•œ μ•Œκ³ λ¦¬μ¦˜μ΄ μ‘΄μž¬ν•˜μ§€λ§Œ λ³Έ ν¬μŠ€νŒ…μ—μ„œλŠ” 토큰 버킷 방식에 λŒ€ν•΄μ„œλ§Œ λ‹€λ£¨κ³ μž ν•œλ‹€.

토큰 버킷

  • ν•„μš”ν•œ 인자
    • 버킷 크기 : 버킷에 담을 수 μžˆλŠ” μ΅œλŒ€ 토큰 수
    • 토큰 곡급λ₯  : μ΄ˆλ‹Ή λͺ‡ 개의 토큰이 버킷에 κ³΅κΈ‰λ˜λŠ”μ§€
  • λ™μž‘ 원리
    • μ§€μ •λœ μš©λŸ‰μ„ κ°–λŠ” μ»¨ν…Œμ΄λ„ˆμΈ 토큰 버킷에 μ„€μ •λœ μ–‘μ˜ 토큰이 주기적으둜 μ±„μ›Œμ§„λ‹€.
      • 가득 μ°¨λ©΄ 더 이상 μΆ”κ°€ν•˜μ§€ μ•Šκ³ , λ„˜μΉœ 토큰은 μ‚­μ œ
    • 각 μš”μ²­μ€ 처리될 λ•Œλ§ˆλ‹€ ν•˜λ‚˜μ˜ 토큰을 μ‚¬μš©ν•œλ‹€.
      • μΆ©λΆ„ν•œ 토큰이 μžˆλŠ” 경우, λ²„ν‚·μ—μ„œ 토큰 ν•˜λ‚˜λ₯Ό κΊΌλ‚Έ ν›„ μš”μ²­μ„ μ‹œμŠ€ν…œμ— 전달
      • μΆ©λΆ„ν•œ 토큰이 μ—†λŠ” 경우, ν•΄λ‹Ή μš”μ²­μ€ 버렀진닀.
  • μž₯점
    • κ΅¬ν˜„μ΄ κ°„λ‹¨ν•˜λ‹€.
    • λ©”λͺ¨λ¦¬ μ‚¬μš© μΈ‘λ©΄μ—μ„œλ„ νš¨μœ¨μ μ΄λ‹€.
    • 짧은 μ‹œκ°„μ— μ§‘μ€‘λ˜λŠ” νŠΈλž˜ν”½λ„ 처리 κ°€λŠ₯ν•˜λ‹€. 버킷에 토큰이 λ‚¨μ•„μžˆλ‹€λ©΄, μš”μ²­μ€ μ‹œμŠ€ν…œμ— μ „λ‹¬λ˜μ–΄ 처리될 것이닀.
  • 단점
    • 버킷 크기와 토큰 곡급λ₯ μ„ μ‘°μ ˆν•˜λŠ” 것이 κΉŒλ‹€λ‘œμšΈ 수 μžˆλ‹€.

πŸ€” 버킷을 λͺ‡ κ°œλ‚˜ μ‚¬μš©ν•΄μ•Ό ν• κΉŒ?

μΌλ°˜μ μœΌλ‘œλŠ” API μ—”λ“œ ν¬μΈνŠΈλ§ˆλ‹€ λ³„λ„μ˜ 버킷을 λ‘”λ‹€. 예λ₯Ό λ“€μ–΄, 1. μ‚¬μš©μžλ§ˆλ‹€ ν•˜λ£¨μ— ν•œ 번만 ν¬μŠ€νŒ…μ„ ν•  수 있고, 2. μΉœκ΅¬λŠ” 150λͺ…κΉŒμ§€ μΆ”κ°€ν•  수 있고, 3. μ’‹μ•„μš” λ²„νŠΌμ€ λ‹€μ„― λ²ˆκΉŒμ§€λ§Œ λˆ„λ£° 수 μžˆλ‹€λ©΄ 총 3개의 μ—”λ“œ ν¬μΈνŠΈκ°€ μ‘΄μž¬ν•˜λ―€λ‘œ, μ‚¬μš©μžλ§ˆλ‹€ 3개의 버킷을 두어야 ν•  것이닀.
λ§Œμ•½ IP μ£Όμ†Œλ³„λ‘œ 처리율 μ œν•œμ„ μ μš©ν•΄μ•Ό ν•œλ‹€λ©΄ IP μ£Όμ†Œλ§ˆλ‹€ 버킷을 ν•˜λ‚˜μ”© ν• λ‹Ήν•΄μ•Ό ν•˜κ³ , μ‹œμŠ€ν…œμ˜ μ²˜λ¦¬μœ¨μ„ μ΄ˆλ‹Ή 10,000개 μš”μ²­μœΌλ‘œ μ œν•œν•˜κ³  μ‹Άλ‹€λ©΄, λͺ¨λ“  μš”μ²­μ΄ ν•˜λ‚˜μ˜ 버킷을 κ³΅μœ ν•˜λ„λ‘ μ²˜λ¦¬ν•΄μ•Ό ν•œλ‹€.

0개의 λŒ“κΈ€