필자는 현재 졸업 프로젝트로 의류 중고 거래 웹 서비스를 개발중이다.
그러던 와중, 프론트엔드 팀원과의 연동이 시작되었다.
하지만, 백엔드 서버에서 예외가 발생하면 팀원들이 모두 바로 파악하기 쉽지 않았고, 그에 따라 팀 Slack 채널에 서버에서 예외나 에러가 발생할 시, 에러 메시지로 수신받을 수 있게 만들려고 한다.
Slack에서 제공하는 의존성을 주입하면 쉽게 개발할 수 있으니, 소스 코드는 필자의 Pull Request 링크를 첨부한다.
메시지 포맷만 입맛에 맞게, 변경해주면 되겠다.
우선 서버 에러 알림 송신 기능 개발은 성공했다! 하지만, 응답 속도가..?
- 3가지 상황으로 나누어 Apache JMeter를 통해 살펴보자!
정상적인 API 호출, ThreadPoolTaskExecutor를 사용한 예외 알림 전송, 사용하지 않은 예외 알림 전송
ThreadPoolTaskExecutor
를 사용하지 않은 예외 알림 전송ThreadPoolTaskExecutor
를 사용한 예외 알림 전송정상적인 API를 호출할 경우, 평균 20~30ms의 응답 속도를 보였다.
하지만, Slack으로의 예외 알림 기능을 추가하고 예외를 발생시켰을 때, 평균 300ms 이상의 느린 응답속도를 보였다!
ThreadPoolTaskExecutor
로 커스텀 스레드풀을 작성하고, 예외 발생과 Slack으로의 메시지 전송을 비동기로 처리하였을 때는 평균 10ms~20ms의 응답속도를 보였다.결론적으로, 약 95% 이상의 높은 성능 개선을 할 수 있었다!