바코드 생성 — 자릿수, 체크디지트, 그리고 유통에 쓸 수 없는 이유

작업닷컴 운영팀

바코드를 처음 만들려고 하면 두 군데서 막힙니다. "자릿수가 안 맞는다"는 오류와, 만들어서 인쇄했는데 스캐너가 안 읽는 상황입니다.

두 문제 모두 원인이 분명하고, 알고 나면 다시 겪지 않습니다. 그리고 시작하기 전에 반드시 알아야 할 것이 하나 더 있는데, 그건 아래에서 따로 다루겠습니다.

바코드는 숫자를 막대 모양으로 바꾼 표시입니다

바코드에 신비로운 정보가 담겨 있는 것은 아닙니다. 숫자나 문자를 굵기가 다른 검은 막대와 흰 틈으로 바꿔 놓은 것이 전부입니다. 8801234567893 이라는 숫자를 사람이 읽는 대신 기계가 순식간에 읽도록 옮겨 적은 것이죠.

그래서 바코드 자체에는 가격도, 상품명도, 유통기한도 들어 있지 않습니다. 들어 있는 건 번호 하나뿐이고, 그 번호로 매장 시스템의 데이터베이스를 조회해 나머지를 꺼내 오는 구조입니다. 이 점이 뒤에서 다룰 GS1 이야기의 출발점이 됩니다.

규격마다 자릿수가 정해져 있습니다

가장 많이 만나는 오류가 자릿수 문제입니다. 규격별 입력 자릿수는 이렇습니다.

규격 입력 완성
EAN-13 12자리 13자리
UPC-A 11자리 12자리

EAN-8 은 7자리를 넣으면 8자리로, ITF-14 는 13자리를 넣으면 14자리로 완성됩니다. 마지막 한 자리는 직접 계산할 필요가 없습니다.

그 마지막 자리를 체크디지트라고 합니다. 앞자리 숫자들에 1과 3을 번갈아 곱해 더한 뒤, 그 합을 10의 배수로 만드는 데 필요한 값을 붙이는 방식입니다. 앞에서 예로 든 880123456789 는 이 계산을 하면 합이 127이 되고, 10의 배수까지 3이 모자라니 체크디지트는 3, 완성된 번호는 8801234567893 입니다.

이 한 자리가 있어서 스캐너는 잘못 읽은 값을 스스로 걸러냅니다. 한 자리를 잘못 읽으면 계산이 맞지 않으니 다시 읽으라고 하는 것이죠. 완성된 13자리를 넣었는데 오류가 난다면 마지막 자리가 틀렸다는 뜻이니, 그 자리를 빼고 12자리만 넣어 자동으로 붙는 값과 비교해 보면 됩니다.

규격 선택과 자릿수 안내, 체크디지트 자동 계산은 도구에서 바로 확인할 수 있습니다.

// 바로 계산해 보세요

바코드 생성기

• Code128·EAN-13·UPC 등 여러 규격의 바코드를 만들어요. • 바 두께·높이·색을 조정하고 PNG·SVG로 저장해요.

바코드 생성기 열기

★ 여기서 만든 번호로 상품을 유통할 수는 없습니다

이 글에서 가장 중요한 부분입니다.

EAN-13 이나 UPC 형태의 바코드를 만드는 것 자체는 누구나 할 수 있습니다. 하지만 매장에 납품하거나 온라인 마켓에 상품으로 등록하는 용도로는 쓸 수 없습니다.

앞에서 말했듯 바코드에는 번호만 들어 있습니다. 그 번호가 전 세계에서 나 하나뿐이어야 시스템이 상품을 특정할 수 있는데, 그걸 보장하는 곳이 GS1(국내는 대한상공회의소 유통물류진흥원)입니다. 여기서 업체코드를 발급받으면 그 번호 대역은 우리 회사 몫이 되고, 그 안에서 상품마다 번호를 붙입니다. 발급에는 회원 가입과 연회비가 필요합니다.

임의로 만든 숫자는 모양만 같을 뿐 남의 상품 번호와 겹칠 수 있습니다. 실제로 유통 채널에 등록하려 하면 대부분 검증 단계에서 걸립니다.

반대로 회사 안에서만 쓰는 용도라면 아무 번호나 붙여도 괜찮습니다. 사내 자산 관리, 창고 재고, 도서 대출 관리, 장비 라벨처럼 내 시스템에서만 조회되는 번호라면 GS1 과 무관합니다. 오히려 이런 용도에는 EAN 이 아니라 Code 128 이 알맞습니다.

Code 128 과 Code 39, 어느 쪽을 고를까

사내 관리번호를 만든다면 이 둘 중 하나입니다.

Code 128 은 영문 대소문자·숫자·기호를 길이 제한 없이 담을 수 있고, 같은 내용을 더 짧게 그립니다. 특히 숫자만 연속으로 있으면 두 자리를 한 칸에 압축해 넣어서 폭이 크게 줄어듭니다. 특별한 이유가 없다면 기본값으로 두세요.

Code 39 는 대문자와 숫자, 몇 가지 기호만 됩니다. 대신 구조가 단순해서 오래된 스캐너와 산업용 장비에서 호환성이 좋습니다. 같은 내용을 담아도 Code 128 보다 폭이 눈에 띄게 넓어집니다. 거래처 장비가 오래됐거나 상대가 Code 39 를 요구할 때만 고르면 됩니다.

물류 박스에 쓰는 ITF-14, 의약품 포장의 Pharmacode 처럼 용도가 정해진 규격도 있으니, 상대가 규격을 지정했다면 그대로 따르는 것이 맞습니다.

인쇄에서 인식률을 가르는 것 — 여백·두께·색

만든 화면에서는 잘 읽히는데 인쇄하면 안 읽히는 경우가 많습니다. 원인은 대개 이 셋 중 하나입니다.

① 여백(quiet zone)이 부족합니다. 바코드 좌우의 빈 공간은 장식이 아니라 규격의 일부입니다. 스캐너는 이 빈 공간을 보고 "여기서 바코드가 시작한다"를 판단하기 때문에, 여백이 없으면 시작점을 못 찾습니다. EAN·UPC 는 가장 얇은 바 폭의 10배 안팎을 좌우에 두도록 규정합니다. 도구의 여백 값을 10 이상으로 두고, 라벨을 자를 때 바로 옆까지 잘라 내지 마세요.

② 바가 너무 얇습니다. 화면에서는 1픽셀도 선명하지만 인쇄기와 라벨지는 그렇지 않습니다. 잉크가 번지면 얇은 바와 틈이 뭉개져 굵기 비율이 무너집니다. 바 두께를 2 이상으로 올리고, PNG 보다 SVG 로 받아 인쇄하세요. SVG 는 크기를 바꿔도 선이 뭉개지지 않습니다.

③ 색을 바꿨습니다. 이건 따로 설명이 필요합니다.

바코드 스캐너는 색을 보지 않습니다. 빛을 쏘고 되돌아오는 양의 차이만 봅니다. 대부분의 스캐너가 붉은색 계열 빛을 쓰는데, 그래서 빨간 바는 흰 배경과 구분되지 않습니다. 붉은 빛 아래에서 빨강은 사실상 흰색처럼 보이기 때문입니다.

같은 이유로 흰 바에 검은 배경(색 반전)도 대부분 실패합니다. 스캐너는 밝은 바탕에 어두운 바가 있다고 전제하고 만들어졌습니다. 디자인상 색을 넣어야 한다면 바는 검정·짙은 남색·짙은 갈색처럼 어둡게, 배경은 흰색이나 아주 밝은 색으로 두세요.

QR 코드와는 무엇이 다른가

바코드는 가로 방향으로만 정보를 담는 1차원 코드입니다. 담을 수 있는 양이 적고 길어질수록 옆으로 늘어나지만, 구조가 단순해 계산대의 레이저 스캐너처럼 빠르게 훑는 장비에 잘 맞습니다.

QR 코드는 가로세로 두 방향을 다 쓰기 때문에 같은 면적에 훨씬 많은 정보가 들어갑니다. 주소나 문장을 통째로 넣을 수 있고, 일부가 가려져도 복원되는 오류 정정 기능이 있으며, 어느 방향으로 찍어도 읽힙니다.

정리하면 번호 하나를 빠르게 읽는 일은 바코드, 긴 정보를 휴대폰 카메라로 읽게 하는 일은 QR 입니다.

자주 묻는 질문

Q. 자릿수를 맞췄는데도 오류가 납니다. 완성된 번호를 넣으면서 체크디지트가 틀린 경우가 가장 흔합니다. 마지막 한 자리를 빼고 넣어 자동으로 붙는 값과 비교해 보세요. 규격에 맞지 않는 문자가 섞인 경우도 있습니다. EAN·UPC·ITF 는 숫자만, Code 39 는 대문자와 숫자만 받습니다.

Q. ISBN 으로 도서 바코드를 만들 수 있나요? ISBN-13 은 EAN-13 과 같은 구조라 EAN-13 으로 만들면 됩니다. 앞 12자리를 넣으면 체크디지트가 붙습니다. 다만 책 뒤표지에 붙는 정가 표시용 부가 코드는 별도 규격이라 여기서는 만들 수 없습니다.

Q. 만든 바코드를 스캐너 없이 확인할 수 있나요? 휴대폰 카메라나 바코드 스캔 앱으로 화면을 찍어 보면 됩니다. 다만 화면에서 읽히는 것과 인쇄물에서 읽히는 것은 다르니, 실제로 쓸 라벨지에 한 장 뽑아 확인하는 편이 확실합니다.

Q. 바 아래 숫자를 없애도 되나요? 기계가 읽는 데는 지장이 없습니다. 다만 그 숫자는 스캐너가 실패했을 때 사람이 직접 입력하기 위한 것이라, 계산대를 거치는 라벨이라면 켜 두는 편이 좋습니다. 값 표시 옵션으로 끄고 켤 수 있고 글자 크기도 조절됩니다.

Q. 입력한 번호가 서버로 전송되나요? 아니요. 바코드는 브라우저 안에서 그려지고 입력값은 서버로 전송되지 않습니다. PNG·SVG 다운로드도 브라우저에서 바로 만들어집니다.

바코드는 규격만 맞추면 만드는 것 자체는 어렵지 않습니다. 다만 그 번호를 어디에 쓸 것인지부터 정하고 시작하세요. 사내용이라면 지금 바로 만들어 쓰면 되고, 상품 유통이 목적이라면 번호부터 정식으로 발급받는 것이 순서입니다.

// 바로 계산해 보세요

바코드 생성기

• Code128·EAN-13·UPC 등 여러 규격의 바코드를 만들어요. • 바 두께·높이·색을 조정하고 PNG·SVG로 저장해요.

바코드 생성기 열기