Interceptor
인터셉터의 preHandle과 postHandle을 공부하다가 이런 의문이 들었다.
왜 이름이 pre'Handle'이지? Controller 전후로 있으니까 pre'Controller' 라고 해야하지 않나?🤔
이런 의문을 해소하고, 용어의 혼동을 없애기 위해 Handler와 Controller의 차이를 정리하고자 한다.
Handler와 Controller의 관계
개념적으로 핸들러의 넓은 의미를 무언가를 다루는 것입니다.
Spring MVC에서 컨트롤러의 경우 웹요청을 다루기 때문에 핸들러에 포함된다고 볼 수 있습니다.
그러나 모든 핸들러가 (웹 요청을 다루는) 컨트롤러인 것은 아닙니다.
예를 들어, Message를 다루는 MessageHandler가 있다면 이 핸들러는 컨트롤러가 아니지만 (메시지를 다루는) 핸들러입니다.
- Handler와 Controller의 정확한 차이가 뭔가요? - 인프런 | 질문 & 답변 (inflearn.com) -
스프링 MVC는 웹 요청을 실제로 처리하는 객체를 핸들러(Handler)라고 표현하고 있으며,
@Controller 적용 객체나 Controller 인터페이스를 구현한 객체 모두 스프링 MVC입장에서는 핸들러가 된다.
- Controller(컨트롤러)와 (Handler)핸들러 - 사좋배 공유 (tistory.com) -
컨트롤러는 일종의 핸들러인 셈이고
핸들러는 스프링 MVC에서 웹 요청을 처리하는 객체를 가장 큰 범위에서 부르는 용어
라는걸 알게 되었습니다.
- [Hong]Spring에서 Handler (velog.io) -
정리하자면, Spring MVC에서 핸들러는 무언가를 처리하는 것을 가리키는 용어이고,
컨트롤러는 웹의 요청을 처리하기 때문에 핸들러의 일종이므로
인터셉터의 preHandle() 과 postHandle()이 컨트롤러와 연결되어있어도 이상하지 않은 것이다.
'Spring Boot' 카테고리의 다른 글
스프링 시큐리티를 이용한 회원가입 (0) | 2023.09.02 |
---|---|
트랜잭션의 개념과 @Transacional 어노테이션 (0) | 2023.08.11 |
객체 지향 프로그래밍을 해야하는 이유와 SOLID 원칙 (1) | 2023.08.09 |
[SpringBoot] 컨트롤러를 테스트 하는 방법 - @WebMvcTest, @MockBean (0) | 2023.07.24 |
[Spring] 어노테이션으로 반복 코드를 줄여주는 Lombok(롬복) (0) | 2023.07.19 |