바코드를 읽고, 그 번호가 무엇을 뜻하는지까지 봅니다
바코드 스캐너는 휴대폰 카메라나 사진 속 바코드를 읽어 담긴 번호와 형식을 보여 주는 도구입니다. 읽은 값이 상품 번호(GTIN)라면 한 걸음 더 들어가 풉니다. 예를 들어 8801234560016을 읽으면 앞의 880은 GS1 Korea가 발급한 번호라는 뜻이고, 가운데 123456001은 업체 코드와 상품 코드, 마지막 6은 앞 12자리로 계산한 체크 숫자가 맞는지 보여 줍니다. 판독 카드에는 바코드 막대를 부호 규칙대로 다시 그리고, 그 아래에 세 구간을 색으로 나눠 표시합니다.
카메라를 켜 두고 상품을 차례로 비추면 읽은 코드가 스캔 목록에 쌓이고, 같은 코드는 줄이 늘지 않고 개수만 올라갑니다. 다 읽은 뒤 전체 복사나 CSV 저장으로 재고 조사 목록을 바로 만들 수 있습니다. QR·Data Matrix 같은 2차원 코드도 함께 읽으며, 유효 기한과 로트 번호가 담긴 GS1 코드는 항목별로 나눠 보여 줍니다. 영상과 사진은 이 브라우저 안에서만 읽고 어디에도 보내지 않습니다.
바코드를 직접 읽어 볼 일이 생기는 때
계산대 스캐너는 번호를 읽자마자 매장 상품 정보로 넘기기 때문에, 바코드에 실제로 무엇이 들어 있는지는 보이지 않습니다. 아래처럼 번호 자체가 필요할 때 이 도구가 쓸모 있습니다.
- 재고 조사·물품 목록: 창고나 매장 진열대를 돌며 상품을 연속으로 비추면 상품 번호별 개수가 바로 정리됩니다. 별도 스캐너 장비가 없어도 휴대폰 하나로 CSV 목록을 만들 수 있습니다.
- 온라인 판매 등록: 오픈마켓이나 쇼핑몰에 상품을 올릴 때 바코드 번호(GTIN)를 적는 칸이 있습니다. 숫자를 눈으로 옮겨 적다 틀리는 대신 읽은 값을 복사하고 체크 숫자로 한 번 더 확인합니다.
- "880이면 국산인가요?" 확인: 해외 직구 상품이나 낯선 브랜드의 앞자리를 보고 원산지를 짐작하는 경우가 많습니다. 앞자리가 실제로 무엇을 뜻하는지 GS1 표로 바로 확인할 수 있습니다.
- 기한·로트 확인: 상자나 라벨의 GS1-128, GS1 DataMatrix에는 유효 기한(17), 로트 번호(10), 일련번호(21) 같은 항목이 숫자로만 이어 붙어 있습니다. 읽으면 날짜와 항목 이름을 붙여 나눠 줍니다.
- 라벨을 인쇄하기 전 검사: 바코드 생성기로 만든 라벨을 실제 크기로 출력해 읽어 보면, 넣은 값과 읽힌 값이 같은지 미리 확인할 수 있습니다.
읽는 방법 세 가지와 목록 정리
- 카메라: 카메라 켜기를 누르고 허용하면 후면 카메라가 먼저 열립니다. 바코드를 가운데 틀에 가로로 맞추면 읽을 때마다 소리가 나고 테두리가 표시됩니다. 카메라가 여러 개면 오른쪽 위에서 고르고, 지원하는 휴대폰이면 플래시도 켤 수 있습니다.
- 사진: 저장한 사진이나 스크린샷을 고르거나, 끌어다 놓거나, Ctrl+V로 붙여 넣습니다. 한 장에서 12개까지 찾아 번호 테두리를 그리고, 번호를 누르면 그 코드의 풀이가 판독 카드에 나옵니다.
- 번호 입력: 막대가 찢어지거나 지워져 읽히지 않으면 아래 숫자를 직접 적습니다. 체크 숫자를 검사하고, 마지막 숫자를 빼고 적으면 체크 숫자를 계산해 줍니다. 계산 과정은 칸마다 보입니다.
- 목록 정리: 스캔 목록의 빼기·더하기 단추로 개수를 고치고, 전체 복사(값·형식·개수를 탭으로 구분)나 CSV로 저장합니다. 목록은 페이지를 닫으면 사라집니다.
읽을 수 있는 바코드 형식
막대 굵기로 정보를 담는 1차원 바코드와, 작은 사각형 점으로 정보를 담는 2차원 코드를 모두 읽습니다. 형식 이름은 막대를 그리는 규칙이고, 그 안에 든 값이 상품 번호인지 회사 관리 번호인지는 따로 판단해야 합니다.
| 형식 | 모양 | 흔히 쓰이는 곳 | 담는 값 |
|---|---|---|---|
| EAN-13 · UPC-A | 1차원 | 소비자에게 파는 상품 포장 | 13자리·12자리 상품 번호(GTIN) |
| EAN-8 · UPC-E | 1차원 | 껌처럼 아주 작은 상품 | 8자리 번호, UPC-E는 12자리 번호를 줄인 것 |
| ITF-14 | 1차원 | 물류 상자·묶음 포장 | 14자리 GTIN-14 |
| GS1-128 · GS1 DataBar | 1차원 | 물류 라벨, 무게가 다른 신선식품 | 상품 번호와 기한·로트·무게 같은 항목 |
| Code 128 · Code 39 · Code 93 · Codabar · ITF | 1차원 | 회사 관리 번호, 송장, 자산·부품 표시 | 영문·숫자(형식마다 다름) |
| QR · Data Matrix · PDF417 · Aztec | 2차원 | 웹 주소, 작은 부품·의약품 포장, 승차권 | 문자 전체, GS1 항목 |
UPC-A는 앞에 0을 하나 붙이면 같은 막대 모양의 EAN-13이 됩니다. 그래서 UPC-A 036000291452와 EAN-13 0036000291452는 같은 상품 번호이며, 이 도구는 막대가 UPC-A 규칙이면 12자리로 보여 줍니다. UPC-E는 12자리 UPC-A 번호에서 0을 생략해 8자리로 줄인 형식이라, 판독 카드에 원래 12자리를 함께 펼쳐 보입니다. 예를 들어 UPC-E 01234558은 UPC-A 012345000058입니다.
13자리 상품 번호는 세 부분으로 나뉩니다
GS1 Korea는 13자리 상품 번호(GTIN-13)를 국가코드, 업체·상품 코드, 체크디지트로 나눠 설명합니다. 판독 카드도 같은 순서로 색을 나눕니다.
- GS1 접두어(앞 3자리 안팎): GS1 본부가 각 나라 GS1 회원 조직에 나눠 준 범위입니다. 회원 조직은 이 범위 안에서 업체에 번호를 발급합니다. 880으로 시작하면 GS1 Korea가 발급한 번호입니다.
- 업체 코드와 상품 코드: GS1 접두어를 포함한 업체 코드는 4~12자리이고, 나머지 자리에 업체가 상품마다 번호를 붙입니다. 업체 코드 길이가 회사마다 다르므로 번호만 보고 어디까지가 업체 코드인지 정할 수는 없습니다.
- 체크 숫자(마지막 1자리): 앞자리로 계산한 검증용 숫자입니다. 번호를 잘못 옮겨 적거나 막대 일부를 잘못 읽으면 대부분 이 숫자가 맞지 않게 됩니다.
14자리 GTIN-14는 맨 앞에 포장 단위를 나타내는 숫자가 하나 더 붙습니다. 1~8은 같은 상품을 묶은 상자 같은 포장 단위이고, 9는 무게나 길이가 상품마다 달라지는 가변 측정 상품에 씁니다. 판독 카드는 ITF-14를 읽으면 첫 자리의 뜻과, 첫 자리를 떼고 체크 숫자를 다시 계산한 13자리 번호(대개 안에 든 상품의 번호)를 함께 보여 줍니다.
앞자리 표: 880은 원산지가 아닙니다
바코드 앞자리를 '국가 코드'라고 부르다 보니 원산지로 오해하기 쉽습니다. 실제로는 번호를 발급한 GS1 회원 조직을 가리킵니다. 국내 업체가 해외 공장에서 만든 상품도 GS1 Korea에서 받은 880 번호를 달 수 있고, 외국 회사가 한국에서 만든 상품이 다른 앞자리를 가질 수도 있습니다.
"Since GS1 user companies can manufacture products anywhere in the world, GS1 Prefixes do not identify the country of origin for a given product."GS1, GS1 Company Prefix · 확인 2026-10-22. GS1 Korea도 "국가코드가 원산지를 의미하는 것은 아닙니다"라고 안내합니다.
| 앞자리 | 발급 조직 또는 용도 |
|---|---|
| 880~881 | GS1 South Korea |
| 680~681, 690~699 | GS1 China |
| 450~459, 490~499 | GS1 Japan |
| 001~019, 030~039, 060~139 | GS1 US(12자리 UPC 번호는 앞에 0을 붙여 셉니다) |
| 471 | GS1 Chinese Taipei |
| 885 | GS1 Thailand |
| 893 | GS1 Vietnam |
| 899 | GS1 Indonesia |
| 400~440 | GS1 Germany |
| 300~379 | GS1 France |
| 800~839 | GS1 Italy |
| 930~939 | GS1 Australia |
| 020~029, 200~299 | 지역 안에서만 쓰는 번호(매장 저울 라벨 등) |
| 977 | 정기 간행물(ISSN) |
| 978~979 | 책(ISBN), 979 일부는 악보(ISMN) |
| 981~983, 99 | 쿠폰 |
도구는 위 표의 일부가 아니라 GS1 웹사이트에 실린 접두어 표 전체로 앞자리를 찾습니다. 표에 없는 범위나 아직 배정되지 않은 범위는 그렇다고 표시합니다. 8자리 GTIN-8은 접두어 표가 따로 있어 발급 조직 대신 번호의 종류만 보여 줍니다.
체크 숫자 계산: 880123456001 → 6
GS1의 8·12·13·14자리 번호는 모두 같은 방법으로 체크 숫자를 계산합니다. 마지막 자리를 뺀 숫자를 오른쪽 끝부터 3과 1을 번갈아 곱해 더하고, 그 합보다 같거나 큰 10의 배수에서 합을 뺍니다.
| 자리 | 8 | 8 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 0 | 0 | 1 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 곱하는 수 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 |
| 곱 | 8 | 24 | 0 | 3 | 2 | 9 | 4 | 15 | 6 | 0 | 0 | 3 |
곱을 모두 더하면 74이고, 74보다 같거나 큰 10의 배수는 80입니다. 80 − 74 = 6이므로 완성된 번호는 8801234560016입니다. 번호 입력 탭에 880123456001까지만 적으면 같은 계산을 칸마다 보여 주고 끝에 6을 붙이는 단추가 나옵니다.
체크 숫자가 맞는다는 것은 번호의 형식이 올바르다는 뜻일 뿐입니다. 그 번호가 실제로 발급됐는지, 어느 상품에 붙어 있는지는 알 수 없습니다. 판독 카드의 'GS1 등록 정보' 단추는 GS1이 운영하는 Verified by GS1에서 회사가 등록한 정보를 찾아 줍니다.
책·잡지·매장 저울 라벨·쿠폰 번호
- 책(978·979): 13자리 ISBN입니다. 978로 시작하는 번호는 예전 10자리 ISBN으로도 바꿀 수 있어 판독 카드에 함께 보여 줍니다. 예를 들어 9780306406157은 ISBN-10 0306406152입니다. 979는 10자리로 바꿀 수 없습니다.
- 정기 간행물(977): 977 뒤 7자리는 ISSN에서 체크 숫자를 뺀 것이고, 그다음 2자리는 같은 잡지의 가격이나 요일별 판을 나누는 변형 번호(보통 00)입니다. 9771234567003은 ISSN 1234-5679입니다. 잡지 바코드 옆의 작은 2자리·5자리 부가 기호는 호수 같은 추가 정보이며, 판독 카드에 따로 표시합니다.
- 매장·지역 번호(02, 04, 20~29): 정육·채소 저울 라벨처럼 매장이나 지역 안에서만 쓰는 번호(RCN)입니다. 무게나 가격이 번호 안에 들어가기도 하지만 그 규칙은 지역과 매장마다 달라 도구가 풀지 않습니다. 같은 번호가 다른 매장에서는 다른 상품일 수 있습니다.
- 쿠폰(981~983, 99): 나라마다 정해 쓰는 쿠폰 번호라 전 세계에서 하나뿐인 번호가 아닙니다.
유효 기한·로트가 담긴 GS1 코드 읽기
물류 상자의 GS1-128이나 작은 포장의 GS1 DataMatrix는 괄호 속 두~네 자리 숫자(AI, 응용 식별자)로 항목을 나눕니다. 막대에는 괄호 없이 숫자가 이어 붙어 있어 사람이 읽기 어렵지만, 도구는 항목마다 이름을 붙이고 날짜를 연-월-일로 바꿔 줍니다.
| AI | 항목 | 형식 | 읽은 예 |
|---|---|---|---|
| (01) | 상품 번호(GTIN) | 숫자 14자리 | 08801234560016 |
| (17) | 유효 기한 | YYMMDD | 271231 → 2027-12-31 |
| (15) | 품질 유지 기한 | YYMMDD | 270200 → 2027-02-28(일 00 = 그 달 마지막 날) |
| (11) | 제조일 | YYMMDD | 260930 → 2026-09-30 |
| (10) | 로트·배치 번호 | 영문·숫자 20자까지 | A2610 |
| (21) | 일련번호 | 영문·숫자 20자까지 | SN0001 |
| (3103) | 순중량(kg) | 숫자 6자리, 넷째 자리 3 = 소수 3자리 | 001250 → 1.250 kg |
| (00) | 물류 단위 번호(SSCC) | 숫자 18자리 | 팔레트·상자 하나하나의 번호 |
날짜의 일 자리가 00이면 GS1 규격대로 그 달의 마지막 날로 읽습니다(예: 2016년 2월이면 29일). 다만 의료용 제품은 2025년 1월 1일부터 일 자리를 00으로 쓰지 않도록 바뀌었습니다. 두 자리 연도는 올해를 기준으로 49년 전부터 50년 뒤 사이의 연도로 해석합니다. GS1은 2027년 말까지 세계 소매 계산대에서 2차원 바코드를 읽을 수 있게 하는 것을 목표로 두고 있어, 상품 포장에서 GS1 QR이나 DataMatrix를 보는 일도 늘고 있습니다.
잘 안 읽힐 때 바꿔 볼 것
- 거리와 초점: 너무 가까우면 휴대폰이 초점을 못 잡아 막대가 번집니다. 한 뼘쯤 떨어져 바코드가 화면 가로의 절반 이상을 채우게 합니다.
- 여백: 막대 양쪽의 흰 여백까지 화면이나 사진에 들어와야 시작과 끝을 찾습니다. 사진을 자를 때도 여백을 남깁니다.
- 반사와 그림자: 비닐 포장에 조명이 비치면 막대 일부가 하얗게 사라집니다. 휴대폰 각도를 조금 바꾸거나, 어두운 곳이면 플래시를 켭니다.
- 둥근 병·캔: 휘어진 면은 바코드 양 끝이 좁아 보입니다. 바코드가 정면에 오도록 병을 돌립니다.
- 작고 흐린 사진: 작은 썸네일을 크게 늘려도 사라진 막대는 돌아오지 않습니다. 메신저로 여러 번 전달된 사진보다 원본이나 선명한 스크린샷을 씁니다.
- 막대가 찢어졌을 때: 아래 숫자가 보이면 번호 입력 탭에 옮겨 적고 체크 숫자로 확인합니다.
자주 틀리게 읽는 경우
- 880을 원산지로 읽기: 앞자리는 번호를 발급한 GS1 조직입니다. 원산지는 포장의 원산지 표시가 정합니다.
- 앞자리 0 지우기: 036000291452를 엑셀에 붙이면 숫자로 바뀌어 36000291452가 됩니다. 번호를 넣을 열을 먼저 텍스트 형식으로 바꾸고 붙여 넣으세요. CSV를 열 때도 같은 방법으로 열 형식을 텍스트로 지정합니다.
- 12자리와 13자리를 다른 번호로 보기: UPC-A 12자리 앞에 0을 붙인 13자리는 같은 상품 번호입니다. 시스템이 13자리를 요구하면 앞에 0을 붙입니다.
- 관리 번호를 상품 번호로 보기: Code 128이나 Code 39에서 나온 RB-2610-0042 같은 값은 회사가 정한 관리 번호입니다. 상품 번호 형식으로 바꾸거나 체크 숫자를 따지지 않습니다.
- 읽힘을 유효함으로 보기: 쿠폰·입장권 바코드를 읽었다고 해서 아직 쓸 수 있다는 뜻은 아닙니다. 사용 여부와 기한은 발급처에서 확인합니다.
영상·사진·번호는 어디에서 처리되나요
처음 읽을 때 인식 엔진(ZXing-C++를 WebAssembly로 옮긴 zxing-wasm, 약 1 MB)을 이 사이트에서 한 번 받고, 그 뒤 카메라 영상과 사진은 브라우저 안의 작업자(Web Worker)가 읽습니다. 영상·사진·읽은 번호는 서버로 보내지 않고, 주소창이나 브라우저 저장소에도 남기지 않습니다. 카메라는 카메라 켜기를 누를 때만 켜지고, 다른 탭으로 옮기거나 다른 읽기 방법을 고르면 바로 꺼집니다.
'GS1 등록 정보' 단추를 누르면 그 상품 번호가 주소에 담겨 GS1 웹사이트로 넘어갑니다. '주소 열기'는 QR 속 웹 주소를 새 탭으로 엽니다. 두 단추 모두 누르기 전에는 아무 데도 연결하지 않습니다.
한계
- 상품명·가격·재고는 알려 주지 않습니다. 번호를 판매처나 GS1 등록 정보에서 따로 찾아야 합니다.
- 막대가 크게 훼손됐거나, 사진이 너무 작거나, 초점이 맞지 않으면 읽지 못합니다. 계산대용 전용 스캐너보다 읽는 속도도 느립니다.
- 앞자리 표는 번호를 발급한 조직만 알려 주며 상품의 원산지나 제조사를 확인해 주지 않습니다.
- 매장·지역 번호(RCN) 안의 무게·가격, 쿠폰 번호의 세부 구조는 나라와 매장마다 달라 풀지 않습니다.
- 플래시와 카메라 고르기는 브라우저와 기기가 지원할 때만 나타납니다. 앱 안의 브라우저는 카메라를 막기도 합니다.
- 스캔 목록은 저장하지 않으므로 페이지를 닫기 전에 복사하거나 CSV로 저장해야 합니다.
기준일 GS1 접두어 표와 GS1 General Specifications(Release 26.0), AI 형식은 2026-10-22에 확인했습니다.
출처
- 01GS1: GS1 Company PrefixGS1 접두어 표 전체, 접두어가 원산지를 나타내지 않는다는 설명
- 02GS1 General Specifications, Release 26.0체크 숫자 계산(7.9.1), GS1-8 접두어 표, 업체 코드 4~12자리, ISSN 977 구조, RCN, UPC-E 0 생략 규칙, 날짜 00·세기 규칙, 부가 기호
- 03GS1: Application Identifiers(00)·(01)·(10)·(11)·(15)·(17)·(21)·(310n) 같은 응용 식별자의 이름과 형식
- 04GS1 Korea: GTIN(상품 식별 코드)GTIN-8·13·14 구조, 대한민국 국가코드 880, 국가코드가 원산지가 아니라는 안내
- 05GS1 Korea: EAN/UPC 바코드EAN-13·EAN-8·UPC-A·UPC-E 바코드의 쓰임
- 06GS1: Verified by GS1상품 번호(GTIN)로 회사가 등록한 정보를 찾아보는 GS1 서비스
- 07ZXing-C++이 도구가 쓰는 바코드 인식 엔진(zxing-wasm 3.1.5로 브라우저에서 실행)
- 08MDN: MediaDevices.getUserMedia()카메라 권한 요청과 NotAllowedError·NotFoundError·NotReadableError 같은 오류의 뜻
자주 묻는 질문
휴대폰 카메라로 상품 바코드를 읽을 수 있나요?
네. 카메라 탭에서 카메라 켜기를 누르고 허용하면 후면 카메라로 바로 읽습니다. 앱을 설치할 필요는 없습니다. 바코드를 가운데 틀에 가로로 맞추고 막대 양쪽의 흰 여백까지 화면에 넣으면 잘 읽힙니다. 메신저 안에서 연 화면에서 카메라가 열리지 않으면 같은 주소를 기본 브라우저로 여세요.
바코드 앞자리 880은 국산이라는 뜻인가요?
아닙니다. 880은 GS1 Korea가 회원 업체에 번호를 발급했다는 뜻입니다. GS1은 회원 업체가 세계 어디서든 상품을 만들 수 있으므로 GS1 접두어가 원산지를 나타내지 않는다고 밝힙니다. 해외 공장에서 만든 국내 브랜드 상품도 880을 쓸 수 있고, 수입 상품이 다른 앞자리를 가질 수도 있습니다. 원산지는 포장의 원산지 표시로 확인하세요.
690이나 49처럼 다른 앞자리는 어디인가요?
GS1 표에서 680~681과 690~699는 GS1 China, 450~459와 490~499는 GS1 Japan, 001~019·030~039·060~139는 GS1 US, 400~440은 GS1 Germany입니다. 20~29는 매장이나 지역 안에서만 쓰는 번호, 978~979는 책의 ISBN입니다. 이 도구는 GS1 웹사이트의 접두어 표 전체로 앞자리를 바로 찾아 보여 줍니다.
바코드 번호로 상품명과 가격도 알 수 있나요?
이 도구는 읽은 번호와 형식, 발급 조직, 체크 숫자까지 보여 줍니다. 상품명은 GS1 등록 정보 단추로 Verified by GS1에서 회사가 등록한 정보를 찾아볼 수 있지만, 모든 상품이 등록돼 있지는 않습니다. 가격은 판매처마다 달라서 바코드에 들어 있지 않습니다. 단추를 누를 때만 번호가 GS1 사이트로 넘어갑니다.
체크 숫자는 어떻게 계산하나요?
마지막 숫자를 뺀 나머지를 오른쪽 끝부터 3, 1, 3, 1… 순서로 곱해 모두 더한 뒤, 같거나 큰 10의 배수에서 합을 뺍니다. 880123456001이면 합이 74이고 80에서 74를 빼면 6이므로 완성된 번호는 8801234560016입니다. 번호 입력 탭에 숫자를 넣으면 이 과정을 칸마다 보여 줍니다.
사진 한 장에 바코드가 여러 개 있으면 어떻게 되나요?
한 장에서 12개까지 모두 찾아 위에서 아래, 왼쪽에서 오른쪽 순서로 번호를 붙입니다. 사진 위 테두리나 사진 아래 찾은 코드 띠의 번호를 누르면 그 코드를 풀어 봅니다. 찾은 코드는 모두 스캔 목록에 들어가고, 같은 사진을 다시 읽어도 두 번 세지 않습니다.
같은 상품을 여러 번 읽으면 목록이 어떻게 되나요?
같은 코드는 새 줄을 만들지 않고 그 줄의 개수가 하나 올라갑니다. 카메라 앞에 그대로 있는 코드는 다시 세지 않고, 화면에서 1.5초 넘게 벗어났다가 다시 들어오면 하나를 더 셉니다. 잘못 센 개수는 줄의 빼기·더하기 단추로 고치고, 다 읽은 뒤 CSV로 저장하면 재고 조사 목록이 됩니다. 엑셀에서 열 때는 값 열을 텍스트로 지정해 가져와야 앞자리 0이 남습니다.
사진이나 카메라 영상이 서버로 가나요?
가지 않습니다. 처음 읽을 때 인식 엔진(약 1 MB)을 이 사이트에서 한 번 받고, 그 뒤 영상과 사진은 브라우저 안에서만 읽습니다. 스캔 목록도 저장하지 않으므로 페이지를 닫거나 새로 고치면 사라집니다. 필요한 목록은 전체 복사나 CSV로 먼저 저장하세요.