사실을 들여다보면
QR 코드의 일부가 긁히거나 더러워져도 읽힐 수 있는 까닭은 같은 그림을 여러 번 저장해서가 아닙니다. 원래 데이터에서 계산한 오류 정정 코드워드를 함께 넣어 두어, 스캐너가 읽지 못했거나 잘못 읽은 일부 값을 남은 정보로 복구할 수 있기 때문입니다.
문자와 숫자는 작은 흑백 모듈의 배열로 바뀌고 여러 데이터 블록에 나뉩니다. 각 블록에는 리드-솔로몬 방식의 패리티 코드워드가 붙습니다. 디코더는 코드워드 사이에 성립해야 하는 수학적 관계를 검사해 오류 위치와 값을 추정하고, 허용 범위 안에서는 원래 블록을 다시 구성합니다.
QR 코드에는 L, M, Q, H 네 오류 정정 단계가 있습니다. DENSO WAVE가 안내하는 대략적인 코드워드 복원 비율은 각각 7%, 15%, 25%, 30%입니다. 강한 단계를 선택하면 손상에는 더 잘 버티지만, 같은 버전과 크기에서 실제 메시지에 쓸 수 있는 용량은 줄어듭니다.
세 모서리의 큰 네모는 메시지보다 먼저 방향과 크기를 찾게 하는 위치 탐지 패턴입니다. 작은 정렬 패턴과 타이밍 패턴은 모듈 격자를 맞추는 데 쓰이고, 코드 바깥의 빈 여백인 콰이어트 존도 경계를 구별하는 데 필요합니다. 이 구조가 심하게 가려지면 데이터 손상률이 낮아 보여도 스캔이 실패할 수 있습니다.
‘H 단계면 화면의 30%를 어디든 가려도 된다’는 뜻은 아닙니다. 비율은 단순한 검은색 면적이 아니라 코드워드 기준이며, 손상이 블록에 어떻게 분포했는지와 필수 패턴, 초점, 대비, 인쇄 크기가 결과를 바꿉니다. 복구 능력을 넘으면 일반적으로 해독에 실패하지만, 오류 정정이 모든 한도 초과 오독을 논리적으로 불가능하게 보장하지는 않습니다.
가운데 로고가 있는 코드도 원래부터 비워 둔 전용 칸을 쓰는 것이 아닙니다. 로고가 가린 모듈을 오류 정정 여유가 감당하고 필수 패턴과 여백이 온전히 남았을 때 읽힐 수 있는 것입니다. 중요한 코드는 최종 인쇄물과 실제 조명·거리에서 여러 기기로 시험하고, 성공적으로 읽혔다는 이유만으로 목적지나 내용의 진위를 믿어서는 안 됩니다.
오류 정정의 역할은 손상된 운반 매체에서 데이터를 되찾는 것이지 보안을 제공하는 것이 아닙니다. 누군가 QR 코드 전체를 다른 코드로 바꾸면 그 새 코드도 완벽하게 읽힐 수 있습니다. QR 코드의 끈질김은 패리티 정보와 구조 표지가 함께 만든 복구 능력이며, 진짜 링크인지 확인하는 일은 별도의 검증 문제입니다.
편집 책임
팩토스브레인 편집부
이 기사는 팩토스브레인 편집부가 자료를 검토하고 편집 원칙에 따라 작성·검수했습니다. 오류 제보는 정정 정책에 따라 확인합니다.



