QR코드 가운데에 로고가 있거나 일부가 더러워도 휴대전화가 읽는 모습을 볼 수 있다. 그렇다고 ‘최대30% 복원’을 코드 면적의30%까지 마음대로 지워도 된다는 뜻으로 읽으면 안 된다. 원 개발사 DENSO WAVE는 이 비율의 기준을 그림 면적이 아니라 전체 코드워드라고 명시한다. 손상돼도 읽을 여지를 만드는 장치와 아무렇게나 가려도 된다는 보장은 다르다.
기름 묻은 공장에서도 읽어야 했다
개발자 하라 마사히로는 DENSO의2024년 인터뷰에서 자동차 부품 현장의 어려움을 설명했다. 한 제품의 정보를 읽으려고 여러 바코드를 잇달아 스캔해야 했고, 기름이 묻으면 읽지 못하는 문제도 있었다. QR코드는 더 많은 정보를 담는 것뿐 아니라 빠르고 정확하게 읽는 문제를 함께 풀기 위해 개발됐다. 대표 사진은 이 인터뷰의 자료사진이다.
정정용 정보도 함께 넣는다
QR코드는 원래 데이터에 리드-솔로몬 오류 정정 정보를 더한다. 일부가 손상돼도 남은 정보에서 원래 데이터를 복원할 수 있게 하는 방식이다. DENSO WAVE는 데이터 영역을 이루는 한 코드워드를8비트로 설명한다. 정정률은 데이터와 정정용 정보를 포함한 전체 코드워드 중 어느 정도를 복원할 수 있는지를 나타낸다.
선택할 수 있는 정정 수준은 L·M·Q·H 네 가지다. 공식 표의 근사 복원률은 각각7%·15%·25%·30%다. 모든 QR코드가 가장 높은 H 수준으로 만들어지는 것은 아니다. 수준을 높이면 정정 능력이 커지지만 함께 담을 정보량과 코드 크기의 절충도 필요하다. 원문은 일반적으로 M 수준이 많이 선택된다고 안내한다.
구석의 큰 네모는 위치를 알리는 표지
세 모서리의 큰 네모는 스캐너가 QR코드를 찾아 방향을 알아보는 검출 무늬다. 검정과 흰색의1:1:3:1:1 비율은 다른 인쇄물과 구별하기 위한 설계다. 작은 정렬 무늬는 왜곡에 따른 위치·각도 차이를 보정하고, 검정과 흰색이 번갈아 나타나는 타이밍 무늬도 칸의 위치를 읽는 데 쓰인다. 데이터 복원률만으로 이런 무늬까지 가려도 된다고 결론낼 수 없는 이유다.
포스터나 인쇄물에 코드를 넣을 때는 ‘30%까지 괜찮다’는 숫자만으로 로고 크기를 결정하지 않는 편이 맞다. 어떤 정정 수준으로 만들었는지와 최종 출력물이 실제 조건에서 읽히는지를 따로 확인해야 한다. 오류 정정은 손상된 코드 데이터를 복원하는 기능이지, 연결되는 웹사이트의 안전성이나 내용의 진위를 보증하는 표시도 아니다.