T도구모음

QR코드 생성기

URL, 텍스트, 연락처 등을 QR코드로 생성합니다.

100px300px500px

QR 코드 생성기 — ISO/IEC 18004 표준 기반, 오류 정정의 마법

QR(Quick Response) 코드는 1994년 일본 Denso Wave가 자동차 부품 추적용으로 개발한 2차원 행렬 바코드로, 현재 ISO/IEC 18004:2015 국제 표준으로 관리됩니다. 1D 바코드(EAN-13, Code 128 등)가 수평 픽셀 배열로 약 20자 내외만 인코딩할 수 있는 것과 달리, QR 코드는 2차원 모듈 배열을 활용해 최대 7,089자의 숫자, 4,296자의 영숫자, 2,953바이트의 바이너리 데이터를 담을 수 있습니다. 이 도구는 입력값을 URL 인코딩한 뒤 렌더링 서비스를 통해 PNG 이미지로 표시하며, 다운로드 시 <canvas> 요소를 거쳐 로컬 파일로 저장합니다.

QR 코드 내부 구조 — 버전, 모듈, 오류 정정

QR 코드는 버전 1(21x21 모듈)부터 버전 40(177x177 모듈)까지 총 40단계로 정의됩니다. 버전이 하나 올라갈 때마다 한 변에 4 모듈씩 추가되며(21, 25, 29, ... 177), 각 버전마다 오류 정정 레벨에 따른 최대 저장 용량이 고정되어 있습니다. 오류 정정은 Reed-Solomon 코드(유한체 GF(2^8) 위의 다항식 보간)를 사용하며 4단계로 나뉩니다. QR 코드 가운데에 브랜드 로고를 삽입해도 정상 인식되는 비결이 바로 이 Reed-Solomon EC입니다.

EC 레벨복원 가능 비율적합 환경V10 영숫자 용량
L (Low)약 7%깨끗한 디지털 화면약 395자
M (Medium)약 15%일반 인쇄물 (기본값)약 311자
Q (Quartile)약 25%산업 환경 / 야외약 221자
H (High)약 30%로고 삽입 / 물리적 손상 예상약 171자

인코딩 포맷별 실무 예시

// 1. 단순 URL
https://example.com/landing?ref=poster_2024

// 2. Wi-Fi 자동 연결 (벤더 표준 - Android/iOS 11+ 지원)
WIFI:T:WPA;S:CafeNetwork;P:s3cur3P@ss;H:false;;

// 3. vCard 3.0 전자 명함
BEGIN:VCARD
VERSION:3.0
FN:김개발
ORG:스타트업주식회사
TEL:+82-10-9876-5432
EMAIL:dev.kim@startup.io
END:VCARD

// 4. Geo URI (RFC 5870) — 지도 좌표 연동
geo:37.5665,126.9780?z=15

// 5. 메일 작성 (mailto)
mailto:support@example.com?subject=문의&body=내용을 입력하세요

프로덕션 QR 배포 시나리오 5가지

  • 명함 — 100~150px, EC 레벨 M, vCard 포맷으로 연락처 자동 저장. 인쇄 시 최소 300dpi.
  • 포스터 / 전단지 — 300px 이상, EC 레벨 Q, 단축 URL로 모듈 밀도를 낮춰 스캔 성공률 극대화.
  • 매장 메뉴판 — 아크릴 스탠드 포함 200px, EC 레벨 H로 지문·긁힘·자외선 퇴색 대비.
  • 옥외 배너 — "5cm 규칙": 스캔 예상 거리의 1/10이 QR 최소 한 변 길이. 3m 거리면 30cm 이상.
  • 모바일 결제 — 동적 QR(매 거래마다 재발급) + HTTPS 필수 + 서명된 JWT 토큰 + 짧은 TTL(30초~2분).

디버깅 경험 — "왜 일부 기기에서만 안 읽혀요?"

전단지 인쇄 후 "아이폰에선 되는데 안드로이드 구형 기기에서 안 된다"는 클레임을 받은 적이 있습니다. 원인은 거의 세 가지로 압축됩니다. 첫째, quiet zone 부족 — ISO 18004는 QR 코드 주변에 최소 4모듈 폭의 여백(quiet zone)을 요구하는데, 디자이너가 레이아웃에 맞추려고 빡빡하게 크롭하면 인식이 실패합니다. 둘째, 대비비 미달 — 어두운 배경에 어두운 모듈을 찍으면 ISO 18004 권장 대비(40% 이상 휘도 차)를 충족하지 못합니다. 셋째, 데이터 과적 — URL에 UTM 파라미터(utm_source, utm_medium, utm_campaign)를 전부 넣으면 버전이 급격히 올라가면서 모듈이 조밀해져 저화질 카메라에서 디코딩 실패. 해결법은 단축 URL 서비스를 사용하거나, 자체 리다이렉트 엔드포인트(/go/poster-2024)를 두는 것입니다.

보안 주의 — QR 피싱(Quishing) 대응 전략

2023년 이후 "quishing"이라 불리는 QR 기반 피싱 공격이 급증했습니다. 공격자가 합법적인 포스터 위에 가짜 QR 스티커를 덧붙이는 물리적 수법이 대표적입니다. 서비스 제공자는 단축 URL 대신 자체 도메인을 QR에 표기해 사용자가 눈으로 확인할 수 있게 하고, 랜딩 페이지에 HTTPS + HSTS를 강제하며, 동적 QR이라면 URL에 서명된 토큰을 포함시켜 변조를 검증해야 합니다. 인쇄 후 목적지 URL이 변경될 가능성이 있으므로 항상 리다이렉트 레이어를 한 단계 두는 것이 운영상 안전합니다.

관련 도구

리다이렉트 URL에 HMAC 서명 토큰을 넣을 때는 해시 생성기를 활용하고, QR에 담기 전 URL 포맷 검증은 정규식 테스터에서 https?:\/\/[^\s]+ 패턴으로 확인합니다. 포스터 배경색과 QR 모듈 색의 대비를 맞출 때는 색상 변환기에서 WCAG 대비비를 체크하세요.

참고 자료

  • ISO/IEC 18004:2015 — QR Code bar code symbology specification
  • IETF RFC 5870 — A Uniform Resource Identifier for Geographic Locations (Geo URI)
  • IETF RFC 6350 — vCard Format Specification (v4.0)
  • Denso Wave — QR Code 공식 사양 및 라이선스 정보
  • OWASP — QR Code Security Considerations

자주 묻는 질문

관련 도구