본문으로 바로가기

바코드 생성기

CODE128, EAN-13, EAN-8, UPC-A, CODE39, ITF-14 바코드를 만들어 PNG·SVG로 저장하세요. 체크 디지트를 자동으로 계산·검증하고 막대 두께·여백·색을 바꿀 수 있습니다.

미리보기

값을 입력하세요.

예: ORDER-2026-0042

영문·숫자·기호(ASCII)를 담는 범용 형식. 재고·주문번호 등에 씁니다.

모양 옵션

색상

입력한 내용은 이 브라우저 안에서만 처리되며 서버로 전송되지 않습니다. 어떻게 동작하나요?

123456을 실제 Code 128 바코드로 변환

사용 방법

’바코드 형식’을 고르고 ’값’을 입력하면 ’미리보기’에 바코드가 그려집니다. 형식을 바꾸면 ‘값’ 칸에 그 형식이 받는 자릿수나 예시가 보입니다.

  • 모양 옵션: ’막대 두께’는 가장 가는 막대 하나의 너비로 1 ~ 8px(기본 2px), ’높이’는 20 ~ 400px(기본 100px), ’여백’은 바코드 둘레의 빈 공간으로 0 ~ 50px(기본 10px)입니다. 범위를 벗어난 값은 가장 가까운 한계값으로 그립니다. ’값 텍스트 표시’를 끄면 막대 아래의 글자가 사라집니다.
  • 색상: ‘막대 색’, ‘텍스트 색’, ’배경색’을 따로 고르고 ’배경 불투명도’를 0%로 내리면 배경이 투명해집니다.
  • 저장: ’PNG 다운로드’는 설정한 크기의 2배 해상도로 저장합니다. 막대 두께 2px로 만든 바코드는 PNG에서 막대 하나가 4픽셀입니다. ’SVG 다운로드’는 확대해도 깨지지 않는 벡터 파일입니다.

바코드를 그리는 라이브러리(JsBarcode)는 페이지를 열 때가 아니라 첫 값을 입력할 때 내려받습니다. 그래서 첫 바코드는 조금 늦게 나올 수 있고, 페이지를 연 뒤 인터넷이 끊긴 상태에서는 ’이 값으로는 바코드를 만들 수 없습니다.’가 나올 수 있습니다.

형식별로 넣을 수 있는 값

형식 받는 값 주로 쓰는 곳
CODE128 영문·숫자·기호(ASCII). 길이 제한 없음 범용 형식. 물류 라벨의 GS1-128이 이 형식을 바탕으로 합니다
EAN-13 숫자 12자리 또는 13자리 전 세계의 소매 상품
EAN-8 숫자 7자리 또는 8자리 포장이 작은 소매 상품
UPC-A 숫자 11자리 또는 12자리 주로 북미의 소매 상품
CODE39 숫자, 영문 대문자, 기호 - . $ / + %와 띄어쓰기 숫자와 영문 대문자로 된 사내 번호
ITF-14 숫자 13자리 또는 14자리 낱개가 아닌 박스 단위 물류

숫자만 받는 네 형식은 짧은 쪽 자릿수로 넣으면 마지막 한 자리(체크 디지트)를 계산해 붙이고, 긴 쪽 자릿수로 넣으면 마지막 자리가 맞는지 검증합니다. 하이픈이나 띄어쓰기가 사이에 있으면 ’숫자만 입력하세요.’가 나오므로 숫자만 이어서 넣으세요. CODE39에 소문자를 넣으면 대문자로 바꿔서 그립니다.

CODE39 체크 문자: 기본은 꺼져 있고, 꺼 둔 채로도 바코드는 만들어집니다. CODE39를 고르면 ‘값’ 아래에 ’계산된 체크 문자’가 항상 표시되는데, 체크 상자를 켜야만 그 문자가 바코드 끝에 실제로 들어갑니다. 예를 들어 SAMPLE-123의 체크 문자는 X입니다. 바코드를 읽는 쪽 시스템이 체크 문자를 요구할 때만 켜세요.

체크 디지트 계산 예시

체크 디지트는 번호를 잘못 옮기거나 스캐너가 잘못 읽었을 때 걸러내기 위한 마지막 한 자리입니다. EAN-13·EAN-8·UPC-A·ITF-14가 같은 GS1 규칙을 씁니다. 체크 디지트를 뺀 숫자에 오른쪽부터 3, 1, 3, 1 순서로 곱해 모두 더하고, 그 합을 10의 배수로 올리는 데 필요한 수가 체크 디지트입니다.

EAN-13에 123456789012를 넣었을 때의 계산입니다.

단계 계산 값
오른쪽에서 홀수 번째 자리 × 3 (2 + 0 + 8 + 6 + 4 + 2) × 3 66
오른쪽에서 짝수 번째 자리 × 1 1 + 9 + 7 + 5 + 3 + 1 26
합 66 + 26 92
체크 디지트 100 - 92 8

‘값’ 아래에 “체크 디지트 8을(를) 자동으로 계산해 붙였습니다.“가 나오고 바코드는 1234567890128로 그려집니다. 같은 12자리 123456789012를 UPC-A에 넣으면 12자리 전체를 번호로 보고 마지막 2가 체크 디지트로 맞는지 검증합니다. 같은 숫자라도 형식에 따라 읽는 방식이 달라지므로 형식을 먼저 고르세요.

색을 바꿀 때 뜨는 경고

막대 색과 배경색의 밝기 차이가 작으면 ‘색상’ 아래에 스캐너가 인식하지 못할 수 있다는 경고가 뜹니다. 기준은 두 색의 대비 비율 3:1입니다. 흰 배경에 검은 막대는 21:1이고, 흰 배경에 노란 막대는 약 1.07:1이라 경고가 뜹니다.

  • 배경을 반투명하게 하면 흰 종이 위에 놓였다고 보고 대비를 계산합니다. 투명한 바코드를 색이 있는 바탕 위에 올릴 때는 경고가 없어도 대비를 직접 확인해야 합니다.
  • 대비 경고는 밝기 차이만 봅니다. 어두운 배경에 밝은 막대처럼 명암이 뒤집힌 조합에는 대비가 커도, 스캐너에 따라 읽히지 않을 수 있다는 경고가 따로 뜹니다.
  • ’텍스트 색’은 스캔과 관계가 없어 검사하지 않습니다.

경고가 없다고 스캔이 보장되는 것은 아닙니다. 색을 바꿨다면 실제로 쓸 스캐너로 읽어 보세요.

인쇄하기 전에

스캐너는 바코드 양옆의 빈 공간(quiet zone)을 보고 시작과 끝을 찾습니다. ’여백’을 0px까지 줄일 수 있지만, 그러면 이 빈 공간을 인쇄물 쪽에서 따로 남겨 두어야 합니다. ’여백’은 px로 고정된 값이라 ’막대 두께’를 키워도 함께 늘지 않으니 막대를 굵게 했다면 여백도 같이 키우세요.

’막대 두께’를 1px로 두고 작게 인쇄하면 잉크가 번져 가는 막대가 뭉개질 수 있습니다. 크기를 맞출 때는 PNG를 줄이고 늘리기보다 SVG를 쓰거나 ’막대 두께’와 ’높이’를 바꿔 다시 받으세요. 인쇄한 뒤에는 실제 스캐너나 휴대폰 앱으로 한 번 읽어 보고 배포하세요.

참고 자료

자주 묻는 질문

이 도구로 만든 바코드를 실제 상품에 붙여 팔 수 있나요?

번호가 정식으로 발급된 것이어야 합니다. EAN-13·UPC-A 같은 소매용 코드로 상품을 유통하려면 GS1 같은 공인 기관에서 받은 번호(사업자 접두코드)가 필요합니다. 이 도구는 입력한 숫자를 표준 형식의 막대 모양으로 그려 줄 뿐, 번호를 발급하거나 등록하지 않습니다. 이미 발급받은 번호를 넣어 인쇄용 그림을 만드는 데 쓰거나, 사내 재고·주문번호처럼 번호를 스스로 정하는 용도에 쓰세요.

é 같은 강세 글자나 한글·한자·가나, 이모지를 바코드에 넣을 수 있나요?

넣을 수 없습니다. 여섯 형식 가운데 글자를 가장 폭넓게 받는 CODE128도 영문·숫자·기본 기호(ASCII)까지만 받습니다. é나 日 같은 문자가 하나라도 들어 있으면 '이 형식에서 쓸 수 없는 문자가 있습니다.'가 나오고 바코드는 만들어지지 않습니다. 이런 문자나 긴 문장을 담아야 한다면 QR 코드 생성기를 쓰세요.

13자리를 그대로 옮겨 넣었는데 '체크 디지트가 맞지 않습니다'가 나옵니다.

마지막 자리가 앞 12자리로 계산한 값과 다르다는 뜻입니다. 대개 앞자리 가운데 하나를 잘못 옮겼거나 두 숫자의 순서를 바꿔 쳤을 때 생깁니다. 오류 문구가 입력한 마지막 숫자와 계산된 숫자를 함께 보여 주지만, 계산된 숫자로 고치기 전에 원래 번호와 한 자리씩 대조해 보세요. 앞자리가 틀린 채로 마지막 숫자만 맞추면 다른 번호의 바코드가 됩니다.

사용한 오픈소스: JsBarcode (MIT)

최종 수정일: