QR코드가 찢어지고 가려져도 읽히는 이유

QR코드는 일부가 조금 찢기거나 얼룩이 묻어도 폰으로 읽히도록 만들어져 있다. 담은 내용과 함께, 망가진 부분을 다시 계산해 낼 여분의 묶음이 들어 있어서다. 만들 때 고르는 레벨 가운데 가장 높은 것에 붙은 「30%」는 가린 넓이가 아니라, 전체 묶음 가운데 몇 개를 되살리느냐로 센 값이다. QR코드가 이렇게 여분을 덧붙여 두었다가 망가진 내용을 되살리는 기능을 오류 복원(error correction)이라고 한다.

흰 종이에 찍힌 큰 QR코드 한 장(가로세로 25칸, 담은 글자 HELLO QR)이 크림색 카드 오른쪽에 살짝 기울어 놓여 옅은 그림자를 드리운다. 세 모서리의 큰 네모와 오른쪽 아래 작은 네모는 온전하다. 가운데보다 조금 위에는 칸 경계를 따라 계단 모양으로 찢겨 나간 구멍이 있어 크림색 바탕이 비치고, 구멍 테두리에만 가는 빨간 선이 그어져 있다. 카드 왼쪽에는 아주 굵은 두 줄 제목 「QR코드가 찢어지고 / 가려져도 읽히는 이유」가 있고 「찢어지고」와 「가려져도」만 빨간색이다. 그 아래 회색 부제는 「망가진 묶음을 다시 계산해 낼 / 여분이 함께 들어 있다」다. 숫자·눈금·이름표는 없다.

가운데를 작은 네모로 하얗게 덮은 QR코드는 읽히는데, 같은 칸 수만큼 낱칸을 여기저기 흩어 하얗게 덮은 QR코드는 읽히지 않을 때가 훨씬 많다. 덮은 크기는 같은데 결과가 갈린다. 그 까닭은 QR코드가 망가진 부분을 되살리는 방식에 있다. 이 글이 직접 덮어 보고 판독 프로그램으로 읽어 본 결과는, 그 조건과 함께 뒤에서 본다.

QR코드는 일부가 찢어지거나 가려져도 왜 읽힐까? 답부터 말하면, QR코드에는 담은 내용과 함께 그것을 다시 계산해 낼 여분의 묶음(칸 여덟 개를 묶은 한 덩어리)이 들어 있다. 일부 묶음이 망가져도 남은 묶음으로 원래 내용을 되살린다. 얼마까지 되살리는지는 QR코드를 만들 때 고른 레벨에 달려 있다. 레벨에 붙은 숫자(가장 높은 레벨은 30%)는 가린 넓이가 아니라 묶음의 개수로 센 값이다. 그래서 QR코드가 버티는 힘은 가린 넓이보다 망가진 묶음의 수에서 나온다.

칸 여덟 개가 한 묶음

흔히 보는 QR코드 가운데 가장 작은 크기는 가로세로 21칸, 모두 441칸이다. 칸 하나는 검은지 흰지로 1비트를 담는다. 칸 8개가 모이면 8비트, 곧 한 묶음이 된다. QR코드에서는 이 8칸 한 묶음을 코드워드(codeword)라고 부르고, QR코드를 개발한 덴소웨이브(DENSO WAVE)의 설명도 「One codeword of QR Code is equal to 8 bits.」라고 적는다. 이 글에서는 코드워드를 계속 묶음이라고 부른다.

441칸이 전부 묶음 자리인 것은 아니다. 묶음이 놓이는 칸은 26묶음 × 8칸 = 208칸으로, 전체의 47% 남짓이다. 나머지 233칸은 세 모서리의 큰 네모(위치를 찾는 무늬)와 그 둘레, 칸 간격을 알려 주는 점선 줄, 레벨 등을 적어 둔 작은 띠 같은 칸이다. 판독기가 QR코드를 찾아내고 읽을 준비를 하는 데 쓰는 칸들이다. 위치를 찾는 무늬와 점선 줄에 대해 국제 표준 ISO/IEC 18004 는 「Function patterns do not encode data.」(이 무늬는 데이터를 담지 않는다)라고 적는다.

26묶음이 모두 내용을 담는 것도 아니다. 담은 내용이 든 묶음 뒤에, 내용이 망가졌을 때 그것을 다시 계산해 낼 재료가 든 묶음이 붙는다. 이 글은 앞쪽을 내용 묶음, 뒤쪽을 정정 묶음이라고 부른다. 26묶음을 둘에 어떻게 나눌지는 네 가지 가운데 하나를 고른다.

레벨 내용 묶음 정정 묶음
L 19 7
M 16 10
Q 13 13
H 9 17

이 네 단계를 오류 복원(오류 정정이라고도 한다) 레벨이라고 한다. 덴소웨이브는 쓰는 환경에 맞춰 네 레벨 가운데 하나를 고르게 했다. 레벨을 올리면 고칠 수 있는 양이 늘어나는 대신, 같은 내용을 담는 데 정정 묶음을 더 써야 해서 QR코드가 커진다. 덴소웨이브에 따르면 가장 흔히 고르는 레벨은 M 이다(「Typically, Level M (15%) is most frequently selected.」). 가장 작은 QR코드는 절반 가까이가 묶음 자리다. 그 묶음 가운데 일부가 망가진 내용을 고칠 재료다.

QR코드 오류 복원 원리, 틀린 묶음 하나에 정정 묶음 둘

정정 묶음이 일하는 규칙은 하나다. 어디가 틀렸는지 모르는 묶음 하나를 고치려면 정정 묶음 두 개가 든다. 이렇게 묶음 단위로 셈을 해서 틀린 묶음을 찾아 고치는 방식을 리드-솔로몬 부호(Reed–Solomon code)라고 한다.

덴소웨이브는 이 규칙을 예로 든다. 내용 묶음 100개 가운데 50개를 고칠 수 있게 하려면 정정 묶음이 100개 있어야 한다(「Reed-Solomon Code requires twice the amount of codewords to be corrected」). 그러면 전체 묶음 200개 가운데 50개를 고칠 수 있으니, 고칠 수 있는 비율은 25%다. 레벨 Q 가 이 비율이다.

내용 묶음 100개만 분모로 잡으면 50%로 볼 수도 있다고 덴소웨이브는 덧붙인다. 그래도 전체 묶음으로 세는 까닭은, 얼룩과 손상이 내용 묶음만 골라 묻지 않기 때문이다. 국제 표준의 문장도 같은 단위로 적혀 있다.

Selectable error correction: four levels of Reed-Solomon error correction (referred to as L, M, Q and H in increasing order of capacity) allowing the symbol codeword recovery of — L: 7 %; — M: 15 %; — Q: 25 %; — H: 30 %.

(고를 수 있는 오류 복원: 리드-솔로몬 방식의 오류 복원 네 단계 — 능력이 커지는 순서로 L·M·Q·H — 가 QR코드 한 장의 코드워드를 L 7%, M 15%, Q 25%, H 30% 되살린다.)

ISO/IEC 18004:2024 §5.1

퍼센트가 센 것은 「symbol codeword」, 곧 QR코드 한 장에 든 묶음이다. 가장 작은 QR코드에 대 보면, 어디가 틀렸는지 모를 때 레벨 Q 는 정정 묶음 13개로 6묶음까지, 레벨 H 는 정정 묶음 17개로 8묶음까지 고친다. 전체 26묶음 가운데 6개는 23.1%, 8개는 30.8%다. 같은 셈으로 레벨 L 은 정정 묶음 7개로 3묶음(11.5%), 레벨 M 은 10개로 5묶음(19.2%)을 고친다. 이 둘은 레벨 숫자보다 크다. 레벨 숫자는 정확한 값이 아니라 대략값이고, 덴소웨이브의 설명표도 이 숫자 앞에 「Approx.」(대략)를 붙인다.

이 한계가 얼마나 딱 끊기는지, 이 글이 직접 짠 되살리기 프로그램으로 시험했다. 무작위로 만든 내용에 정정 묶음을 붙이고, 정해 둔 개수만큼 묶음을 틀리게 한 뒤 되살리기를 조건마다 400번씩 했다. 틀린 묶음이 한계 이하이면 400번 모두 되살렸고, 하나만 넘어도 한 번도 되살리지 못했다. 그림 1의 빨간 선이 레벨 M(정정 묶음 10개)에서 틀린 묶음 5개를 넘자마자 0으로 떨어지는 모습이다. 이 끊김은 한계 안에서만 답을 찾는 이 프로그램 방식의 성질이다.

어디가 망가졌는지 알면 사정이 달라진다. 그때 리드-솔로몬 부호는 정정 묶음 하나로 한 묶음을 고치므로, 모를 때의 두 배까지 고칠 수 있다(영문 위키백과 정리, 「twice as many erasures as errors」). 같은 시험에서 망가진 자리를 알려 주자, 레벨 M 은 정정 묶음 수와 같은 10묶음까지 모두 되살렸고 11묶음부터는 하나도 되살리지 못했다.

크림색 카드. 두 줄 제목 「정정 묶음 10개, / 고칠 수 있는 묶음 5개와 10개」에서 「5개」만 빨간색이고, 회색 부제는 「레벨 M · 가장 작은 QR(묶음 26개) — 망가진 묶음 수에 따라 원래 내용을 되살린 비율」이다. 가로축은 「망가진 묶음 수 (전체 26개 중)」 0~13, 세로축은 「되살린 비율」 0·50·100%다. 빨간 실선과 채운 점 「어디가 틀렸는지 모를 때」는 0~5에서 100%에 있다가 5와 6 사이에서 0%로 떨어지고, 6~9에서 0%에 머문 뒤 9에서 끝난다. 검은 점선과 빈 고리 「어디가 틀렸는지 알 때」는 0~10에서 100%에 있다가 10과 11 사이에서 떨어져 11~13에서 0%다. 5와 10 자리에 회색 세로 점선이 있고, 위에 각각 「정정 묶음 10 ÷ 2」와 「정정 묶음 10」이 붙어 있다. 오른쪽 위 회색 칩은 「한계까지 400번 모두 · 하나 넘으면 0번」이고, 카드 아래 회색 글은 「이 글이 직접 짠 되살리기 프로그램 · 조건마다 무작위 400번 · 한계 뒤 0% 는 이 프로그램 방식의 성질이다」다.
그림 1. 가장 작은 QR코드의 레벨 M(묶음 26개 중 정정 묶음 10개)에서, 망가진 묶음 수마다 이 글이 직접 짠 되살리기 프로그램을 400번씩 돌려 원래 내용을 되찾은 비율. 한계 뒤의 0%는 이 프로그램 방식의 성질이다.

레벨에 붙은 퍼센트는 결국, 어디가 틀렸는지 모를 때 전체 묶음 가운데 몇 개까지 고치느냐를 어림한 값이다. 가장 작은 QR코드에서 실제로 셈해 보면 레벨에 따라 그 숫자보다 크기도 하고 작기도 하다. 그래도 레벨이 높을수록 정정 묶음이 많아, 고칠 수 있는 묶음도 많아진다.

덮개를 한 칸씩 키우면 언제 못 읽게 될까

버티는 힘이 묶음의 수에서 나온다면, 같은 넓이를 가려도 그 가림이 몇 묶음에 걸치느냐가 중요하다. 그림 2는 가장 작은 QR코드 한 장에서 이것을 직접 바꿔 보는 그림이다. 레벨을 고르고 가운데 덮개의 크기를 바꾸면, 덮개에 걸린 묶음이 묶음 단위로 빨갛게 칠해진다. 칸 하나만 걸려도 그 묶음의 8칸이 한꺼번에 칠해지는데, 묶음 안의 한 칸만 틀려도 그 묶음은 틀린 묶음이 되기 때문이다.

크림색 카드. 제목은 「가린 넓이와 걸린 묶음」이고 「걸린 묶음」만 빨간색이며, 회색 부제는 「레벨 H · 가운데를 7×7칸 흰 덮개로 가렸다」다. 왼쪽에는 가로세로 21칸의 QR코드 격자가 있다. 세 모서리의 큰 네모와 다른 무늬 칸은 회색으로 눌려 있고, 묶음 자리 칸은 검은 칸·흰 칸 그대로이며 가는 회색 선이 8칸씩 묶음을 나눈다. 정가운데에 7×7 흰 덮개가 회색 점선 테두리로 놓인다. 덮개에 걸린 묶음 9개는 빨간 테두리를 두르고 흰 칸은 옅은 빨강, 검은 칸은 짙은 빨강으로 칠해져, 덮개 밖 위·아래·오른쪽으로 번져 있다. 오른쪽 위에는 막대가 달린 칩 둘 「가린 넓이 11.1%」와 빨간 「걸린 묶음 9/26 (34.6%)」, 그 아래 회색 칩 「이 레벨의 정정 묶음 17개」가 있다. 판정 칸 셋은 1 「어디가 틀렸는지 모를 때 · 걸린 묶음이 다 틀렸다면」 빨간 「못 읽음」, 2 「어디가 틀렸는지 알 때 · 계산」 「읽힘」, 3 「이 판독기 · 흰 덮개, OpenCV」 「읽힘」이고, 셋째 칸에는 작은 글자 「실제로 틀린 묶음 8」이 붙어 있다. 그 아래 회색 글자 「레벨을 적은 띠 2벌에 닿음」이 있고, 카드 아래에는 「가장 작은 QR(21×21) · 내용 HELLO QR」과 「판독기 = 이 PC 의 OpenCV, 화면 그림 그대로 — 폰 카메라가 아니다」가 적혀 있다.
그림 2. 가장 작은 QR코드(21×21 · 내용 HELLO QR)에서 레벨과 가운데 덮개의 변을 바꿔 보는 그림. 정지 그림은 레벨 H, 덮개 7×7 이다. 「모를 때」·「알 때」는 걸린 묶음 수로 계산한 판정이고, 「이 판독기」는 이 PC 의 OpenCV 4.13 이 화면 그림을 그대로 읽은 결과다 — 폰 카메라가 아니다.
  1. 그림 2에서 레벨을 하나 고르고 가운데 덮개의 변을 한 칸씩 키운다. 가린 넓이 %와 걸린 묶음 %가 어떻게 벌어지는지, 어느 크기에서 판정이 바뀌는지 본다.
  2. 레벨을 바꿔 같은 일을 되풀이한다. 판정이 바뀌는 크기가 레벨에 따라 어떻게 옮겨 가는지 본다.
  3. 실물로도 해 본다. QR코드 하나를 화면에 띄우거나 인쇄해, 세 모서리의 큰 네모는 건드리지 않고 가운데만 종이 조각으로 조금씩 더 가려 가며 폰 카메라로 찍어 본다. 결과는 그 QR코드의 레벨과 크기, 그리고 판독 앱에 따라 다르다.

덮개를 키워 보면 「모를 때」 판정이 바뀌는 자리는 가린 넓이가 아니라 걸린 묶음 수를 따라간다. 가장 작은 QR코드에서는 레벨을 M 에서 H 로 올려도, 「모를 때」 판정이 못 읽음으로 바뀌는 덮개는 똑같이 7×7 이다. 넓이로는 얼마 안 되는 가림이, 묶음으로 세면 몇 배가 될 수 있다.

가린 넓이와 망가진 묶음 수

가장 작은 QR코드 가운데를 6×6 으로 덮으면 가린 넓이는 8.2%이고, 걸린 묶음은 26개 중 5개(19.2%)다. 7×7 로 한 칸 키우면 넓이는 11.1%인데 걸린 묶음은 9개(34.6%)로 뛴다. 변을 한 칸 늘렸을 뿐인데 묶음은 4개가 더 걸렸다. 묶음 26개 가운데 24개가 가로 2칸, 세로 4칸으로 붙어 있어서, 덮개 가장자리가 새 줄의 묶음에 닿으면 여러 개가 한꺼번에 걸린다.

한 단계 큰 QR코드(가로세로 25칸, 모두 625칸)도 사정이 같다. 가운데를 8×8 로 덮으면 넓이는 10.2%인데, 걸린 묶음은 44개 중 14개(31.8%)다. 넓이 퍼센트보다 묶음 퍼센트가 세 배쯤 크다.

걸린 묶음이 다 틀리는 것은 아니다. 덮개 색이 원래 칸 색과 같으면 그 칸은 바뀌지 않으니, 실제로 틀린 묶음은 걸린 묶음보다 적을 수 있다. 레벨 H 에서 7×7 을 하얗게 덮으면 걸린 묶음은 9개지만 실제로 틀린 묶음은 8개였다. 「모를 때」 한계 8개를 넘지 않았고, 그림의 「이 판독기」(이 글을 쓴 PC 의 OpenCV 판독 프로그램)는 이 그림을 읽었다. 그림에서 「걸린 묶음이 다 틀렸다면」 칩은 못 읽음인데 「이 판독기」 칩은 읽힘인 까닭이 이것이다.

덮개를 더 키우면 묶음 밖의 무늬에 닿는다. 가장 작은 QR코드에서는 변이 8 이상이면 모서리의 큰 네모에 닿는데, 그 무늬는 정정 묶음이 지키는 칸이 아니다. 가운데를 덮는다고 무늬를 하나도 안 건드리는 것도 아니다. 가장 작은 크기에서는 변 4부터 레벨 등을 적어 둔 작은 띠의 칸에 닿고, 변 7에서는 그 띠 두 벌 모두에 닿는다. 그 띠는 두 군데에 따로 적혀 있고, 묶음과는 다른 방식으로 보호된다(영문 위키백과 정리).

넓이 퍼센트와 묶음 퍼센트는 같은 숫자가 아니다. 그래서 「30%까지 가려도 된다」를 넓이로 읽으면 틀린다. 가장 작은 QR코드에서는 가운데 넓이 11% 남짓을 덮는 것만으로 이미 묶음 35% 가까이가 걸린다.

같은 칸 수, 흩어진 얼룩

이번에는 칸 수를 똑같이 두고 모양만 바꾼다. 가운데에 정사각형으로 뭉쳐 덮는 대신, 같은 수의 칸을 묶음 자리 안에서 무작위로 골라 흩뿌린다. 가장 작은 두 크기에서 칸 수를 바꿔 가며 2,000번씩 뽑아 보았다. 흩뿌린 쪽의 걸린 묶음이 가운데 정사각형보다 평균 1.9~4.1배로 많았다(QR코드 전체 칸에서 흩뿌려도 많다는 방향은 같았다). 가장 작은 QR코드에서 36칸을 덮으면 가운데 정사각형은 5묶음에 걸리지만, 흩뿌린 36칸은 평균 20.5묶음에 걸렸다. 흩어진 칸은 칸마다 다른 묶음에 떨어지기 쉽고, 뭉친 칸은 2칸×4칸 묶음 몇 개 안에 몰린다.

걸린 묶음이 많으면 판독 결과도 갈리는지, 실제 판독 프로그램으로 읽혀 보았다. 아래 결과는 이 글을 쓴 PC 의 OpenCV(4.13) 판독 프로그램 두 종이 잡음 없는 화면 그림을 읽은 것이다. 폰 카메라나 상용 앱의 결과가 아니다.

크림색 카드. 제목은 「같은 칸 수, 틀린 묶음과 판독 성공률」이고 「틀린 묶음」만 빨간색이다. 범례는 검은 점 「가운데에 한 덩어리로 하얗게 덮음」, 빨간 점과 옅은 빨간 띠 「같은 칸 수를 흩뿌림 — 점 = 40번의 평균, 띠 = 최소~최대」, 세로 점선 「한계 = 어디가 틀렸는지 모를 때 고칠 수 있는 묶음 수」다. 오른쪽에 「가로 = 실제로 틀린 묶음 수」가 있고, 둥근 칸 둘이 같은 눈금(0·5·10·15·20)으로 위아래에 놓였다. 위 칸 「21×21 · 레벨 H · 25칸」은 검은 점이 5, 빨간 점이 10.5, 띠가 6~13이고, 그 사이를 세로 점선 「한계 8」이 지난다. 아래 칸 「25×25 · 레벨 H · 36칸」은 검은 점이 7, 빨간 점이 15.5, 띠가 10~21이고 세로 점선은 「한계 14」다. 칸마다 아래에 회색 칩 「가운데: 읽힘」과 빨간 테 칩이 있는데, 위는 「흩뿌림: 40번 중 4번 읽힘 (10.0%)」, 아래는 「흩뿌림: 40번 중 13번 읽힘 (32.5%)」이다. 카드 아래 회색 두 줄이 시험 조건을 적는다.
그림 3. 흩뿌림은 묶음 자리 칸에서만 무작위로 골라 하얗게 칠했고, 조건마다 40번 시험했다. 판독기는 이 PC 의 OpenCV 4.13 두 종(결과가 같았다)이고, 잡음 없는 화면 그림을 읽었다 — 폰 카메라·상용 앱이 아니다.

가장 작은 QR코드의 레벨 H 에서 25칸을 가운데에 덮었을 때는 읽혔다. 같은 25칸을 흩뿌린 40번 가운데 읽힌 것은 4번(10.0%)뿐이었다. 한 단계 큰 QR코드의 레벨 H 에서 36칸을 덮었을 때도 가운데는 읽혔고, 흩뿌림은 40번 중 13번(32.5%)만 읽혔다. 그림 3에서 보듯 실제로 틀린 묶음은 가운데가 5개와 7개, 흩뿌림이 평균 10.5개와 15.5개였다. 흩뿌린 쪽은 「모를 때」 한계(8개·14개)를 자주 넘었다.

흩뿌린 표본을 하나하나 보면, 이 판독기 둘이 어디서 끊기는지가 드러난다. 레벨 M·H 와 두 크기를 합친 네 경우에서 표본을 240개씩 보니, 실제로 틀린 묶음이 「모를 때」 한계를 넘은 표본은 두 판독기 모두 하나도 읽지 못했다. 한계 안의 표본은 한 번을 빼고 모두 읽었다. 그 한 번은 판독기가 QR코드의 위치부터 찾지 못한 경우였고, 다른 판독기는 같은 그림을 읽었다.

그렇다면 덮은 자리를 판독기가 「망가진 곳」으로 알고, 두 배로 고칠 수는 없을까? 이 실험으로는 그것을 가를 수 없다. 하얗게 덮은 칸은 판독기 눈에 그냥 흰 칸이라, 어디가 가려졌는지 알아낼 단서가 없기 때문이다. 누구나 코드를 열어 볼 수 있게 공개된 판독 프로그램 ZXing(2026년 9월 판)은, QR코드를 되살리는 부분에 망가진 위치를 알려 줄 자리가 없어 「모를 때」 방식으로만 고친다. 이 글의 OpenCV 판독기 둘에서도 두 배로 고친 경우는 보이지 않았다. 그 밖의 판독기가 위치를 알아내 두 배로 고치는지는, 이 글이 본 것만으로는 말할 수 없다.

이 절에서 본 것은 가장 작은 두 크기의 QR코드를 이 판독기 둘로, 같은 칸 수끼리 견준 결과다. 그 범위에서, 손상의 모양이 판독을 갈랐다. 흩어진 손상은 같은 칸 수로도 더 많은 묶음을 한꺼번에 틀리게 하고, 정정 묶음은 그 수를 먼저 감당하지 못했다.

로고를 넣은 QR코드와 인쇄할 때의 기준

포스터나 명함의 QR코드 가운데에 로고가 박혀 있는 경우가 있다. 그런 QR코드가 읽히는 것은 로고가 덮은 칸을 정정 묶음이 고쳐 주기 때문이다. QR코드로 그림을 만드는 법을 정리한 러스 콕스(Russ Cox)의 2012년 글은 「The error correction makes it possible to introduce a few errors (fewer than the maximum that the algorithm can fix) in order to make an image.」라고 적는다. 고칠 수 있는 최대치보다 적은 오류를 일부러 넣어 그림을 만들 수 있다는 말이고, 같은 글은 2008년 BBC 로고를 얹은 QR코드를 그 예로 든다.

로고가 정정 여유의 일부를 미리 써 버린 셈이니, 그런 QR코드는 다른 손상에 덜 버틴다. 이것은 이 글의 추론이지만, 덴소웨이브의 FAQ 도 같은 방향을 적는다. 그림을 겹쳐 QR코드가 변형되면 오류 복원 기능이 작동하게 되고, 그 상태에서는 조금만 빠지거나 번져도 읽지 못하거나 읽는 반응이 느려질 수 있다는 것이다. 덴소웨이브는 그 대신 가운데에 그림 자리를 처음부터 비워 둔 다른 규격(Frame QR)을 따로 두었다.

QR코드를 인쇄해 붙일 때는 세 모서리의 큰 네모와 바깥 흰 여백을 비워 둔다. 덴소웨이브는 QR코드 둘레에 칸 4개 너비의 여백을 두라고 적는다(「QR Code requires a four-module wide margin at all sides of a symbol.」). 더러워지거나 긁힐 자리에 붙일 QR코드라면, 레벨을 고를 수 있는 생성기에서 레벨을 올린다. 로고를 얹는다면, 크게 얹을수록 다른 손상에 쓸 여유가 줄어든다는 점을 함께 따진다.

로고가 없는 QR코드도 정정 여유는 레벨이 정한 만큼뿐이다. 판독기가 어디가 틀렸는지 모르면, 그 여유는 망가진 묶음 하나마다 정정 묶음 둘씩 줄어든다. 묶음은 8칸이 작은 직사각형으로 붙어 있어서, 뭉친 손상은 몇 묶음 안에 머물고 흩어진 손상은 다른 묶음에 떨어지기 쉽다. 이 글은 세 모서리의 큰 네모를 비켜 가렸고, 흩뿌린 칸은 묶음 자리 안에서만 골랐다. 재 본 것은 가장 작은 두 크기의 QR코드와 이 PC 의 판독기 둘이다. 그 범위에서는 같은 넓이를 가려도, 한데 뭉친 얼룩보다 여기저기 흩어진 작은 얼룩이 QR코드를 먼저 못 읽게 만든다.

더 읽기