[Spring] Spring 심화 내용 배운 것 단순 요약.
2025. 2. 21. 22:16ㆍBackend/Spring
- MappingJackson2HttpMessageConverter
- 우리가 json → object 를 사용하기 위한 컨버터
- RequestMappingHandlerAdapter
- 공통적으로 HttpMessageConverter을 사용함
- ArgumentResolver
- adapter 에서 controller 까지 들어가기 전에 데이터 변환
- ReturnValueHandler
- controller 에서 adapter 로 가면서 리턴값을 response로 변환
- Converter Interface
- 스프링이 기본적으로 지원하는 컨버터가 많음
- org.springframework.core.convert.converter
- DefaultConversionService → ConversionService 구현체
- Spring 의 표준 ConversionService 로 기본 제공 converter 와 확장 가능성을 통해 다양한 타입 변환을 유연하게 처리 할 수 있도록 지원한다.
- ConvertRegistry에 등록함
- ISP(인터페이스 분리 원칙, interface Segregation Principal)
- 클라이언트가 자신이 사용하지 않는 메서드에 의존하지 않도록 인터페이스를 분리하는 원칙
- Spring 은 내부적으로 ConversionService를 사용해 타입을 변환함
- @ReuqestParam, @PathVariable, @ModelAttribute 등이 사용함
- Formatter
- 주로 사용자 지정 포맷을 적용해 데이터 변환 처리를 할 떄 사용된다.
- Formatter는 ConversionService와 비슷한 목적을 가지지만 문자열을 객체로 변환하거나 객체를 문자열로 변환하는 과정에서 포맷팅을 세밀하게 제어할 수 있다.
- 객체를 특정한 포맷에 맞춰서 문자로 출력하는 기능에 특화된 것이 Formatter
- Converter보다 조금 더 세부적인 기능
- FormattingConversionService ( 어탭터 패턴을 사용함 Formatter 가 Converter처럼 동작하도록 만들어줌)
- ConversionService 와 Formatter 를 경합한 구현체로 타입 변환과 포맷팅이 필요한 모든 작업을 한곳에서 수행 할 수 있도록 설꼐됨
- 다양한 타입의 변환과 포맷팅을 쉽게 적용할 수 있다.
- DefaultFormattingConversionService( FormattingConversionService + 숫자 , 통화 관련 내용 추가 )
- Spring Boot는 기본적으로 WebConversionService를 사용함
'Backend > Spring' 카테고리의 다른 글
[Spring] 테스트 코드를 작성을 해보자. (0) | 2025.02.27 |
---|---|
[Spring] Filter와 Interceptor에 대해서 알아보고 사용해보자. (0) | 2025.02.26 |
[Spring] 프로젝트 하면서 느낀 아쉬운점 & 배운점 등 (0) | 2025.02.20 |
[JPA] 연관관계가 있는 객체를 한번에 없애보자. (0) | 2025.02.13 |
[Spring] 환경변수를 설정해서 내 정보가 github에 올라가지 않도록 하기! (0) | 2025.02.11 |