출시 후 노크인 프로젝트에서 기존에 개발한 API들에 대해 성능 개선 작업을 진행했다.
우선 로컬 환경에서 nGrinder로 부하 테스트를 진행하기로 했으며 Prometheus + Grafana로 성능을 관측하기로 했다.
우선 각자 nGrinder에 대해 먼저 알아본 후 작업을 진행하기로 했다. nGrinder 다루는 방식에 대해 아직 미숙했기에 nGrinder Connection reset 설정과 같이 문제를 해결하며 테스트 환경을 구축하기 시작했다.
또한, nGrinder REST API 활용하여 Test를 반복 실행할 수 있는 스크립트를 만들었다.
노크인 부하테스트 1차 테스트 결과로는 우리 서비스의 대표 기능인 룸메 찾아요, 룸메 구해요 페이지 조회 성능이 좋지 않았다.
우선 1차적으로 게시물 검색 API 성능개선 작업을 진행했다.
출처 및 참고자료
Homeenterprise level performance testing solution. Contribute to naver/ngrinder development by creating an account on GitHub.가상의 유저 확보 방식
인증이 필요한 API에는 JWT 엑세스 토큰을 헤더에 붙여 요청해야 된다.
초기 script에는 아래와 같이 토큰 변수를 통해 JWT 토큰을 직접 넣어 관리했다.
public static final List<String> TOKEN_POOL = [
"TOKEN_USER_1",
"TOKEN_USER_2",
"TOKEN_USER_3",
"TOKEN_USER_4",
"TOKEN_USER_5"
]이와 같은 방식은 http://localhost:8080/oauth2/authorization/kakao에 직접 요청 후 브라우저 Cookie에서 AccessToken을 직접 복붙해서 스크립트를 계속 수정해야 된다는 불편함이 있었다.
이를 개선하려면 어떻게 할까?