해설가전·생활 원리원리 해설

QR 코드는 일부 가려져도 왜 읽힐까?

QR 코드의 오류 정정 원리와 L·M·Q·H 복원율의 의미를 설명합니다. 가린 면적만으로 판독 성공을 판단할 수 없는 이유와 크기·여백·카메라 조건을 살펴봅니다.

최초 게시

작성·발행: 세계설명서

핵심 답

QR 코드는 원래 정보에 오류를 고치는 데 쓸 추가 정보를 함께 넣기 때문에, 일부가 더럽혀지거나 손상돼도 읽힐 수 있다. 다만 복원에는 한계가 있다. 흔히 말하는 ‘최대 약 30% 복원’은 그림의 30%를 아무 곳이나 가려도 된다는 뜻이 아니다. 얼마나 많은 데이터가 잘못 읽혔는지뿐 아니라, 판독기가 코드의 위치와 배열을 먼저 알아볼 수 있는지도 중요하다.

이 글의 흐름 4개의 질문

사라진 그림을 그리는 대신, 잘못 읽은 정보를 고친다

QR의 검고 흰 작은 칸을 ‘모듈’이라고 한다. 이 칸들에는 우리가 담으려는 정보와 함께 오류 정정용 정보가 들어간다. 오류 정정이란 일부 정보가 잘못 읽혀도 원래 값을 되찾는 기능이다. QR은 여기에 리드 솔로몬(Reed–Solomon) 부호라는 방식을 쓴다.

정정의 단위는 그림 한 칸이 아니라 8비트로 이뤄진 ‘코드워드’다. 판독기가 읽어 낸 코드워드 일부에 오류가 있어도, 함께 저장한 정정용 정보를 이용해 허용 범위 안에서 원래 데이터를 복원한다. 제작사 DENSO WAVE는 이 방식이 오류가 한곳에 모이는 경우에도 적합하다고 설명한다. 따라서 포장의 작은 얼룩 때문에 일부 칸이 틀리게 읽혀도, 코드에 넣어 둔 복원 여유 안이라면 정보를 얻을 수 있다. DENSO WAVE의 오류 정정 설명

여기서 복원한다는 것은 얼룩 아래의 이미지를 카메라가 투시한다는 의미가 아니다. 읽은 정보의 오류를 계산으로 바로잡는다는 뜻이다. 그리고 그 계산을 하려면 먼저 판독기가 QR을 찾아 읽을 수 있어야 한다.

‘30%’는 가려도 되는 면적이 아니다

일반 QR 코드의 오류 정정 수준은 네 가지다. 제작사가 제시한 근사 복원율은 다음과 같다.

표가 한 화면에 들어오지 않으면 좌우로 밀어 ‘전체 코드워드 기준 근사 복원율’ 열까지 확인하세요.

‘30%’는 가려도 되는 면적이 아니다
오류 정정 수준 전체 코드워드 기준 근사 복원율
L 약 7%
M 약 15%
Q 약 25%
H 약 30%

이 수치의 분모는 QR 그림의 면적이 아니라 전체 코드워드다. 따라서 H 수준을 골랐다는 이유로 인쇄된 QR 면적의 30%까지 로고나 스티커로 덮어도 된다고 계산할 수는 없다. 가린 부분이 실제로 어떤 정보를 훼손하는지, 위치를 찾는 데 필요한 표식을 건드리는지도 함께 봐야 한다. 위 수치는 휴대전화가 읽기에 성공할 확률을 뜻하지도 않는다. DENSO WAVE의 QR 규격 개요

정정 수준을 높이는 데에도 대가가 있다. 원래 정보 외에 정정용 정보를 더 담아야 하기 때문이다. 같은 크기의 QR에서는 담을 수 있는 데이터가 줄어들 수 있고, 같은 내용을 담으려면 더 많은 칸을 가진 QR이 필요할 수 있다. 실제 수용량은 문자 종류와 데이터량, 정정 수준에 따라 달라진다. DENSO WAVE의 버전·정보 수용량 설명

예를 들어 안내문을 만드는 사람이 같은 웹 주소를 담으면서 정정 수준을 높인다고 하자. 더 많은 칸이 필요한 코드가 됐는데 종이 위 인쇄 폭을 그대로 두면, 한 칸의 크기는 작아진다. 이는 칸 수와 인쇄 폭의 관계에서 나오는 결과다. 그러므로 ‘정정 수준만 높이면 어떤 인쇄 크기에서도 잘 읽힌다’고 판단해서는 안 된다. 코드의 최종 크기와 실제 판독 조건도 확인해야 한다.

카메라는 먼저 QR의 위치를 찾아야 한다

일반 QR 코드의 세 모서리에 있는 큰 네모는 장식이 아니다. 코드의 위치를 찾는 표식으로, 방향이 달라도 QR을 인식하도록 돕는다. 데이터를 복원할 여유가 있어도 위치를 찾는 데 필요한 단서가 손상되면 같은 조건으로 볼 수 없다. DENSO WAVE의 위치 검출 패턴 설명

주변의 빈 공간도 코드의 일부처럼 관리해야 한다. DENSO WAVE는 QR 사방에 작은 칸 네 개 폭의 여백을 두도록 안내한다. 예를 들어 한 칸의 인쇄 폭이 0.5mm라면, 이 기준에 따른 여백은 각 방향으로 2mm다. 이는 규정된 네 칸을 길이로 바꾼 가상 예시이며, 모든 QR을 그 크기로 인쇄하라는 권장치는 아니다. 포장이나 안내문에 QR을 넣을 때 이 여백까지 글자나 테두리로 채우면, 정정 수준을 높이는 것과 별개로 판독 조건을 해칠 수 있다. DENSO WAVE의 코드 영역·여백 안내

실제로 읽는 과정에는 인쇄 상태와 카메라 성능도 관여한다. 제작사 FAQ는 작은 손상이나 번짐만으로도 읽지 못하거나 읽는 데 시간이 걸릴 수 있으며, 휴대전화 판독은 카메라 기능에 좌우될 수 있다고 설명한다. 어떤 휴대전화에서 한 번 읽혔다고 해서 모든 기기와 촬영 환경에서 같은 결과가 보장되지는 않는다. DENSO WAVE FAQ

읽히지 않을 때 무엇을 구분하면 될까?

상품 포장의 QR을 읽는 사람에게는 ‘얼마나 가려졌나’와 ‘카메라가 코드를 제대로 읽을 조건인가’가 서로 다른 질문이다. 얼룩이 작아 보여도 판독 실패가 가능하고, 일부가 지워져 보여도 정정 범위 안에서는 읽힐 수 있다. 이번 자료만으로 특정 얼룩의 면적이나 위치에 따른 성공 확률을 계산할 수는 없다.

QR을 만드는 사람이라면 정정 수준, 담을 정보량, 최종 인쇄 크기, 주변 여백을 함께 결정해야 한다. 정정 정보를 늘리면 손상에 대비할 여유는 커지지만, 그것이 작은 인쇄나 표식 훼손을 모두 해결해 주지는 않는다. 오류 정정률은 데이터 복원의 여유이고, 실제 판독 성공은 코드를 찾아 읽는 조건까지 합쳐진 결과라고 구분하면, ‘조금 가려져도 된다’는 설명을 더 정확하게 이해할 수 있다.

설명의 근거

출처와 확인 범위

  1. Error Correction Feature
  2. QR Code Standardization
  3. Information capacity and versions of the QR Code
  4. Position detection patterns
  5. Point for determining the code area
  6. FAQ

발표 시점은 자료명에 표시합니다. 본문을 실질적으로 고치면 제목 아래 수정일을 안내합니다. 편집·정정 기준

세계설명서 홈으로