물건과 책들에 따라 다니는 바코드는 숫자들이 잘못 읽혀질 위험에 대비한 안전장치를 갖고 있다. 그것은 무엇일까.
출생 신고를 하면서 부여되는 주민등록번호를 시작으로 학교와 직장에서의 번호, 전화 번호, 아파트 동수와 호수, 버스 번호, 전철과 도로 등 우리는 숫자와 생활하고 있다고 해도 과언이 아니다. 수는 정말 만물을 지배하는 것일까.
슈퍼마켓과 서점에서 구입하는 대부분의 상품과 서적에도 숫자가 붙어있다. 이 숫자들은 여러 개의 검은 막대와 흰 막대를 달고 다닌다. 이것이 해당하는 숫자를 나타내는 바코드다. 스캐너로 읽히는 바코드는 판매 즉시 판매량과 금액 등 판매와 관련된 각종 정보를 신속하고 정확하게 집계해 재고 관리와 유통 업무를 효율적으로 처리할 수 있도록 한다. 그런데 바코드가 잘 읽히지 않아 스캐너를 여러 번 접촉시키다가 결국에는 키보드로 숫자를 입력하는 경우를 종종 볼 수 있다. 뿐만 아니라 바코드가 불명확하거나 유통 과정에서 손상되면, 스캐너는 다른 숫자로 읽을 수도 있다. 이런 문제에 대비해 바코드에는 체크 숫자라는 안전장치가 돼 있다. 이것은 상품의 정보를 간직한 고유 번호가 잘못 읽혀지는 것을 찾아내기 위한 숫자다.
상품 번호
우리 나라 상품에 붙어 있는 바코드는 유럽 상품 번호(EAN)를 따르고 있다. 통상 13개의 숫자로 이루지는데 처음 세 개의 숫자 ‘880’은 한국, 다음의 다섯 개는 제조업자이고, 그 다음 다섯 개는 상품을 나타내는 고유 번호인데 이중 마지막 숫자가 체크 숫자이다. 체크 숫자는 홀수번째 자리에 있는 숫자들을 그대로 더하고 짝수 번째 자리에 있는 숫자들은 3배해서 더한 전체의 합이(모듈 번호) 10의 배수가 되도록 정한다. 예를 들어 8801037002782의 경우는 (그림1)과 같다.
이렇게 체크 숫자를 정하면, 한 개의 숫자를 잘못 읽은 경우를 모두(100%) 찾아내고, 인접한 두 숫자를 바꾸어 입력한 경우도 ‘대부분’(정확하게는 88.9%) 찾아낼 수 있다. 이것은 짝수번째 자리의 숫자에 3을 곱하는 가중치를 둔 효과다.
상품 번호의 약점 중 하나는 인접한 두 숫자의 차가 5일 때, 이 두 숫자를 바꾸어 입력한 경우에는 오류를 찾아낼 수 없다는 점이다.
예를 들어 위의 바코드에서 27을 72로 바꾸어 8801037007282로 입력했다고 하자. 그래도 결과는 10의 배수가 되므로 컴퓨터는 오류를 인식할 수 없다. 따라서 제조업자는 상품 번호를 정할 때 이런 경우를 미리 피해야 한다.
담배 같은 경우는 상품 번호가 8개의 숫자로(8800-9605) 이뤄졌다(그림2). 이런 경우에는 홀수 번째 자리에 있는 숫자들을 3배해서 더하고 짝수 번째에 있는 숫자들은 그대로 더한 전체의 합이 10의 배수가 되도록 체크 숫자를 정한다. 왜냐하면 체크 숫자에는 가중치가 곱해지지 않도록 하기 위해서다.
도서 번호
책과 각종 음반물에는 국제 표준 도서 번호(ISBN)가 붙어있다. ISBN에 뒤이어 10개의 숫자가 하이펀(-)으로 구분돼 나타나는데, 여기서도 마지막 숫자가 체크 숫자이다. 10개의 숫자에 10부터 1까지의 자연수를 차례로 곱해서 더한 합이 11의 배수가 되도록 체크 숫자를 정한다. 11의 배수가 되기 위해서는 체크 숫자로 10을 이용할 경우가 생긴다. 이런 경우에는 X로 10을 대신한다. 예를 들어 ISBN 89-7282-108-X의 경우가 그렇다(그림3).
이렇게 체크 숫자를 정하면, 한 개의 숫자를 잘못 읽은 경우와 인접한 두 숫자를 바꾸어 입력한 경우를 모두(100%) 찾아낼 수 있다. 가중치를 주는 방법을 바꾸고 10 대신에 11이라는 소수를 이용한 효과다.
그런데 도서 번호는 바코드로 나타나 있지 않으므로 스캐너로 직접 읽을 수 없다. 이에 따라 도서 번호를 상품 번호로 바꾼 바코드를 함께 제시한다. 국내 단행본 번호 ‘978’ 뒤에 도서 번호의 처음 9개의 숫자를 그대로 적은 다음에 체크 숫자를 붙인다. 이때 체크 숫자는 상품 번호에서 이용한 방법으로 정한다. 예를 들면 ISBN 89-7282-108-X는 상품 번호로 978 897282108 3이 된다. 이 경우는 상품번호이므로 상품번호의 체크 숫자를 확인하는 방법을 사용한다.
잡지와 같은 연속 간행물에는 7자리의 고유 번호와 한 자리의 체크 숫자로 이루어진 국제 연속 간행물 번호(ISSN)를 붙이며, 상품 번호로 바꿀 때는 국내 연속 간행물 번호인 ‘977’을 앞세우고 고유 번호인 7개의 숫자, 예비 기호 ‘00’, 체크 숫자를 차례로 나열한다. 과학동아의 경우 ISSN 1228-3401에서 마지막 마지막 1이 체크 숫자다. 이때 각 숫자에 8부터 1까지의 숫자를 곱한 것이 11의 배수가 되도록 체크 숫자를 정한다.