QR코드 오류 복원 단계(L·M·Q·H)와 인쇄 크기 정하는 법
QR코드를 만들 때 고르는 '오류 복원 수준'은 코드가 일부 가려지거나 더러워져도 읽을 수 있게 하는 장치입니다. 높일수록 튼튼해지지만 그만큼 칸이 촘촘해져서, 작게 인쇄하면 오히려 읽기 어려워집니다. 내용과 단계에 따라 칸 수가 어떻게 달라지는지 직접 만들어 비교했습니다.
QR코드의 칸과 버전
QR코드는 검은 칸과 흰 칸으로 이루어진 정사각형입니다. 가장 작은 버전 1이 가로세로 21칸이고, 버전이 하나 오를 때마다 4칸씩 늘어 가장 큰 버전 40은 177칸입니다. 담을 내용이 길수록, 오류 복원 단계가 높을수록 더 큰 버전이 필요합니다. 만드는 프로그램이 내용에 맞는 가장 작은 버전을 자동으로 고릅니다.
오류 복원 단계는 네 가지입니다. 코드의 몇 %가 손상되어도 내용을 되살릴 수 있는지를 나타냅니다.
| 단계 | 복원 가능한 손상 | 이 사이트의 표시 |
|---|---|---|
| L | 약 7% | 낮음 |
| M | 약 15% | 보통 (기본값) |
| Q | 약 25% | 높음 |
| H | 약 30% | 최고 |
내용과 단계에 따른 칸 수
이 사이트의 QR코드 생성이 쓰는 라이브러리로 네 가지 내용을 단계별로 만들어 가로 칸 수를 셌습니다. 바깥 여백은 뺀 숫자입니다.
| 내용 | 길이 | L | M | Q | H |
|---|---|---|---|---|---|
짧은 주소 https://zealot.cloud/tools/ | 27바이트 | 25 | 29 | 29 | 33 |
| 와이파이 이름·비밀번호 | 48바이트 | 29 | 33 | 37 | 41 |
| 한글 문장 34자 | 84바이트 | 37 | 37 | 45 | 49 |
| 추적용 꼬리표가 붙은 긴 주소 | 101바이트 | 37 | 41 | 49 | 57 |
짧은 주소를 L로 만들면 25칸(버전 2)이지만, 긴 주소를 H로 만들면 57칸(버전 10)이 됩니다. 가로세로가 2.3배, 칸 개수로는 5배가 넘습니다. 같은 크기로 인쇄하면 칸 하나의 크기가 그만큼 작아집니다.
한글은 한 글자가 3바이트라서 34자 문장이 84바이트가 됩니다. 영문과 숫자만 있는 주소보다 같은 글자수에서 훨씬 많은 칸을 차지합니다. 표에서 한글 문장의 L과 M이 같은 37칸인 것은, 그 버전의 남는 공간 안에서 M까지 담을 수 있었기 때문입니다.
인쇄 크기 정하기
칸 하나의 실제 크기는 인쇄할 폭을 (칸 수 + 양쪽 여백 8칸)으로 나눈 값입니다. 표준 여백은 한쪽에 4칸입니다.
| 코드 | 여백 포함 칸 수 | 폭 2cm일 때 한 칸 | 폭 3cm일 때 한 칸 |
|---|---|---|---|
| 짧은 주소 · M | 37 | 0.54mm | 0.81mm |
| 긴 주소 · M | 49 | 0.41mm | 0.61mm |
| 긴 주소 · H | 65 | 0.31mm | 0.46mm |
칸이 작아질수록 휴대폰 카메라가 초점을 맞추기 어렵고, 인쇄 번짐이나 종이 질감에도 약해집니다. 명함이나 스티커처럼 2~3cm로 작게 인쇄한다면 내용을 짧게 하고 단계를 L이나 M으로 두는 편이 안전합니다.
얼마나 떨어져서 찍을지도 고려합니다. 흔히 쓰는 어림셈은 "찍는 거리의 10분의 1 이상을 코드 폭으로"입니다. 손에 들고 30cm 거리에서 찍는 전단이면 3cm, 2m 떨어진 벽의 포스터면 20cm 정도가 필요하다는 계산입니다. 정확한 기준은 아니므로 실제 크기로 한 장 인쇄해 여러 휴대폰으로 시험해 보는 것이 가장 확실합니다.
이미지 크기 고르기
QR코드 생성의 이미지 크기 선택지로 짧은 주소(M, 표준 여백)를 저장하면 실제로는 259, 518, 1036, 2035화소가 나옵니다. 칸 하나를 정확히 정수 화소로 그리느라 선택한 숫자에서 조금씩 달라집니다.
- 화면에 띄우거나 메신저로 보낼 때는 약 512화소면 충분합니다.
- 문서나 전단에 넣어 인쇄할 때는 약 1024화소 이상을 고릅니다. 300DPI로 인쇄한다면 1036화소는 폭 약 8.8cm까지 선명하게 나옵니다.
- 포스터나 현수막처럼 크게 인쇄하거나 디자인 프로그램에서 크기를 자유롭게 바꿀 때는 SVG로 저장합니다. SVG는 확대해도 칸 경계가 흐려지지 않습니다.
단계는 이렇게 고릅니다
- 화면에 띄우거나 깨끗한 종이에 넉넉한 크기로 인쇄한다면 기본값 M이 무난합니다.
- 작게 인쇄해야 하는데 내용이 길다면 L로 낮춰 칸을 키웁니다.
- 야외에 붙여 두어 비바람에 상할 수 있거나, 가운데에 로고를 얹을 계획이라면 Q나 H를 고릅니다. 로고는 복원 가능한 범위보다 훨씬 작게, 네 모서리 중 세 곳에 있는 큰 사각형(위치 표시)을 가리지 않게 넣고 반드시 시험합니다.
- 단계를 올리기 전에 내용을 줄일 수 있는지 먼저 봅니다. 주소 뒤에 붙은
?utm_source=…같은 추적용 꼬리표를 빼면 긴 주소도 짧은 주소에 가까운 칸 수로 줄어듭니다.
그 밖에 확인할 것
바깥 여백은 줄이지 않는 것이 좋습니다. 코드 둘레의 빈 공간이 있어야 카메라가 코드의 경계를 찾습니다. 배경이 완전히 흰 곳에 인쇄할 때만 좁게 줄입니다. 색을 바꿀 때는 무늬를 어둡게, 배경을 밝게 둡니다. 밝은 무늬에 어두운 배경처럼 뒤집으면 일부 카메라 앱은 읽지 못합니다.
QR코드는 주식회사 덴소웨이브의 등록상표입니다. 칸 수는 이 사이트가 쓰는 qrcode-generator 1.4.4로 바이트 방식(UTF-8)으로 만들어 셌습니다. 다른 생성기는 숫자나 영문 대문자만 있는 내용을 더 촘촘한 방식으로 담아 칸 수가 조금 다를 수 있습니다.