권영빈
78년 아주대 전자공학과 학사
81년 한국과학기술원 통신공학 석사
86년 프랑스 ENST 공학박사
95∼98년 한국정보과학회 이사
86년∼현재 중앙대 컴퓨터공학과 교수, 국제패턴인식학회(IAPR) 이사, 한국공학기술학회 편집·기획이사, 한국과학재단지정 컴퓨터연구정보센터 소장, 한국정보처리학회 이사
일반 상품과 서적 등 일상생활에서 바코드(bar code)를 부착하지 않은 상품을 찾는 것이 더 어려울 정도로 바코드는 가까이 다가왔다. 현재 사용되고 있는 바코드는 EAN 규격에 따른 13자리 수로 표시된 1차원 바코드다. 바코드 기술은 부호화된 바 패턴과 정의된 크기의 인식기술을 바탕으로 하고 있으며 그 종류도 다양하다. EAN/UCC, 코드39, 인터리브드2 오브 5 등이 대표적인 예에 해당된다.
바코드를 인식하면 생산국 및 상품에 관한 기본적인 정보를 얻을 수 있으므로 이를 전산시스템과 연결해 가격 및 재고관리와 같은 업무를 효율적으로 수행할 수 있게 된다.
또한 이러한 바코드는 단순히 단일 상품에만 부착되는 것이 아니라 물류를 수송하는 컨테이너에도 부착될 수 있으며 등기나 특급 송배달 서비스에서도 활용되고 있다. 특급 송배달에서는 접수시 발급되는 발송물의 운송장 번호가 바코드로 인쇄돼 있어 이를 이용하면 자신이 보낸 물건이 어디를 통과하고 있는지 확인할 수 있고 목적지에 배달이 정확히 이뤄졌는가에 대한 사항을 확인할 수 있다.
서비스 제공업체는 중간 기착지에서 바코드만 인식해 전산시스템에 연결하면 과정별 자료입력 과정을 줄일 수 있어 유통 속도를 향상시키고 서비스를 효율화하는 장점이 있다.
현재 사용 중인 바코드는 1차원으로 얻을 수 있는 정보는 제한된 숫자 정보뿐이다. 실제 상품에서 상품 정보뿐만 아니라 제품이 갖고 있는 고유정보를 표현할 수 있게 되면 더욱 편리한 경우가 많다. 예를 들어 동일한 명칭을 갖는 상품이지만 재료가 변경된 경우나 동일 상품 내에서 재료의 구성비율이 달라진 경우 등은 기존의 바코드를 이용하게 되면 다른 번호를 부여받아야 한다.
그러나 상품 명칭이 같아 처리하는 과정에 구분이 어려우며 실수가 발생하기 쉽다. 그러므로 이러한 단점을 해소하기 위해 문자정보를 수록할 수 있는 바코드의 개발이 요구된다. 이에 따라 등장하는 것이 2차원 바코드다.
2차원 바코드는 기존 바코드와 달리 2차원 평면 위에 정보를 표현하게 되므로 라인 스캐너가 아닌 2차원 정보를 얻을 수 있는 스캐너가 함께 보급돼야 한다. 현재 국제표준으로 제정된 2차원 바코드는 모두 4종이 있다.
데이터 매트릭스(data matrix)는 AIM에 의해 개발된 2차원 행렬 형태를 갖는 기호체계다. 각 데이터 매트릭스는 경계 파인더 패턴(finder pattern) 내에 정렬된 랜덤 도트의 배열로 구성된 정사각형 모듈 형태를 지니고 있으며 구성형태는 그림1과 같다. 대부분 밝은 바탕에 검은 기호로 표현되지만 반대로 검은 바탕에 흰색 기호로 인쇄된 경우도 있다. 그림1에서 보는 것과 같이 데이터 매트릭스는 두 종류가 존재한다. 즉 다단계의 콘벌루셔널(convolutional) 오류교정이 가능한 ECC140 및 리드-솔로몬 오류교정을 사용하는 ECC200이 존재하는데 ECC140은 기호의 생성과 판독이 모두 단일 집단에서 제어하는 경우인 폐쇄적인 응용에 사용되며 신규 응용에서는 ECC200을 사용하도록 권고하고 있다.
「A1B2C3D4E5F6G7H8I9J0K1L2」를 부호화한 ECC140과 ECC200을 보여주고 있다. 데이터 영역은 L자로 표현된 파인더 패턴 내부에 존재하게 되며 파인더 패턴은 검은선으로 표현되는데 데이터 모듈을 포함하며 물리적인 크기와 방향을 결정하는 데 사용된다. 부호에서 검은 모듈은 2진수의 1, 밝은 모듈은 2진수의 0에 해당된다. 또한 데이터 매트릭스는 상하좌우로 중첩해 인쇄할 수 있으며 파인더 패턴을 통해 방향을 구별하는 독립성이 존재한다.
데이터 매트릭스가 부호화할 수 있는 문자 집합은 128개 전체 ASCⅡ문자와 ISO 8859-1의 라틴 알파벳이 가능하다. 기호당 포함할 수 있는 데이터 문자수는 ECC200의 경우 알파뉴메릭 데이터는 최대 2335자, 8비트 바이트 데이터는 1556자, 숫자는 3116자리가 가능하다. 모듈에서 기호의 크기는 ECC140은 9×9에서 49×49까지의 홀수, ECC200은 10×10에서 144×144까지의 짝수가 가능하다.
데이터 매트릭스의 부호화에는 여섯 가지의 방법이 사용되고 있다. ECC200에서는 ASCⅡ, C40, 텍스트, X12, EDIFACT, 256진법 등의 부호화 방법이 존재하며 부호화 과정에서의 비트 열과 방법, 속성, 오류검출 및 교정방법, 복호화 방법 등이 명시돼 있다.
맥시코드(maxicode)는 AIM에 의해 개발된 파인더 패턴 주위를 둘러싼 육각형 모양 모듈의 오프세트 열로 구성된 고정크기의 매트릭스 기호다. 이 코드는 파인더 패턴으로 중앙에 동심원 3개를 지니고 있으며 그림2와 같이 육각형 모양들이 주위를 둘러싼 형태다. 이 코드가 정의하고 있는 문자세트는 256개의 문자로 ASCⅡ와 ISO 8859-1의 라틴 알파벳이며 9자리의 수가 9개의 코드워드로 압축될 수 있다. 또한 그림2와 같이 육각형 모양의 6개의 모듈로 구성되며 검은색은 1, 흰색은 0을 나타낸다. 코드워드는 0∼63의 값을 가지며 각 문자기호의 MSB는 그림2에서 가장 작은 수를 갖는 모듈이며 값 64는 데이터와 기호 사이의 중간 부호화 층으로 예약돼 오류교정에 사용된다.
이들의 위치를 정하기 위해 동심원 주위에 모양을 판별할 수 있는 특수한 고정값
을 배치시켜 방향성을 유지하도록 한다.
맥시코드의 기호는 고정크기로 중앙의 파인더 패턴 주위에 33개 열, 884개의 육각형 모듈이 나열됐으며 각 기호는 28.14×26.91㎜의 고정크기를 갖는다. 비데이터 오버헤드는 기호당 방향에 대해 18개의 모듈, 파인더 패턴에 대해 90개의 모듈이 소요된다. 최대 데이터는 알파뉴메릭 문자 93자, 숫자 138자를 포함할 수 있다. 오류교정에 기호당 50, 또는 66 코드워드가 소요된다. 7개의 모드를 가지며 다른 언어를 위한 확장채널 해석기능 등이 있다.
5개 데이터의 부호화 및 문자할당 방식이 정의돼 있으며 사용자를 위한 오류교정은 표준모드와 향상모드 2가지를 제공하고 있고 리드-솔로몬 오류제어코드 알고리듬을 사용해 계산을 수행하고 있다. 복호화를 위한 알고리듬과 절차 등도 표준화 문서에 제시돼 있다.
QR(Quick Response)코드는 일본 덴소사에 의해 개발된 매트릭스 형태 기호로 정사각형의 배열모양에 점들을 배열, 정보를 저장할 수 있도록 하고 있다. 형태를 구분하기 위한 파인더 패턴은 그림3에 제시된 것과 같이 3개의 모서리에 위치한 사각형 모양을 기반으로 하고 있다. 이것은 네 모서리 중 오른쪽 하단을 비워둔 형태므로 손쉽게 위치정보, 크기, 기울기 등에 대한 정보를 구별할 수 있게 해준다. 이 코드는 4단계의 오류교정 기능을 갖고 있다. 모듈의 크기는 사용자 정의에 따라 다양한 방법으로 생성하는 것이 가능하다. QR코드 모델 1은 QR코드의 원 명세를 정의하며 모델 2는 모델 1과 자동적으로 구분되는 특성을 첨가한 확장된 형태의 기호를 지닌 개방형 구조의 특성을 갖고 있다.
QR코드가 부호화할 수 있는 문자세트는 숫자(0∼9), 알파뉴메릭 데이터(숫자 0∼9, 대문자 A∼Z, 특수문자 9자), 8비트 바이트데이터(JIS 규격의 라틴 및 가나 문자세트), 한자 등이며 다른 코드와 마찬가지로 검은색은 2진수 1, 흰색은 2진수 0을 나타낸다. 기호의 크기는 21×21 모듈로부터 177×177 모듈까지 각 방향으로 4모듈씩 증가해 가변적으로 구성하는 것이 가능하다.
QR코드 기호는 40개의 다른 크기를 가질 수 있는데 이들을 각각 버전 1부터 버전 40까지로 정의한다. 버전 1은 가장 작은 크기로 21×21 모듈 크기를 가지며 버전이 증가할 때마다 가로·세로 각각 4모듈씩 늘어나게 된다.
그러므로 버전 40은 177×177 모듈의 크기를 갖게 된다. 모듈의 증가는 저장할 수 있는 데이터의 증가를 의미한다. 기호당 저장할 수 있는 데이터의 수효는 최대 크기인 40-L 형태일 경우 숫자 7089자, 알파뉴메릭 데이터 4296자, 8비트 바이트데이터 2953자, 한자 1817자가 가능하다.
오류교정은 4단계로 정의하는 것이 가능하다. 코드워드 기호에 대해 L은 7%, M은 15%, Q는 25%, H는 30%의 복구가 가능하도록 구성됐다. 부가적인 특성으로 구조적인 추가, 매스킹, 확장채널 해석 등이 있다.
PDF417은 심벌사에서 개발한 2차원 바코드로 기존 코드와는 다른 구성형태를 갖는다. 그림4에서처럼 기존 1차원 바코드의 개념을 확장한 것으로 시작 패턴과 종료 패턴이 있으며 그 사이에 데이터를 저장한 형태다. 이 형태는 수직으로 정렬된 열들로 구성돼 있으며 이 열의 수효는 최소 3개에서 최대 90개까지 가능하다.
각 줄은 시작, 종료, 열 표시자를 제외하고 최소 1개 기호를 저장할 수 있으며 최대 30개 기호를 저장하는 것이 가능하다. 그림4는 PDF417 기호 표준 내용을 코드화한 것이다.
PDF417이 표현 가능한 문자세트는 텍스트 압축모드에서는 인쇄가능한 ASCⅡ 문자, 바이트 압축모드는 국제 문자세트의 256이 가능한 문자, 숫자 압축모드에서는 숫자열의 효율적인 코딩 등이며 81만1800개의 다른 문자세트 수용이 가능하다.
또 제어목적용 함수 코드워드가 제공되고 있다. 이를 이용해 925 데이터 코드워드에 대해 최대 가능한 문자세트를 계산해보면 텍스트 압축모드는 코드워드당 2개 문자를 넣을 때 1850자, 바이트 압축모드는 코드워드당 1.2개 문자를 넣을 때 1108자, 숫자 압축모드는 코드워드당 2.93개의 문자를 넣을 때 2710자를 수용할 수 있다.
최소의 오류교정을 넣는 경우에는 코드워드의 길이가 줄어들므로 863 데이터 코드워드에 대해 위와 동일한 압축 조건에서 텍스트 압축은 1726자, 바이트 압축은 1033자, 숫자 압축은 2528자가 가능하다. 그림4와 같이 이 코드는 다중 열을 갖는 2차원 배열이며 양방향 디코딩이 가능한 특징을 갖고 있다.
우리나라는 지난 88년 EAN에 가입했으며 이를 기념해 국가의 식별번호로 880을 사용하고 있다. 최근에는 북한도 이 기관에 가입, 바코드를 사용하기 시작했다. 국내에서는 바코드를 보급하는 기관으로 한국유통정보센터가 설립돼 상품별로 신청하는 기관에 해당하는 숫자를 보급하고 있다.
현재 국내에는 바코드 표준으로 3종이 제정돼 있으며 신규 표준에 대한 검토가 크게 이뤄지지 않고 있다. 지난 96년 ISO/JTC1/SC31이 설립돼 워킹그룹 1에서 이 분야 국제표준(IS)을 활발히 제정하고 있다. 국내에서도 지난 98년 국내위원회를 구성, 표준화 회의에 참석하며 각종 기술문서를 검토하고 표준화 투표에 참석하고 있다. 국내위원회는 학연산 전문가 10여명으로 이뤄져 있으며 기술표준원, 표준협회 등과 협조하면서 분기별 회의를 통해 표준의 심의 및 대응전략을 수립하고 있다.
국내에서의 바코드 보급률은 아직도 낮은 편에 속하므로 한국유통정보센터를 중심으로 1차원 바코드를 보급하는 사업에 주력하고 있는 실정이며 국제표준으로 선정된 2차원 바코드의 한글표기 문제나 국내표준으로의 수용 등은 검토단계에 있다. 그러므로 향후 이들 코드의 국제적인 사용 및 수출입에 대비, 국내표준의 제정 및 한글화 방안에 대한 검토가 이뤄져야 할 것으로 생각된다.