본문으로 건너뛰기
가이드기초

QR 코드의 작동 원리: 구조, 오류 정정, 저장 용량 완벽 정리

휴대폰이 QR 코드를 읽을 때 실제로 어떤 일이 일어날까요? 파인더 패턴, 모듈, 버전, 오류 정정 수준, 그리고 QR 코드에 담을 수 있는 데이터 양까지 알기 쉽게 정리했습니다.

게시일 5분 소요

QR 코드는 식당 테이블, 택배 상자, 기차표, 명함, 결제 단말기 등 어디에나 있습니다. 하지만 흑백 사각형 안에 무엇이 숨어 있는지, 로고로 일부를 가려도 코드가 여전히 작동하는 이유가 무엇인지 아는 사람은 많지 않습니다. 이 가이드에서는 QR 코드의 작동 원리를 쉬운 말로 설명합니다.

짧은 역사

QR 코드(Quick Response code의 줄임말)는 1994년 일본 도요타 그룹 계열사인 덴소 웨이브(Denso Wave)의 하라 마사히로가 개발했습니다. 자동차 공장에서는 1차원 바코드보다 더 빠르게 부품을 추적할 방법이 필요했습니다. 기존 바코드는 한 방향으로만 데이터를 저장해 20자 정도밖에 담지 못하지만, QR 코드는 가로와 세로 두 방향으로 데이터를 저장해 수천 자까지 담을 수 있습니다.

덴소 웨이브는 이 기술의 특허를 취득했지만 권리를 행사하지 않기로 했고, 이 형식은 국제 표준(ISO/IEC 18004)이 되었습니다. 이러한 개방성 덕분에 누구나 어떤 기기에서든 무료로 QR 코드를 만들고 읽을 수 있게 되었습니다.

QR 코드의 구조

모든 QR 코드는 모듈이라는 작은 칸으로 이루어진 정사각형 격자입니다. 각 모듈은 어둡거나 밝으며 1비트를 나타냅니다. 격자의 일부 영역은 정해진 역할을 맡고 있습니다.

  • 파인더 패턴 — 모서리에 있는 세 개의 큰 사각형입니다. 코드가 거꾸로 놓여 있거나 비스듬한 각도에서 촬영되더라도 스캐너가 코드를 즉시 찾아내고 방향을 파악할 수 있게 해 줍니다.
  • 정렬 패턴 — 버전 2부터 들어가는 작은 사각형으로, 코드가 곡면에 인쇄되었거나 비스듬히 보일 때 왜곡을 보정하는 데 도움을 줍니다.
  • 타이밍 패턴 — 파인더 패턴 사이에 어두운 칸과 밝은 칸이 번갈아 이어지는 선입니다. 스캐너에 각 모듈의 크기를 알려 줍니다.
  • 포맷 정보 — 파인더 패턴 옆의 띠 영역으로, 오류 정정 수준과 사용된 마스크 패턴을 저장합니다.
  • 콰이어트 존 — 코드 주위의 빈 여백입니다. 이 여백도 표준 사양의 일부로, 여백이 없으면 스캐너는 코드가 어디서 끝나고 배경이 어디서 시작되는지 구분할 수 없습니다.

나머지 영역은 모두 격자 전체에 고르게 섞여 배치된 데이터 코드워드와 오류 정정 코드워드입니다.

버전: 어떤 코드는 왜 더 촘촘할까

QR 코드에는 버전이라고 부르는 40가지 크기가 있습니다. 버전 1은 21 × 21 모듈이고, 버전이 하나 올라갈 때마다 한 변에 4모듈씩 늘어나 버전 40은 177 × 177 모듈이 됩니다. 인코딩하는 데이터가 많을수록 버전이 높아지고, 같은 인쇄 크기에서 모듈 하나하나는 더 작아집니다.

그래서 짧은 URL은 깔끔하고 여유 있는 패턴을 만들고, 긴 텍스트는 더 크게 인쇄해야 하는 촘촘한 패턴을 만듭니다. QR 코드 생성기에서 코드를 만들면 미리보기에 버전과 모듈 수가 표시되므로 밀도를 계속 확인할 수 있습니다.

인코딩 모드와 저장 용량

QR 코드는 내용에 맞춰 가장 효율적인 인코딩 모드를 선택합니다.

모드 문자 최대 용량(버전 40, L 수준)
숫자 0–9 7,089자리
영숫자 0–9, A–Z, 공백, $%*+-./: 4,296자
바이트 모든 데이터(주로 UTF-8 텍스트) 2,953바이트
한자(Kanji) 일본어 한자 1,817자

이는 이론상 최댓값입니다. 실제로는 수백 자 정도까지가 안정적으로 스캔됩니다. 참고로 한글은 바이트 모드로 저장되며 UTF-8에서 한 글자당 3바이트를 차지하므로, 영문보다 같은 글자 수에서 코드가 훨씬 촘촘해집니다. 더 많은 내용을 공유해야 한다면 대신 웹 페이지로 연결되는 짧은 링크를 인코딩하세요.

오류 정정: 로고를 넣을 수 있는 비밀

QR 코드는 흠집 난 CD나 DVD가 계속 재생될 수 있게 해 주는 것과 같은 수학 원리인 리드-솔로몬 오류 정정을 사용합니다. 코드 일부가 손상되거나 더러워지거나 가려져도 원래 데이터를 복원할 수 있도록 추가 코드워드를 덧붙이는 방식입니다. 수준은 네 가지입니다.

  • L(낮음) — 손상된 코드워드의 약 7%를 복원
  • M(보통) — 약 15%
  • Q(높음) — 약 25%
  • H(매우 높음) — 약 30%

수준이 높을수록 코드는 더 튼튼해지지만, 중복 데이터에 더 많은 공간을 쓰기 때문에 크기도 커집니다. 바로 이것이 로고 QR 코드를 가능하게 하는 원리입니다. 가운데에 넣은 로고는 의도적으로 코드 일부를 “손상”시키고, 오류 정정이 그 빈틈을 메웁니다. 로고를 넣는다면 Q 또는 H 수준을 선택하고, 로고 크기는 코드 면적의 약 4분의 1 이하로 유지하세요.

팁: 오류 정정이 좋은 대비를 대신해 주지는 않습니다. 색이 너무 연하거나, 크기가 너무 작거나, 콰이어트 존이 없는 코드는 H 수준에서도 인식되지 않을 수 있습니다.

마스킹: 패턴을 읽기 쉽게 유지하기

원시 데이터는 우연히 한 가지 색으로 된 큰 덩어리나 파인더 패턴처럼 보이는 모양을 만들어 스캐너를 혼란스럽게 할 수 있습니다. 이를 막기 위해 인코더는 특정 모듈을 반전시키는 수학 공식인 8가지 마스크 패턴 중 하나를 적용하고, “감점 점수”가 가장 낮은 패턴을 선택합니다. 스캐너는 포맷 정보에서 마스크 번호를 읽어 이를 되돌립니다. 마스크에 신경 쓸 필요는 전혀 없지만, 내용이 거의 같은 두 코드가 완전히 다르게 보일 수 있는 것은 바로 마스크 때문입니다.

스캔할 때 일어나는 일

카메라를 QR 코드에 비추면 스캐너는 다음 과정을 거칩니다.

  1. 세 개의 파인더 패턴을 찾아 코드의 위치, 크기, 회전 각도를 계산합니다.
  2. 정렬 패턴을 이용해 원근을 보정하여 기울어진 코드를 평평한 격자로 만듭니다.
  3. 타이밍 패턴을 자로 삼아 각 모듈이 어두운지 밝은지 샘플링합니다.
  4. 포맷 정보를 읽고 마스크를 제거한 뒤 코드워드를 수집합니다.
  5. 리드-솔로몬 디코딩으로 오류를 복구합니다.
  6. 링크, 와이파이 접속 정보, 연락처 카드 등 데이터를 해석하고 알맞은 동작을 제안합니다.

이 모든 과정에는 몇 밀리초밖에 걸리지 않습니다. 온라인 QR 코드 스캐너로 직접 확인해 보세요. 업로드한 이미지, 링크, 카메라 영상을 대상으로 이 단계들을 브라우저에서 바로 실행합니다.

정적 QR 코드와 동적 QR 코드

정적 QR 코드는 URL, 와이파이 비밀번호, 텍스트 등 최종 내용을 직접 담고 있습니다. 영구적으로 작동하고, 서버가 필요 없으며, 추적되지 않습니다. 동적 QR 코드에는 서비스 제공업체가 소유한 짧은 리디렉션 링크가 들어 있어 나중에 연결 주소를 바꾸거나 스캔 수를 집계할 수 있지만, 구독이 끝나면 더 이상 작동하지 않습니다.

QR.tools에서 만드는 코드는 모두 정적 코드로, 무료이고 개인정보를 보호하며 영구적입니다. 나중에 연결 주소를 바꿔야 할 수도 있다면, 직접 관리하는 페이지로 코드를 연결해 두고 그 페이지의 내용을 수정하세요.

QR 코드에는 무엇을 담을 수 있을까

QR 코드는 단순히 텍스트를 저장하기 때문에, 그 텍스트의 형식에 따라 휴대폰이 어떤 동작을 할지가 정해집니다. 대표적인 표준 형식은 다음과 같습니다.

  • URL — 웹사이트 열기(https://…)
  • 와이파이 — 네트워크에 연결(WIFI:T:WPA;S:…;P:…;;) — 와이파이 QR 코드 생성기 참고
  • vCard — 연락처 저장 — vCard QR 코드 생성기 참고
  • 이메일, SMS, 전화 — mailto:, SMSTO:, tel:로 메시지 작성 또는 전화 걸기
  • 캘린더 일정 — iCalendar VEVENT로 일정 추가
  • 위치 정보 — geo: 좌표로 지도 열기

핵심 정리

  • QR 코드는 데이터 주위에 파인더, 타이밍, 정렬 패턴이 고정 배치된 모듈 격자입니다.
  • 내용이 많을수록 버전이 높아지고, 패턴이 촘촘해지며, 최소 인쇄 크기도 커집니다.
  • 오류 정정(L, M, Q, H) 덕분에 코드가 손상을 견딜 수 있고, 로고도 넣을 수 있습니다.
  • 정적 코드는 영구적이고 개인정보를 보호하며, 동적 코드는 수정할 수 있지만 제공업체에 의존합니다.

직접 만들어 보고 싶으신가요? QR 코드 생성기를 열고 원하는 색상과 로고로 몇 초 만에 나만의 코드를 만들어 보세요.

나만의 QR 코드를 만들어 볼까요?

로고와 색상을 넣은 맞춤 QR 코드를 몇 초 만에 디자인하세요. 무료이며 회원가입도 필요 없습니다.

생성기 열기

함께 읽으면 좋은 글