전체 글(391)
-
Default Servlet
Default Servlet in Spring MVCSpring MVC에서 Default Servlet은 정적 리소스(이미지, CSS, JavaScript 파일 등)를 처리하는 서블릿입니다. 일반적으로 서블릿 컨테이너(예: Tomcat, Jetty, WebLogic 등)가 / 경로로 요청된 정적 리소스를 처리하는 역할을 담당합니다. Spring MVC는 이러한 기본 서블릿을 그대로 사용하면서, DispatcherServlet이 애플리케이션의 모든 요청을 처리하도록 설정할 수 있습니다.문제: DispatcherServlet과 정적 리소스 처리Spring MVC에서 DispatcherServlet을 / 경로에 매핑하면, 이는 서블릿 컨테이너의 디폴트 서블릿이 처리해야 하는 정적 리소스 요청을 덮어쓸 수 있습..
2024.10.15 -
View Resolvers
Spring MVC의 View ResolversView Resolvers는 Spring MVC에서 클라이언트 요청에 대한 응답을 렌더링할 뷰(HTML, JSON, JSP 등)를 결정하는 역할을 합니다. Spring MVC는 다양한 뷰 기술을 지원하며, 이를 위해 ViewResolver를 사용하여 요청이 어떤 뷰로 렌더링될지를 결정합니다.ViewResolver는 컨트롤러가 반환하는 뷰 이름을 실제 뷰로 매핑합니다. 예를 들어, 컨트롤러에서 "home"이라는 뷰 이름을 반환하면, 뷰 리졸버는 해당 이름을 실제 뷰 파일(예: home.jsp 또는 home.html)과 연결합니다.View Resolvers 구성Spring MVC는 뷰 리졸버 구성을 쉽게 구성할 수 있습니다. 아래 Java 설정 예시에서는 JSP..
2024.10.15 -
View Controllers
Spring MVC의 View ControllersView Controllers는 Spring MVC에서 ParameterizableViewController를 설정하는 단축 기능입니다. 이 컨트롤러는 클라이언트의 요청을 특정 뷰로 즉시 전달(forward)하는 역할을 합니다. 주로 정적인 페이지를 제공할 때 사용되며, Java 컨트롤러의 로직 없이 뷰만 응답할 수 있는 상황에서 유용합니다.View Controller란?View Controller는 HTTP 요청을 처리하는 Java 코드가 필요 없고, 단순히 특정 URL에 대한 요청을 특정 JSP, HTML, 또는 템플릿 뷰로 연결할 때 사용됩니다. 이 방법을 사용하면 Java 컨트롤러 클래스나 메서드를 작성하지 않고도 Spring이 해당 URL을 처리..
2024.10.15 -
Message Converters
Spring MVC의 메시지 컨버터(Message Converters)Spring MVC는 메시지 컨버터(HttpMessageConverter)를 사용하여 HTTP 요청과 응답을 Java 객체로 변환하거나, Java 객체를 HTTP 요청과 응답으로 변환합니다. 이 기능을 통해 Spring MVC는 REST API와 상호작용할 때 JSON, XML, HTML 등 다양한 콘텐츠 타입을 자동으로 처리할 수 있습니다.메시지 컨버터는 Java 객체를 HTTP 응답 본문으로 직렬화하거나(예: Java 객체를 JSON으로 변환), HTTP 요청 본문을 Java 객체로 역직렬화(예: JSON 데이터를 Java 객체로 변환)하는 역할을 합니다.메시지 컨버터 커스터마이징Spring MVC에서는 WebMvcConfigure..
2024.10.15 -
Content Types
Spring MVC (Model-View-Controller)은 요청에 따라 다양한 콘텐츠 타입을 처리할 수 있는 유연한 메커니즘을 제공합니다. 이를 Content Negotiation(콘텐츠 협상)이라고 하며, 클라이언트의 요청에 따른 응답 형식을 결정하는 데 사용됩니다.Content Negotiation이란?Content negotiation은 클라이언트가 선호하는 응답 형식을 요청에 명시하면, 서버가 그에 따라 적절한 응답 형식을 선택하는 기능입니다.Spring MVC에서 content negotiation은 기본적으로 클라이언트가 보내는 Accept 헤더에 의해 주도됩니다. 하지만, URL 경로 확장자(예: /users.json), 쿼리 파라미터(예: /users?format=json), 또는 특..
2024.10.15 -
Interceptors
Spring MVC에서 Interceptor는 incoming HTTP 요청과 outgoing 응답에 대해 로직을 적용할 수 있는 강력한 메커니즘입니다. 이를 통해 컨트롤러에 요청이 도달하기 전에 요청을 가로채거나, 컨트롤러에서 응답을 처리한 후 추가 로직을 수행할 수 있습니다. Interceptor는 주로 로깅, 감사(auditing), 요청/응답 객체를 수정하는 작업에 사용됩니다.1. Interceptor의 작동 방식Interceptor는 Servlet Filter와 비슷하게 작동하지만, Spring Web Application Context와 더 밀접하게 통합됩니다. Interceptor는 전역적으로 등록되어 모든 요청에 적용되거나, 특정 URL 패턴에만 제한적으로 적용할 수 있습니다.주요 개념:P..
2024.10.14