Engineering Note

[SW Engineering] Inflearn 백엔드 애플리케이션 성능 테스트 하기(foo) 본문

SW Engineering

[SW Engineering] Inflearn 백엔드 애플리케이션 성능 테스트 하기(foo)

Software Engineer Kim 2025. 12. 17. 22:31

본 포스팅은 인프런 이준형(Foo)님의 백엔드 애플리케이션 성능 테스트 하기 강의 내용을 참고하여 정리하였습니다.

 

 

 

1. 성능 테스트가 필요한 이유

  • 성능 테스트를 통해 미리 감당 가능한 사용자의 숫자를 예상하고 인프라 비용을 관리 할 수 있고, 문제 상황을 예방할 수 있다.

 

성능 테스트를 통해 개선 가능한 내용

  • 비효율적으로 동작하는 애플리케이션 로직 개선 -> GC 등
  • 데이터베이스 같은 저장소에 대한 성능 개선 -> 인덱스, 데드락 등
  • 시스템 설계 개선 -> 비동기적인 구조, Circuit Breaker 등

 

성능 테스트에서 사용 되는 용어

  • 트래픽 : 네트워크를 통해 흐르는 데이터

 

 

 

2. 성능 테스트를 시작하기 전 알아야 할 배경 지식

 

2-2 지연시간과 처리량

  • latency : 지연 시간, 요청 한 건 한 건의 처리 시간(클라이언트가 요청을 보낸 후 응답을 받기까지 걸린 시간) 주로 ms, s 단위, 지연 시간의 기본 단위는 주로 ms이다. 
  • throughput: 처리량, 단위 시간동안 얼마나 많은 요청을 처리할 수 있는 지를 나타내는 지표. 주로 TPS(Transaction Per Second) 단위 사용

 

정리하면, 지연시간은 요청 한 건 한 건이 얼마의 시간동안 처리되는지에 대한 개념이고, 처리량은 일정 시간 동안 몇 건의 요청을 처리할 수 있는지를 나타내는 개념이다.

ex) 어떤 API에 대한 처리량을 계산: 1000개의 API요청이 들어올 때, 1000개의 요청을 문제없이 처리해낼 수 있다고 하면, 이 API의 처리량(throughput)은 1000TPS 이상이다라고 할 수 있다.

 

 

성능 테스트 목표

  • 지연시간과 처리량을 결합하여 목표를 세운다.
  • ex) 초당 3000개의 요청(처리량)이 들어올 때 99%의 요청이 100ms 미만(지연시간)으로 처리되어야 함

 

처리량과 지연시간의 관계

  • 처리량이 늘어나면 지연시간이 늘어난다. 이유는 요청이 많아질수록 서버의 자원을 대기해야 하는 시간이 늘어나기 때문이다.

 

 

 

 

 

Comments