성능 최적화 및 HPA 정책 (Backend Performance & Autoscaling)
2025-10-27
요약
- 성능 최적화는 코딩이 아닌 “관찰 → 개선”의 반복이다.
- 본 문서는 캐싱 전략, 쿼리 최적화, HPA(Horizontal Pod Autoscaler) 정책을 정의한다.
- 목표: 안정적 응답속도(p95 ≤ 200ms) / 자동 확장 기반 부하 대응
| 항목 | 내용 |
|---|
| 캐싱 | Local + Redis + CDN 병행 |
| 쿼리 | N+1 제거, Batch 처리 |
| HPA | CPU 80% or RPS 기반 자동 확장 |
| 목표 | p95 ≤ 200ms, 안정적 부하 분산 |
1. 캐싱 전략
| 구분 | 종류 | 도구 |
|---|
| 애플리케이션 캐시 | Local Cache | Caffeine / Guava |
| 분산 캐시 | Redis / Memcached | Spring Cache / FastAPI Cache |
| API 응답 캐시 | CDN / HTTP Header | Cache-Control / ETag |
캐시는 만능이 아니다. TTL 설정 및 Invalidation 정책 필수.
2. DB 및 쿼리 튜닝
| 영역 | 방법 |
|---|
| 인덱스 | 쿼리 플랜 분석 후 필요 인덱스 추가 |
| JOIN | 필요한 컬럼만 선택, N+1 방지 |
| Batch 처리 | 대용량 작업 시 Chunk 단위 |
| ORM 최적화 | Lazy Loading, Fetch 전략 관리 |
3. HPA 설정 (Kubernetes 기준)
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: backend-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: backend-api
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 80
성능지표: RPS 기준 HPA 병행 가능 (Custom Metrics Adapter)