Skip to content
On this page

부하 테스트

서버가 얼마만큼의 요청을 견딜 수 있는지(또는 수용할 수 있는지)를 테스트하는 방법을 부하 테스트(load test)라고 합니다.

내코 코드가 실제로 배포되었을 때 어떤 문법적, 논리적 문제가 있을지는 유닛 테스트와 통합 테스트로 어느 정도 확인할 수 있습니다.

그러나 내 서버가 몇 명의 동시 접속자나 일일 사용자를 수용할 수 있는지를 예측하는 일은 매우 어렵습니다.

OOM

서버의 하드웨어 제약 때문에 서비스가 중단될 수 있는데 대표적으로 OOM(Out Of Memory) 문제입니다.

서버는 접속자들의 정보를 저장하기 위해 각각의 접속자마다 일정한 메모리를 할당합니다.

이렇게 사용하는 메모리의 양이 증가하다가 서버의 메모리 용량을 초과하게 되면 문제가 발생하는데 부하 테스트로 이를 어느 정도 방지할 수 있습니다.

실제 서비스가 아닌 실제 서버와 같은 사양의 staging 서버에서 테스트를 수행하는 것이 좋습니다.

테스트를 진행할수록 요청을 처리하는 속도가 점점 느려진다면 서버의 사양을 업그레이드하거나 클러스터링 기법으로 서버를 여러 개 두거나, 코드를 더 효율적으로 개선하는 방법이 있습니다.

요청-응답 시 데이터베이스에 접근할 때 시간이 가장 많이 소요되므로 반복적으로 가져오는 데이터는 캐싱하여 최대한 데이터베이스에 접근하는 요청을 줄이도록 합니다.