QR 코드 한가운데 로고를 얹어도, 표면이 긁혀도 여전히 잘 스캔되는 이유를 아시나요? 그 비밀은 바로 오류 정정(Error Correction) 기능에 있습니다. 이 글에서는 QR 코드의 오류 정정 원리와 L·M·Q·H 네 가지 레벨을 상황별로 선택하는 기준을 정리해 드립니다.
오류 정정의 원리: 리드-솔로몬
QR 코드는 리드-솔로몬(Reed-Solomon) 알고리즘으로 데이터에 복원용 중복 정보를 덧붙입니다. CD가 긁혀도 재생되는 것과 같은 원리로, 코드 일부가 손상되어도 수학적 계산을 통해 원래 내용을 되살립니다. 중복 데이터가 많을수록 더 넓은 면적이 가려져도 복원되지만, 같은 정보를 담기 위해 칸이 빽빽해지고 코드 전체가 복잡해집니다.
예를 들어 전체 데이터가 백 개의 조각으로 이루어져 있다고 가정해 봅시다. H 레벨은 그중 서른 개가 유실되어도 나머지 일흔 개로 원문을 복원할 수 있도록 설계하는 식입니다. 다만 복원용 데이터가 늘어나는 만큼 같은 공간에 담을 수 있는 실제 내용은 줄어듭니다. 그래서 긴 주소를 H 레벨로 만들면 코드가 지나치게 복잡해질 수 있습니다.
네 가지 레벨, 무엇이 다를까
- L (Low): 약 7%까지 손상을 복원합니다. 코드가 가장 단순해서 화면 표시나 깨끗한 환경에 적합합니다.
- M (Medium): 약 15%까지 복원합니다. 일반적인 인쇄물에 무난하게 쓸 수 있는 기본값입니다.
- Q (Quartile): 약 25%까지 복원합니다. 로고를 넣거나 야외 게시물처럼 오염 가능성이 있을 때 좋습니다.
- H (High): 약 30%까지 복원합니다. 가장 강력하지만 가장 복잡한 코드가 됩니다.
로고를 넣어도 스캔되는 이유
중앙의 로고는 데이터 일부를 물리적으로 가리는 셈입니다. H 레벨로 만들면 면적의 최대 30%가 가려져도 스캔되므로 로고 공간을 확보할 수 있습니다. 다만 로고가 위치 검출 패턴이나 타이밍 패턴을 덮지 않아야 하며, 명암 대비도 충분해야 합니다. 디자인과 스캔 성능의 균형을 잡는 방법은 브랜드 QR 코드 디자인 가이드에서 자세히 다룹니다.
상황별 선택 기준
- 디지털 화면 표시: L 또는 M — 화면은 손상될 일이 없으니 단순한 코드가 유리합니다.
- 명함·전단지 인쇄: M — 무난한 선택이며 코드도 복잡하지 않습니다.
- 로고·색상 적용: Q 또는 H — 디자인 요소가 데이터를 가리는 만큼 여유가 필요합니다.
- 공장·야외 등 열악한 환경: H — 오염과 훼손을 견뎌야 한다면 최고 레벨을 권장합니다.
- 데이터가 길 때: 낮은 레벨 고려 — 내용이 많을수록 코드가 복잡해지므로 길이를 줄인 뒤 레벨을 조정하세요.
레벨을 고른 뒤에는 반드시 실제 환경에서 테스트하세요. Q와 H처럼 높은 레벨은 코드가 복잡해지므로 인쇄 크기를 조금 더 키우는 것이 안전합니다. 화면 표시용이라면 픽셀이 깨지지 않도록 원본 크기 그대로 사용하는 것이 좋습니다.
QR StarCode에서는 생성 화면에서 L·M·Q·H 레벨을 직접 고를 수 있습니다. 용도에 맞는 레벨로 지금 코드를 만들어 보세요.