Barcode Generator

체크섬(Checksum) 무결성 검증이 탑재된 산업 규격 바코드 렌더링 도구

🛡️ 데이터 프라이버시 및 규격 검증: 모든 데이터는 외부 서버 전송 없이 브라우저 로컬에서 안전하게 SVG 렌더링되며, 규격에 어긋난 입력 시 즉각적인 에러를 반환합니다.

🎛️ 바코드 규격 및 데이터 제어판

사용 환경과 데이터 성격에 맞는 바코드 포맷을 지정하세요.

힌트: 영문 대소문자 및 숫자 혼합 입력이 가능합니다.

✨ 실시간 렌더링 캔버스

⚠️ 렌더링 실패: 입력하신 데이터가 선택한 규격()의 규칙과 일치하지 않습니다. 데이터 길이나 문자 형식을 확인해 주세요.

💡 생성기 사용 방법 (How to Use)

Step 1

포맷 규격 지정

좌측 제어판에서 생성 목적(물류, 상품 유통, 내부 재고 관리 등)에 맞는 바코드 표준 규격(Format)을 선택합니다.

Step 2

데이터 유효성 입력

선택한 규격의 입력 규칙(예: EAN-13은 숫자 12~13자리)에 맞게 데이터를 입력창에 작성합니다.

Step 3

저장 및 현장 출력

우측 캔버스에 즉각적으로 렌더링된 바코드를 확인한 후, '이미지 저장(PNG)' 또는 '즉시 인쇄' 버튼을 눌러 실무에 활용합니다.

바코드(Barcode) 기술의 논리와 광학 식별 알고리즘

바코드(Barcode)는 데이터를 검은색 막대(Bar)와 흰색 공백(Space)의 너비 차이로 부호화하여 광학 스캐너가 즉시 읽어 들일 수 있도록 만든 1차원(1D) 기호입니다. 스캐너가 레이저를 조사하면 검은 막대는 빛을 흡수하고 흰 공백은 빛을 반사하는데, 이 광학적 반사율의 차이를 전기적 신호인 0과 1의 바이너리(Binary) 코드로 변환하여 데이터를 파싱(Parsing)하는 것이 바코드 시스템의 본질적인 원리입니다.

2차원 매트릭스인 QR 코드가 대중화되었음에도 불구하고, 1차원 바코드는 여전히 글로벌 유통망, 물류 창고, 그리고 POS(Point of Sales) 시스템의 절대적인 표준으로 군림하고 있습니다. 그 이유는 압도적인 '인식 속도'와 시스템 구축 비용의 '효율성' 때문입니다. 프레티 툴즈(freety.tools)의 바코드 생성기는 자바스크립트 엔진을 활용하여 CODE128, EAN-13, UPC 등 글로벌 산업 표준 규격을 브라우저 로컬 환경에서 정확하고 선명하게 렌더링하는 전문가용 유틸리티입니다.

1. 모듈로 10 알고리즘 기반 체크섬(Checksum) 무결성 검증

현대의 상업용 바코드는 단순히 숫자를 막대로 그린 것이 아닙니다. 데이터의 무결성을 시스템적으로 검증하기 위해 '체크섬(Checksum)' 또는 '체크 디지트(Check Digit)'라는 수학적 안전장치를 내부에 포함하고 있습니다.

가장 범용적으로 사용되는 모듈로 10 (Modulo 10) 알고리즘의 연산 구조는 다음과 같습니다.

$$ \text{Checksum} = \left( 10 - \left( \sum_{i=1}^{n} w_i \times x_i \pmod{10} \right) \right) \pmod{10} $$

바코드의 가장 마지막 자리에 위치하는 이 체크 디지트는, 앞선 데이터들의 홀수 자리와 짝수 자리에 특정 가중치(Weight)를 곱하여 합산한 산술 결과입니다. 스캐너로 바코드를 읽는 순간, 단 하나의 막대라도 인쇄 불량으로 훼손되어 이 수학적 연산 값이 틀어지게 되면 시스템은 즉각적으로 오류(Read Error)를 발생시킵니다. 본 생성기는 입력된 데이터 뒤에 규격별 체크섬을 백그라운드에서 자동 계산하여 부착함으로써, 실무 POS 기기에서 100% 인식되는 규격 준수 바코드를 생성합니다.

1. 데이터 부호화 문자열 ➔ 막대 너비(Width) 변환
2. 광학 레이저 스캔 반사율 기반 0과 1 바이너리 파싱
3. 무결성 식별 체크섬 연산 일치 시 입력 승인

2. 산업 표준 규격별 특성과 재고 관리(WMS) 도입 전략

실무자는 데이터의 성격과 유통 환경에 따라 가장 논리적인 바코드 규격을 선택해야 합니다.

  1. CODE128 (범용 물류 표준): 1차원 바코드 중 가장 높은 데이터 밀도를 자랑합니다. 숫자뿐만 아니라 영문 대소문자 및 ASCII 기호 전체를 표현할 수 있어, 기업 내부의 사내 자산 관리 번호나 복잡한 재고 코드 생성에 가장 이상적인 포맷입니다.
  2. EAN-13 / UPC (글로벌 유통 표준): 전 세계 마트와 편의점에서 판매되는 모든 공산품에 부여되는 국제 표준 규격입니다. 영문 입력이 불가능하며, 국가 코드, 제조사 코드, 상품 코드로 이루어진 엄격한 13자리(또는 12자리) 숫자 배열만을 허용합니다. 제품 상용화를 위해서는 반드시 GS1 기구로부터 발급받은 정식 번호를 입력해야 합니다.
  3. CODE39 (거친 산업 현장용): 구조가 매우 단순하고 직관적이어서 인쇄 품질이 떨어지는 골판지 박스나 공장 자동화 라인에서도 뛰어난 광학 인식률을 보장합니다. 알파벳 대문자와 숫자 입력이 가능합니다.
barcode-render-engine.js
// 프레티 툴즈: 1D 바코드 SVG 렌더링 및 에러 헨들링 엔진
const renderBarcode = (payload, formatType) => {
  const canvas = document.querySelector("#barcode-svg");
  
  try {
    // JsBarcode 라이브러리를 통한 클라이언트 사이드 렌더링
    JsBarcode(canvas, payload, {
      format: formatType, // CODE128, EAN13, CODE39 등
      lineColor: "#000000", // 광학 스캐너의 반사율을 극대화하는 순수 블랙
      background: "#ffffff", // 여백(Quiet Zone) 보호를 위한 화이트
      width: 2,           // 모듈(막대)의 기본 픽셀 너비
      height: 100,        // 스캐너가 읽기 충분한 수직 해상도
      displayValue: true, // 하단에 사람이 읽을 수 있는(Human Readable) 텍스트 표시
      valid: function(valid) {
        if (!valid) throw new Error("규격 위반 데이터");
      }
    });
    return true; // 렌더링 성공
  } catch (error) {
    return false; // 규격 불일치(예: EAN-13에 문자 입력) 시 에러 반환
  }
};

3. 자주 묻는 유통 바코드 규격 상식 (FAQ)

Q. 생성된 바코드를 상업적 용도나 제품 판매에 바로 사용할 수 있나요?

본 도구가 생성하는 바코드 이미지 자체는 상업적으로 이용 가능합니다. 하지만 EAN-13이나 UPC 규격을 편의점이나 대형 마트 등 실제 유통망에서 제품 판매용으로 쓰시려면, 임의의 숫자를 넣어서는 안 되며 반드시 대한상공회의소 유통물류진흥원(GS1 Korea)으로부터 정식 발급받은 기업 코드와 상품 코드를 결합하여 입력해야 POS기기에서 충돌 없이 인식됩니다.

Q. 바코드를 라벨지에 인쇄했는데 스캐너가 인식을 못 합니다. 원인이 무엇인가요?

인식 실패의 핵심 원인은 광학적 대비(Contrast) 부족여백(Quiet Zone) 침범입니다. 검은 막대와 흰 배경의 대비가 명확해야 스캐너가 인식할 수 있습니다. 또한 바코드 좌우 양끝에는 반드시 빈 공간이 일정 수준 이상 확보되어야 하므로 라벨지를 바짝 자르지 마십시오. 프린터 잉크 번짐 현상도 원인이 될 수 있으니 가급적 레이저 프린터나 감열식 바코드 전용 프린터를 사용하세요.