brunch

You can make anything
by writing

C.S.Lewis

by Cylogic Apr 30. 2018

바코드는 폰트

모든 상품에는 바코드가 표시되어 있다.

바코드는 해당 상품의 고유 코드를 표현하므로, 해당 바코드를 바코드 리더기로 읽어 들여 재고를 관리하기도 하고 계산대에서 물건 가격을 쉽게 알아볼 수 있도록 한다.


해당 코드를 상품에 표기하는 프로그램을 개발하는 개발자들은 쉽게 인지하고 있는 사항이지만, 해당 지식이 없다면 바코드를 어떻게 생성해 내는지가 궁금할 것 같아 이번 글을 쓰게 되었다.


바코드는 각 문자 혹은 숫자를 가는 공백, 두꺼운 공백,  두꺼운 바(bar), 가는 바(bar)를 이용하여 표기할 수 있도록 만들어진 폰트의 출력물이다.


다양한 바코드의 구현 방식이 있지만 그중에 CODE39라는 방식을 기반으로 설명한다면, 하나의 글자 공간을 13개의 세로로 긴 Bar를 검은색 또는 흰색으로 구분하여 그 코드를 표현한다.

바코드로 표현한 0과 1

위의 그림은 숫자 0, 1을 각각 code39 타입의 바코드로 표현한 것이다. 

굳이 이것을 0과 1로 만들어진 디지털 신호로 분석해 보자면 

0은 1,0,1,0,0,1,1,0,1,1,0,1,0

1은 1,1,0,1,0,0,1,0,1,0,1,1,0

으로 표현할 수 있을 것이다. 

이러한 코드에는 당연히 규칙이 있지만, 그 내용은 본 칼럼의 내용을 벗어나므로 관심 있는 분들은 인터넷 검색을 통하여 전문가의 지식을 함께 하기 바란다.


위의 보기와 같이 바코드는 폰트로 구성되어 있고, 폰트 파일은 아래와 같이 구성되어 있다.

폰트 제작 관련 이야기를 읽어보신 독자라면 익숙한 모양의 테이블에 코드가 들어가 있는 것을 확인할 수 있을 것이다.

*ABCD* 의 바코드

물론 바코드를 구성하는 것이 단순히 코드만을 늘어놓아서 만들어지는 것이 아니다. 본 이야기에서 예로 든 바코드 타입인 Code39의 경우 코드의 앞과 뒤에 * 표시를 붙여주어야 바코드 리더가 해당 코드를 인식하게 된다.

위의 폰트 테스트 창에 *ABCD*로 코드를 구성한 것이 보일 것이다.

해당 코드를 바코드를 읽어 들이는 휴대폰 어플로 읽어 보면


위와 같이 앞뒤의 * 표시는 없어지고 ABCD만이 읽히는 것을 확인할 수 있을 것이다.


바코드 폰트들을 대부분 인터넷에 공개되어 있으므로, 본인의 문서나 자료를 정리하여 차후에 바코드를 통하여 읽어보고 싶다면 위에 설명한 방식으로 문서에 바코드를 출력해 보기를 권한다.


이전 07화 아직도 비트맵 폰트가 쓰일까?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari