> zeromq | source-safe | efficient <

// Z85 - 소스 코드와 JSON에 안전하게 포함할 수 있는 ZeroMQ의 Base85 변형

[SOURCE-SAFE]

소스 코드 친화적

따옴표, 역슬래시, 공백 등을 사용하지 않아 C/C++ 문자열, JSON, 설정 파일에 그대로 추가해도 이스케이프가 거의 필요 없습니다.

[EFFICIENT]

높은 밀도

4바이트를 5문자로 표현해 약 25% 오버헤드만 발생하며, 텍스트 표현 기준으로 Base64(약 33%)보다 효율적입니다.

[ZEROMQ]

ZeroMQ 표준

ZeroMQ가 텍스트 기반 프로토콜에서 바이너리 데이터를 전송할 때 사용하는 공식 Base85 인코딩 형식입니다.

>> 기술 정보

Z85 동작 방식:

Z85는 4바이트 블록을 5개의 ASCII 인쇄 가능 문자로 인코딩합니다. 85개의 문자로 구성된 알파벳은 C/C++ 문자열이나 JSON에서 이스케이프가 필요 없는 문자만 사용하도록 설계되어 있습니다.

예시:

"Hello" → nm=QNz.92

Z85를 사용할 때:

  • >바이너리 데이터를 소스 코드나 설정 파일에 직접 포함해야 할 때
  • >JSON, YAML, XML 등의 텍스트 포맷에서 이스케이프를 최소화하고 싶을 때
  • >Base64보다 더 컴팩트한 텍스트 표현이 필요한 경우
  • >ZeroMQ 메시징 및 프로토콜과 자연스럽게 호환되는 형식을 사용하고 싶을 때
  • >텍스트 기반 API에서 바이너리 페이로드 표시 방식을 표준화하고 싶을 때

>> 자주 묻는 질문

Z85 인코딩이란 무엇인가요?

Z85는 ZeroMQ에서 정의한 Base85 변형으로, 85개의 인쇄 가능 ASCII 문자만 사용해 소스 코드와 JSON 등에서 이스케이프 없이도 안전하게 사용할 수 있도록 설계되었습니다.

Z85는 일반 Base85와 어떻게 다른가요?

다른 Base85 구현과 달리, Z85는 따옴표, 역슬래시, 공백 등 많은 언어에서 이스케이프가 필요한 문자를 알파벳에서 제외합니다.

언제 Z85를 사용해야 하나요?

라이브러리 샘플 코드, 설정 파일, 텍스트 기반 RPC/프로토콜에 바이너리를 포함해야 할 때, 그리고 ZeroMQ와 같은 환경에서 안전한 텍스트 표현이 필요할 때 유용합니다.

Z85에는 길이 제약이 있나요?

Z85는 원본 바이너리 길이가 4바이트의 배수여야 합니다. 인코더는 필요할 경우 패딩을 추가할 수 있지만, 디코딩 시에는 이 제약을 고려해 원래 데이터를 복원해야 합니다.

다른 언어