QR 코드 만들기
주소를 적으면 카메라가 링크로 인식합니다. 문장을 적으면 텍스트 QR 이 됩니다.
내용을 입력하면 QR 코드가 여기에 나타납니다.
이 QR 은 우리를 거치지 않습니다
주소가 코드 무늬 자체에 들어갑니다. 스캔하는 사람의 폰은 우리 도메인을 부르지 않고 곧장 목적지로 갑니다. 위의 「이 QR 에 실제로 담긴 내용 보기」를 펼치면 무엇이 들어갔는지 그대로 확인할 수 있습니다 — 중계 링크를 심었다면 거기 우리 주소가 보일 겁니다.
그래서 목적지를 나중에 바꿀 수 없고, 스캔 통계도 없습니다.이건 기능이 빠진 것이 아니라 맞바꾼 것입니다. 링크를 나중에 바꿔야 한다면 직접 관리하는 짧은 주소(내 도메인의 리다이렉트)를 먼저 만들고 그 주소로 QR 을 만드는 편이 낫습니다 — 남의 서비스에 목적지를 맡기지 않으면서 같은 효과를 냅니다.
주소를 짧게 적으면 코드가 성겨집니다
QR 은 담는 글자가 많을수록 칸이 촘촘해지고, 촘촘해질수록 더 크게 인쇄해야 읽힙니다. 그래서 같은 목적지라도 주소를 짧게 쓰는 것이 곧 인쇄 크기를 줄이는 일이 됩니다.
- 추적용 파라미터(
?utm_source=…)는 필요할 때만 붙이세요. 보통 주소 길이를 두 배로 만듭니다. https://는 지우지 마세요. 지우면 카메라가 링크로 인식하지 못하는 경우가 있습니다.- 영문 주소라면 대문자로 바꾸면 실제로 작아집니다. QR 에는 대문자·숫자만 담는 전용 모드가 있어서 글자당 5.5비트로 들어가는데, 소문자가 하나라도 섞이면 전체가 8비트 모드로 넘어갑니다. 위 도구가 줄어드는 경우에만 제안하고, 실제로 몇 칸에서 몇 칸이 되는지 숫자로 보여 줍니다.
대문자 변환은 스킴과 도메인에만 적용합니다. 주소 표준(RFC 3986)이 대소문자를 구분하지 않는다고 정한 부분이 그 둘이기 때문입니다. 경로와 쿼리는 대소문자가 의미를 가지므로 — /Photo.JPG 를 바꾸면 다른 파일이거나 404 입니다 — 그대로 둡니다.
로고를 얹으면 무슨 일이 일어나나요
가운데에 로고를 넣으면 그 자리의 데이터가 가려집니다. QR 이 그래도 읽히는 것은 오류 정정 덕분입니다 — 심벌에는 원래 내용을 복원할 수 있는 여분의 데이터가 함께 들어 있고, 레벨 H 는 그 여유가 가장 큽니다.
인터넷에 널리 퍼진 "H 는 30% 까지 가려도 된다"는 말은 정확하지 않습니다. 30%는 데이터 코드워드 기준인데 로고가 가리는 것은 심벌의 면적이고, 게다가 오류 정정은 블록 단위라 한곳에 몰린 손상에 더 불리합니다. 로고는 정확히 한곳에 몰린 손상입니다.
그래서 이 도구는 여유의 절반을 안전선으로 잡고, 로고 폭을 최대30% 로 제한합니다. 그리고 그 계산은 어디까지나 추정이라고 말합니다 — 확정하는 것은 미리보기 아래의 판독 검사입니다. 로고를 키우다 「읽히지 않습니다」가 뜨면 거기가 한계입니다.
모서리의 큰 눈 세 개(파인더 패턴)는 어떤 모양을 골라도 사각형으로 남습니다. 리더가 심벌의 위치와 기울기를 잡는 기준점이라, 그걸 꾸미면 잃는 것이 얻는 것보다 큽니다.
인쇄 전에 확인할 것
여백을 지우지 마세요. 코드 둘레의 흰 테두리는 장식이 아니라 규격이 요구하는 부분입니다(사방 4모듈). 디자인 작업 중에 "빈 공간" 으로 보여 잘라 내는 일이 자주 일어나는데, 그러면 리더가 코드의 경계를 못 찾습니다. 저장되는 PNG·SVG 에는 여백이 포함되어 있습니다.
크기는 거리에서 나옵니다. 도구에서 스캔 거리를 고르면 여백 포함 권장 크기가 mm 로 나옵니다. 모듈 한 칸이 0.4mm 밑으로 내려가면 경고합니다. 이 계산의 바탕인 "거리의 1/10" 은 업계 경험칙이며 규격 값이 아닙니다.
배경이 전경보다 밝아야 합니다. 명암을 뒤집은 QR 을 읽지 못하는 리더가 아직 있습니다. 색을 직접 고르면 대비를 계산해서 알려 줍니다.
인쇄물이라면 SVG 로 저장하세요. 벡터라 어떤 크기로 키워도 가장자리가 뭉개지지 않습니다. 화면용이거나 SVG 를 못 받는 곳이면 PNG 를 쓰되, 300dpi 기준으로 계산된 크기를 고르세요.
한계
담을 수 있는 양에 한계가 있습니다. 가장 헐거운 설정에서도2,953바이트가 상한이고, 한글은 한 글자가 3바이트입니다. 그런데 실제 한계는 그보다 훨씬 앞에 있습니다 — 긴 내용을 담은 QR 은 촘촘해져서 손에 들고 찍기 어려운 크기가 됩니다. 긴 글은 QR 에 담지 말고 어딘가에 올린 뒤 그 주소를 담으세요.
QR 은 암호화가 아닙니다. 무늬를 읽으면 누구나 내용을 볼 수 있습니다. 남에게 보여서는 안 되는 것을 QR 로 만들지 마세요.
판독 검사는 깨끗한 이미지 기준입니다. 인쇄 번짐, 광택 코팅의 반사, 곡면에 붙인 스티커, 어두운 조명은 검사에 포함되지 않습니다. 중요한 인쇄물이라면 시안을 실제로 뽑아서 폰으로 찍어 보는 절차를 대체하지 못합니다.
근거
- ISO/IEC 18004:2015 — QR Code bar code symbology specification모드별 비트 수(숫자 3.33 / 영숫자 5.5 / 바이트 8), 오류 정정 레벨, 사방 4모듈 여백의 출처
- RFC 3986 § 3.1 · § 3.2.2 — Uniform Resource Identifier: Generic Syntax스킴과 호스트가 대소문자를 구분하지 않는다는 규정. 대문자 축약이 목적지를 바꾸지 않는 근거이고, 경로를 건드리지 않는 이유이기도 하다
- Point for setting the module size — DENSO WAVE모듈 크기와 스캐너 판독 한계. 인쇄 크기 경고의 기준선
- @nuintun/qrcode — A pure JavaScript QRCode encode and decode library이 페이지가 실행하는 인코더와 판독기(MIT). 만든 QR 을 다시 읽는 검사가 같은 라이브러리의 판독기로 돌아간다