바코드 만들기
안전하게 — 파일은 저장되지 않아요
PNG에만 적용돼요. SVG는 고정 크기가 없는 벡터 이미지라 어떤 크기로 키워도 선명하므로, 인쇄용으로 더 좋아요.
코드가 여기에 표시돼요
사용 방법
형식 선택
형식마다 어디에 쓰는지 설명되어 있어서, Code 39와 Code 93 사이에서 동전 던지기를 할 필요가 없습니다.
번호나 텍스트 입력
소매용 형식은 숫자만 받고 자릿수를 확인합니다. 마지막 자리를 비워 두면 자동으로 계산해 드립니다.
다운로드
인쇄에는 SVG, 그 밖에는 PNG를 쓰세요. 둘 다 라이선스나 출처 표시 없이 자유롭게 쓸 수 있습니다.
심볼로지 고르기, 그리고 스캔되게 인쇄하기
여기 있는 심볼로지(바코드 규격)들은 하는 일이 달라 서로 바꿔 쓸 수 없습니다. EAN-13과 UPC-A는 소매 상품 코드로 각각 13자리와 12자리로 고정되어 있으며, 속은 같은 표준입니다. UPC-A는 앞에 0이 붙은 EAN-13입니다. EAN-8은 작은 포장용 짧은 형식입니다. ITF-14는 외부 박스와 배송용 상자에 붙습니다. Code 128은 임의의 텍스트를 높은 밀도로 담으며 사내 시스템, 물류, 자산 관리에 쓰입니다. Code 39는 영문자와 숫자를 담고 밀도가 훨씬 낮지만, 지금까지 만들어진 거의 모든 스캐너가 읽을 수 있어서 오래된 산업·군용 시스템에 남아 있습니다.
길이가 고정된 소매용 코드에는 나머지 숫자들의 가중합으로 계산한 체크 숫자가 있어서, 잘못 읽거나 잘못 입력한 숫자가 다른 상품이 되지 않고 걸러집니다. 여기서 이를 계산하고 검증하며, 틀린 체크 숫자는 그려 주지 않고 거부합니다. 체크 숫자가 틀린 바코드는 작은 결함이 있는 바코드가 아니라, 스캐너가 곧바로 거부하는 바코드입니다.
여백(quiet zone)은 바코드가 스캔되지 않는 가장 흔한 단일 원인입니다. 양옆의 빈 여백은 장식이 아니라 규격의 일부로, 가장 좁은 막대 너비의 약 10배이며, 스캐너에 코드의 시작과 끝을 알려 줍니다. 바코드를 바짝 잘라 내거나 상자 모서리 또는 색이 있는 면에 붙이면 막대 하나를 지운 것만큼 확실하게 망가집니다. 생성된 이미지에는 여백이 포함되어 있으니, 그것을 지키는 것은 여러분의 몫입니다.
나머지는 크기와 대비가 결정합니다. 좁은 막대가 프린터 해상도보다 가늘어질 만큼 바코드를 줄이면 파일이 아무리 완벽해도 읽을 수 없습니다. 300 DPI 레이저 프린터가 현실적인 최소 기준이며, 감열식 라벨 프린터가 더 좋습니다. 밝은 바탕에 어둡게 인쇄하고, 절대 어두운 바탕에 밝게 인쇄하지 마세요. 접히는 부분이나 곡면에 걸쳐 인쇄해서도 안 됩니다. 라벨 만 장을 주문하기 전에 실제 스캐너로 테스트하세요. 휴대폰 카메라 앱은 매장의 레이저 스캐너보다 훨씬 관대합니다.
다른 작업이 필요할 때
소매용 바코드는 마음대로 지어낼 수 없습니다. 매장에서 작동하는 EAN이나 UPC에는 전 세계 번호 체계를 관리하는 GS1이 발급한 업체 코드가 들어가며, 지어낸 번호를 쓰면 아무것도 아닌 것으로 스캔되거나 다른 회사의 상품과 겹칩니다. 이 페이지는 올바른 번호라면 무엇이든 그려 드리지만, 그 번호를 쓸 권리가 있는지는 별개의 문제입니다. 매장에 납품할 상품이라면 그 답은 생성기가 아니라 GS1에서 받아야 합니다.
라벨을 대량으로 만든다면 이미지를 생성하는 것은 잘못된 방법입니다. 라벨 프린터는 ZPL이나 EPL을 사용하며, 바코드를 명령으로 보내면 프린터가 자체 해상도로 그리므로 확대한 이미지보다 항상 더 선명하고 훨씬 빠릅니다. 코드에서는 python-barcode, ZXing, bwip-js가 여기 있는 모든 심볼로지는 물론 이 페이지에 없는 GS1 복합 코드와 2D 형식까지 생성하며, 인쇄 파이프라인에 제대로 들어맞습니다.
자주 묻는 질문
어떤 형식이 필요한가요?
북미 이외 지역에서 판매하는 소매 상품이라면 EAN-13, 북미에서는 UPC-A입니다. 둘 다 들어가지 않는 작은 포장에는 EAN-8, 배송용 상자에는 ITF-14를 쓰세요. 자산 태그, 창고 위치, 자체 재고 번호 등 내부용이라면 영문자와 숫자를 모두 받고 크기가 작은 Code 128이 좋습니다. Code 39는 더 오래된 형식이라 바코드가 길어지지만, 지금까지 만들어진 거의 모든 스캐너가 읽을 수 있어 오래된 장비에서는 가끔 중요합니다.
체크 숫자는 무엇이고 왜 중요한가요?
소매용 바코드의 마지막 자리로, 직접 정하는 것이 아니라 나머지 숫자들로 계산됩니다. 스캔 오류와 입력 오류를 잡아내는 역할을 합니다. 숫자 하나가 바뀌면 체크 숫자가 맞지 않게 되어, 스캐너가 다른 상품을 조용히 계산하는 대신 판독을 거부합니다. 여기에 EAN-13의 앞 12자리를 입력하면 13번째 자리를 계산해 드립니다.
번호의 체크 숫자가 틀리면 어떻게 되나요?
원래 있어야 할 숫자를 알려 드리면서 거부합니다. 의도된 동작이며, 검색 결과 첫 번째 생성기 대신 이 페이지를 써야 하는 가장 큰 이유입니다. 그 번호는 포장, 스프레드시트, 공급업체 등 어딘가에서 온 것이고, 마지막 자리를 몰래 고쳐 버리면 오타를 잡기 위해 존재하는 바로 그 자리에서 오타를 숨기게 됩니다. 인쇄한 뒤가 아니라 여기서 알아채는 편이 훨씬 낫습니다.
짧은 번호를 알아서 채워 주나요?
아니요. 그리고 대부분의 생성기는 채워 넣는다는 점을 알아 두실 만합니다. 직접 확인해 보았습니다. "123"으로 EAN-13을 요청하면 내부 엔진은 불평하지 않고 0으로 채워 완벽하게 유효한 바코드를 돌려줍니다. 유효하지만, 전혀 다른 상품의 바코드입니다. 누군가 라벨 천 장을 인쇄하고 계산대에서야 그 사실을 알게 됩니다. 이 페이지는 먼저 자릿수를 세고, 형식에 몇 자리가 필요한지 알려 드리며 거부합니다.
바코드 번호를 구매해야 하나요?
매장에서 판매하려면 그렇습니다. 소매용 EAN·UPC 번호는 GS1이 할당하며, 업체 코드가 여러분의 회사를 식별합니다. 지어낸 번호는 실제 상품과 겹칠 수 있고 매장에서 거부됩니다. 하지만 내부용이라면 필요 없습니다. 자체 재고, 자산 태그, 도서관 시스템, 창고 위치에는 원하는 번호를 무엇이든 쓸 수 있으며, Code 128이 정확히 그 용도로 설계되었습니다.
상업적으로 무료로 쓸 수 있나요?
네. 모두 개방형 표준이라 코드를 생성하는 데 라이선스 비용이 없습니다. 이미지는 포장, 라벨 등 어디에든 출처 표시나 워터마크 없이 자유롭게 쓸 수 있습니다.
제 데이터가 어딘가에 저장되나요?
아니요. 아무것도 저장하지 않으며 어떤 요청도 보내지 않습니다. 페이지가 로드된 뒤 인터넷 연결을 끊어도 계속 작동합니다.
바코드가 스캔되지 않는 이유는 무엇인가요?
가장 흔한 원인은 너무 작게 인쇄했거나 양 끝의 흰 여백을 잘라 낸 것입니다. 1차원 바코드는 첫 막대 앞과 마지막 막대 뒤에 여백이 필요하며, 이를 잘라 내는 것이 가장 흔한 실패 원인입니다. 그다음은 저해상도로 인쇄해 가는 막대들이 뭉개지는 경우, PNG를 확대한 경우, 어두운 바탕에 밝게 인쇄한 경우입니다. 인쇄에는 SVG를 쓰고, 본격적으로 인쇄하기 전에 실제로 스캔해 보세요.
참고: EAN-13, EAN-8, UPC-A, ITF-14는 길이가 정해져 있으며, 체크 숫자를 여기서 계산하고 검증합니다. 틀린 숫자는 그려 주지 않고 거부합니다. Code 128과 Code 39는 임의의 텍스트를 받습니다. 너무 작게 그리거나 저해상도 프린터로 인쇄한 바코드는 파일이 어떻든 스캔되지 않습니다.
내 웹사이트에 이 도구 넣기
블로그, 수업 페이지, 도움말 글 어디에나 무료로 넣을 수 있습니다. 코드 한 줄만 붙여 넣으면 방문자가 페이지에서 바로 사용할 수 있습니다.