Code 128의 구조
Code 128은 시작 코드, 데이터, 체크섬, 종료 코드로 이루어진 1차원 바코드입니다. 심볼 하나는 검은 바 3개와 흰 공간 3개, 총 11모듈 폭으로 고정되어 있고, 각 바·공간의 굵기(1~4모듈)를 조합해 103개 데이터 값(0~102)에 시작 코드 3개·정지 코드를 나타냅니다. 문자 집합은 세 가지로 A(대문자·제어문자), B(대소문자·기호), C(숫자 두 자리를 한 심볼에)입니다. 이 도구는 B를 기본으로 쓰고 4자리 이상 숫자가 이어지면 C로 전환해 길이를 줄입니다. 체크섬은 시작 코드 값에 각 데이터 값×위치를 더한 합을 103으로 나눈 나머지이며, 스캐너는 이 값이 맞지 않으면 읽은 결과를 버립니다. 생성은 브라우저 안에서만 이루어집니다.
EAN-13과 체크 디지트
마트 상품의 13자리 바코드가 EAN-13입니다. 앞 3자리는 국가 코드(한국 880), 이어서 제조사 코드와 상품 코드, 마지막 1자리가 체크 디지트입니다. 체크 디지트는 앞 12자리를 홀수 자리 ×1, 짝수 자리 ×3으로 가중해 더한 뒤 10의 배수가 되도록 맞추는 숫자이고, 이 도구가 자동 계산합니다. 첫 번째 숫자는 바로 그려지지 않고 왼쪽 6자리의 인코딩 패턴(L/G 조합)으로 표현되는 것이 EAN-13의 특징입니다. 실제 판매용 코드는 대한상공회의소 유통물류진흥원(GS1 Korea)에서 발급받아야 하며, 임의로 만든 번호는 매장 시스템에서 다른 상품과 충돌할 수 있습니다.
스캔이 잘 되게 하려면
세 가지가 중요합니다. 첫째, 모듈(가장 가는 선) 폭이 인쇄물 기준 0.25mm 이상이어야 합니다. 둘째, 바코드 좌우에 여백(quiet zone)이 10모듈 이상 있어야 하는데 이 도구는 자동으로 넣습니다. 셋째, 이미지를 확대·축소할 때 보간이 일어나 선이 흐려지지 않도록 정수 배로 조정하거나, 처음부터 필요한 크기의 모듈 폭으로 생성하는 것이 좋습니다. JPG로 저장하면 압축 노이즈로 경계가 뭉개지므로 PNG를 유지하세요.
어느 종류를 고를까
자산 태그, 회원 번호, 입장권, 택배 송장처럼 내부에서만 쓰는 번호는 Code 128이 맞습니다. 영문·기호가 들어가고 길이 제한이 없습니다. 소매 판매용 상품이면 EAN-13이 필요하고, 번호는 발급받은 것을 써야 합니다. QR 코드가 필요하면 별도의 QR 코드 생성기를 쓰면 됩니다.
자주 묻는 질문
한글을 넣으면 오류가 나요.
Code 128은 ASCII 문자만 표현합니다. 한글·이모지는 넣을 수 없으며, 필요하면 QR 코드를 써야 합니다.
생성한 EAN-13으로 상품을 팔 수 있나요?
아닙니다. 번호 체계는 맞게 그려지지만 번호 자체는 GS1에서 발급받아야 유통망에서 인식됩니다. 이 도구는 발급받은 번호를 이미지로 만드는 용도입니다.
스마트폰 카메라로 읽히지 않아요.
화면 밝기를 올리고 바코드 폭이 화면의 절반 이상 차지하게 확대해 보세요. 모듈 폭을 3~4px로 늘려 다시 생성하면 화면 스캔이 쉬워집니다.