ZPL이란? Zebra 프로그래밍 언어 해설

2026년 6월 23일 업데이트

ZPL(Zebra 프로그래밍 언어)은 Zebra 및 Zebra 호환 감열 프린터가 라벨을 기술하는 데 사용하는 명령 언어입니다. 일반 프린터처럼 완성된 이미지를 받는 대신, ZPL 프린터는 "여기에 이 텍스트를, 저기에 이 바코드를, 한 장 인쇄"라고 설명하는 짧은 일반 텍스트 명령 블록을 받아 밀리초 만에 전체 프린터 해상도로 라벨 자체를 렌더링합니다.

이러한 설계 덕분에 ZPL은 1980년대부터 배송·창고·소매·의료 라벨링 분야를 지배해 왔습니다. 프린터로 전송되는 데이터가 작고, 텍스트를 생성할 수 있는 것(ERP 시스템, 스크립트, 브라우저)이면 무엇이든 생성할 수 있으며, 프린터 하드웨어가 핵심 처리를 담당합니다. 1990년대 초 이후 제조된 거의 모든 Zebra 프린터는 현재 사용 중인 개정판인 ZPL II를 지원하며, "ZPL 호환" 에뮬레이션을 광고하는 다른 브랜드의 많은 프린터도 마찬가지입니다.

ZPL 라벨은 어떻게 생겼나요?

ZPL 문서는 각각 캐럿(^)으로 시작하는 명령어의 시퀀스입니다. 모든 라벨은 ^XA(형식 시작)과 ^XZ(형식 종료) 사이에 감싸입니다. 다음은 완전하고 실제로 작동하는 라벨입니다:

^XA
^CF0,40
^FO50,50^FDHELLO WORLD^FS
^FO50,110^GB700,4,4^FS
^BY3,2,100
^FO150,150^BCN,100,Y,N,N^FD12345678^FS
^XZ

줄별로 읽어보면:

  • ^XA^XZ — 라벨 형식을 열고 닫습니다. 그 사이의 모든 것이 라벨 하나를 기술합니다.
  • ^CF0,40 — 기본 폰트를 스케일러블 폰트 0으로 설정하고 높이를 40 도트로 지정합니다.
  • ^FO50,50필드 원점(Field Origin): 다음 필드를 왼쪽에서 50 도트, 위에서 50 도트 위치에 배치합니다.
  • ^FDHELLO WORLD^FS필드 데이터(Field Data) 뒤에 오는 필드 구분자(Field Separator): 필드의 실제 내용입니다.
  • ^GB700,4,4 — 너비 700 도트, 높이 4 도트의 그래픽 박스(Graphic Box)를 그립니다 — 여기서는 수평 구분선으로 사용됩니다.
  • ^BY3,2,100 그다음 ^BCN,100,Y,N,N — 바코드 기본값(모듈 너비, 비율, 높이)을 설정한 후, 데이터 Code 128 바코드를 12345678로 렌더링하고 아래에 인간이 읽을 수 있는 줄을 표시합니다.

픽셀이 아닌 도트: DPI 이해하기

ZPL의 모든 좌표와 크기는 프린터 도트로 측정되며, 도트의 물리적 크기는 프린트헤드 해상도에 따라 달라집니다. 일반적인 해상도는 203 dpi(8 도트/mm), 300 dpi(12 도트/mm), 600 dpi(24 도트/mm)입니다. 203 dpi 프린터에서 4×6인치 배송 라벨은 812×1218 도트이고, 300 dpi 프린터에서 동일한 라벨은 1200×1800 도트입니다. 한 해상도용으로 작성된 ZPL은 다른 해상도에서 더 작거나 크게 인쇄됩니다. 이것이 "새 프린터에서 라벨이 이상하게 보인다"는 가장 흔한 원인입니다 — 크기는 목표 DPI에 맞게 조정해야 합니다.

ZPL vs. EPL vs. 드라이버 인쇄

일부 레거시 데스크탑 프린터가 사용하는 더 오래되고 단순한 언어인 EPL(Eltron 프로그래밍 언어)을 접할 수도 있습니다. 최신 Zebra 프린터는 둘 다 지원하지만, 새 작업에는 ZPL을 사용해야 합니다. 두 언어의 대안은 드라이버 기반 인쇄입니다. Windows 또는 CUPS 드라이버가 렌더링된 페이지를 프린터 명령으로 변환해 줍니다. 드라이버는 Word나 PDF 뷰어에서 인쇄할 때 편리하지만, 원시 ZPL은 정밀한 배치, 더 선명한 바코드, 훨씬 작은 페이로드, 드라이버 설치가 비현실적인 시스템에서도 인쇄할 수 있는 기능을 제공합니다. 그것이 라벨 소프트웨어가 결국 ZPL을 사용하는 이유입니다.

ZPL 작성 방법 또는 생성 방법

일회성 라벨의 경우 명령어 레퍼런스를 참고하면서 직접 ZPL을 작성하는 것도 충분히 가능합니다. 이 언어는 작고, 몇 가지 명령어(^FO, ^FD, ^A, ^BC, ^GB)만으로도 대부분의 실제 라벨을 커버할 수 있습니다. 레이아웃을 반복적으로 수정해야 할 때부터 힘들어집니다 — 위치를 조금 바꿀 때마다 도트 좌표를 편집하고 파일을 재전송하고 라벨 용지를 낭비해야 합니다.

이것이 시각적 디자이너가 해결하는 문제입니다. ZPLCraft는 실제 크기의 캔버스에서 텍스트, 바코드, 선, 박스를 드래그하여 배치하면 프린터 DPI에 맞게 올바르게 스케일된, 스캔 가능한 바코드를 포함한 ZPL이 자동으로 생성됩니다. 이미 ZPL을 전송하는 기존 시스템에 코드를 내보내거나, 아무것도 설치하지 않고 브라우저에서 USB로 직접 인쇄 할 수 있습니다.

자주 묻는 기본 질문

ZPL은 무료로 사용할 수 있나요?

예. ZPL은 사실상 개방 표준입니다. Zebra는 전체 ZPL II 프로그래밍 가이드를 공개하고 있으며, 라이선스가 필요하지 않습니다. 어떤 텍스트 편집기로도 작성할 수 있습니다.

ZPL 파일 확장자는 무엇인가요?

필수 확장자는 없습니다 — ZPL은 일반 텍스트입니다. 실제로 .zpl, .txt.prn가 사용됩니다. 프린터는 신경 쓰지 않으며, 단지 바이트 스트림을 소비할 뿐입니다.

프린터 없이 ZPL을 미리볼 수 있나요?

예 — Labelary 같은 렌더링 서비스가 ZPL을 이미지로 변환하며, ZPLCraft 편집기는 디자인하는 동안 라벨의 실시간 미리보기를 표시하므로 레이아웃이 확정될 때만 라벨 용지를 소비합니다.