문제상황
- GET API에 대해서 포스트맨이나 크롬에서 확인해 봤을 때에는 응답 시간이 0.1초 이내로 짧았는데, 스웨거에서 테스트했을 때는 10초 이상 걸리는 상황.
- 해당 API는 db의 5000개 가량의 데이터를 조회하는 GET API
문제 접근
- 포스트맨이나 크롬에서 테스트했을 때는 문제가 없었기 때문에 스웨거 관련 세팅을 잘못했을 것이다.
- 그래도 혹시 모르니 아래와 같이 로그를 찍어보았는데, 스웨거로 실행했을 때에도 포스트맨과 동일하게 ‘요청받은 시각’과 ‘응답 시각’ 차이가 0.1초 이내였다. 즉, 조회 결과를 스웨거 화면상에서 보여줄 때 지연이 발생한다는 것이었다.
log.info("요청 받은 시각 : " + new SimpleDateFormat("YYYY. MM. DD HH:mm:ss.SSS").format(System.currentTimeMillis()));
List<AddressDetail> allAddressDetail = addressDetailService.findAll();
log.info("응답 시각 : " + new SimpleDateFormat("YYYY. MM. DD HH:mm:ss.SSS").format(System.currentTimeMillis()));
해결 방법
- 스웨거 Response 관련 설정 값 찾아보기
- 코드 내에서 별도의 config 파일을 만들지 않은 상태였기 때문에 application.yml 에서 다룰 수 있는 properties를 중점적으로 찾아보았다.
- https://springdoc.org/#swagger-ui-properties
- 프로퍼티 중에 스웨거의 Response에 하이라이트 활성화/비활성화 하는 값이 있었는데 default는 활성화였다. 조회하는 데이터가 약 4000개 밖에 없지만 각각이 10개의 필드를 가지고 있기 때문에 이들을 모두 하이라이트 처리하는데 시간이 꽤 소요될 것이다.
- application.yml에 아래의 코드를 추가하여 하이라이트 처리를 비활성화했다.
# application.yml springdoc: swagger-ui: syntaxHighlight: activated: false
- 그 결과, 아래 사진과 같이 Response에서 초록색 하이라이트가 사라졌지만 응답 속도는 포스트맨과 동일하게 지연 시간이 현저하게 줄어들었다.
반응형
'Study > Spring' 카테고리의 다른 글
[Spring] XML Parsing (0) | 2024.03.22 |
---|---|
Springboot에서 Redis 사용 방법 정리 (0) | 2023.12.01 |
[트러블슈팅] NCP SENS API 호출 시, 401 Unauthorized 에러 (0) | 2023.11.08 |
네이버 SENS API 사용 방법(feat. Feign Client) (1) | 2023.11.08 |
연관관계 매핑 기본 개념 (0) | 2022.11.17 |