인코딩 · 2026년 7월 12일 · 읽는 시간 5분

Protobuf 바이너리 데이터, 눈으로 읽어야 할 때

👉 Protobuf 디코더 바로 가기

gRPC API 응답값을 로그로 찍어봤는데 바이너리라 읽을 수가 없다. proto 파일 없이 빠르게 확인할 방법이 없나.

Protobuf 디코딩이 필요한 상황

주로 개발 중 디버깅할 때 필요하다.

  • gRPC 응답값 확인 → 바이너리라 그냥 보면 알 수 없음
  • API 로그 분석 → Protobuf로 직렬화된 데이터 파싱
  • 네트워크 패킷 분석 → Wireshark 캡처에서 Protobuf 페이로드
  • 레거시 코드 분석 → .proto 파일 없이 기존 데이터 구조 파악
  • 모바일 앱 디버깅 → 클라이언트 ↔ 서버 Protobuf 메시지 확인

Protobuf는 JSON보다 작고 빠르지만, 그냥 눈으로 읽으면 깨진 문자만 보인다. 로컬에서 빠르게 확인하고 싶을 때마다 protoc 설치하거나 코드 짜기 귀찮았다.


기존 방법의 문제

  • protoc 명령줄 → 설치 필요, proto 파일도 있어야 함
  • Python protobuf 라이브러리 → 코드 짜야 함
  • gRPC GUI 툴 (Postman, Insomnia) → 무거움, 설정 많음
  • 온라인 Protobuf 사이트 → proto 스키마 입력 필요한 경우가 많음
  • Wireshark → 네트워크 분석 전용, Protobuf 내부 보기 불편

그냥 바이너리 붙여넣으면 필드별로 파싱해주는 게 필요했다. proto 파일 없이도 best-effort로.


proto 파일 없이 디코딩하는 방법

Protobuf의 와이어 포맷은 타입 정보가 일부 포함되어 있어서 스키마 없이도 field number와 wire type을 파악할 수 있다.

지원 입력 형식:

  • Base64 인코딩된 Protobuf 바이너리
  • Hex 문자열 (0A 1B 2C ...)
  • 바이너리 직접 붙여넣기

디코딩 결과:

  • 필드 번호 (field number)
  • 와이어 타입 (varint, 64-bit, length-delimited, 32-bit)
  • 파싱된 값 (정수, 문자열, 중첩 메시지 등)
  • JSON 형태로 보기 쉽게 표시

인코딩 기능도 있음:

  • JSON → Protobuf 바이너리 변환
  • proto 스키마 정의 입력 → 정확한 타입 변환

Protobuf 와이어 타입 간단 설명

Protobuf는 각 필드에 타입 힌트가 포함되어 있어서 스키마 없이도 어느 정도 파싱이 된다.

  • Type 0 (Varint) → int32, int64, bool, enum
  • Type 1 (64-bit) → fixed64, double
  • Type 2 (Length-delimited) → string, bytes, embedded messages, packed arrays
  • Type 5 (32-bit) → fixed32, float

다만 스키마 없이는 string과 bytes를 구분하기 어렵고, 숫자형 타입도 정확한 타입을 알기 어렵다. 그래서 "best-effort" 파싱이라고 보면 된다.


실제로 써보니

좋은 점:

  • proto 파일 없이도 필드 구조 파악 가능 → 빠른 디버깅에 유용
  • 브라우저에서 바로 → 설치 없음
  • Base64/Hex 입력 모두 지원 → gRPC 응답값 그대로 붙여넣기 가능
  • JSON 뷰로 보기 좋음

한계:

  • 스키마 없이는 타입 추론이 완벽하지 않음 → 문자열/바이트 혼동 가능
  • 복잡한 중첩 메시지는 수동 확인 필요할 수 있음
  • oneof, map 같은 고급 기능은 스키마 필요

사용법

  1. Protobuf 바이너리 (Base64 또는 Hex) 붙여넣기
  2. 입력 형식 선택
  3. 디코드 버튼 클릭
  4. 필드별 파싱 결과 확인

proto 파일 없어도 필드 구조 파악하는 데 충분하다.


써보기

👉 Protobuf 디코더 바로 가기

gRPC 디버깅, 이제 브라우저에서 바로.


#Protobuf #gRPC #바이너리디코딩 #API디버깅 #개발도구 #네트워크분석

광고