TIL

[TIL] filter와 intercepter

봄봄로그 2023. 5. 29. 23:42

기초적인 것을 오늘 또 하나 배웠다......

나는 그동안 spring의 영역과 일반 java의 영역을 잘 몰랐는데, 일을 하다가 filter는 spring의 영역이 아니라는 것을 확실히 알게되었다.

예전에 학원다니면서 배웠을 때는 크게 와닿지 않았던 것인데 일을 하며 filter를 직접 만들고 사용해보니 더 확실하게 알게 된 것이겠지.

 

필터를 사용해야겠다고 생각한 것은 호출되는 URI를 로그에 남기고 싶어서였다. 스프링의 기능중에 있으려나? (이것도 찾아봐야지.)

필터를 통해 로그를 찍고 싶었다. 인증 관련된 다른 것들은 둘째치고, 정리가 안되어 있고 로그보기가 너무 까다로운 서비스들은 개선해야 했으니... 로그를 보기 쉽게 URI를 남기는 작업부터했다.

 

필터는 요청이 들어왔을 때 dispatcher servlet에 전달하기 전, 작업을 수행한다. 그래서 request uri 도 log에 남길 수 있다. 

인터셉터는 dispatcher servlet <-> controller 사이에 위치해 있고 스프링 컨테이너에 포함되어 있다!

-> 그래서 인터셉터에서 컨트롤러로 들어오는 데이터들을 가공하여 넘겨줄 수 있었던 것이다.

 

 

 


참고

https://mangkyu.tistory.com/173

필터 코드예제) 

이거 보고 연습해봐야지!

https://veneas.tistory.com/entry/Spring-Boot-Filter-%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-Request-Body-%ED%95%B8%EB%93%A4%EB%A7%81-HttpServletRequestWrapper