Protocol Buffer vs Json - 하나를 선택하는 경우
마이크로 서비스 아키텍처에 JSON 대신 프로토콜 버퍼를 사용해야 하는 시기를 설명할 수 있는 사람이 있습니까?그 반대는?동기 통신과 비동기 통신 모두.
JSON을 사용하는 경우
- 데이터를 사람이 읽을 수 있어야 합니다.
- 서비스의 데이터는 웹 브라우저에서 직접 소비됩니다.
- 서버측 어플리케이션은 JavaScript로 작성되어 있습니다.
- 데이터 모델을 스키마에 연결할 준비가 되지 않았습니다.
- 무기고에 다른 툴을 추가할 수 있는 대역폭이 없습니다.
- 다른 종류의 네트워크 서비스를 실행하는 경우의 운용 부담이 너무 크다.
ProtoBuf의 장점
- 비교적 작은 사이즈
- 형식 안전 보장
- 스키마 위반 방지
- 심플한 액세스 기능 제공
- 신속한 시리얼화/디시리얼화
- 하위 호환성
내친김에 플랫버퍼 보셨어요?
일부 측면은 구글 프로토콜 버퍼와 json vs XML에 대해 설명합니다.
레퍼런스:
https://codeclimate.com/blog/choose-protocol-buffers/
https://codeburst.io/json-vs-protocol-buffers-vs-flatbuffers-a4247f8bda6f
소비자가 JSON에 대한 네이티브 지원 언어(Javascript는 예), 웹 브라우저 또는 사람의 가독성이 필요한 언어로 작성되거나 작성될 수 있는 경우 JSON을 사용합니다.적어도 비동기 호출의 경우 많은 개발자가 큐의 내용을 직접 검사하여 디버깅할 수 있으며 일반 개발 과정에서도 마찬가지입니다.사용하는 기술 스택에 따라서는 퍼포먼스가 향상되어도 비동기 환경에서는 큰 도움이 되지 않기 때문에 네트워크 부하를 줄이기 위해 protobuf를 사용하는 것이 트레이드오프 가치가 있을 수도 있고 없을 수도 있습니다.그리고 대부분의 언어에서 JSON 마샬링과 언마샬링과 같이 보일러 플레이트 코드를 더 이상 쓸 필요가 없습니다.
다른 건 다 protobuf로 할 거야위의 고려사항을 고려하여 기타 사용사례가 남아 있는지 확인합니다.퍼포먼스, 네트워크 부하, 버전 관리 스킴에 의해 제공되는 하위 호환성, 프로토타입 파일과 함께 마법처럼 제공되는 사랑스러운 문서, 검증 등 다양한 이점이 있습니다.어떤 이유로 마이크로 서비스 간에 REST 또는 기타 동기 콜이 많은 경우 protobuf는 JSON 대신 회선을 통해 전송되며 많은 이점을 제공할 수 있습니다.
언급URL : https://stackoverflow.com/questions/52409579/protocol-buffer-vs-json-when-to-choose-one-over-another
'programing' 카테고리의 다른 글
Git - '가정 변경 없음'과 '스킵 워크트리'의 차이점 (0) | 2023.04.10 |
---|---|
셀 간격과 UICollectionView - UICollectionViewFlowLayout 크기 비율을 설정하는 방법 (0) | 2023.04.10 |
스프링 부트 비활성화/오류 매핑 (0) | 2023.04.05 |
같은 도메인에 다른 /서버를 배치하는 방법 (0) | 2023.04.05 |
요청에 대해 일부 jQuery 글로벌 Ajax 이벤트 처리기 사용 안 함 (0) | 2023.04.05 |