◆ 바코드(Bar Code)란?

2006. 9. 2. 00:05정보 얻어가는 즐거움

◆ 바코드(Bar Code)란?

동네 슈퍼마켓이나 대형 할인점 또는 백화점 같은 곳에서 물건을 사고 계산을 할 때 물건에 인쇄된 작은 라벨에 여러개로 구성된 검은색 작은 막대부분을 빨간빛이 나는 기계에 가져가면 "삑"소리와 함께 순식간에 자동으로 계산이 이루어지는 것을 볼 수 있습니다. 여기서 사용되는 것이 바로 바코드Bar-Code)입니다.

바코드의 의미는 '막대(Bar) 모양으로 생긴 부호(Code)'라는 뜻으로, 굵기가 서로 다른 검은 막대와 흰 막대가 섞인 채 배열되어 있는 모양입니다. 제품마다 영문자나 숫자로 표시된 코드를 각각 매기고, 이것을 컴퓨터에 일일이 입력하는 것은 아주 번거롭고 시간이 오래 걸리는 작업이기 때문에 이를 간편하게 하기 위해 개발된 것입니다.

◆ 바코드(Bar Code)의 탄생

1923년 미국 하버드 대학의 월리스 플린트(Wallace Flint)가 '슈퍼마켓의 계산자동화'에 대한 논문을 써서 계산자동화의 이점을 최초로 문서화 하였습니다. 1940년말에 조 우드랜드(Joe Woodland)와 버니 실버(Berny Silver)는 이른바 '황소 눈 코드'라고도 불리는 바(Bar)와 스페이스(Space)가 동심원을 그리는 소형 사격 표적형태의 식료품 가격 자동처리 방법을 연구하였는데, 이는 개념적으로는 오늘날의 바코드와 동일한 것입니다.

1973년 미국 슈퍼마켓특별위원회(U.S. Supermarket Ad Hoc Committee)가 세계상품코드(UPC : Universal Product Code)를 식료품업계 표준으로 제정하면서 일반화되기 시작했습니다. 미국이 UPC를 제정하여 미국과 캐나다의 슈퍼마켓에서 성공적으로 이용되자 유럽에서도 이에 자극을 받아 12개국이 모여 1976년말 13자리로 된 EAN(European Article Number)코드와 심볼을 채택하게 됩니다.

 

우리나라는 1988년 EAN에 가입, 국가코드 880번을 부여받고 같은 해에 한국공통상품코드(KAN : Korean Artical Number) 체계를 확정을 하여 현재는 한국유통정보센타에서 각 제조업체 코드를 등록하여 상품에 바코드 심볼을 부착하고 있습니다. EAN코드는 국제상품코드(European Artical Number)의 약자로서 EAN International(국제상품 코드 관리협회)에서 제정되어 사용되고 있는 것을 말합니다.

◆ 바코드(Bar Code)의 작동원리

바코드를 보면 흰색 바탕에 굵고 가는 검은색 막대로 구성되어 있는데, 이 막대들은 2진수 0과 1을 나타내며 막대들의 배열은 0에서 9까지의 10진수를 나타냅니다. 결국 바코드 밑에 써있는 숫자들을 굵고 가는 막대로 표시한 것인데 컴퓨터는 우리가 쓰는 숫자를 인식하기에는 어려움이 있기 때문에 바코드를 써서 2진수로 인식할 수 있게 만든 것입니다.

바코드에 있는 정보를 읽기 위해선 스캐너를 사용하는데, 바코드의 검은 막대 부분은 빛을 흡수하여 적은 양의 빛을 반사하고 반대로 검은 막대 사이의 하얀 부분은 많은 양의 빛을 반사합니다. 반사된 빛의 양의 차이는 스캐너 안에 있는 아날로그-디지털 변환기를 통과하면서 빛의 강약에 따라 전기적인 신호로 바뀌고, 이렇게 바뀐 신호는 0과 1로 컴퓨터로 입력되어 우리가 알아 볼 수 있는 문자 및 숫자로 나타나게 됩니다.

◆ 바코드(Bar Code)의 종류와 구성

국제표준바코드에는 크게 2가지가 있습니다. 전세계 100개국이 넘는 국가가 사용하고 있는 EAN코드와 미국과 캐나다에서 사용하고 있는 UPC코드가 있습니다. 우리나라에서는 EAN코드를 사용하고 있습니다. 과거 국내에서는 KAN코드라는 이름으로 사용되었으나 현재 전세계 공통으로 EAN코드를 공식명칭으로 사용하기 때문에 한국에서는 대외적으로 EAN KOREA로 불리고 있습니다.

EAN코드 종류에는 여러 가지가 있습니다. 대표적으로 EAN-8, EAN-13, EAN-14, EAN-128코드 등이 있으며 'EAN-13'이 표준형코드입니다. EAN-13은 제조업체코드의 부여에 따라 표준형코드, 다품목코드, 의약품코드로 나눌 수 있고, EAN-8은 단축형 코드로서 상품의 인쇄표시 면적이 담배갑보다 작은 경우 등에 보통 사용합니다.

상품에 표시하는 바코드의 크기는 표준형의 경우는 가로 3.73cm, 세로 2.7cm 크기를 기준으로, 단축형의 경우는 가로 2.66cm, 세로 2.20cm 크기를 기준으로 하여 각각 0.8~2배의 범위내에서 축소, 확대하여 사용할 수 있습니다.

 

우리나라는 1988년 EANA(European Article Numbering Association)로부터 국가코드를 부여받아 한국유통정보센타에서 각 제조업체 코드를 등록하여 상품에 바코드 심볼을 부착하고 있습니다. 한국에서 사용하는 KAN 코드에는 표준형 13자리와 단축형 8자리의 두가지가 있습니다.


 

 

◆ 표준형 코드의 구성

1. 국가 코드(3자리) : 국가를 식별하는 코드로 우리나라의 경우 '880'을 사용

2. 제조업체 코드(4자리) : 제조원 또는 판매원에 부여하는 코드로 각 업체를 식별하는 코드

3. 상품품목 코드(5자리) : 제조업체코드를 부여받은 업체에서 자사의 상품별로 식별하여 부여하는 코드

4. 검증 코드(체크 디지트)(1자리) : 바코드의 오류를 검증하는 코드로 앞의 숫자를 조합하여 나오는 코드

◆ 단축형 코드의 구성

1. 국가 코드

국가를 식별하는 코드로 우리나라의 경우 '880'을 사용

2. 제조업체 코드

표준형을 취득한 업체에 한하여 부여하는 3자리 코드

3. 상품품목 코드

상품식별을 위한 코드로 10개의 코드를 사용할 수 있다.

4. 검증 코드(체크 디지트)

앞의 7자리를 계산하여 나오는 오류 검증 코드

 

단축형의 심벌이 사용되는 기준은 나라마다 틀리지만 상품의 인쇄표시 면적이 담배갑보다 작은 경우 등에 보통 사용합니다.

◆ 2차원 바코드

현재 우리가 사용하는 바코드는 막대선의 굵기에 따라 가로 방향으로만 정보를 표현할 수 있어 단순히 제조회사와 상품번호에 해당되는 숫자만 기록되어 있을 뿐 상품의 가격, 무게, 크기와 같은 정보는 들어있지 않습니다. 그래서 바코드를 읽어서 자동으로 계산이 되도록 하려면 코드 번호에 따른 상품 번호와 가격 등의 정보를 미리 등록해 놓아야 합니다.

즉, 각 상품에 대한 정보를 데이터베이스화시켜 놓아야 자동으로 계산해 낼 수 있는 것입니다. 한 예로, 도서관에 있는 책의 바코드를 슈퍼마켓의 스캐너로 읽으면 바코드에 기록되어진 숫자는 읽을 수 있지만 컴퓨터는 그 책에 대한 정보가 없기 때문에 어떤 제품인지 알 수가 없게 됩니다. 그런데 최근 가로와 세로 방향에 모두 정보를 담을 수 있는 2차원 바코드가 개발되었다고 합니다.

문자, 숫자 등 3000여 개의 정보를 저장할 수 있는 2차원 바코드에서는, 바코드 자체에 제조회사와 제조일시, 가격 등의 정보가 포함돼 있어, 미리 데이터베이스를 준비해 놓고 있지 않아도, 판독기가 바코드를 읽기만 하면 바로 컴퓨터 화면에 상품의 자세한 정보가 나타나며 자동 계산을 할 수 있게 됩니다.

 

 

◆ 바코드(Bar Code 심볼로지(Symbology)와 심볼(Symbol)

정보를 바코드로 표시하는 방법에는 여러 가지가 있는데 이를 정한 규칙(또는 원리)을 바코드 심볼로지(Symbology)라고 한다. 바코드 심볼로지에는 수십 종이 있으므로 동일한 데이터라도 여러 종류의 바코드 심볼로 표현될 수가 있는 것이다.

바코드 심볼은 특정 심볼로지에 따라서 특정데이터를 바코드로 표현한 구체적 개체이다. 바코드를 언어와 비교해 보면, 심볼로지는 국어와 대응하고 심볼은 단어와 대응되는 개념이다. 즉, 바코드 심볼은 의미(정보)를 지닌 바코드의 단어인 것이다.

* 바코드 -------------------- 언어 바코드 * 심볼로지 ------------- 국어

(Code 39, UPC, Codabar등) (한국어,영어, 일본어 등)

* 바코드 심볼 ---------------- 단어 * 바와 스페이스 --------------- 음소

◆ 바코드(Bar Code) 심볼(Symbol) 구조

바코드 심볼의 구성요소에는 표현하고자 하는 데이터, 테이터를 바코드로 표현하는 규칙인 심볼로지, 바코드 패턴을 인쇄하기 위한 잉크(또는 이미지 생성과정), 바코드 패턴이 기록될 인쇄용지가 포함된다. 이 4가지 요소가 있어야만 비로소 특정 데이터가 바코드 패턴으로 인쇄되어 하나의 정보 매체로서 기능을 가지게 된다. 이 심볼은 바코드 판독기에 의해 읽혀 컴퓨터로 입력되는 것이다.

 

바코드 심볼의 구조상 최소단위는 모듈(Mocule, X 디멘젼이라고도 함)로서 1비트(Bit)의 값을 가진다. 바코드 심벌의 구조는 코드의 종류에 따라 다르다.

●QUIET ZONE

바코드의 시작과 끝에는 여백이 있는데 이 여백을 QUIET ZONE이라 하여 가장 좁은 요소의 10배 이상으로 지정되어 있으며 시작 문자의 앞과 멈춤. 문자의 뒤에 있는 공백 부분을 가리키며, 바코드의 시작 및 끝을 명확하게 구현하기 위한 필수적인 요소이다. 심벌 좌측의 여백을 전방 여백, 우측의 여백을 후방 여백이라 한다.

●START/STOP CHARACTER

시작문자는 심벌의 맨 앞부분에 기록된 문자로 데이터의 입력 방향과 바코드의 종류를 바코드 스캐너에 알려주는 역할을 한다. 멈춤 문자는 바코드의 심벌이 끝났다는 것을 알려 주어 바코드 스캐너가 양쪽 어느 방향에서든지 데이터를 읽을 수 있도록 해준다.

●CHECK DIGIT

검사 문자는 메시지가 정확하게 읽혔는지 검사하는 것으로 정보의 정확성이 요구되는 분야에 이용되고 있다.

●INTERPRETAION LINE

사람이 육안으로 식별 가능한 정보(숫자, 문자, 기호)가 있는 바코드의 윗부분 또는 아랫부분을 말한다.

●BAR/SPACE

바코드는 가장 간단한 넓고 좁은 바와 스페이스로 구성되어 있으며 이들 중 가장 좁은 바/스페이스를 'X' 디멘전이라 부른다. 'X' 디멘전이 바코드의 구조상 가장 최소 단위를 이루는 것이면 모듈이라고 한다. 좁은 바/스페이스와 넓은 바/스페이스는 1:2 또는 1:3 정도의 비율이 필하다.

●INTERCHARACTER GAPS

문자들 간의 스페이스('X' 디멘전 크기)를 말한다.

◆ 바코드(Bar Code)의 판독원리

바코드의 검은(어두운) 바와 흰(밝은) 바의 반사율 차이를 스캐너가 전기신호로 바꾸게 된다. 아날로그인 전기신호의 폭을 디지털인 '1' 과 '0'으로 나타내어 그 조합에 해당되는 숫자를 판별한다. 끝으로 체크디지트가 확인되고 그것이 올바르면 스캐닝이 중단됨으로써 동일상품의 심벌에 대한 복수등록이 방지된다.

◆ 바코드(Bar Code)의 사용효과

- 정보처리가 정확하다 - Data 입력이 신속하다.

- 작업장의 제한을 받지 않는다 - 기존 시스템의 변형이 필요없다.

- 기구부가 없어 고장이 적다 - 인건비와 관리비 등의 유지비를 절감시킨다.

- 운영에 숙련이 불필요하다.

 

◆ 바코드(Bar Code)의 국가 식별코드

국가번호

국 가 명

국가번호

국 가 명

국가번호

국 가 명

00-99

미국.캐나다

560

포르투칼

780

칠레

20-29

인스토어마킹용

569

아이슬랜드

784

파라과이

30-37

프랑스

57

덴마크

786

에콰도르

380

불가리아

590

폴란드

789

브라질

383

슬로베니아

594

루마니아

80-83

이탈리아

385

크로마티아

599

헝가리

84

스페인

387

보스니아.예르체코비나

600-601

남아프리카공화국

850

쿠바

400-440

독일

609

모리셔스

858

슬로바키아

460-469

러시아연방

611

모로코

859

체코공화국

471

대만

613

알제리

860

유고연방

474

에스토니아

619

튀니지아

867

북한

475

라트비아

622

이집트

869

터키

477

리투아니아

625

요르단

87

네덜란드

479

스리랑카

626

이란

880

대한민국

480

필리핀

64

핀란드

885

태국

482

우크라이나

690-691

중국

888

싱가폴

484

몸도바

70

노르웨이

890

인디아

485

아르매니아

729

이스라엘

893

베트남

486

죠지아

73

스웨덴

899

인도네시아

487

카자흐스탄

740-745

과테말라.엘살바도르.온두라스.니카라과.코스타리카.파나마

90-91

오스트리아

489

홍콩

746

도미니카공화국

93

오스트레일리아

45 or 49

일본

750

멕시코

94

뉴질랜드

50

영국

759

베네수엘라

955

말레이지아

528

레바논

76

스위스

977

정기간행물

529

사이프러스

770

콜롬비아

978-979

서적

531

마케도니아

773

우루과이

980

환불권

535

몰타

775

페루

99

쿠폰

539

아일랜드

777

볼리비아

 

 

54

벨기에.룩셈부르크

779

아르헨티나

 

 

 

'바코드(Bar Code)' 제목의 이 작품을 보면서 만일 미래에 사람에게도 이와 같은 디지털 인식장치를 신체의 어떤 부위에 삽입하여 식별하고 통제하는 시대가 도래한다면 하는 상상을 해 보았다. 지금도 주민등록증 대신 전자칩을 넣은 전자주민카드를 만들어 개인의 신분확인은 물론이고 모든 민원처리에도 이것으로 대체한다는 기사를 본 적이 있다.

하지만 이것 또한 몸에 붙어있는 게 아닌 지니고 다니는 것이기에 직접 얼굴을 확인하지 않는 이상 본인여부를 확인할 방법이 없다. 치명적인 맹점이 아닐 수 없다 해야 할 것이다. 이런 단점을 일거에 보완할 수 있는 방법이 인간자체까지를 코드화 하면 해결되는 것이다. 그것이 쉽게 얘기하자면 '인간바코드(Bar Code)'인 것이다.

 

인간이 만든 굴레에서의 '인간상실'이 어디 '바코드'뿐일까마는 획일화되고 수치적 개념으로서의 상대적 기준에서 오는 박탈감은 어쩌면 인간 본연의 가장 '내츄럴'한 회복본으로 반작용하는지도 모른다. 여기에 등장하는 여인은 하나의 상징성일 뿐,그 어떤 부연적 의미도 없지만 마치 '사이보그'들이 활보하는 거리에서 고통받는 인간의 고뇌를 보는 것 같은 느낌을 주는 것 같다..

 

'사람이 기계가 아니쟎아?' 그녀는 푸른 핏줄도 가지지 않았고 그녀의 가슴에 LED 액정 모니터도 장착하지 않았다. 족쇄처럼 채워진,'바코드'로부터 자유롭기를 원할 뿐이다. 이것이 문명이 주는 '옵션'이라면 그녀는 할머니와 바라보던 반딧불의 추억이 더없이 소중하여 여기에 더이상 머물고 싶지도 않다. 까만 하늘에 뿌려진 우유빛 은하수의 기억이 명멸하며 남아 있는 한...

 

★ 디지털(Digital) 신호체계에 대한 상식 몇가지

 

디지털 신호체계에는 가장 기본적인 인식 방식이 'Binary(BIN, 2진수) 방식'이다. 쉽게 설명드리자면 신호가 없는 상태가 '0'이고, 신호가 있는 상태를 '1'로 인식하는 방식이다. 그 외에 'Decimal(DEC, 10진수) 방식'과 BCD((Binary Coded Decimal Code, 2진화 10진수) 방식' Hexadecimal(HEX, 16진수) 방식' 등이 있다.

 

*Binary(2진수) 방식

 

오로지 '0'과 '1'로 신호 유,무를 인식한다. 예를들어 4개의 입력라인이 있는 경우, 신호가 전혀 없으면 '0000'이 되는 것이고 그 처리 값은 '0'가 된다. 가장 하위 비트(가장 낮은 순번의 신호라인)에서 신호가 있으면 '0001' 상태가 되고 그 처리값은 '1'이 된다. 같은 원리로 '0011'은 처리값이 '3', '0111'은 처리값이 '7', '1111'은 'F'가 된다.

 

여기서 처리값은 기본적으로 16진수로 변환되는데, 16진수는 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F로 숫자와 알파벳을 조합하여 총 16개로 구성되어져 있다. 그 값은 하위비트(Bit)에서 상위비트(Bit) 順으로 읽는데, 신호라인이 4개일 경우 각 Bit(신호라인)의 값은 1,2,4,8이 된다. 4개의 신호라인에 모두 신호가 있을 경우인 '1111'은 그 값이 '15'가 되는데 이것을 16진수로 환산하면 'F'가 되는 것이다.

 

만일 신호라인이 4개가 아니고 그보다 훨씬 많을 경우 그 값은 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048.... 와 같이 '2'의 배수로 계속 증가된다. 만일 바코드로 국적을 읽어들인 경우에 한국의 국가식별번호가 '880'이므로 그 신호값는 '1101110000'이 되는데 그 원리는 512+128+64+32+16='880'이 되는 것이다. 그러니까 바코드 막대에 이런 값이 표기되어 있다는 얘기이다.

 

시간이 충분하다면 2진수를 10진수로, 16진수로, 또는 역순으로 변환하는 방법도 설명드렸으면 좋으련만 시간 관계상 여기까지만 하기로 하겠다. 유럽쪽에서만 8진수도 사용하고 있다. 그외 ASCII Code라든지 엔코더, 데코드 등 여러가지 변환기능들이 있다. 아마 너무 생소하고 공학적인 용어들이라 내용이 딱딱하고 무겁게 느껴지지 않았을까 싶다.