서버 성능 테스트
란, 우리가 배포한 서버가 클라이언트의 요청이 많은 상황에서도 잘 동작할지 테스트하는 것을 말하는데요. 특히, 티켓팅을 할 때 한번에 사람들이 몰려서 서버가 다운되거나 대기했던 경험이 있을 겁니다.
이처럼 API의 요청이 많은 상황을 가정하고, 가상의 클라이언트를 많이 만들어서 요청을 실제로 보낸 뒤, 그로 인해 부하가 발생했을 때 서버가 요청을 얼마나 잘 처리하는지, 어디서 병목이 발생하는지 등을 테스트하는 것입니다.
성능 테스트를 도와주는 도구로는 여러가지가 있지만, 그 중 JMeter
와 Locust
를 제일 많이 사용하고 있습니다. 둘 다 모두 오픈소스이기 때문에 자유롭게 사용이 가능합니다.
매번 개발자가 코드를 수정하고 빌드와 테스트를 하고 배포까지 한다면 상당히 많은 시간이 소요될 것입니다. 하지만, git에 코드를 올리는 것만으로도 빌드와 테스트, 배포까지 된다면, 비효율적인 시간을 단축할 수 있고, 개발에 좀 더 많은 시간을 투자할 수 있을텐데요. 바로 CI/CD를 통해 해결할 수 있습니다.
CI/CD
란, 개발 단계부터 배포까지 자동화하는 과정을 말하는데, 지속적으로 통합해서 지속적으로 배포한다는 의미를 가지고 있습니다. CI/CD를 통해 배포를 자동화하게 되면 Git에 push 하기만 하면 그 코드를 가지고 도커가 자동으로 빌드되고 배포되기 때문에 훨씬 간단해지는 것입니다.