폰트가 바코드를 그린다는 발상
바코드, 우리 일상에 정말 많죠. 편의점 물건 뒷면, 택배 송장, 콘서트 티켓까지 어디에나 있어요. 보통 바코드를 만들려면 전용 라이브러리나 생성기 프로그램으로 이미지를 뽑아내야 한다고 생각하잖아요? 그런데 Libre Barcode 프로젝트는 완전히 다른 접근을 해요. "그냥 폰트로 바코드를 만들자"는 거예요.
무슨 말이냐면, 이 폰트를 설치하고 그냥 텍스트로 "12345"라고 타이핑하면, 화면에는 그 숫자가 바코드 줄무늬로 보이는 거예요. 마치 글꼴을 '굴림'에서 '바코드'로 바꾸는 것처럼요. 워드든 웹페이지든 폰트만 적용하면 텍스트가 곧바로 스캔 가능한 바코드가 되는 거죠. 이게 왜 신기한지, 그리고 어떻게 가능한지 풀어볼게요.
바코드의 숨은 복잡함, 체크섬
바코드가 단순히 글자 하나를 줄무늬 하나로 바꾸는 거라면 폰트로 만드는 게 어렵지 않아요. 실제로 Code 39 같은 단순한 바코드는 옛날부터 폰트로도 만들어 왔거든요. 그런데 우리가 흔히 보는 Code 128이나 EAN 같은 바코드는 훨씬 까다로워요. '체크섬'이라는 게 들어가기 때문이에요.
체크섬이 뭐냐면, 바코드를 읽을 때 오류가 났는지 검사하려고 맨 끝에 붙이는 검증용 숫자예요. 앞의 숫자들을 정해진 공식으로 계산해서 만들어내죠. 문제는, 이 계산을 하려면 '숫자를 더하고 곱하는' 연산이 필요한데, 폰트는 원래 그냥 글자 모양을 그리는 거잖아요. 계산을 할 줄 모르는데 어떻게 체크섬을 만들까요?
OpenType 기능으로 '계산하는 폰트'
여기서 Libre Barcode의 진짜 영리한 부분이 나와요. 바로 OpenType이라는 폰트 기술의 고급 기능을 활용한 거예요. OpenType에는 '리거처(ligature)'나 '문맥 대체(contextual alternates)'라는 기능이 있어요. 이게 뭐냐면, 특정 글자들이 나란히 오면 다른 모양으로 바꿔치기하는 규칙이에요. 예를 들어 'f'와 'i'가 붙으면 'fi'를 예쁜 하나의 글자로 합쳐주는 게 리거처예요.
Libre Barcode는 이 '글자를 조건에 따라 바꿔치기하는' 규칙을 수백, 수천 개 정의해서, 사실상 폰트 안에 작은 계산 로직을 심어 넣었어요. 입력된 숫자 조합에 따라 체크섬에 해당하는 줄무늬가 자동으로 튀어나오도록 규칙을 짠 거죠. 그러니까 이 폰트는 단순히 모양을 그리는 게 아니라, 폰트 엔진의 글자 치환 기능을 일종의 '계산기'처럼 쓰고 있는 셈이에요. 폰트로 프로그래밍을 한 거나 마찬가지죠. 이런 발상이 정말 기발해요.
어떤 바코드를 지원하나
Libre Barcode는 여러 종류를 제공해요. 마트 상품에 쓰이는 EAN13, 물류에서 많이 쓰는 Code 128, 옛날부터 써온 Code 39, 그리고 우편물에 쓰는 특수 바코드까지요. 사람이 읽을 숫자가 같이 보이는 버전과 안 보이는 버전도 따로 있어서, 용도에 맞게 고를 수 있어요. 게다가 Google Fonts에 올라가 있어서 누구나 무료로, 상업적으로도 자유롭게 쓸 수 있어요. (SIL Open Font License라는 자유로운 라이선스예요.)
한국 개발자에게 주는 시사점
실무에서 바로 쓸모가 있어요. 송장이나 라벨, 영수증 출력 시스템을 만들 때 보통 바코드 이미지를 서버에서 생성해서 박아넣잖아요? 그런데 폰트 방식이면 그냥 HTML/CSS에서 폰트만 지정하면 끝이에요. 이미지 생성 로직도, 별도 라이브러리도 필요 없죠. 특히 PDF나 인쇄용 문서를 만들 때 벡터로 깔끔하게 출력된다는 장점도 있어요. (이미지는 확대하면 깨지지만 폰트는 안 깨지거든요.)
다만 주의할 점도 있어요. 폰트 방식은 텍스트가 그대로 노출되니, 복사하면 원본 숫자가 같이 복사돼요. 보안이 중요한 곳에서는 고려할 부분이고요. 그래도 "복잡한 도구 없이 가볍게 바코드를 찍어야 하는" 상황에서는 정말 매력적인 선택지예요.
무엇보다 이 프로젝트가 주는 교훈은, 익숙한 도구(폰트)도 발상을 바꾸면 전혀 다른 일(계산과 바코드 생성)을 해낼 수 있다는 거예요. 여러분이 매일 쓰는 도구 중에, 아직 아무도 생각 못 한 새로운 쓰임새가 숨어 있는 건 아닐까요?
🔗 출처: Hacker News
TTJ 코딩클래스 정규반
월급 외 수입,
코딩으로 만들 수 있습니다
17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공