목차
제공할 API가 모두 완료된 지금 시점에서 우리 서비스의 사용자들을 위해 여러 상황에서도 안전성과 낮은 지연시간을 제공할 수 있게끔 환경을 구성하는 것이 백엔드 개발자로써 책임이라고 생각 했다.
지금까지 구현된 우리 서버는 몇 명의 사용자에 대응할 수 있고, 그때의 지연시간은 얼마나 될까? 이를 확인하기 위한 환경을 구성하기 위해 학습하고 적용한 것들을 정리해 볼 예정이다.
우선 이번 경험을 통해 알게된 성능테스트의 큰 흐름은 아래와 같다.
이번 글에서는 성능 목표를 잡고, k6를 활용하여 스크립트를 어떻게 작성하는지, 그리고 나온 결과에 대한 값들을 확인해보는 것까지 작성할 예정이다.
성능 테스트를 진행하기 이전에 어떤 기준을 세우고 비교를 해야할지 그 기준점을 세웠다. 우리 팀이 세운 기준은 아래와 같다.
레이턴시: 1초 이상 지연되면 7%, 3초이상이면 50% 빠져나간다고 한다. 그래서 아래와 같이 목표를 잡았다.
<aside> 💡 “사용자 요청에 대한 평균 응답 시간을 200ms 이내로 유지하는 것을 목표로 합니다. 또한, 95%의 요청은 500ms 이내에 처리되어야 하며, 모든 요청은 최대 1초 이내에 완료되어야 합니다.”
</aside>
동시성: 부스트 캠퍼 Slack의 인원수는 196명이다. 따라서 아래와 같은 목표를 세웠다.
<aside> 💡 “서버는 동시에 최소 200명의 사용자 요청을 처리할 수 있는 능력을 갖추어야 합니다. 특히, 사용자의 요청이 집중되는 시간대에는 동시 요청 처리 능력을 최대 500명까지 확장할 수 있어야 합니다.”
</aside>