[생활 속 수학이야기](25) 바코드의 구성



ㆍ바코드의 판독오류 줄이는 체크숫자
자동화 시스템이 급속하게 발전하고 있는 요즈음은 생필품은 물론, 식료품, 서적에도 바코드가 표시되어 있다. 상품에 붙어 있는 바코드에는 그 상품의 가격, 크기, 종류 등에 대한 정보가 들어 있다. 도서관을 이용하는 회원권, 병원의 진료 카드, 백화점이나 대형 마트의 포인트 카드나 멤버십 카드에도 바코드가 찍혀 있다. 이러한 것들에는 그것을 소유하는 사람의 정보가 들어 있다.
최근 뉴스에 따르면 지식경제부 기술표준원이 동물 보호법 개정에 따라 동물 개체 식별 코드 표준 규격을 6월까지 제정키로 했다. 서울시는 애완동물 몸에 RF ID(무선인식) 칩의 주입을 의무화하겠다고 나선 것이다. 애완동물 소유자의 주민등록번호, 주소와 연락처 등 개인정보를 담은 15자리 숫자 코드로 된 인식 칩을 부착할 것을 의무화하겠다는 것이다. 이는 버려진 개의 처리에 드는 사회적 비용의 증가 때문이라고 한다. RF ID 칩을 통해 버려진 애완동물의 소유자를 확인해서 찾아주고, 혈통 보존이나 예방접종 관리 등을 통해 전염병의 발생 경로를 추적할 수 있게 된다.
이 기사를 접하는 순간 그 동안 상상의 세계로 만들어진 영화의 한 장면으로만 생각했던 것이 현실에서 실현되고 있음에 깜짝 놀라지 않을 수 없었다. 영화 '해피 엑시던트(Happy Accident)'를 보면 주인공 샘 디드의 팔 안쪽에 이진수의 바코드가 선명하게 찍혀 있다. 2470년에 살던 샘 디드는 과거 여행자로, 루비라는 여자 주인공을 구하고 사랑하기 위해 과거로 오게 된다. 미래에 대한 이야기를 들려주었으나 루비는 좀처럼 믿으려 하지 않으면서 원래의 이름을 묻는데, 샘은 "내 이름은 이진수의 코드로 되어 있어 이해하지 못할 거야. 정말 알고 싶다면, 011110011 110011000110 인식 바코드라고 해"와 같이 대답한다. 루비의 부모님을 만나는 자리에서도 어느 대학을 나왔냐는 질문에 "대학을 다닐 필요가 없었어요. 3살 때, 칩을 통해 모든 것을 입력받았거든요"하고 대답한다.
샘을 다른 사람과 구분짓게 하는 인식 코드인 바코드는 무엇일까? 그리고 일반적으로 바코드에서 다른 것과의 판독 오류를 방지하기 위한 방법은 무엇이 있을까?
바코드는 0과 1로 이진수로 표시된다. 이진수는 주로 컴퓨터에서 폭넓게 사용되는데, 예를 들어 우리가 일상에서 사용하는 십진수인 59를 이진수로 나타내면 111011(2)이 된다.
바코드는 여백, 시작 멈춤 문자, 그리고 체크 코드, 식별선, 막대/공간, 사이 간격이라는 심볼의 구조를 가지고 있다. 이 가운데서 체크 코드는 검사문자가 정확하게 읽혔는지를 검사하는 것으로 판독 오류를 방지하기 위해 사용된다. 이 체크 코드를 만드는 방법은 다음과 같다.
체크 숫자
={(짝수 번째 자리의 수의 합×3)+(끝자리를 제외한 홀수 자리의 수의 합)의 일의 자리 수}가 10의 배수가 되도록 하는 수 중 음이 아닌 가장 작은 수
체크 숫자를 통해 숫자 1개가 잘못 읽히거나 인접한 숫자를 잘못 입력했을 경우에 그 오류를 대부분 찾아낼 수 있다고 한다.
주민등록번호도 상품의 바코드 시스템과 유사한 방법으로 구성되어 있다. 대한민국 국민이라면 누구나 주민등록번호를 갖는다. 지난 4월, Metro 신문에서 주민등록번호 오류로 10만976명이 정정을 했다고 하는 기사가 있었다. 이는 주민등록과 가족관계 등록부(호적)에 기재된 주민등록번호가 다르게 기재된 경우라고 한다.
주민등록번호는 다음과 같이 만들어지는데, 우선 앞의 6자리는 본인의 생년월일이다. 뒷부분의 7자리는, (1)첫자리는 성별 구분 (1980년대 남 9 여자 0, 1900년대 남자 1 여자 2, 2000년대 남자 3 여자 4), (2) 다음 네 자리는 주민등록 신청 지역번호 (시·도, 군·구, 읍·면·동 등), (3) 여섯번째 자리는 주민등록 신청 당일 등록 순서, (4) 일곱번째인 마지막 자리는 오류를 체크하기 위한 체크 숫자이다.
체크 숫자
=마지막 숫자를 제외한 모든 숫자에 순서대로 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5를 각각 곱한 후 그 합으로부터 11의 배수를 만들기 위해 더해야 할 숫자 중 가장 작은 음이 아닌 숫자
(단, 체크 숫자가 10인 경우는 0으로 한다.)
그러나 이 체크 숫자가 0일 경우에는 개별 입력 오류를 식별하기가 어렵다. 예를 들어 850803-1056740인 경우를 350803-1056740으로 입력해도 체크 숫자가 0이 되어 오류를 식별하기 어렵다고 한다.
책과 음반의 경우는 국제 표준도서 번호(ISBN)가 붙어 있다. ISBN에 뒤이어 10개의 숫자가 -(하이픈)으로 구분하는데 이때도 마지막 숫자는 체크 숫자이다.
체크 숫자
=10개의 숫자에 각각 10부터 1가지 차례로 자연수를 곱해서 더한 합이 11의 배수가 되도록 한다.
이진수로 되어 있는 바코드로 계산이나 도서 대출, 그리고 고객 관리 등이 이만저만 편해진 것이 아니다. 그러나 바코드 속에 개인정보가 들어 있는 이상, 바코드를 단순히 0과 1로 이루어진 숫자라고 간과해 버릴 수는 없다. 소설이나 영화의 소재가 되고 있는 것처럼 바코드의 혼돈으로 사람이 바뀌거나 존재해 있는 사람이 존재하지 않은 것으로 바뀔 위험도 있기 때문이다. 체크 숫자를 통해 오류를 최소로 하려는 노력은 있지만 완전하지는 못하다. 중요한 정보가 혼돈을 일으킬지도 모르는 이진수의 세계에서 우리는 긴장하지 않을 수 없다.
<김정하 교사 | 수학과 문화 연구소>
- 대한민국 희망언론! 경향신문, 구독신청(http://smile.khan.co.kr) -
ⓒ 경향신문 & 경향닷컴(www.khan.co.kr), 무단전재 및 재배포 금지
〈경향닷컴은 한국온라인신문협회(www.kona.or.kr)의 디지털뉴스이용규칙에 따른 저작권을 행사합니다.〉
Copyright © 경향신문. 무단전재 및 재배포 금지.
- 극우의 아전인수식 ‘지귀연 판결문’ 사용법
- “출신학교 쓰지 마라”…채용시장 뒤흔드는 ‘학벌 차별 금지법’ 논쟁
- 음주운전 사고 내고 달아나다 아들 귀가시키던 아버지 숨지게 한 50대 징역 6년
- 이 대통령, 해양수산부 장관 후보에 ‘PK’ 임기택·황종우 압축
- 주한 러시아대사관 건물에 ‘승리는 우리의 것’ 현수막 논란…우크라이나 등 겨냥했나
- [단독]김민석 ‘인천 계양을’ K국정설명회에 김남준 참석…송영길과 맞대면 이뤄지나
- 강원 고성 토성면 산불 주불 진화…한때 인근 주민 대피령
- 식료품 7개 시켰더니 택배상자가 4개?···환경단체 “제도 공백 속 과대포장 반복” 지적
- ‘금액만 254조’ 전례없는 최고난도 환불···상호관세 돌려받으려면 “5년 동안 법정 싸움”
- 윤석열 무기징역형에도…국민의힘, 윤어게인 ‘풀액셀’