OrangeBOOP Day001

OrangeBOOP Day001

DispatcherServlet의 Deeper Funtionsimage

Handler Interceptor: 요청 처리 전후에 특정 작업을 수행할 수 있도록 해주는 기능이야. 마치 요청이 Controller에 도착하기 전이나 Controller가 응답을 보내기 전에 "가로채서" 공통적인 로깅, 인증, 권한 검사 등의 작업을 처리할 수 있지. 여러 개의 Interceptor를 등록해서 순서대로 실행할 수도 있어.


Exception Resolver: 애플리케이션 실행 중에 발생하는 예외를 중앙 집중적으로 처리할 수 있도록 해주는 기능이야. Controller나 Service 계층에서 예외가 발생하면 DispatcherServlet은 등록된 Exception Resolver들에게 이 예외를 처리할 수 있는지 물어보고, 처리 가능한 Resolver가 있으면 해당 Resolver에게 예외 처리를 맡겨. 이를 통해 에러 페이지를 보여주거나, API 응답을 일관된 형식으로 반환하는 등의 작업을 할 수 있어.


Locale Resolver & Theme Resolver: 다국어 지원이나 웹 페이지의 테마를 일관성 있게 적용하는 데 도움을 주는 기능이야. Locale Resolver는 클라이언트의 요청 헤더 등을 분석해서 사용자의 언어 설정을 파악하고, Theme Resolver는 설정된 테마 정보를 제공해서 View에서 일관된 디자인을 적용할 수 있도록 도와줘.


Multipart Resolver: 파일 업로드와 관련된 요청을 처리하는 데 필요한 기능이야. 클라이언트가 폼을 통해 파일을 업로드하면, Multipart Resolver가 이 요청을 분석해서 파일 데이터와 일반 폼 데이터를 분리하고, Controller에서 쉽게 사용할 수 있도록 변환해 줘.


Data Binding & Validation: 클라이언트로부터 전송된 파라미터들을 Controller의 메서드 파라미터나 객체에 자동으로 바인딩(매핑)해주는 기능이야. 또한, 바인딩된 데이터의 유효성을 검증하는 기능도 제공해서, 사용자의 입력 오류를 쉽게 처리할 수 있도록 도와줘. @RequestParam, @ModelAttribute 등의 어노테이션이 이 기능을 사용할 때 활용돼.


Flash Attributes: Redirect 시 데이터를 유지하는 데 사용되는 기능이야. Redirect를 하면 일반적으로 요청 스코프의 데이터는 사라지는데, Flash Attribute를 사용하면 Redirect 직전의 데이터를 다음 요청까지 유지할 수 있어서, 일회성 메시지 (성공/실패 메시지 등)를 전달하는 데 유용해.

댓글을 작성해보세요.

채널톡 아이콘