[Spring Boot] HTTP Message Converter

2022. 2. 22. 16:00·Spring/Spring Boot

 

 

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' 카테고리의 다른 글
  • Spring REST Docs 설정하기 (build.gradle & .kts)
  • Spring Boot 환경 QueryDSL 설정 (build.gradle & .kts)
  • [Spring Boot] 스프링 부트 Bash Shell로 실행하기
  • [Spring Boot] 스프링부트 시작하기!
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (203)
      • Spring (23)
        • Spring (10)
        • Spring Boot (7)
        • Spring Security (1)
        • Hibernate (4)
      • Test (3)
      • 끄적끄적 (6)
      • 활동 (35)
        • 부스트캠프 (23)
        • 동아리 (3)
        • 컨퍼런스 (3)
        • 글또 (5)
        • 오픈소스 컨트리뷰션 (1)
      • 디자인패턴 (0)
      • Git & GitHub (22)
        • Git (13)
        • Github Actions (1)
        • 오류해결 (5)
        • 기타(마크다운 등) (3)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • Infra (2)
        • Docker (1)
        • Elastic Search (0)
        • Jenkins (1)
        • AWS (1)
      • MySQL (7)
        • 기초 (6)
        • Real MySQL (1)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • CS (26)
        • 웹 기본지식 (0)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
        • 시스템 프로그래밍 (0)
        • 기타 (0)
      • Tools (1)
        • 이클립스 (1)
        • IntelliJ (0)
      • 프로젝트 (1)
        • 모여모여(부스트캠프) (1)
      • JAVA (32)
        • Maven (6)
        • 오류해결 (11)
        • 자바 클래스&메소드 (1)
        • JSP & Servlet (12)
      • Javascript (5)
        • 기초 (3)
        • React (2)
      • Python (28)
        • 파이썬 함수 (9)
        • 알고리즘 문제풀이 (16)
        • 데이터 사이언스 (2)
        • 웹 크롤링 (1)
      • 단순정보전달글 저장소 (0)
  • 블로그 메뉴

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

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

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

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

티스토리툴바