성능 관리 개요
소프트웨어 성능 관리는 응답 시간·처리량·자원 사용률을 목표 수준으로 유지하는 활동입니다. 정보처리기사에서는 성능 테스트 유형, 병목 분석, 캐싱 전략이 출제됩니다.
성능 테스트 유형
- 부하 테스트(Load Test): 예상 부하 수준에서 시스템 동작 확인. 응답 시간, 처리량 측정
- 스트레스 테스트(Stress Test): 한계를 초과하는 부하로 시스템 붕괴 지점 파악
- 내구성 테스트(Soak/Endurance Test): 장시간 동안 적정 부하 유지하며 메모리 누수·성능 저하 확인
- 스파이크 테스트(Spike Test): 갑작스러운 부하 급증에 대한 대응 확인
주요 도구
- JMeter: Java 기반 부하 테스트 도구
- k6: JavaScript 기반 클라우드 네이티브 부하 테스트
- Gatling: Scala 기반, 상세 리포트 제공
성능 지표
- 응답 시간(Response Time): 요청 후 첫 응답까지 시간
- 처리량(Throughput/TPS): 초당 처리 트랜잭션 수
- 오류율(Error Rate): 전체 요청 중 실패 비율
- P99 레이턴시: 99번째 백분위수 응답 시간. SLA 기준으로 자주 사용
캐싱 전략
Cache-Aside (Lazy Loading)
- 애플리케이션이 캐시 확인 → 캐시 미스 시 DB 조회 → 캐시에 저장
- 캐시에 없는 데이터만 DB 조회 (지연 로딩)
- 가장 일반적인 패턴. Redis + 애플리케이션 코드
Write-Through
- 데이터 쓰기 시 캐시와 DB 동시에 업데이트
- 항상 최신 데이터 보장. 쓰기 지연(Write Latency) 증가
Write-Back (Write-Behind)
- 캐시에만 먼저 쓰고, 나중에 비동기로 DB에 반영
- 쓰기 성능 최적화. 캐시 장애 시 데이터 손실 위험
캐시 만료 정책
- TTL(Time To Live): 일정 시간 후 자동 만료
- LRU(Least Recently Used): 가장 오래 사용 안 한 항목 제거
- Cache Stampede: 동시에 많은 요청이 만료된 캐시를 재생성하려는 현상 (Mutex Lock으로 방지)
CDN (Content Delivery Network)
- 전 세계 엣지 서버에 콘텐츠를 분산 캐싱하여 사용자에게 가장 가까운 서버에서 제공
- 정적 콘텐츠(이미지, JS, CSS, 동영상) 전달에 최적
- Origin 서버 부하 감소, 지연 시간 단축
- 대표 서비스: CloudFront(AWS), Cloudflare, Akamai
애플리케이션 프로파일링
- CPU 프로파일링: 메서드별 실행 시간 측정
- 메모리 프로파일링: 객체 생성·메모리 누수 탐지
- APM(Application Performance Monitoring): Datadog, New Relic, Dynatrace
시험 핵심 포인트
- 스트레스 테스트: 한계 초과 부하로 붕괴 지점 확인
- Cache-Aside: 캐시 미스 시 DB 조회 후 캐시 저장 (가장 일반적)
- Write-Through: 쓰기 시 캐시+DB 동시 업데이트
- CDN: 엣지 서버 분산 캐싱, 정적 콘텐츠 가속
- P99 레이턴시: 99번째 백분위수 응답 시간 (SLA 기준)
마무리
성능 관리는 서비스 품질의 핵심입니다. 캐싱 전략 세 가지의 차이와 성능 테스트 유형을 명확히 구분하여 학습하세요.