QR코드가 조금 찢어지거나 얼룩이 생겼는데도 휴대전화가 정상적으로 읽는 경우가 있습니다. 그 이유는 QR코드가 실제 데이터만 저장하는 것이 아니라 일부 정보가 손상됐을 때 원래 내용을 복원하기 위한 오류 정정 정보까지 함께 저장하기 때문입니다.
다만 QR코드의 일정 면적을 아무 곳이나 잘라내도 된다는 뜻은 아닙니다. 실제 인식 여부는 오류 정정 수준, 손상된 위치, 위치 검출 패턴의 상태, 주변 여백, 인쇄 품질과 촬영 환경에 따라 크게 달라질 수 있습니다.
QR코드는 왜 조금 찢어져도 읽힐까?
QR코드를 구성하는 검은색과 흰색 칸에는 문자나 숫자, 주소 같은 실제 데이터가 들어 있습니다. 그런데 QR코드는 이 데이터만 저장하지 않습니다. 일부 정보가 사라졌을 때 원래 내용을 복원하는 데 사용할 수 있는 추가 정보도 함께 넣습니다.
이 기능을 오류 정정이라고 합니다. QR코드 일부가 긁히거나 인쇄가 벗겨지고 작은 얼룩이 생겼더라도 남아 있는 데이터와 오류 정정 정보가 충분하면 판독기가 원래 내용을 복원할 수 있습니다.
예를 들어 택배 송장이나 종이 쿠폰의 QR코드가 조금 접혀 일부 검은 칸이 보이지 않더라도 코드 전체 구조와 데이터가 충분히 남아 있다면 스마트폰이 정상적으로 읽을 수 있습니다.
중요한 점은 휴대전화가 예전에 읽었던 내용을 기억해서 보여주는 것이 아니라는 것입니다. 일반적인 QR 판독에서는 현재 카메라에 보이는 QR코드의 정보와 오류 정정 데이터를 이용해 손실된 부분을 복원합니다.
QR코드 오류 정정 L·M·Q·H는 무엇이 다를까?
일반적인 QR코드에는 L, M, Q, H라는 네 가지 오류 정정 수준이 있습니다. 수준을 높일수록 코드가 오염되거나 일부 손상됐을 때 데이터를 복원할 수 있는 능력도 커집니다.
대략적인 코드워드 복원 능력은 L이 약 7%, M이 약 15%, Q가 약 25%, H가 약 30%입니다. 여기서 말하는 비율은 QR코드 그림 전체 면적을 그대로 의미하는 것이 아니라 데이터를 구성하는 코드워드 단위의 복원 능력을 설명하는 값입니다.
오류 정정 수준을 높이면 손상에는 더 강해지지만 공짜로 복구 능력이 생기는 것은 아닙니다. 같은 데이터라면 복구 정보를 더 많이 저장해야 하므로 더 많은 모듈이 필요하거나 저장할 수 있는 실제 데이터의 여유가 줄어들 수 있습니다.
따라서 QR코드를 만들 때는 무조건 H 수준을 사용하는 것보다 사용 환경과 데이터 양, 인쇄 크기 등을 함께 고려하는 것이 좋습니다.
QR코드는 어디가 손상되느냐도 왜 중요할까?
QR코드를 보면 왼쪽 위와 오른쪽 위, 왼쪽 아래에 큰 네모 모양이 있습니다. 이 구조는 단순히 QR코드를 예쁘게 보이게 하기 위한 디자인이 아닙니다.
카메라와 QR 판독 프로그램이 코드의 위치와 방향을 찾는 데 사용하는 중요한 패턴입니다. 일반적으로 이런 구조를 위치 검출 패턴 또는 파인더 패턴이라고 부릅니다.
그래서 데이터 영역 일부가 작은 얼룩으로 가려진 경우에는 오류 정정으로 복구할 수 있어도 위치를 찾는 데 중요한 구조가 크게 훼손되면 QR코드 자체를 제대로 인식하지 못할 수 있습니다.
즉 QR코드의 손상 여부를 판단할 때는 단순히 얼마나 넓게 손상됐는지만 보는 것이 아니라 어느 부분이 손상됐는지도 함께 봐야 합니다.
오류 정정 범위 안이라면 정상적으로 복원될 가능성이 있습니다.
QR코드의 위치와 방향을 찾기 어려워져 인식률이 크게 떨어질 수 있습니다.
손상 정도에 따라 일부 구조나 데이터 판독에 영향을 줄 수 있습니다.
다른 글씨나 그림이 너무 가까우면 QR코드와 배경을 구분하기 어려워질 수 있습니다.
QR코드 주변의 흰 여백은 왜 필요할까?
QR코드 자체는 멀쩡한데도 인식이 잘되지 않는다면 주변을 살펴볼 필요가 있습니다. QR코드 바깥에는 아무것도 인쇄하지 않는 빈 공간이 필요하기 때문입니다.
이 공간을 콰이어트 존(Quiet Zone)이라고 합니다. 일반적인 QR코드는 모든 방향에 4모듈 폭의 여백을 확보하는 것이 기준입니다.
카메라는 이 빈 공간을 이용해 어디까지가 QR코드이고 어디부터가 주변 배경인지 구분할 수 있습니다. 코드 바로 옆에 검은 글씨나 그림을 붙이면 QR코드 자체의 일부처럼 인식돼 판독을 방해할 수 있습니다.
따라서 QR코드를 포스터나 전단지에 넣을 때는 보기 좋게 만들겠다고 테두리까지 꽉 채우기보다는 코드 주변에 충분한 빈 공간을 남기는 것이 인식 안정성에 더 중요합니다.
없어진 QR코드 정보는 어떻게 다시 복원할까?
스마트폰이 찢어진 부분의 모양을 눈으로 예상해서 임의로 검은 칸을 채우는 것은 아닙니다. QR코드가 만들어질 때 실제 데이터와 함께 오류를 검출하고 복원할 수 있는 추가 정보가 계산돼 저장됩니다.
QR코드의 오류 정정에는 리드-솔로몬(Reed-Solomon) 부호가 사용됩니다. 이름은 복잡하지만 핵심 원리는 일부 데이터가 사라지거나 잘못 읽혀도 남은 정보와 미리 추가해둔 복구 정보를 이용해 원래 값을 계산할 수 있도록 하는 것입니다.
이런 방식은 QR코드처럼 실제 생활에서 먼지나 긁힘, 인쇄 불량이 발생할 수 있는 표시에 유용합니다. QR코드는 처음부터 완벽하게 깨끗한 환경에서만 사용할 것을 전제로 만든 코드가 아닌 셈입니다.
다만 오류 정정에도 한계는 있습니다. 복구할 수 있는 범위를 넘어 너무 많은 정보가 사라지면 남은 데이터만으로 원래 내용을 정확하게 재구성할 수 없습니다.
QR코드 가운데 로고를 넣어도 읽히는 이유는 무엇일까?
광고나 명함에서 QR코드 중앙에 회사 로고나 작은 그림이 들어간 모습을 쉽게 볼 수 있습니다. 일부 칸을 가렸는데도 정상적으로 읽히는 이유 역시 오류 정정 기능과 관련이 있습니다.
로고가 가린 영역이 오류 정정 범위 안에 있고 QR코드 인식에 필요한 주요 구조를 지나치게 가리지 않는다면 가려진 데이터 일부를 복원할 수 있습니다.
하지만 오류 정정 수준을 높였다고 해서 큰 로고를 마음대로 덮어도 되는 것은 아닙니다. 로고가 커질수록 실제 데이터 손실도 커지고, 위치나 크기에 따라 스캔 성공률이 크게 떨어질 수 있습니다.
따라서 로고가 들어간 QR코드를 제작한다면 디자인만 보고 판단하지 말고 실제로 사용할 크기로 출력한 뒤 여러 스마트폰에서 반복해서 스캔 테스트하는 것이 중요합니다.
QR코드가 반으로 찢어졌다면 다시 읽을 수 있을까?
QR코드 일부가 조금 찢어진 것과 전체의 절반 가까이가 사라진 것은 상황이 다릅니다. 절반이 완전히 없어졌다면 오류 정정 범위를 크게 넘어설 가능성이 높기 때문에 정상 인식이 어려울 수 있습니다.
하지만 찢어진 두 조각이 모두 남아 있다면 바로 버리기보다 원래 위치대로 다시 맞춰볼 수 있습니다. 검은색과 흰색 칸의 경계가 최대한 자연스럽게 이어지도록 맞추고 종이를 평평하게 만드는 것이 중요합니다.
투명테이프로 붙인 경우에는 테이프 표면에서 빛이 반사돼 일부 영역이 하얗게 날아갈 수 있습니다. 이럴 때는 정면에서만 계속 촬영하지 말고 스마트폰이나 종이의 각도를 조금 바꿔 반사를 줄여보는 것이 좋습니다.
또 QR코드만 화면 가득 확대하기보다는 코드 전체와 주변의 여백이 함께 들어오도록 거리를 조절하면 카메라가 위치를 찾는 데 도움이 될 수 있습니다.
사라진 부분이 적을수록 복원 가능성이 높아집니다.
검은 칸과 흰 칸의 줄이 최대한 자연스럽게 이어지도록 합니다.
구겨짐과 접힘 때문에 패턴이 왜곡되지 않도록 합니다.
테이프나 코팅 표면의 반사를 피하도록 촬영 각도를 바꿉니다.
너무 가까이 대지 말고 QR코드 전체가 화면 안에 들어오도록 합니다.
QR코드가 멀쩡한데도 안 읽히는 이유는 무엇일까?
QR코드가 인식되지 않는다고 해서 항상 데이터가 손상된 것은 아닙니다. QR코드가 멀쩡하더라도 스마트폰 카메라가 검은색과 흰색 모듈을 정확하게 구분하지 못하면 읽기에 실패할 수 있습니다.
대표적인 원인은 빛 반사입니다. 코팅된 종이나 화면 속 QR코드를 촬영할 때 조명이나 햇빛이 반사되면 일부 검은색 영역이 밝게 보일 수 있습니다.
너무 가까이 촬영하는 것도 문제입니다. QR코드 전체가 화면에 들어오지 않거나 카메라가 초점을 제대로 맞추지 못하면 스캔이 실패할 수 있습니다.
QR코드와 배경의 대비가 너무 약하거나 인쇄가 번진 경우에도 인식률이 낮아질 수 있습니다. 따라서 손상 여부만 보지 말고 조명·초점·촬영거리·인쇄 상태까지 함께 확인하는 것이 좋습니다.
직접 QR코드를 만들 때 인식률을 높이려면 어떻게 해야 할까?
QR코드를 직접 만들어 명함이나 안내문, 메뉴판, 상품 포장 등에 사용할 예정이라면 생성 화면에서 인식됐다는 이유만으로 바로 배포하지 않는 것이 좋습니다.
QR코드는 데이터가 많아질수록 필요한 모듈 수가 증가할 수 있습니다. 같은 크기로 출력한다면 각각의 작은 모듈도 더 작아지므로 멀리서 스캔하거나 인쇄 상태가 좋지 않은 상황에서는 인식이 어려워질 수 있습니다.
색상 역시 중요합니다. 반드시 검은색과 흰색만 사용해야 하는 것은 아니지만 QR코드와 배경 사이의 밝기 차이가 충분해야 카메라가 각각의 모듈을 명확하게 구분할 수 있습니다.
무엇보다 중요한 것은 실제 사용 환경에서의 테스트입니다. 최종 인쇄 크기와 실제 조명 조건에서 서로 다른 스마트폰으로 여러 번 스캔해보는 것이 가장 확실한 확인 방법입니다.
Q1. QR코드가 조금 찢어졌는데도 왜 읽히나요?
Q2. QR코드가 반으로 찢어져도 읽을 수 있나요?
Q3. 오류 정정 H가 30%면 QR코드의 30%를 잘라도 되나요?
Q4. QR코드 가운데에 로고가 있어도 왜 읽히나요?
Q5. QR코드 주변의 흰색 여백도 꼭 필요한가요?
Q6. QR코드를 검은색이 아닌 다른 색으로 만들어도 되나요?
Q7. 멀쩡한 QR코드가 휴대전화에서 안 읽히는 이유는 무엇인가요?
Q8. QR코드를 직접 만들었다면 무엇을 확인해야 하나요?
QR코드가 조금 찢어지거나 얼룩져도 읽힐 수 있는 가장 큰 이유는 오류 정정 데이터를 이용해 일부 손실된 정보를 다시 계산할 수 있기 때문입니다. 따라서 작은 긁힘이나 부분적인 오염에는 생각보다 강한 편입니다.
하지만 손상에 무한정 강한 것은 아닙니다. 오류 정정 범위를 넘는 손상, 위치 검출 패턴 훼손, 주변 여백 부족, 심한 반사와 낮은 인쇄 품질 등이 겹치면 정상적으로 읽지 못할 수 있습니다. 직접 QR코드를 제작한다면 최종 사용 환경에서 실제 스마트폰으로 스캔해보는 것이 가장 확실합니다.