728x90
최근에 로그를 보다가 Controller에 특정 페이지를 리턴하는 메소드에서 중복 호출이 되고있는 것을 발견했다.
사실 이전에도 발견되어 인지하고있었지만, 따닥 이라던가 새로고침을 빠박 할 수도 있기 때문에 넘어갔는데
생각보다 너무 자주 로그가 찍혀있고 시간 간격도 매우 짧기 때문에 원인을 찾아야겠다는 생각이 들었다.
상황은 이렇다.
@Controller
public class TestController {
...
@GetMapping("index") //아니면 "/"
public String index(Model model, HttpServletRequest request, args...) {
...
return "/~~~/index"
}
...
}
해당 코드처럼 간단히 index라는 view 페이지를 리턴하고있는 경우
"/index" 호출이 같은 쓰레드로 0.1초차이로 2번씩 호출되는 것이다.
원인은 <img>태그, 정확히 말하면 <img>태그 내에 src="#" 속성이 원인이었다.
index 페이지내에 아래와 같은 태그가 존재했다.
<img id="imageId" src="#" width="100" height="180" alt="#">
<img>는 src에 명시된 URI나 경로로 이미지를 요청한다. (Accept-type으로 이미지를 지정한다 image/svg, image/webp 등)
src="#"으로 되어있다면, 이미지 요청을 현재 페이지로 요청하게 되는게 아닐까 싶다. <form>도 그러니까
=> 브라우저 개발자 도구를 통해 확인이 가능하다
src="#"부분을 지우고 한번씩 요청되는것을 확인할 수 있었다.
매우 간단한 원인과 해결방법에 비해서 발생할 수 있는 문제가 상당히 크다고 느껴진다.
해당 페이지에서 호출하는 api가 많다면 부하가 상당히 증가할테니
마크업을 붙일때 꼭 주의하자
728x90
'Spring' 카테고리의 다른 글
JPA 비관적 락 (Pessimistic Lock) (1) | 2024.10.03 |
---|---|
Spring JPA @Id 복합키 설정 (0) | 2022.10.24 |
Maven Jar 빌드 외부 dependency 추가 (0) | 2022.09.27 |
Spring Webflux Filter 적용 (Webfilter) (0) | 2022.08.28 |
Spring Webflux Exception 전역 처리 (Functional Endpoints) (0) | 2022.05.26 |