Spring Framework(167)
-
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 -
Validation
Spring MVC에서 validation(검증)은 컨트롤러에서 데이터를 처리하기 전에 데이터의 정확성을 보장하는 데 중요한 역할을 합니다. 기본적으로 Spring MVC는 Bean Validation(JSR-303/JSR-380)을 통합하여 사용하며, Hibernate Validator가 기본 제공자로 사용됩니다. Bean Validation이 클래스패스에 존재하는 경우, Spring은 자동으로 LocalValidatorFactoryBean을 글로벌 Validator로 등록하여 컨트롤러 메서드에서 @Valid와 @Validated 애노테이션을 사용할 수 있게 해줍니다.디폴트 Validation 설정Spring MVC에서 @Valid 또는 @Validated를 사용하면, 해당 메서드 아규먼트에 대해 자동..
2024.10.14 -
Type Conversion
Spring MVC는 다양한 숫자 및 날짜 타입에 대한 기본적인 formatting 지원을 제공합니다. 또한 @NumberFormat 및 @DateTimeFormat 애노테이션을 사용하여 필드의 포맷을 커스터마이즈할 수 있습니다. 이러한 타입 변환 시스템은 폼, JSON 응답, 기타 요청/응답 데이터에서 객체와 문자열 간의 변환을 쉽게 만들어줍니다. 여기서는 Spring MVC에서 이 기능이 어떻게 작동하는지, 커스텀 컨버터와 포매터를 등록하는 방법, 그리고 반응형 스택(Spring WebFlux)에서의 동등한 기능에 대해 설명하겠습니다.Spring MVC의 디퐅트 타입 변환Spring MVC는 기본적으로 다양한 숫자 및 날짜 타입을 처리하기 위한 포매터를 설치합니다. 이 포매터는 HTML 폼에서 사용되..
2024.10.14 -
MVC Config API
WebMvcConfigurer와 WebFluxConfigurer의 상세 설명Spring MVC에서, 기본 MVC 구성을 커스터마이즈하려면 WebMvcConfigurer 인터페이스를 구현할 수 있습니다. 이는 Spring의 Java 기반 설정 모델의 일부로, 뷰 해석기, 리소스 핸들러, 인터셉터 등을 포함한 특정 구성 요소를 설정할 수 있습니다. 이 방법은 매우 유연하고 모듈화되어 있으며, 필요한 부분만 재정의할 수 있고, 나머지는 Spring의 기본 동작에 의존할 수 있습니다.Spring MVC에서의 WebMvcConfigurerWebMvcConfigurer 개요WebMvcConfigurer는 Spring MVC 구성을 커스터마이즈하기 위한 콜백 메서드 집합을 제공하는 인터페이스입니다. 이 인터페이스를 ..
2024.10.14 -
Enable MVC Configuration
Spring MVC에서 @EnableWebMvc 애노테이션은 자바 기반 구성에서 MVC 구성을 활성화하기 위해 사용됩니다. 이를 통해 View Resolver, Handler Mapping, Argument Resovler, 기타 웹 관련 설정을 수동으로 설정하지 않고도 디폴트로 제공되는 필수 구성을 활성화할 수 있습니다. 이 애노테이션은 Spring의 애노테이션 기반 접근 방식의 일부로, 웹 설정을 단순화하여 사전 정의된 MVC 설정을 활성화합니다.@EnableWebMvc에 대한 설명기능:@EnableWebMvc가 적용되면 Spring MVC의 구성을 가져와서 웹 애플리케이션 개발에 필요한 디폴트 빈들을 등록합니다. 여기에는 다음과 같은 요소들이 포함됩니다:View resolvers (예: JSP를 위..
2024.10.14