홈/인코딩 지식/바코드 기초/EAN-13 체크 디지트 알고리즘
바코드 기초 · 읽는 시간 4분
바코드 기초내용 검수 완료

EAN-13 체크 디지트는 어떻게 계산됩니까

앞 12자리를 「1, 3, 1, 3…」으로 교대로 가중 합산하고, 그 결과의 10에 대한 보수를 취합니다—체크 디지트는 이렇게 나옵니다. 이는 상품이 진품임을 보장하지는 않지만, 대부분의 입력 및 인쇄 오류를 걸러낼 수 있습니다.

가이드 요약:본 문서는 EAN-13 체크 디지트의 mod10 계산 과정을 단계별로 시연하고, 가중 순서가 「3, 1」이 아닌 「1, 3」인 이유, 그리고 검증 통과가 의미하는 것과 의미하지 않는 것을 설명합니다. 문서 말미의 온라인 도구로 임의의 번호를 다시 계산할 수 있습니다.
01

1단계: 앞 12자리 교대 가중

EAN-13은 총 13자리이며, 마지막 자리가 체크 디지트이고 앞 12자리가 데이터 자리입니다. 계산 시 첫 번째 자리부터 시작하여 홀수 자리(1, 3, 5…번째)는 1을 곱하고, 짝수 자리(2, 4, 6…번째)는 3을 곱한 후, 12개의 곱을 모두 더합니다. 주의: 오른쪽이 아닌 왼쪽 첫 번째 자리부터 세어야 합니다.

02

2단계: 보수를 구해 체크 디지트를 산출합니다

이전 단계의 합계를 10으로 나눈 나머지를 구한 뒤, 10에서 그 나머지를 빼고, 그 결과를 다시 10으로 나눈 나머지를 구합니다. 이렇게 얻은 일의 자리 숫자가 체크 디지트입니다. 공식으로 쓰면 (10 − 합계 mod 10) mod 10이며, 마지막에 mod를 한 번 더 취하는 것은 나머지가 0일 때 10이 되는 경우를 처리하기 위해서입니다.

03

가중치가 1과 3인 이유

가중치 1/3을 번갈아 적용하는 설계는 인접한 자리의 가중치를 서로 다르게 만듭니다. 이렇게 하면 '인접한 두 숫자를 바꿔 쓴' 유형의 가장 흔한 인적 오류(예: 12를 21로 봄)가 거의 반드시 가중 합계를 바꾸게 되어 체크 디지트에 걸리게 됩니다. 이것이 체크 디지트 설계의 핵심 목적입니다. 암호화가 아니라 오류 검출입니다.

04

검증 통과가 의미하는 것

단 한 가지를 의미합니다. 이 숫자열의 구성이 합법적이라는 것, 즉 규칙에 따라 생성된 GTIN일 가능성이 있다는 것입니다. 그것은아닙니다이 번호가 특정 기업에 할당되었다는 것을 의미하지 않으며,아닙니다상품이 정품이라는 것도,아닙니다번호가 GS1 데이터베이스에 존재한다는 것도 의미하지 않습니다. 귀속을 확인하려면 회원 조직의 등록 정보를 조회해야 하고, 진위를 판단하려면 브랜드사의 방위 수단이 필요합니다. 이 부분을 많은 글이 혼동합니다.

핵심 요약

바로 인용할 수 있는 핵심 결론.

요점 01

알고리즘 핵심 세 문장

왼쪽부터 홀수 자리×1, 짝수 자리×3으로 합산한 뒤 (10 − 합계 mod 10) mod 10을 취합니다.

요점 02

가중 설계가 막는 것은 전위 오류입니다

인접 자리의 가중치가 달라 '숫자를 바꿔 쓴' 유형의 빈번한 오류가 숨을 곳이 없습니다.

요점 03

검증 통과 ≠ 번호 유효

형식이 합법적이라는 것은 합법적일 가능성만 말할 뿐, 할당되었음을 말하지 않고 상품이 진품임을 말하지 않습니다.

핵심 04

체크 디지트를 수기로 입력하는 것은 고위험 작업입니다

틀리면 스캔되지 않고, 인쇄 공정에 들어가면 전체 포장 배치가 폐기될 수 있습니다.

데이터 대조

자릿수숫자가중치곱
1616
29327
3010
4133
5212
6339
7414
85315
9616
107321
11818
129327
합계——128
보수 (10 − 128 mod 10) mod 10——2

도해

EAN-13 체크 디지트 데모

EAN-13 체크 디지트 데모실제 코드 렌더링
6901234567892

예시 690123456789는 데모용 앞 12자리이며, 체크 디지트는 알고리즘으로 도출됩니다. 결과 번호는 어떤 기업에도 속하지 않습니다.

용어 설명

본문에서 다루는 전문 용어입니다.

mod10

모듈로 10 연산으로, 10으로 나눈 나머지를 구합니다. GS1 시리즈의 체크 디지트는 모두 mod10을 기반으로 합니다.

가중 합계

각 자릿수에 각각의 가중치를 곱한 후의 총합으로, 체크 계산의 중간값입니다.

전위 오류

인접한 두 자릿수의 순서가 뒤바뀐 것으로, 수기 입력에서 가장 빈번하게 발생하는 오류 유형 중 하나입니다.

관련 Q&A

계산 결과가 10이 나오면 어떻게 하나요?+
이런 경우는 올바른 결과에 나타나지 않습니다. 공식 마지막의 mod 10이 10을 0으로 처리하기 때문입니다. 수동 계산에서 10이 나왔다면 마지막 나머지 연산 단계를 빠뜨리지 않았는지 확인하세요.
UPC-A의 알고리즘도 같은가요?+
구조는 동일하지만 가중 순서가 반대입니다. UPC-A는 왼쪽부터 홀수 자리에 3을, 짝수 자리에 1을 곱합니다. 이는 동일한 바코드라도 다른 알고리즘을 사용하면 다른 결과가 나오는 이유이기도 합니다.
체크 디지트를 임의로 채워도 되나요?+
안 됩니다. 체크 디지트는 데이터 자릿수의 함수이므로, 데이터 자릿수 중 하나라도 변경되면 체크 디지트를 다시 계산해야 합니다. 번호 편성이 완료되면 먼저 도구로 일괄 검증한 후 인쇄에 넘겨야 합니다.
이 문제는 반드시 대행사를 통해야 하나요?+
필수는 아닙니다. 해당 회원 기관에 직접 신청할 수 있습니다. 대행사의 가치는 번호 대역 선택, 번호 편성, 서류 확인 및 이후 변경·갱신의 연속성 관리에 있으며, 위탁 여부는 귀하의 시간 비용에 따라 결정하시면 됩니다.
내용에 있는 숫자를 그대로 사용해도 되나요?+
본문에 나오는 바코드는 모두 GS1 규칙에 따라 생성된 데모 번호로, 구조는 적법하지만 어떤 기업에도 속하지 않으므로 실제 상품에 그대로 사용하지 마십시오. 정식 인코딩은 등록을 통해 취득한 코드 대역에 따라 직접 편성해야 합니다.
결과는 얼마나 걸리나요?+
각 회원 기관의 접수 주기가 다르며, 본 사이트는 확인되지 않은 일수 약속을 제공하지 않습니다. 요청을 제출하시면 인코딩 컨설턴트가 당시 접수 진행 상황에 따라 단계별로 안내해 드립니다.

권위 있는 출처 및 설명

본문 내용은 다음 공개 표준 및 기관 규범에 근거하여 정리되었으며, 직접 확인하실 수 있습니다.

출처 01

GS1 일반 규격(General Specifications)

GS1은 글로벌 상품 인코딩 체계를 관리하는 국제 기구로, 일반 규격에서 GTIN, GLN, SSCC 등의 인코딩 구조, 체크 디지트 알고리즘 및 심볼 인쇄 요건을 규정합니다.

출처 02

오픈소스 디코더 생태계(ZXing / zxing-cpp / zbar)

본 사이트의 모든 바코드 예시는 오픈소스 디코더로 재판독 검증을 거쳤으며, 직접 확인할 수 있어 '보기에는 맞지만 스캔되지 않는' 도식을 방지합니다.

내용 고지:본 문서는 인코딩 지식에 대한 일반적인 설명으로, 구체적인 금액, 기간 약속 또는 법규 조항 번호를 포함하지 않습니다. 특정 시장과 플랫폼의 당시 요건과 관련해서는 해당 기관과 플랫폼의 공식 문서를 기준으로 하시기 바랍니다. 본문에 등장하는 바코드는 모두 GS1 규칙에 따라 생성된 데모 번호로, 어떠한 기업에도 속하지 않으며 실제 상품에 사용하지 마십시오.

관련 글

읽고도 구체적인 질문이 있으신가요?

지식 페이지는 일반적인 문제를 해결합니다. 귀하의 상품, 시장 및 채널에 맞춰 구체적으로 알고 싶으시면 인코딩 컨설턴트에게 직접 문의하는 것이 더 빠릅니다.

—