TIL

효준·2024년 11월 26일
0
post-thumbnail

11월 26일 화요일
AM 알고리즘 풀이
PM 강의 수강

💡 Today Issue

과제 발제
트랙잭션 강의 수강

🤔 나의 생각 + 배운 것

HttpMessageConverter

View를 응답하는 것이 아닌 Rest API로 JSON, TEXT, XML등의 데이터를 응답 Message Body에 직접 입력하는 경우 HttpMessageConverter를 사용한다.

HttpMessageConverter가 적용되는 경우

  • HTTP 요청 : @RequestBody, HttpEntity<>, RequestEntity<>
  • HTTP 응답 : @ResponseBody, HttpEntity<>, ResponseEntity<>
    • HttpMessageConverter는 요청과 응답 모두 사용된다.

우선순위 : byte[] -> String -> JSON

  • ByteArrayHttpMessageConverter
    • byte[] Data를 처리한다.
    • 대상 : byte[]
    • MediaType : */*
    • 반환 : application/octet-stream
  • StringHttpMessageConverter
    • String Data를 처리한다.
    • 대상 : String
    • MediaType : */*
    • 반환 : text/plain
  • MappingJackson2HttpMessageConverter
    • JSON Data를 처리한다.
    • 대상 : Object, HashMap
    • MediaType : application/json
    • 반환 : application/json

ArgumentResolver

ArgumentResolverHandler 요청시에 사용되며 HttpMessageConverter가 실행되며 요청 데이터를 생성해 Controller가 필요한 파라미터값을 생성해 컨트롤러에 전달하게 된다.

ReturnValueHandler 반환시에 사용되며 Controller가 반환 데이터를 생성해 HttpMessageConverter가 HTTP응답에 맞게 반환값으로 변환해서 반환하게 된다.


TypeConverter

@RequestParam으로 요청을 받으면 request로 받아 형변환 하지 않고 타입 선언을 통해 원하는 타입으로 내부에서 제공하는 ConversionService를 사용하여 바인딩할 수 있다. (@ModelAttribyte, @Pathvariable도 동일하다.)


Converter

org.springframework.core.convert.converter

인터페이스를 implements 해서 Converter <S, T> -> Converter<변환할 소스,변환할 타입>으로 설정하면 된다.

TypeConverter 사용

PersonToStringConverter converter = new PersonToStringConverter();
String source = "wonuk:1200";
converter.convert(source);

구현은 직접 메서드를 구현 후 모듈화하여 사용한다.
또한 Spring은 자주 사용되는 타입에 대한 컨버터를 제공하고 사용하도록 등록되어 있다.

🕐회고

발제의 의도를 파악하고 정확히 알아야 할것을 파악해보자

profile
사진은 캣타워가 생겨 포효하는 고양이입니다.

0개의 댓글

관련 채용 정보