실험형

QR코드가 인식되지 않는 이유: 여백·대비·내용 길이·오류 복원 실험

같은 QR코드의 여백, 크기, 색상 대비, 내용 길이, 오류 복원 수준만 바꿔 실제 판독 결과를 비교하고 QR코드가 안 찍힐 때 확인할 순서를 정리했습니다.

결론부터 말하면 QR코드가 안 읽힐 때는 카메라부터 의심하기보다 네모 무늬 주변의 빈 여백, 검정과 흰색의 차이, 담은 내용의 길이, 화면이나 인쇄물에서 보이는 실제 크기를 먼저 확인하는 편이 빠릅니다.

QR코드는 바둑판처럼 작은 칸을 읽어 정보를 되살립니다. 같은 3cm 크기라도 긴 주소를 담으면 칸이 더 촘촘해지고, 주변 장식이 너무 가까우면 어디부터 QR코드인지 찾기 어려워집니다. 연한 회색처럼 배경과 구분이 약한 색도 흔들림이나 빛 반사가 더해지면 불리합니다.

이번에는 짧은 주소와 긴 주소를 같은 방식으로 만들고, 여백·크기·색상·복구 수준을 하나씩 바꿔 소프트웨어 판독기로 확인했습니다. 실제 휴대전화나 인쇄물 시험을 대신하는 결과는 아니지만, 어떤 조건이 판독을 불안정하게 만드는지 서로 섞지 않고 비교하는 데 목적이 있습니다.

먼저 고칠 것은 화려한 디자인보다 여백과 대비입니다

QR 주변의 빈 테두리는 장식이 아닙니다

주변 무늬가 있는 실험에서 4칸 여백은 읽혔지만 여백을 없앤 QR은 읽히지 않았습니다.

같은 크기라도 긴 내용은 더 촘촘해집니다

짧은 주소는 96px에서도 읽혔지만, 이번 비교에서 긴 주소는 256px에서 읽히고 96px에서는 실패했습니다.

오류 복원 수준을 높이는 것만으로 해결되지는 않습니다

손상에는 도움이 되지만 정보가 더 촘촘해질 수 있어 여백·대비·크기를 먼저 바로잡는 편이 안전합니다.

같은 판독기에서 한 가지 조건씩 바꿨습니다

  1. 1

    2026년 9월 10일, 짧은 주소 https://toolit.kr/와 더 긴 시험용 주소를 QR코드로 만들었습니다. 기본값은 검정 무늬, 흰 배경, 256px, 바깥 여백 4칸, 오류 복원 M입니다.

  2. 2

    QR코드 생성에는 프로젝트에서 사용하는 qrcode 1.5.4를, 판독에는 jsQR 1.4.0을 사용했습니다. 판독된 문자열이 원문 전체와 정확히 같을 때만 성공으로 기록했습니다.

  3. 3

    여백 비교에서는 QR 바깥에 같은 검정 무늬를 붙였고, 색상 비교에서는 두 QR의 픽셀 밝기를 같은 범위(최대 ±56)로 흔드는 고정 노이즈를 더했습니다. 내용 길이 비교는 화면 크기를 같게 유지했습니다.

  4. 4

    오류 복원 비교에서는 L·M·Q·H로 만든 QR의 중앙을 가로·세로 길이의 16%인 같은 흰 사각형으로 가렸습니다. 이는 실제 얼룩이나 찢김을 단순하게 재현한 것이며, 가려진 면적과 공식 복원 비율이 그대로 대응한다는 뜻은 아닙니다.

  5. 5

    실험은 화면 속 정지 이미지를 한 번씩 판독한 결과입니다. 카메라 초점, 조명, 반사, 인쇄 번짐, 촬영 거리까지 포함한 성공률 시험이 아니므로 성공·실패의 경계값보다 조건 사이의 방향을 보는 데 사용했습니다.

깨끗한 QR은 작아도 읽혔지만 불리한 조건이 겹치자 차이가 났습니다

짧은 주소를 담은 검정·흰색 QR은 256px뿐 아니라 96px, 64px, 48px에서도 판독됐습니다. 따라서 이 결과만 보고 ‘QR은 48px이면 충분하다’고 결론 내리면 안 됩니다. 화면 속 완전히 선명한 원본에는 카메라 흔들림이나 인쇄 번짐이 없기 때문입니다.

반대로 긴 주소를 같은 96px에 넣었을 때는 판독되지 않았습니다. QR의 겉 크기만 보지 말고 그 안의 작은 네모 한 칸이 충분히 크게 보이는지를 봐야 한다는 뜻입니다.

시험 조건판독 결과실제로 읽을 때의 의미
짧은 주소 · 256px · 검정/흰색 · 여백 4칸성공기준 조건
짧은 주소 · 96px성공선명한 디지털 원본에서는 읽힘
짧은 주소 · 64px성공인쇄·촬영 환경까지 보장하지 않음
짧은 주소 · 48px성공이번 판독기의 깨끗한 이미지 결과
긴 주소 · 256px성공큰 화면에서는 촘촘한 칸도 구분
긴 주소 · 96px실패같은 크기라도 긴 내용은 불리

여백이 없으면 주변 글자나 무늬가 QR의 일부처럼 붙을 수 있습니다

QR코드 바깥의 흰 테두리는 ‘콰이어트 존(quiet zone)’이라고 부릅니다. 쉽게 말해 판독기가 QR의 시작과 끝을 찾도록 비워 두는 안전 구역입니다. DENSO WAVE는 QR코드 네 면에 4개 모듈, 즉 작은 네모 4칸 너비의 여백을 안내합니다.

이번 실험에서는 QR 바깥에 같은 검정 막대 무늬를 두었습니다. 4칸 여백이 있는 QR은 읽혔고, 여백이 없는 QR은 읽히지 않았습니다. 깨끗한 흰 페이지에서는 여백 없는 QR도 우연히 읽힐 수 있지만, 포스터의 글자·테두리·사진이 가까워지는 순간 여유가 사라집니다.

주변 무늬 조건판독 결과해석
여백 4칸성공바깥 무늬와 QR이 분리됨
여백 없음실패주변 무늬가 경계 판독을 방해

연한 색은 화면에서 예뻐 보여도 흔들림과 노이즈에 약했습니다

색상 대비는 앞 무늬와 배경을 얼마나 쉽게 구분할 수 있는지를 뜻합니다. 검정과 흰색은 차이가 크고, 연한 회색과 흰색은 차이가 작습니다. 같은 고정 노이즈를 넣었을 때 검정 QR은 읽혔지만 #AAAAAA 연회색 QR은 읽히지 않았습니다.

흰 무늬와 검정 배경을 뒤집은 QR은 이번 판독기에서는 성공했습니다. 하지만 모든 기본 카메라와 업무용 스캐너가 반전 색상을 같은 방식으로 지원한다고 볼 수는 없습니다. 여러 사람에게 배포한다면 어두운 무늬와 밝은 단색 배경이 가장 보수적인 선택입니다.

색상 조건같은 노이즈에서 결과권장 판단
검정 무늬 + 흰 배경성공가장 안전한 기본값
연회색(#AAAAAA) 무늬 + 흰 배경실패밝기 차이를 더 크게 조정
흰 무늬 + 검정 배경성공이번 판독 결과일 뿐 범용 호환성은 별도 확인

오류 복원은 가려진 부분을 되살리는 여유분입니다

오류 복원은 QR 일부가 더럽거나 가려져도 남은 정보로 원문을 되찾도록 여유 정보를 넣는 기능입니다. L, M, Q, H 순서로 복원 능력이 커지며, DENSO WAVE는 대략 7%, 15%, 25%, 30%의 코드워드를 복원할 수 있다고 설명합니다. 여기서 코드워드는 QR 안에 저장되는 정보 묶음이라고 이해하면 충분합니다.

중앙을 가로·세로 길이의 16%인 흰 사각형으로 가린 이번 조건에서는 L만 실패하고 M·Q·H는 성공했습니다. 다만 실제 손상은 위치와 모양이 제각각이고, 찾기 무늬처럼 중요한 부분을 가리면 같은 면적이라도 결과가 달라질 수 있습니다.

복원 수준을 높이면 같은 내용을 담는 QR의 칸 수가 늘 수 있습니다. 작은 명함에 긴 주소를 넣으면서 무조건 H를 고르면 칸이 더 작아져 오히려 촬영이 까다로워질 수 있습니다. 평범한 화면·문서 공유는 M에서 시작하고, 스티커가 붙거나 일부가 오염될 가능성이 클 때 Q나 H를 검토하는 편이 합리적입니다.

오류 복원 수준중앙 정사각형 가림(가로·세로 16%)일반적인 선택 기준
L실패깨끗한 환경에서 크기를 줄이고 싶을 때
M성공일반적인 화면·문서 공유의 시작점
Q성공오염이나 가림 가능성이 있는 인쇄물
H성공손상 여유가 더 중요하고 충분한 크기를 확보할 때

QR코드가 안 찍힐 때 확인할 순서

오류 복원 수준만 계속 바꾸기보다 아래 순서로 하나씩 고치면 무엇이 문제였는지 확인하기 쉽습니다.

순서확인할 항목바로 해볼 조치
1네 면의 빈 여백글자·테두리·그림에서 작은 네모 4칸 이상 띄우기
2무늬와 배경의 차이검정에 가까운 무늬와 흰색에 가까운 단색 배경 사용
3담은 내용의 길이불필요한 추적 주소와 긴 설명을 줄이고 짧은 URL 사용
4실제로 보이는 한 칸의 크기QR 전체를 키우고 저해상도 캡처 대신 원본 PNG·SVG 사용
5화면·인쇄 상태반사와 접힘을 피하고 인쇄 번짐이 있으면 다시 출력
6배포 전 확인서로 다른 휴대전화 2대에서 실제 거리로 시험

실험 범위와 한계

이번 결과는 qrcode 1.5.4로 만든 QR을 Chrome에서 이미지로 펼친 뒤 jsQR 1.4.0으로 읽은 소프트웨어 판독 실험입니다. 한 조건당 한 번의 고정된 결과이며 휴대전화 모델별 성공률이나 최소 인쇄 크기를 측정한 시험이 아닙니다.

주변 무늬, 노이즈, 중앙 가림은 조건 차이를 분리하기 위한 단순 모형입니다. 실제 카메라에서는 초점, 촬영 각도, 흔들림, 화면 밝기, 종이 재질이 함께 작용합니다. 따라서 48px 성공이나 가로·세로 16% 중앙 가림 성공을 제품 규격처럼 사용해서는 안 됩니다.

실제 배포물은 최종 크기와 재질로 출력하거나 화면에 띄운 뒤, 예상 촬영 거리에서 서로 다른 두 기기로 확인하는 것이 가장 확실합니다.

판단에 참고한 공식 문서

여백 4칸·강한 대비·짧은 내용부터 맞추세요

QR코드 인식 문제는 ‘크기 하나’로 설명되지 않습니다. 이번 실험에서는 주변 무늬가 있을 때 여백 4칸의 유무, 같은 노이즈에서 검정과 연회색의 차이, 같은 96px에서 내용 길이의 차이가 성공과 실패를 갈랐습니다.

먼저 네 면을 비우고, 어두운 무늬와 밝은 배경을 사용하고, 주소를 짧게 만든 뒤 QR을 충분히 크게 배치하세요. 오류 복원은 손상에 대비하는 보조 장치이지 여백과 대비를 대신하는 만능 해결책이 아닙니다. 마지막에는 실제 배포 상태 그대로 두 대 이상의 휴대전화로 확인하는 것이 좋습니다.