초보 개발자의 스터디룸

[gRPC] Protobuf란?

justdoIT0730 2023. 1. 31. 11:40
728x90
728x90

https://appmaster.io/ko/blog/peurotobeopeuran-mueosibnigga

 

Protobuf란 무엇인가요? | AppMaster

Protobuf, 장점과 단점, Protobuf와 JSON의 차이점, 앱에서 구현하는 방법에 대해 알아보세요.

appmaster.io

본 게시물은 위 자료 토대로 작성되었습니다.

목차

  • [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