[Spring] HTTP Message Converter

2022. 2. 22. 16:00·Spring

 

 

1. Message Converter란?


Message Converter란 말그대로 메시지를 가공해주는 도구를 말한다.

전 세계의 공용어가 영어인 것처럼, Web에서의 공용어는 JSON(JavaScript Object Notation)이다.

자바 오브젝트를 파이썬 오브젝트를 사용하는 곳에 보낸다고 생각해보자.

만약 그냥 자바 언어로 보낸다면 파이썬 프로그램은 해당 언어를 전혀 이해하지 못할 것이다.

반대로 파이썬 측에서 파이썬 언어로 오브젝트를 전송한다면 자바 프로그램도 이해하지 못하는 건 똑같다.

 

 

그렇기 때문에 서로 통신할 때는 JSON 오브젝트를 사용해야한다. JSON은 자바스크립트 기반이지만, 통신의 공용어로 사용된다. 각각 프로그램에서 오브젝트를 JSON 데이터로 변경하거나 JSON 데이터를 해당 언어의 오브젝트로 바꿔주는 통역관 역할을 하는 도구가 있는데 이것이 Message Converter 다!!

 

Spring의 메시지 컨버터는 Jackson 라이브러리를 통해 자바 언어를 JSON 오브젝트로 바꿔서 요청을 보내고

응답 받을 때는 JSON 오브젝트를 수신하는데 메시지 컨버터가 이를 자바 언어로 번역해준다.

 

 

 

 

2. Message Converter 어노테이션


- 어노테이션

어노테이션 설명
@RequestBody 요청 데이터 읽기
JSON -> 자바 언어로 번역해줌
Buffered Reader가 작동
@ResponseBody 응답 데이터 만들기
자바 언어 -> JSON으로 변환해줌
Buffered Writer가 작동

 

 

 

 

3. 주로 사용하는 메시지 컨버터


 

①ByteArrayHttpMessageConverter

  • byte[] 데이터를 처리.
  • 클래스 타입 : byte[], 미디어타입 : */*
  • 요청 예)@RequestBody byte[] data
  • 응답 예)ReseponseBody return byte[] 쓰기 미디어타입 application/octet-stream

 

②StringHttpMessageConverter

  • String 문자로 데이터를 처리한다.
  • 클래스 타입 : String, 미디어타입 : */*
  • 요청 예)@RequestBody String data
  • 응답 예)ReseponseBody return "ok" 쓰기 미디어타입 text/plain

 

③MappingJackson2HttpMessageConverter

  • application/json
  • 클래스 타입 : 객체 또는 HashMap, 미디어타입 : application/json 관련
  • 요청 예)@RequestBody Object data
  • 응답 예)ReseponseBody return data 쓰기 미디어타입 application/json 관련

 

 

 

 

 

** 참고 자료 **

스프링부트 개념정리 with JPA (이지업 강의): https://www.easyupclass.com/course/273/about

꾸준함님 블로그: https://jaimemin.tistory.com/1823

 

 

 

 

'Spring' 카테고리의 다른 글
  • Spring Boot 환경 QueryDSL 설정 (build.gradle & .kts)
  • [Spring] Controller와 어노테이션
  • [Spring] 스프링 프레임워크 의존관계
  • [Spring] 스프링 프레임워크란?
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (211)
      • 끄적끄적 (6)
      • Spring (21)
      • Java (3)
      • NestJS (0)
      • Redis (2)
      • Test (3)
      • 대외활동 (36)
        • 부스트캠프 (23)
        • IT커뮤니티 (5)
        • 글또 (5)
        • 컨퍼런스 (3)
      • Infra (5)
        • Docker (1)
        • Jenkins (1)
        • AWS (1)
      • CS (26)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
      • MySQL (7)
      • Git & GitHub (16)
        • Git (12)
        • Github Actions (1)
        • 기타(마크다운 등) (3)
      • 프로젝트 (1)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • Python (12)
      • 레거시모음 (64)
        • 스프링 (11)
        • 자바 클래스&메소드 (1)
        • 오류해결 (18)
        • JSP & Servlet (12)
        • 자바스크립트 기초 (3)
        • React (2)
        • 이클립스 (1)
        • 알고리즘 문제풀이 (16)
      • 디자인패턴 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

    부스트캠프 7기
    스프링부트
    오류해결
    자바
    GitHub
    Spring
    파이썬
    os
    Python
    웹개발
    운영체제
    자바스크립트
    부스트캠프 멤버십
    Git
    jsp
    스프링
    알고리즘
    java
    부스트캠프
    MySQL
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
gakko
[Spring] HTTP Message Converter
상단으로

티스토리툴바