happy-developers / dev-interview

1 stars 1 forks source link

[Spring] 클라이언트 요청 앞단에 요구사항이 추가된다면 어떻게 구현하겠습니까? #59

Open KIM-KYOUNG-OH opened 1 year ago

KIM-KYOUNG-OH commented 1 year ago

클라이언트 요청 앞단에 요구사항이 추가된다면 어떻게 구현하겠습니까? 예를 들면 보안이나 인증/인가 작업, 모든 api 요청에 대한 로깅을 기록하거나 문자열 인코딩 같은 작업

키워드

filter, interceptor

KIM-KYOUNG-OH commented 1 year ago

filter는 클라이언트 요청이 들어오면 dispatcher servlet에 도달하기 전에 부가 작업을 처리할 수 있는 기능입니다.

interceptor는 dispatcher servlet이 요청을 받고나서 controller에게 전달되기 전에 동작해서 모든 요청에 부가 작업을 처리할 수 있는 기능입니다.

filter는 spring과 무관하게 웹 컨테이너 안에서 동작하므로 더 전역적이고 HttpServletRequest나 HttpServletResponse를 직접 조작할 수 있기 때문에 interceptor보다 훨씬 강력합니다.

interceptor는 spring container 내부에서 동작하여 특정 사용자 그룹에게만 적용해야하는 등의 더 세부적인 작업에 적용되고 controller에게 도달하기 전에 추가적으로 데이터를 넘겨줄 수 있습니다.