Message Converter & Json

kys95·2022년 10월 12일
0

스프링 서버와 클라이언트에서 JSON 형식으로 메시지를 보내는 이유와 Message Converter를 알아보겠습니다.

위와 같이 한국인과 독일인이 서로 통신을 한다고 가정해보자.
서로의 자국어에 대한 지식이 없다고 생각하자.
한국인은 독일어를 모르기 때문에 한국어를 보낼 것이고 독일인은 이를 이해할 수 없다.반대의 상황도 마찬가지다.

한국인과 독일인이 영어를 사용할 수 있다고 생각해보고, 위와 같이 영어로 소통한다고 해보자.
자국어로 통신하는 것보다는 무거운 작업이지만, 한국인이 독일어를 번역하는 것보다는 가벼운 작업량이 된다.
또한 영어를 사용할 수 있는 다른 나라와도 추가적인 작업 없이 소통할 수 있다.

프로그래밍에서도 이와 같은 원리가 적용된다.
자바로 이루어진 서버와 C#으로 이루어진 서버가 통신을 한다고 생각하자.
서로의 문법에 맞는 객체를 보내면 받은 쪽에서 이를 다시 자신의 문법에 맞는 객체로 변형하기가 어렵다.
이때 공통어인 영어처럼 서로 JSON(JavaScript Object Notation) (혹은 xml)로 바꿔 보낸다면, 서로의 작업을 줄이고 효율적으로 통신할 수 있다.
또한 JSON 문법으로 변환할 수 있는 다른 클라이언트, 서버들과 확장할 수 있으므로, JSON으로 변환해서 보내야 한다.

Message Converter

스프링에선 이와 같은 변환을 Message Converter에서 해준다.
자바는 통신에서 데이터를 BufferedReader를 통해 1byte씩 동적으로 전달받는다.

이 전달받은 데이터를 Message Converter 안의 jackson 라이브러리를 이용해 변환해 준다.

이러한 자료는 http body에 담겨서 전달되므로 스프링 부트에선 @RequestBody 어노테이션을 이용해 자료를 전달받고 서버에 사용할 수 있다.

이때의 변환은 스프링 부트에서 다른 쪽으로 데이터를 전송할 때도 message converter가 JSON으로 변경해서 보내주고, 받을 때 역시 받은 자료를 JSON으로 변경해서 보내준다.

profile
어제의 나보다 나은 사람이 되자

0개의 댓글