[Infra] 부하 테스트 개념 정리

haesa·2025년 3월 18일

Infra

목록 보기
2/5
post-thumbnail

부하 테스트란?

부하 테스트(Load Test)는 실제 운영 환경에서 발생할 수 있는 대량의 트래픽이나 갑작스러운 사용량 증가 상황에서 시스템이 정상적으로 동작하는지 평가하기 위한 테스트다. 시스템이 어느 정도의 트래픽에서 안정적으로 동작하는지를 파악하고, 성능 병목 지점을 발견하는 데 중요한 역할을 한다.

부하 테스트와 스트레스 테스트 차이점

부하 테스트는 애플리케이션의 성능이 악화되기 시작하는 임계치를 정확히 찾아내어 시스템의 성능을 개선하기 위한 목적으로 진행한다.

그러나 스트레스 테스트는 시스템이 극한의 조건에서 한계점에 도달했을 때 애플리케이션의 동작을 확인하기 위한 테스트로써 임계치 이상의 부하가 발생했을 때 시스템의 복구 절차 또는 보안 허점을 감지하기 위해 주로 진행한다.

💡 부하 테스트 VS 스트레스 테스트

구분부하 테스트스트레스 테스트
테스트 목적전체 시스템의 성능 확인중단 점에서의 동작, 복구 가능성
주요 성능지표동시 사용자 수, 초 당 트랜잭션동시 사용자 수, 메모리, CPU, 네트워크 등
테스트 대상전체 시스템식별된 트랜잭션에만 집중
테스트 완료 시기예상 부하가 모두 적용되었을 경우시스템 동작이 중단되었을 경우
보안성 확인불가능가능

성능 테스트는 부하 테스트와 스트레스 테스트를 포괄하는 더 상위 개념이다.

부하 테스트의 주요 목적

동시 사용자 수에 따른 성능 측정 및 병목 현상 파악

  • 실시간으로 수백만 명의 사용자가 동시에 접속하는 서비스에서 성능 저하 없이 얼마나 안정적으로 운영될 수 있는지 확인
  • 트래픽 폭증 시 발생할 수 있는 병목 현상(Bottleneck) 파악 및 해결
  • 데이터베이스 쿼리 병목, API 응답 지연 등 구체적인 성능 저하 지점 발견

최대 트래픽에서의 시스템 한계 파악

  • 서비스에서 처리 가능한 최대 트래픽 수준 측정
  • 임계치 도달 시 성능 저하 없이 안정적으로 처리 가능한지 확인
  • 임계치를 넘어서면 트래픽 제한(Throttling) 이나 서버 자동 확장(Auto-scaling) 같은 대안 적용

트래픽 폭주 대비 사전 대응

  • 이벤트나 마케팅 캠페인 등으로 인해 트래픽이 급증할 경우 대비
  • 트래픽이 특정 시간대에 폭주할 때 서비스가 다운되지 않도록 사전 대응책 마련

클라우드 자원 관리 및 비용 최적화

  • 클라우드 환경에서는 사용한 인프라에 따라 비용이 청구됨
  • 부하테스트를 통해 자원을 과도하게 할당하거나 불필요하게 사용하는 상황을 방지
  • 최적의 자원 설정으로 비용 절감 가능

장애 복구 및 복원력 테스트

  • 예상치 못한 장애 발생 시 시스템이 얼마나 빠르게 복구되는지 점검
  • 트래픽 폭주로 인한 장애 발생 시 복원 프로세스 테스트
  • 장애 발생 후 서비스가 자동으로 복구되는지 확인

성능 기준(SLA, SLO) 만족 여부 확인

  • 성능 목표(SLO, Service Level Objective)가 설정된 경우 이를 충족하는지 확인
  • API 응답 시간, 오류율, 가용성 등 성능 지표를 설정하고 이를 부하 테스트로 점검
  • 성능 목표를 충족하지 못할 경우 성능 개선 작업 수행

부하 테스트 시나리오 정의

테스트 목적 및 성능 요구사항 정의

테스트의 목적을 명확하게 정의해야 한다.

👉 예시:

  • 결제 트랜잭션 처리 시 1000명의 동시 사용자 요청을 처리할 수 있는지 확인
  • 채팅 서비스에서 5000명의 동시 사용자가 접속했을 때 응답 속도가 1초 이내인지 검증
  • 자리 예약 서비스의 평균 응답 시간이 500ms 이하이고 오류 발생률이 0.1% 미만인지 검증

테스트 시나리오 정의

테스트 시나리오는 사용자 행동을 기반으로 작성한다.
사용자의 행동 패턴과 실제 트래픽 패턴을 반영해야 한다.

👉 시나리오 예제:

  1. 사용자가 웹사이트에 접속한다.
  2. 로그인한다.
  3. 상품 목록을 조회한다.
  4. 상품 상세 정보를 확인한다.
  5. 장바구니에 상품을 추가한다.
  6. 결제를 진행한다.
  7. 로그아웃한다.

트래픽 패턴 정의

부하 테스트에서는 실제 트래픽 패턴을 반영해야 한다.

  • Ramp-up Time: 일정 시간 동안 점진적으로 트래픽 증가
  • Steady State: 일정 시간 동안 일정한 트래픽 유지
  • Ramp-down Time: 트래픽을 점진적으로 감소

👉 예시:

  • Ramp-up Time: 5분 동안 동시 사용자 100명에서 1000명까지 증가
  • Steady State: 20분 동안 동시 사용자 1000명 유지
  • Ramp-down Time: 5분 동안 동시 사용자 수 1000명에서 100명으로 감소

Reference

profile
꾸준히 성장하는 개발자🙌

0개의 댓글