본문 바로가기

개발일지/TIL

[230814] 성능 테스트 어떻게 진행할것인가?

성능 테스트 진행 방식

💬 성능 테스트를 할 수 있는 방법이 여러 가지 있지만, 프로젝트에 적용할 수 있는 것은 성능, 부하 테스트라고 판단했다. 

 

✔ 성능테스트

💬 성능 테스트는 소프트웨어의 애플리케이션의 속도, 응답 시간, 안정성, 확장성 및 리소스 사용량을 테스트하는 데 사용됩니다. 주목적은 애플리케이션의 성능상 문제가 되는 곳을 확인하고 향상하는 것입니다. 

 

✔ 성능테스트 기준 - 트래픽

💬 일반적인 트래픽과 한 순간에 몰리는 트래픽을 구분하기로 했습니다. 일반적인 트래픽은 전체적인 API가 서비스 운영에 있어 성능적인 문제가 없는지 확인하기 위해서입니다.. 한 순간에 몰리는 트래픽은 프로젝트의 주 콘텐츠인 경매이기에 성능을 확인하고 그러한 상황을 대비하기 위해 테스트를 하는 것입니다.

1. 일반적인 트래픽
    ➡ 1분에 전체 유저의 2 ~ 5% 정도가 활성 유저라고 가정했다. ( DB에 10만 명 유저가 있다. [ 2000 ~ 5000명 ] )

2. 한 순간에 몰리는 트래픽
    ➡ 1분에 일반적인 트래픽의 10배를 활성 유저라고 가정했다. ( 20,000 ~ 50,000 명 )

 

✔ 성능테스트 기준 - 지표

💬  저희가 처음 해보는 것이기 때문에 성능 테스트 요소 중 직관적으로 확인할 수 있는 속도, 응답 시간을 기준으로 테스트를 해보기로 했습니다. 속도는 Jmeter에서 확인할 수 있는 TPS를 사용하기로 했습니다. 응답 시간은 Jmeter에서 확인할 수 있는 Response TIme을 사용하기로 했습니다.

 

✔ 부하 테스트

💬 부하 테스트는 한계에 도달할 때까지 시스템의 부하를 지속적으로 증가시켜 시스템의 성능을 테스트하는 데에 사용합니다. 주 목표는 애플리케이션이 앞으로 발생할 수 있는 부하를 관리할 수 있도록 데이터베이스, 하드웨어 등의 구성 요소의 상한을 결정하는 것입니다. 또는 메모리 관리와 관련된 애플리케이션의 결함을 찾고 해결하는 것입니다.

 

✔ 부하 테스트 기준

1. 트래픽
    ➡ 부하 테스트를 통해 프로젝트 환경 EC2 Freeteir의 성능을 체크하고 필요에 따라 Sacle-up을 고려해보려고 합니다. 그래서 어느 정도 트래픽이 발생했을 때 부하가 일어나는지 1초당 트래픽 100건씩 늘려갈 것입니다.

2. 지표
    ➡ EC2 환경에 대한 성능을 체크해 보는 것이므로 CPU, Memory 사용량을 기준으로 테스트해 볼 것입니다. 

서버 환경

💬  현 사항에서 비용적인 측면을 많이 고려해야 합니다. 그래서 바로 EC2 환경에서 테스트하기보다는 로컬 환경에서 먼저 테스트하기로 했습니다. 이후 Jmeter 툴과 성능 테스트에 익숙해지면 EC2 환경에서 실제 성능 테스트를 진행하기로 했습니다.

1. 로컬 환경
    ➡ 실제 환경과 많이 다르지만 Jmeter 테스트에 익숙해지는 시간을 가질 수 있습니다.
    ➡ 별도의 비용이 필요로 하지 않습니다.

2. EC2 환경
    ➡ 성능 향상에 실제 지표가 될 수 있습니다.