Protobuf 디코더
Protobuf Decoder
.proto 파일 없이 protobuf 데이터를 해독해 필드 번호·와이어 타입·중첩 구조를 추론합니다.
`.proto` 파일 없이 protobuf 페이로드를 해독합니다. 와이어 포맷 — 필드 번호, 와이어 타입, 중첩 — 을 읽고, 값마다 가능한 해석을 나란히 보여 줍니다. 스키마가 없으면 해석이 정말로 하나가 아니기 때문입니다.
페이로드
바이너리 페이로드 놓기
이 탭에서 해독합니다. 올라가지 않습니다.
필드
최상위 필드
3
전체 크기
17byte
- #1VARINT@0, 3 Buint 150 · zigzag 75
- #2LEN@3, 9 B"testing"
- #3LEN@12, 5 B메시지 (필드 1개)
- #1VARINT@0, 3 Buint 150 · zigzag 75
JSON으로 보기 (이름 자리에 필드 번호)
.proto 파일이 없으면 필드 이름을 알 수 없고, 같은 페이로드가 여러 방식으로 유효하게 읽힙니다. 그래서 varint는 부호 없는 값·부호 있는 값·지그재그를 한꺼번에 보여 주고, 길이가 붙은 필드는 메시지·텍스트·바이트로 함께 보여 줍니다. 화면의 중첩 구조는 모든 바이트가 정확히 맞아떨어지는 해석이고, 다른 해석은 숨기지 않고 옆에 적어 둡니다.사용 방법
바이트를 붙여넣거나 파일을 놓습니다
공백이 있든 없든 16진수, 또는 Base64를 받습니다. 대신 32MB까지의 바이너리 파일을 놓아도 됩니다.
필드 목록을 읽습니다
줄마다 필드 번호, 와이어 타입, 바이트 오프셋과 길이, 그리고 해석들이 나옵니다. 중첩된 메시지는 부모 아래에 들여써서 보여 줍니다.
JSON 투영을 가져갑니다
같은 트리를 JSON으로 낸 것입니다. 이름 자리에 필드 번호가 들어갑니다. 두 페이로드를 비교하거나 이슈에 붙여넣을 때 씁니다.
자주 묻는 질문
필드 이름이 왜 없나요?
protobuf가 이름을 전선에 실어 보내지 않기 때문입니다. 인코딩된 메시지에는 필드 *번호*만 들어 있고 이름은 `.proto` 파일에 있습니다. 그래서 형식이 작고, 그래서 스키마 없는 해독은 번호까지만 보여 줄 수 있습니다.
한 값이 왜 세 가지로 나오나요?
전선 위의 varint는 그냥 비트이기 때문입니다. 같은 바이트가 유효한 `uint64`이고, 유효한 `int64`이고, 유효한 지그재그 `sint64`입니다. 어느 쪽인지는 스키마만 압니다. 하나만 보여 주고 나머지를 감추면 짐작을 사실인 양 내놓는 셈입니다.
중첩 메시지인지 어떻게 판단하나요?
길이가 붙은 필드는 메시지일 수도, 문자열일 수도, 그냥 바이트일 수도 있습니다. 내용이 완전히 파싱될 때 — 모든 바이트가 소비되고 남는 것이 없을 때 — 메시지로 보여 주고, 그 바이트가 출력 가능한 텍스트이기도 하면 문자열 해석을 옆에 함께 적습니다. 짧은 문자열이 우연히 메시지로 파싱되는 일이 가끔 있어서, 두 해석을 모두 두어 판단할 수 있게 했습니다.
gRPC 트래픽도 해독되나요?
메시지 본문은 됩니다. 앞의 5바이트짜리 gRPC 프레임 헤더 — 압축 플래그 1바이트와 빅엔디언 길이 4바이트 — 를 떼어 낸 뒤에 넣으면 됩니다. 그 뒤의 바이트를 주면 평소처럼 해독합니다.
이 도구로 이어지는 것
16진수 뷰어
Hex Viewer
파일을 오프셋·16진수·아스키로 덤프하고 매직 바이트로 형식을 판별하며 검색 위치를 표시합니다.
JSON 정렬·검사
JSON Formatter & Validator
JSON을 보기 좋게 정렬하거나 압축하고, 문법 오류가 난 줄과 열을 정확히 짚어 줍니다.
YAML 정렬·검사
YAML Formatter & Validator
YAML 들여쓰기를 통일하고 문법을 검사하며, 파서를 깨뜨리는 탭·앵커 실수를 표시합니다.
TOML 정렬·검사
TOML Formatter & Validator
TOML을 정렬하고 검사하며 테이블 순서와 인라인 표기 방식을 통일합니다.
다음 단계
이 도구의 결과를 그대로 받을 수 있는 도구들입니다.
Base64 인코딩·디코딩
Base64 Encoder & Decoder
텍스트와 파일을 Base64·Base64URL로 인코딩·디코딩하며 UTF-8을 올바르게 처리합니다.
16진수 뷰어
Hex Viewer
파일을 오프셋·16진수·아스키로 덤프하고 매직 바이트로 형식을 판별하며 검색 위치를 표시합니다.
JSON 정렬·검사
JSON Formatter & Validator
JSON을 보기 좋게 정렬하거나 압축하고, 문법 오류가 난 줄과 열을 정확히 짚어 줍니다.
JSON CSV 변환
JSON ⇄ CSV
중첩 JSON을 점 표기 열 이름으로 펼치거나, 표에서 객체를 다시 만듭니다.
JSON 비교
JSON Diff
키 순서를 무시하고 두 JSON을 구조로 비교해 추가·삭제·변경된 경로를 알려 줍니다.
JSON 타입스크립트 변환
JSON to TypeScript
JSON 예시에서 타입스크립트 인터페이스를 추론하고 선택적 필드와 유니온을 합칩니다.