성능 테스트, 부하 테스트, 스트레스 테스트란? With K6

박상민·2025년 7월 6일
1

개념 정리!

목록 보기
23/23

시작하며

개발을 하다 보면 쿼리를 최적화하거나 코드를 리팩토링하여 성능을 개선하는 경우가 많습니다. 하지만, 어디가 얼마나 좋아졌는지를 정량적으로 판단하긴 어렵습니다.

그래서 이번 글에서는 성능 테스트(Performance Test), 부하 테스트(Load Test), 스트레스 테스트(Stress Test)의 개념을 명확히 정리하고, 실제로 어떻게 테스트를 수행하는지도 함께 소개합니다.


📌 성능 테스트란? (Performance Test)

성능 테스트는 시스템이 주어진 조건에서 얼마나 빠르고 안정적으로 동작하는지를 측정하는 테스트입니다.

부하 테스트, 스트레스 테스트는 모두 성능 테스트의 하위 개념입니다.

주요 목적

  • 시스템의 성능 지표 확보 (응답 시간, 처리량 등)
  • 벤치마크 기준 설정
  • 병목 지점 발견 (DB, 네트워크 등)
  • 확장성, 신뢰성 검증

핵심 특징

  • 성공/실패 개념 없음
  • 데이터를 확보하여 현재 상태를 진단하는 데 초점
  • 기능보다 비기능 요구사항(성능)을 평가

예시

  • 로그인 API의 평균 응답 시간 측정
  • 특정 기능의 초당 처리 요청 수(TPS) 측정

부하 테스트란? (Load Test)

부하 테스트는 실제 사용자가 시스템을 이용하는 상황을 시뮬레이션하여, 시스템이 정상적인 부하에서 어떻게 동작하는지 확인하는 테스트입니다.

주요 목적

  • 시스템의 최대 처리 용량 측정
  • 응답 속도, 처리량 등의 한계 파악
  • 병목 지점(서버, DB, 네트워크 등) 발견
  • 미래 사용자 수 증가를 대비한 설계

예시

  • 하루 평균 500명의 사용자가 로그인할 것으로 예상될 때, 1,000명의 동시 접속을 시뮬레이션

스트레스 테스트란? (Stress Test)

스트레스 테스트는 시스템에 과도한 부하를 인위적으로 가해 한계 상황을 만들어 시스템의 복원력과 안정성을 측정하는 테스트입니다.

주요 목적

  • 시스템이 다운되는 임계점 확인
  • 장애 발생 시 복구 능력 확인
  • 비정상 상태에서 데이터 보호 여부 검증
  • 로그, 모니터링 시스템이 정상 작동하는지 확인

예시

  • 초당 10,000건의 요청을 보내 장애 발생 시 복구 시간 측정
  • DB 연결 수 제한 초과 시의 예외 처리 여부 확인

세 가지 테스트 비교 요약

항목성능 테스트부하 테스트스트레스 테스트
목적시스템 상태 측정최대 처리량 측정한계 돌파 및 복원력 측정
범위평균 응답/처리량예상 부하 범위 내예상 부하 범위 초과
실패 허용불필요오류/지연 허용장애 발생 허용
관점진단 중심처리 능력 중심복구 능력 중심

각 테스트를 수행하는 방법

테스트를 수행하는 방법에는 여러가지가 존재하지만, 저는 K6를 선택했습니다.
현제 테스트하려는 환경에서는 Grafana Loki Stack으로 로그를 모니터링하고 있기 때문에, Grafana에서 개발한 K6가 가장 유리하다고 판단했습니다.

📎 각 테스트 도구를 비교한 글

✅ 마무리

개발 중 시스템이 "빠르다", "느리다"는 감각적인 판단보다는,
객관적인 수치로 진단하고 개선하는 습관이 중요합니다.

성능, 부하, 스트레스 테스트는 단순한 측정 도구를 넘어서,
시스템 설계와 인프라의 방향성까지 결정짓는 핵심 지표가 됩니다.

앞으로는 리팩토링이나 최적화를 할 때마다 테스트를 통해 성능 변화를 기록해보세요.
더 좋은 품질의 서비스를 만들 수 있을 것입니다.

0개의 댓글