GS1 등 바코드 규격에서 무엇이 정해져 있고, 실운용에서 무엇에 주의해야 하는가 - GTIN · AI · GS1-128 · GS1 DataMatrix의 정리

· · GS1, 바코드, GTIN, GS1-128, GS1 DataMatrix, 재고 관리

바코드 상담에서 자주 일어나는 일은, JAN을 붙이고 싶다, GS1-128로 하고 싶다, QR로 하고 싶다가 같은 레이어의 이야기로 섞이는 것입니다.

실제로는 먼저 나누어 생각해야 할 것이 있습니다.

  • 무엇을 식별하고 싶은가
  • 어떤 속성 정보를 지니게 하고 싶은가
  • 어떤 심볼로 표현할 것인가
  • 읽어낸 뒤 상위 시스템에서 어떻게 해석할 것인가

GS1은 이 4가지를 이어주기 위한 표준입니다. 요컨대 GS1은 “번호를 붙이는 방법”만이 아니라, 데이터의 의미, 바코드의 그릇, 배치와 품질, 판독 후의 처리까지 포함하는 계약입니다.1

아래는 2026년 4월 시점에서 확인할 수 있는 GS1 / GS1 Japan / 후생노동성 자료를 전제로 정리한 내용입니다.

1. 먼저 결론부터

GS1 주변 실무에서 먼저 짚어둘 것은 다음 5가지입니다.

  1. GTIN과 바코드의 종류는 별개입니다.
    GTIN은 상품 식별 코드이고, EAN/UPC, ITF, GS1-128, GS1 DataMatrix, GS1 QR 코드는 그것을 표현하는 수단입니다. 여기를 섞으면 설계가 무너집니다.23

  2. GTIN만으로는 부족한 장면이 많습니다.
    로트 번호, 유효기간, 시리얼 번호까지 다루려면, GS1 애플리케이션 식별자(AI)를 사용해 속성을 별도로 가지게 할 필요가 있습니다.4

  3. POS, 물류, 추적성에서는 적합한 심볼이 다릅니다.
    소비자용 POS는 GTIN 중심, 물류는 GTIN-14나 SSCC, 추적성·규제 분야는 GTIN에 로트·기한·시리얼을 더하는 형태가 기본이 됩니다.25

  4. 실운용에서의 사고는 인쇄 자체보다 수신 측에서 일어납니다.
    FNC1, 가변 길이 AI의 구분, 스캐너 설정, 심볼 체계 식별자, 상위 시스템의 파서, 상품 마스터의 갱신 규칙까지 정해두지 않으면, 읽혀도 쓸 수 없습니다.43

  5. 소매의 2D 이행은 진행 중이지만, 아직 이행기입니다.
    GS1의 소매용 2D 가이드에서는, POS가 충분히 2D에 대응할 때까지는 2D뿐만 아니라 POS용 선형 바코드를 병기하는 전제를 두고 있습니다.67

요컨대, 바코드 생성의 이야기부터 들어가기보다는, 누가, 어디서, 무엇을 읽고, 어떤 업무에 쓰는가부터 결정하는 편이 실패하지 않습니다.

2. GS1에서 규격화되어 있는 레이어

2.1 식별 코드

GS1에는 우선 “무엇을 식별할 것인가”를 위한 식별 키가 있습니다.

상품을 식별하는 대표가 GTIN입니다. GTIN에는 GTIN-8 / 12 / 13 / 14가 있고, 일본에서는 GTIN-13과 GTIN-8이 JAN 코드로 널리 사용되고 있습니다. GTIN-13은 단품이나 최소 거래 단위, GTIN-14는 케이스나 볼 등 집합 포장에 사용됩니다.2

물류 단위를 식별하는 대표는 SSCC입니다. 팰릿이나 케이스 등의 포장에 SSCC를 부여하고, 출하 데이터와 연결해 수령 검품을 간소화한다, 라는 것이 GS1다운 사용법입니다.5

여기서 중요한 것은, GTIN은 “어느 상품인가”를 나타내는 키이지, 로트나 기한을 겸하는 것은 아니다라는 점입니다. 로트나 기한은 별도 레이어에서 가집니다.

2.2 속성 정보의 의미를 정하는 AI

GTIN에 추가로 지니게 할 속성은 GS1 애플리케이션 식별자(AI)로 정의합니다. AI는 2자리에서 4자리의 숫자이며, 뒤에 이어지는 데이터의 의미와 포맷을 정합니다.43

대표 예만 들면 다음과 같습니다.

  • (01) GTIN
  • (00) SSCC
  • (10) 로트 / 배치 번호
  • (17) 유효기간
  • (21) 시리얼 번호

GS1에서 중요한 것은 “숫자열을 읽을 수 있는 것”이 아니라, 그 숫자열을 같은 의미로 해석할 수 있는 것입니다. AI가 있음으로써, 여러 데이터를 하나의 바코드에 넣어도 수신 측이 의미를 잘못 받을 가능성이 줄어듭니다.4

2.3 데이터 캐리어로서의 바코드 심볼

다음으로, “그 데이터를 무엇으로 표현할 것인가”가 데이터 캐리어입니다. GS1의 세계에서는 이것도 나누어 생각합니다.18

GTIN만 표현하는 용도에서는 EAN/UPC(일본에서는 JAN 심볼)나 ITF가 지금도 널리 사용됩니다. 한편, 날짜나 로트 번호 같은 추가 속성까지 표현하고 싶다면 GS1-128, GS1 DataMatrix, GS1 QR 코드 등이 후보가 됩니다.3

여기서 자주 오해받는 것이, GS1-128은 “Code 128 그 자체”가 아니다라는 점입니다. 마찬가지로, GS1 DataMatrix는 Data Matrix의, GS1 QR 코드는 QR 코드의 GS1용 subset입니다. GS1의 규칙에 따르고 있음을 나타내기 위해 FNC1을 사용하고, AI의 구문으로 데이터를 늘어놓습니다.83

즉, Code 128을 만들 수 있다GS1-128을 올바르게 만들 수 있다는 같은 의미가 아닙니다.

2.4 배치, 크기, 품질, HRI

GS1의 종합 사양서는 식별 코드와 AI뿐만 아니라, 심볼의 사이즈, X 치수, 쿼이어트 존, 배치, 품질 평가, Human Readable Interpretation(HRI)까지 다루고 있습니다.1

이 때문에, 바코드는 디자인 부품처럼 적당히 축소·확대해도 되는 것이 아닙니다. 특히 물류용이나 고속 POS용에서는 인쇄 품질과 배치가 판독률과 직결됩니다. 소매용 2D 가이드에서도 배치와 복수 바코드 운용은 POS의 처리 속도 유지와 직결된다고 하고 있습니다.6

3. 실무에서 먼저 나누어야 할 용도

3.1 소비자용 POS

계산대에서 고속으로 읽는 용도에서는, 우선 GTIN을 안정적으로 읽을 수 있는 것이 최우선입니다. 추가 속성을 넣고 싶은 장면은 늘고 있지만, 현 상황은 이행기이며, 2D뿐만 아니라 선형 바코드의 병기가 필요한 경우가 있습니다.67

그러므로 “이제부터는 QR의 시대니까 전부 2D로 한다”는 결정은 위험합니다. POS 스캐너가 읽을 수 있는가뿐만 아니라, 호스트 POS가 무엇을 받아서 무엇을 쓸 수 있는가까지 확인이 필요합니다.67

3.2 물류·입출하·SCM 라벨

물류에서는 케이스나 팰릿 단위의 식별, 수령 검품, 출하 데이터와의 대조가 중심이 됩니다. 이 맥락에서는 GTIN-14나 SSCC와, GS1-128의 조합이 지금도 꽤 강합니다.25

요컨대, 물류에서는 “무엇을 넣었는가”보다 “어떤 단위를, 어떤 데이터와 연결할 것인가”가 중요합니다. 바코드 단독이 아니라, ASN이나 출하 실적 데이터와 세트로 설계하는 편이 자연스럽습니다.

3.3 추적성·규제 분야

의료, 식품, 안전 관리, 기한 관리에서는 GTIN만으로는 부족한 경우가 많습니다. GTIN에 로트, 유효기간, 시리얼 번호를 추가해, 개품이나 로트 단위의 추적이 가능하도록 합니다.49

GS1 DataMatrix의 가이드라인에서도, GS1 DataMatrix는 주로 오픈 시스템에서의 이용을 상정하고 있으며, 거래 상대가 같은 데이터를 같은 의미로 읽을 수 있는 것이 전제입니다.8

여기서는 인쇄할 수 있다는 것보다, 거래처나 규제 당국까지 포함해 같은 의미로 흘릴 수 있다는 것이 중요합니다.

4. GS1에서 정해져 있는 대표적인 규칙

4.1 GTIN은 마음대로 돌려써도 되는 번호가 아니다

GTIN의 부번에서는, “이전 상품과 같은 번호로 계속 써도 되는가”가 중요합니다. GS1 Japan에서는 신상품이나 기존 상품의 변경 시에 새로운 GTIN이 필요해지는 원칙으로, 다음 3가지를 제시하고 있습니다.10

  • 소비자나 거래 상대가 이전 상품과 구별하고 싶어한다
  • 규제나 책임 공개 요건이 있다
  • 출하, 보관, 수령 등 서플라이 체인에 영향을 미치는 중요한 변경이 있다

실무적으로는 사이즈, 내용량, 포장 형태, 판매 단위, 표시 책임에 관계된 변경에서 헷갈리기 쉽습니다. 여기를 영업 판단만으로 운용하면, EC, 수발주, 재고, 마스터 연계에서 나중에 뒤틀립니다.

거기에 더해, 일본에서는 2019년 이후, 한 번 사용한 GTIN의 재사용은 원칙적으로 불가능합니다.11

이것은 꽤 중요합니다. GTIN을 “비면 재사용할 수 있는 사내 코드”처럼 다루고 있으면, 오래된 상품 정보나 EC상의 이력과 충돌합니다. 상품 마스터와 외부 공개 데이터까지 포함해, GTIN은 장기에 걸쳐 의미를 유지하는 키라고 생각하는 편이 안전합니다.

4.2 AI에는 고정 길이와 가변 길이가 있다

GS1의 AI에서는, 뒤에 이어지는 데이터가 고정 길이인 것과 가변 길이인 것이 있습니다. 고정 길이가 아닌 AI의 뒤에 다른 요소를 이어 붙일 때는 FNC1에 의한 구분이 필요합니다. GS1의 구문 사전에서도, 정의된 길이의 AI에는 *가 붙어 FNC1이 불필요함을 나타내고 있습니다.4

예를 들어, 로트 번호의 AI (10)은 가변 길이입니다. 뒤에 다른 AI를 연결하려면, 수신 측이 어디에서 (10)의 값이 끝나는지 판단할 수 있도록 해야 합니다. 여기를 대충 구현하면, 겉보기는 그럴듯한데 파싱할 수 없는 바코드가 만들어집니다.

실무에서는 고정 길이 요소를 앞에, 가변 길이 요소를 뒤에 모으면 구분이 줄어들어 꽤 안정됩니다.12

4.3 FNC1은 문자가 아니라 제어 기호

FNC1은 “FNC1이라는 문자를 넣는다”는 의미가 아닙니다. GS1 Japan의 베이직 가이드에서도, FNC1은 GS1 표준 바코드에 사용되는 제어 기호이며, 심볼 선두에서 GS1 데이터임을 나타내거나 데이터 세퍼레이터로 쓰인다고 정리되어 있습니다.3

그리고 표현 방법은 바코드 종류별로 같지 않습니다. 예를 들어 GS1 QR 코드에서는 모드 지시자나 데이터 세퍼레이터의 취급이 1D와 동일하지 않습니다.3

요컨대, 내부 표현, 스캐너 출력, HRI 표시를 같은 문자열이라고 생각하지 않는 것이 중요합니다.

4.4 스캐너가 돌려주는 문자열도 규격의 일부라고 생각하는 편이 낫다

현장 연계에서 놓치기 쉬운 것이, 스캐너가 디코드 후에 붙이는 심볼 체계 식별자입니다. GS1 Japan의 자료에서는, 예를 들어 GS1-128이 ]C1, GS1 DataMatrix가 ]d2, GS1 QR 코드가 ]Q3로 상위 시스템에 통지되는 예가 제시되어 있습니다.3

이것은 바코드에 그대로 인쇄되어 있는 것이 아니라, 스캐너가 “어떤 종류의 심볼을 읽었는가”를 덧붙여서 보내는 정보입니다. 즉, 수신 측은 다음 중 하나를 먼저 정해야 합니다.

  • 심볼 체계 식별자를 받아서 처리를 분기한다
  • 스캐너 쪽에서 억제 / 변환해서, 앱 쪽은 정규화된 문자열만 받는다

여기를 정하지 않은 채 UI나 DB를 먼저 만들면, 검품 단말을 교체하는 순간 일치 판정이 전부 무너집니다.

4.5 2D를 얹으면 바로 치환할 수 있는 것은 아니다

GS1의 소매용 2D 가이드에서는, 2D 바코드가 장래의 중심 후보이지만, 당분간은 이행 기간이며, POS의 2D 대응이 충분히 퍼질 때까지는 2D뿐만 아니라 선형 바코드의 병기가 필요하다고 되어 있습니다.6

또한 같은 2D라도, GS1 DataMatrix는 비교적 읽기 쉬운 편이지만, GS1 Digital Link를 쓰는 QR / Data Matrix의 처리는 최신이거나 갱신된 카메라식 스캐너, 호스트 측의 대응 상황에 좌우됩니다.67

“읽을 수 있는 스캐너가 있다”는 것과 “자사의 POS / WMS / ERP에서 업무로 쓸 수 있다”는 것은 별개입니다.

5. 실운용에서 걸리기 쉬운 포인트

5.1 GTIN을 상품 마스터의 버전 관리 없이 덮어쓴다

GTIN의 의미를 도중에 바꾸거나, 과거의 GTIN에 다른 상품을 할당하거나 하면, EC, 수발주, 재고, 분석, 장표, 데이터베이스 등록이 전부 서서히 무너집니다.1011

실무에서는 GTIN을 부번하는 담당, 상품 마스터를 갱신하는 담당, 라벨을 뽑는 담당이 나뉘어 있는 경우가 많습니다. 그러므로 부번 규칙뿐만 아니라, 변경 신청과 이력 관리의 흐름까지 만들어두는 편이 안전합니다.

5.2 「괄호가 붙은 문자열」을 그대로 입력 사양으로 삼아버린다

GS1의 설명 자료나 HRI에서는, AI는 (01)이나 (17)처럼 괄호로 표현되는 경우가 많습니다. 이것은 사람이 보고 의미를 구별하기 쉽게 하기 위해서입니다.6

한편으로, 스캐너 출력이나 내부 파싱에서는 FNC1이나 심볼 체계 식별자를 포함한 별도의 표현이 됩니다.
즉, 표시용 문자열과 기계 처리용 문자열을 나누는 편이 안전합니다.

5.3 「읽혔다」만으로 검수를 끝내지 않는다

GS1에서는 무효한 AI의 조합이나, 특정 AI와 필수로 조합되는 AI도 정의되어 있습니다.43

그러므로 인쇄 테스트로 한 번 읽혔다고 끝, 은 부족합니다. 최소한 다음은 나누어서 확인하고 싶습니다.

  • 심볼로 읽을 수 있는가
  • 상정한 문자열로 받을 수 있는가
  • AI의 구분과 길이가 올바른가
  • 상위 시스템에서 업무 규칙대로 해석할 수 있는가
  • 상품 마스터 / 출하 데이터 / DB와 정합하는가

스캔 성공 = 업무 성공이 아닙니다.

5.4 인쇄 품질을 모니터상의 겉모습으로 판단하지 않는다

GS1의 종합 사양서에는, X 치수, 쿼이어트 존, 품질 평가의 규칙이 있습니다. 물류용에서는 GS1-128과 2D에서 요구되는 치수나 여백도 다릅니다.1

실운용에서는 다음과 같이 수수한 요인으로 갑자기 판독률이 떨어집니다.

  • 라벨 프린터의 해상도와 열전사 조건
  • 골판지나 필름의 번짐
  • 광택면이나 반사
  • 곡면으로의 인쇄
  • 디자인 조정 시의 임의 축소
  • 여백을 좁히는 레이아웃 변경

그러므로 Illustrator나 PDF상에서 보인다가 아니라, 실제 인쇄물을 실제 거리·각도·스캐너로 읽는다를 기준으로 하는 편이 좋습니다.

5.5 복수 바코드를 거칠게 늘어놓는다

소매용 2D 가이드에서는, 복수 바코드의 배치 규칙이 POS의 처리 속도에 영향을 준다고 명기되어 있습니다.6

실무에서는 다음과 같은 조합에서 사고가 일어나기 쉽습니다.

  • POS용 JAN 근처에 마케팅용 QR을 둔다
  • 선형과 2D를 너무 가깝게 둔다
  • 기한이나 로트의 HRI를 읽기 어려운 자리로 밀어 넣는다
  • 배면·측면·달아매는 태그에서 스캔 방향이 맞지 않는다

요컨대, 복수 코드는 “들어가느냐 아니냐”가 아니라, 어느 쪽을 우선해서 읽히고 싶은가까지 설계가 필요합니다.

5.6 어느 AI가 현장에서 실제로 쓰이는지 확인하지 않는다

GS1의 소매 2D 가이드에서도, 모든 소매업자가 모든 AI를 쓸 수 있는 것은 아니며, 어느 AI를 이용할 수 있는지는 판독 장소에 따라 다르다고 되어 있습니다.13

예를 들어, 메이커는 GTIN + 유효기간 + 로트까지 넣고 싶더라도, 수신 측이 GTIN밖에 쓰지 않는다면, 그 가치는 상류에만 나옵니다. 반대로, 현장에서 기한을 쓸 작정이라면, WMS / 재고조사 / 폐기 판정까지 포함해서 대응이 필요합니다.

넣는 데이터쓰는 데이터를 나누어 확인하는 편이, 도입은 진행하기 쉬워집니다.

6. 규제나 업계 요건이 강한 예

6.1 소매의 2D 이행

GS1은 소매 POS용 2D 바코드의 표준화와 이행 가이드를 정비하고 있으며, 장래적으로는 2D를 중심으로 해나가는 방향입니다. 다만, 현시점에서는 이행기이며, POS 쪽의 판독·처리 능력이 충분히 퍼질 때까지는 선형과의 병기가 현실적입니다.67

따라서 B2C 상품에 2D를 얹을 때는, 적어도 다음을 각각 확인하는 편이 좋습니다.

  • 스캐너가 읽을 수 있는가
  • 호스트 POS가 해석할 수 있는가
  • 선형 코드를 남길 필요가 있는가
  • HRI와 배치가 계산대 운용에 견디는가

6.2 일본의 의료기기 등

일본의 의료기기, 체외 진단용 의약품 등에서는, 포장 단위별 상품 코드와 제조 식별자의 표시, 바코드 심볼 체계로서의 GS1-128 또는 GS1 DataMatrix 등, 꽤 구체적인 운용이 통지로 제시되어 있습니다.9

여기서 중요한 것은, GS1이 “민간의 편리한 규칙”에 머무르지 않는다는 점입니다.
실제로는 법령, 통지, 업계 가이드라인, 데이터베이스 등록, 병원이나 유통 측의 운용이 GS1을 전제로 쌓여 올라갑니다.

그러므로 이런 종류의 분야에서는, “사내에서 읽을 수 있으니까 OK”가 아니라, 제도·거래처·현장 운용에 맞춰 GS1을 사용한다는 발상이 필요합니다.

7. 도입을 진행하는 순서

바코드 도입을 잘 부서지지 않게 진행하려면, 순서는 대개 다음 형태가 정리하기 쉽습니다.

  1. 업무 유즈 케이스를 정한다
    POS인가, 입출하 검품인가, 추적성인가.

  2. 식별 키를 정한다
    GTIN인가, GTIN-14인가, SSCC인가. 필요하면 GLN 등도 포함한다.

  3. 필요한 속성을 정한다
    로트, 유효기간, 시리얼, 중량, 가격 등, AI 단위로 정한다.

  4. 심볼을 정한다
    EAN/UPC, ITF, GS1-128, GS1 DataMatrix, GS1 QR 코드 중 어느 쪽이 자연스러운가.

  5. 스캐너 출력 사양을 정한다
    심볼 체계 식별자를 받을 것인가, FNC1을 어떻게 정규화할 것인가, 호스트에 무엇을 넘길 것인가.

  6. 상품 마스터와 변경 규칙을 정한다
    GTIN의 신규 부번, 변경, 폐번, 재사용 불가, 이력 관리를 명문화한다.

  7. 실물로 인쇄 검증한다
    실제 라벨, 실제 포장재, 실제 스캐너, 실제 거리에서 확인한다.

  8. 업무 테스트까지 한다
    “읽을 수 있다”가 아니라, “재고조사·검품·출하·기한 관리까지 돈다”를 본다.

요컨대, 라벨 작성 소프트를 고르기 전에 수신 측의 사양을 정하는 편이 지름길입니다.

8. 정리

GS1 등의 바코드 규격에서 처음에 중요한 것은,
번호·속성·심볼·판독 후의 처리를 각각 따로 생각하는 것입니다.

  • GTIN은 상품을 식별하는 키
  • AI는 데이터의 의미와 포맷
  • GS1-128 / GS1 DataMatrix / GS1 QR 코드는 표현 수단
  • 품질, 배치, FNC1, 스캐너 출력, 상품 마스터 운용까지 포함한 구현

여기를 나누어 설계하면, 바코드는 “그냥 인쇄할 수 있는 것”에서 거래처나 현장과 공유할 수 있는 업무 인터페이스가 됩니다.

반대로, 여기를 섞은 채 진행하면,
바코드는 읽히는데 재고나 검품이나 추적성이 무너집니다.

GS1을 쓸 때는,
어느 코드를 붙일 것인가보다 먼저, 누가 무엇을 읽고, 어느 시스템에서 무엇에 쓸 것인가를 정하는 데부터 시작하는 것이 실무적입니다.

9. 참고 자료

같은 태그를 공유하는 최신 기사입니다. 더 가까운 주제로 지식을 넓힐 수 있습니다.

이 기사와 가까운 토픽 페이지입니다. 기사를 출발점 삼아 관련 서비스와 다른 기사로 이어집니다.

저자 프로필

기사 저자의 프로필 페이지입니다.

Go Komura

합동회사 코무라소프트 대표

Windows 소프트웨어 개발, 기술 상담, 장애 조사를 중심으로 재현이 어려운 장애 조사와 기존 자산이 남아 있는 프로젝트에 강점이 있습니다.

블로그 목록으로 돌아가기