본문 바로가기

SpringBoot

(3)
nGrinder -> Gatling 테스트 프레임워크 변경기 (with 호스트의 한계..) 요약nGrinder의 controller가 nGrinder의 agent가 보내는 요청을 견디지 못하고 죽었다그렇기에 nGrinder로는 breaking point test를 수행하지 못하였다nGrinder가 아닌 gatling으로 테스팅 툴 변경해야 한다.nGrinder를 통해 테스트 결과를 얻었습니다. 그리고 이를 정리하다 다음과 같은 에러 로그를 발견하였습니다. 톰캣 서버가 버티지 못하고 죽은 것이 아닌 톰캣 서버에 요청을 보내는 agent가 부하를 견디지 못하고 죽어버려 테스트가 끝나버린 것입니다. 이를 저는 하나의 agent가 너무 많은 부하를 줬기 때문이라 생각하고 agent의 수를 늘려 다시 테스트를 수행하기로 하였습니다.(기존에는 하나의 agent로 테스트를 진행하였습니다.) 에이전트 컨테이..
세션과 JWT 그래서 뭐가 더 좋은데? 목차서론들어가며목적 및 환경본론주의사항테스트 시나리오테스트 코드 (gatling)결론테스트 수행 결과정리후기좋았던 점아쉬웠던 점생각할 거리레퍼런스1. 서론1-1. 들어가며저는 컴퓨터학부를 전공하였습니다. 전공 특성상 수업에서의 내용을 토대로 진행하거나 비슷한 실력을 지닌 학우 간 진행하는 토이프로젝트가 많았습니다. 대다수의 토이프로젝트는 사용자가 있는 것을 가정하고 진행하였기에 사용자를 구분하게끔 하는 로그인 기능은 필수였습니다. 당시 저는 로그인 기능을 위해 구글링을 하고, 다른 사람들이 구현한 토이프로젝트의 로그인 방법를 참고하고자 보아도 모두가 하나 같이 로그인 방법으로 Jwt를 사용하는 것을 확인할 수 있었습니다.세션은 서버의 메모리에 세션을 저장하고 있어 서버에 부담이 되지만 Jwt는 상태를 저..
[SpringBoot] Enum에 대한 사용자 정의 어노테이션 만들기 프로젝트를 진행하며 컨트롤러에 들어오는 값에 대해 검증을 하는 로직을 작성해야 하는 상황이 발생했습니다... 원래대로라면 @Valid와 Bean Validation으로 슥슥 검증을 하였겠지만 컨트롤러로 들어오는 요청에는 Enum이 존재하였습니다. 그리고 Enum에 대한 검증은 물론 Enum은 자동으로 매핑되지도 않았습니다.... 저는 고민을 하다 다음과 같이 로직을 작성하기로 마음먹었습니다. 컨트롤러로 들어오는 Enum을 문자열로 매핑시켜 받습니다. 이때 이 문자열에 대해 사용자 정의 어노테이션을 정의해 검증을 합니다. 만약 검증에 성공한다면 DTO안에 있는 값을 Enum으로 매핑시켜 로직을 수행합니다. 이제 이 포스팅의 주제이기도 한 사용자 정의 어노테이션을 만들어 보도록 하겠습니다. 먼저 필요한 것은..