728x90
728x90
https://appmaster.io/ko/blog/peurotobeopeuran-mueosibnigga
본 게시물은 위 자료를 토대로 작성되었습니다.
목차
- [1] Protobuf의 개요
- [2] Protobuf의 특징
- [3] 결론
[1] Protobuf의 개요
1. Protobuf란?
- Protobuf는 Protocol Buffers의 약어
- Google에서 개발한 데이터 직렬화 형식 : 구조화된 데이터를 이진 형식으로 효율적이고 조밀하게 저장하여 네트워크를 통해 빠르게 전송 가능
- 다양한 프로그래밍 언어 지원 및 독립적 플랫폼 : 타 플랫폼에 이식 용이
- 웹 서비스, DB, RPC 시스템 등 다양한 응용 프로그램에서 사용 가능한 구조화된 데이터 제작에 효율적
[2] Protobuf의 특징
1. Protobuf vs JSON
- 데이터 인코딩 방식
- Protobuf : 바이너리 형식 : 동일 양의 정보 전송 시 더 빠르고 효율적, 보안 강화
- JSON : 일반 텍스트 형식: JS 및 HTML 사용하는 웹 기반 환경에서 용이, 디버깅 및 문제해결 용이
특징 | Protobuf vs JSON | 비고 |
속도 | Protobuf가 더 빠름 | 바이너리 형식이기 때문에 구조화된 데이터를 읽고 쓰는 시간 감소 |
크기 | Protobuf가 훨씬 작음 | - 네트워크 대역폭이 제한될 때 매우 유용 - 바이너리 데이터 스트림의 특성으로 저장 및 전송 시 더 적은 공간 차지 |
데이터 유형 | Protobuf가 더 많은 데이터 유형 지원 | - Protobuf는 enum 및 Map 등 보다 복잡한 데이터 유형 사용 가능 - 보다 정교한 응용 프로그램 제작 용이 |
플랫폼 호환성 | Protobuf가 더 호환성 좋음 | -Protobuf는 오픈 소스 형식으로 언어 및 플랫폼에 독립적 : 호환성 문제 없이 여러 플랫폼에서 사용 가능 |
- Protobuf
- 더 빠른 읽기 및 쓰기 속도, 더 작은 파일 크기, 더 복잡한 데이터 유형이 필요한 경우
- 네트워크 대역폭이 제한된 분산 시스템 및 모바일 앱 개발에 매우 용이
- JSON
- 많은 언어와 플랫폼에서 지원하고 간단하므로 다양한 분야에서 사용 중
- 단순성 및 플랫폼 호환성이 가장 중요한 경우 JSON이 더 유리할 수 있음
2. Protobuf의 옵션
- Proto2 : 구조화된 데이터를 인코딩하는 데 사용되는 프로토콜 버퍼 언어
- Proto3 : Protobuf의 최신 버전 : Proto2의 업그레이드 버전, 여러 기능 추가 및 특정 시나리오에서 Protobuf사용 단순화
- gRPC : Protobuf기반의 고성능 RPC 프래임워크 : 서비스 간 연결 및 상호 운용 용이, 여러 언어 지원
[3] 결론
- Protobuf 는 JSON 이나 XML보다 훨씬 작기 때문에 대역폭을 적게 사용하므로 네트워크 트래픽이 중요한 웹 애플리케이션에서 사용하기에 이상적
- Protobuf 는 JSON 또는 XML보다 형식이 안전하기 때문에 데이터를 읽거나 쓸 때 오류가 발생할 가능성 감소
- Protocol Buffers 는 응용 프로그램과 시스템 간 데이터를 교환 시 효율적이고 안정적이며 비용 효율적인 방법을 제공
- 통합의 복잡성을 줄이는 동시 다양한 구성 요소와 보다 효율적인 통신 방법 제공
- Protobuf 를 사용하면 향후 기존 애플리케이션을 보다 쉽게 유지 관리하고 새 애플리케이션을 보다 쉽게 제작 가능
728x90
728x90
'초보 개발자의 스터디룸' 카테고리의 다른 글
[gRPC] gRPC 기초적인 추가 정보 2. 스트리밍 방식, 개발 순서 (0) | 2023.01.31 |
---|---|
[gRPC] gRPC란? 1. 개요, 특징, 사례 (0) | 2023.01.31 |
[Logstash] 로그스태시란? 개요, 기능, 특징 (0) | 2023.01.09 |
[Elastic Search] 엘라스틱서치란? 3. 장/단점, ES vs RDBMS (0) | 2023.01.06 |
[Elastic Search] 엘라스틱서치란? 2. 역 색인(Inverted Index) (0) | 2023.01.06 |