← 모두의 툴

QR코드 오류 수정 레벨 완전정리 — H(30%)면 로고를 박아도 정말 안전할까

가이드 · 2026-08-19 최종 확인

QR코드 중앙에 브랜드 로고를 얹은 명함이나 포스터를 본 적이 있을 겁니다. "오류 수정 레벨을 H(30%)로 설정하면 로고를 덮어도 스캔된다"는 말은 자주 나오지만, 정확히 왜 그런지, 그리고 진짜로 아무렇게나 덮어도 되는 건지는 잘 알려져 있지 않습니다. 이 가이드에서는 QR코드 표준(ISO/IEC 18004)이 정의한 4단계 오류 수정 레벨의 원리와, 로고를 넣을 때 실제로 안전한 범위가 어디까지인지를 계산 구조부터 풀어서 설명합니다.

1. 오류 수정 레벨이란 — L/M/Q/H 네 단계

QR코드는 단순히 데이터를 흑백 격자에 그려 넣는 이미지가 아니라, 데이터 코드워드와 함께 리드-솔로몬(Reed-Solomon) 오류정정 코드워드를 같이 저장하는 구조입니다. 이 오류정정 코드워드의 비율을 얼마나 확보할지가 오류 수정 레벨이며, 표준은 4단계를 정의합니다.

레벨이름복원 가능 손상률주 용도
LLow약 7%손상 위험이 거의 없는 화면 표시용
MMedium약 15%일반적인 용도 (표준 기본값)
QQuartile약 25%인쇄물, 야외 노출 등 손상 가능성이 있는 환경
HHigh약 30%중앙에 로고·그림을 삽입하는 경우

레벨이 올라갈수록 "더 많이 가려져도 읽힌다"는 뜻이고, 이는 곧 원본 데이터 대비 중복 코드워드의 비중이 커진다는 의미입니다.

2. 리드-솔로몬 오류정정이 손상을 복원하는 원리

직관적으로 설명하면, 리드-솔로몬 코드는 원본 데이터를 다항식의 값들로 취급하고, 그 다항식 위의 점을 필요한 개수보다 더 많이 찍어 저장해 두는 방식입니다. 예를 들어 직선(1차 다항식)은 점 2개만 있으면 완전히 결정되지만, 만약 점을 5개 찍어서 저장해 두면 그중 2개만 남아 있어도(나머지 3개가 지워지거나 잘못 읽혀도) 남은 점들의 조합으로 원래 직선을 다시 그려낼 수 있습니다. QR코드도 마찬가지로 데이터 코드워드들을 다항식 계수로 놓고 여분의 코드워드(패리티)를 추가로 계산해 저장하며, 스캐너는 읽은 값들 중 일부가 깨져 있어도 남은 코드워드들 간의 수학적 관계식을 풀어 깨진 부분의 원래 값을 역산합니다. 오류가 정정 가능한 한도 안에 있는 한 이 복원은 근사치가 아니라 원본과 100% 동일한 값을 돌려줍니다. 다만 한도를 넘어서면 복원 자체가 불가능해지고 스캔이 아예 실패합니다.

3. 왜 레벨이 높을수록 담을 수 있는 데이터량이 줄어드는가

여기서 트레이드오프가 생깁니다. QR코드는 버전(21×21 모듈의 버전 1부터 시작해 커지는 크기 등급)마다 전체 모듈 수, 즉 저장 가능한 코드워드 총량이 정해져 있습니다. 이 총량을 데이터 코드워드와 오류정정 코드워드가 나눠 쓰는 구조이기 때문에, 오류정정 비율을 7%에서 30%로 올리면 그만큼 더 많은 칸이 중복 코드워드에 할당되고, 실제 데이터를 담을 수 있는 칸은 상대적으로 줄어듭니다. 같은 버전(같은 크기)의 QR코드라면 H레벨은 L레벨보다 담을 수 있는 글자 수가 눈에 띄게 적고, 같은 양의 데이터를 H레벨로 담으려면 QR코드가 L레벨일 때보다 한두 단계 더 큰 버전(더 촘촘한 격자)을 써야 합니다. 즉 "안전 마진을 늘리는 대가로 용량을 내주는" 관계이며, 이게 바로 짧은 URL을 써야 로고 삽입용 H레벨 QR코드가 지저분해지지 않는 이유이기도 합니다.

로고를 넣을 때 실제로 안전한 범위: H레벨의 이론적 한계는 전체 면적의 30%지만, 실무에서는 안전 마진을 두고 로고 크기를 QR 전체 면적의 15~20% 이내로, QR코드 자체는 최소 200px 이상 크게 인쇄·표시하며, 로고 둘레에 여백을 주는 것을 권장합니다. 로고가 네 귀퉁이의 파인더 패턴(스캐너가 QR코드 위치를 잡는 큰 사각형)이나 격자 사이 타이밍 패턴을 가리면 H레벨이어도 스캔 실패율이 급격히 올라갑니다. 즉 H(30%)는 "복원 가능한 손상 총량의 한계"이지 "로고를 아무 위치·크기로 넣어도 된다는 보증"이 아닙니다.

4. 실제 계산기에서는 어떻게 적용되나

MODOO HUB의 QR코드 생성기는 현재 오류 수정 레벨을 M(약 15%)으로 고정해 생성합니다. URL·텍스트·Wi-Fi·연락처(vCard)를 QR코드로 변환하는 일반적인 용도에는 M레벨이 화면 표시와 인쇄 모두에서 무난한 절충점이기 때문입니다. 로고를 중앙에 삽입할 목적으로 H레벨이 필요하다면, 위에서 설명한 안전 범위(로고 15~20% 이내, QR 200px 이상, 파인더 패턴 미침범)를 지키는 별도의 로고 삽입 전용 도구나 라이브러리 옵션을 확인하는 것이 좋습니다.

자주 묻는 질문

Q. QR코드 오류 수정 레벨은 정확히 뭘 의미하나요?

A. QR코드 표준(ISO/IEC 18004)이 정의한 4단계로, 코드 일부가 가려지거나 손상돼도 원본 데이터를 복원할 수 있는 비율을 뜻합니다. L은 약 7%, M은 약 15%, Q는 약 25%, H는 약 30%까지 손상을 견딥니다. 레벨이 높을수록 같은 데이터를 담는 데 더 많은 중복 코드가 들어가 격자가 촘촘해집니다.

Q. H(30%) 레벨이면 로고를 아무렇게나 덮어도 되나요?

A. 아닙니다. H는 전체 심볼 면적의 최대 30%까지 손상을 복원할 수 있다는 이론적 한계일 뿐이고, 실제로는 로고를 중앙에 작게(전체 면적의 15~20% 이내), QR 자체는 충분히 크게(최소 200px 이상) 만들고 여백을 둬야 안전합니다. 로고가 파인더 패턴(모서리 네모)이나 타이밍 패턴을 가리면 H여도 인식 실패율이 높아집니다.

Q. 리드-솔로몬 오류정정은 어떻게 손상된 부분을 복원하나요?

A. QR코드는 실제 데이터 외에 리드-솔로몬 알고리즘으로 계산한 중복 코드워드를 함께 저장합니다. 이 중복 코드워드는 원본 데이터의 각 부분과 수학적으로 얽혀 있어서, 일부 코드워드가 읽히지 않아도 나머지 코드워드들의 조합만으로 방정식을 풀어 원래 값을 역산해낼 수 있습니다. 오류가 정정 가능 범위 안에 있으면 원본과 100% 동일하게 복원됩니다.

Q. 레벨을 높이면 저장할 수 있는 데이터량이 왜 줄어드나요?

A. QR코드의 전체 모듈(칸) 수는 버전(크기)마다 고정되어 있고, 그 안에서 실제 데이터 코드워드와 오류정정 코드워드가 자리를 나눠 씁니다. 오류정정 비율을 30%로 올리면 그만큼 더 많은 칸이 중복 코드워드에 할당되기 때문에, 같은 크기의 QR코드라면 담을 수 있는 실제 데이터(URL 글자 수 등)가 줄어들거나, 같은 데이터량을 유지하려면 QR코드 자체가 한 단계 더 커져야 합니다.

Q. MODOO HUB QR코드 생성기는 오류 수정 레벨을 고를 수 있나요?

A. 현재는 M(약 15%) 고정으로 생성됩니다. 일반적인 URL·텍스트·Wi-Fi·연락처 변환에는 M레벨이 무난한 절충점이며, 로고 삽입처럼 H레벨이 꼭 필요한 용도라면 이 가이드의 안전 범위를 참고해 별도 옵션을 확인하시길 권장합니다.