193
5
장
마이크로서비스의 통신 구현
5.35.3
직렬화 포맷직렬화 포맷
앞서 살펴본 기술 중 일부 (특히 일부
RPC
구현)는 데이터 직렬화 및 역직렬화 방법에 관련된
선택이었다. 예를 들어
gRPC
를 사용하면 전송된 모든 데이터는 프로토콜 버퍼 형식으로 변환
된다. 그러나 많은 기술은 네트워크 호출을 위해 데이터를 은닉하는 유연한 방법을 제공한다.
브로커로 카프카를 선택한다면 다양한 포맷으로 메시지를 보낼 수 있다. 그렇다면 어떤 포맷을
선택해야 할까?
5.3.15.3.1
텍스트 포맷텍스트 포맷
표준 텍스트 포맷을 사용하면 클라이언트가 자원을 사용하는 방법이 훨씬 유연해진다. 이론적
으로
REST
API
는
HTTP
를 통해 바이너리 데이터를 훌륭하게 전송할 수 있더라도 요청 및 응
답 바디에 텍스트 포맷을 가장 많이 사용한다. 실제로
gRPC
는 하부에
HTTP
를 사용하지만 바
이너리 프로토콜 버퍼를 전송하는 방식을 사용한다.
JSON
은 텍스트 직렬화를 위한 선택지에서
XML
의 자리를 대체했다. 이유는 많겠지만,
API
의
주요 소비자 중 하나가 브라우저인 경우가 많고
JSON
이 브라우저에 최적화된 것이 주된 이유
다.
JSON
은
XML
에 대한 반발의 결과로 인기를 얻은 면도 있고,
XML
과 비교할 때 상대적으
로 간결하고 단순하다는 점도
JSON
지지자들은 승리 요인으로 이야기한다. 현실적으로
JSON
페이로드와
XML
페이로드는 크기 면에서 별 차이가 없는데, 특히 페이로드는 통상적으로 압
축되기 때문이다. 또한
JSON
은 단순하지만 ...