← 쉽게 읽는 IT

매일 사용하는 QR코드에 숨겨진 원리

작은 네모가 주소를 담고, 조금 훼손돼도 읽히는 이유

카페에 들어간 예린은 테이블 위 QR코드를 휴대폰으로 비췄습니다.

카메라가 작은 네모를 알아보자 메뉴판 주소가 나타났습니다. 종이를 거꾸로 두고 찍어도 읽혔고, 가운데에는 카페 로고까지 들어가 있었죠.

예린은 신기했습니다.

검고 흰 점들 속에 어떻게 인터넷 주소가 들어 있을까요? 방향이 바뀌거나 일부가 가려져도 읽히는 건 왜일까요? 혹시 네모 안에 메뉴 사진까지 들어 있는 걸까요?

이야기 속 IT 개념

예린이 메뉴판을 여는 과정을 따라가며, 일반적인 사각형 QR코드의 읽기 원리를 살펴보겠습니다.

1. 작은 칸들은 그림이 아니라 데이터를 표현하는 규칙입니다

QR코드는 가로와 세로로 배열한 밝고 어두운 칸으로 정보를 표현하는 2차원 코드입니다. 각 칸을 모듈이라고 부릅니다. 글자나 숫자를 정해진 규칙에 따라 데이터로 바꾸고, 추가 정보와 함께 격자에 배치합니다. 이렇게 내용을 다른 표현으로 바꾸는 과정을 인코딩이라고 합니다. 무늬를 예쁘게 그리는 일이 아니라 읽는 쪽과 쓰는 쪽이 같은 규칙을 사용하는 것입니다.

예린이 찍은 코드에는 메뉴 페이지의 주소가 들어 있을 수 있습니다. 이 경우 카메라는 주소를 읽고 브라우저가 그 주소로 접속해 메뉴를 가져옵니다. QR 자체를 해독하는 것과 웹페이지를 내려받는 것은 별개여서, 주소는 읽혔어도 인터넷 연결이 없으면 메뉴가 열리지 않을 수 있습니다. QR에는 주소 외의 문자나 다른 정보도 담을 수 있고, 담는 양과 설정에 따라 크기가 달라집니다. 데이터 표현의 특징은 개발사 덴소웨이브의 QR코드 공식 소개를 참고했습니다.

2. 세 모서리의 큰 네모가 방향과 위치를 알려 줍니다

일반적인 QR코드를 보면 세 모서리에 큰 네모 무늬가 있습니다. 이것은 데이터 그림의 장식이 아니라 코드가 어디에 있고 어느 방향인지 찾는 데 쓰는 위치 탐지 패턴입니다. 카메라는 촬영한 화면에서 이 특징을 찾아 코드 영역을 구분하고, 읽을 격자의 방향을 파악합니다. 예린이 종이를 돌려 놓아도 주소가 읽힌 이유가 여기에 있습니다. 이 기능은 덴소웨이브의 방향 인식 설명에 나옵니다.

코드 바깥의 빈 여백도 역할이 있습니다. 주변 글씨나 무늬와 QR 영역이 섞이지 않도록 구분하는 공간으로, 일반적인 QR코드는 사방에 모듈 네 칸 너비의 여백을 확보합니다. 그래서 코드를 인쇄할 때 바깥 흰 공간을 바짝 잘라 버리거나 복잡한 배경 위에 붙이면 인식이 어려워질 수 있습니다. 작은 칸의 크기와 출력 품질도 중요합니다. 이 여백 기준은 덴소웨이브의 인쇄 영역 안내에 설명되어 있습니다.

3. 조금 가려져도 읽히는 것은 복구용 정보를 함께 넣기 때문입니다

예린은 가운데 로고 때문에 데이터가 사라졌을 것 같다고 생각했습니다. QR코드에는 원래 내용 외에 일부 오류나 손상을 복구하는 오류 정정 정보가 들어갑니다. 원본을 그대로 여러 번 복사하는 대신, 수학적인 관계를 이용해 잃어버린 일부 데이터를 계산할 수 있도록 여분의 정보를 더하는 방식입니다. QR코드는 여기에 리드-솔로몬 부호를 사용합니다.

그렇다고 어느 부분을 얼마든지 가려도 되는 것은 아닙니다. 복구 수준과 데이터량, 손상의 위치에 따라 결과가 달라지고, 위치 탐지 무늬를 알아보지 못하면 해독 단계까지 가지 못할 수도 있습니다. 복구 수준을 높이면 같은 데이터를 담는 데 더 많은 공간이 필요할 수 있습니다. 로고가 있는 QR도 실제 크기와 촬영 조건에서 시험해야 하는 이유입니다. 복구 비율을 단순히 종이 면적의 비율로 해석하면 안 된다는 점까지 덴소웨이브의 오류 정정 설명에서 확인할 수 있습니다.

4. 코드가 읽힌다는 것과 연결된 곳이 안전하다는 것은 다릅니다

QR의 인코딩은 암호화와 다릅니다. 규칙을 아는 리더는 내용을 해독할 수 있고, 일반적인 QR 자체가 링크의 운영자를 믿어도 된다고 보증하지는 않습니다. 메뉴용 코드라면 안에 있는 주소를 그대로 유지한 채 웹사이트의 메뉴를 바꿀 수 있습니다. 중간 안내 주소가 다른 목적지로 보내도록 설정한 경우에는 코드 그림이 같아도 최종 이동지가 달라질 수 있습니다. QR 그림과 그 뒤 서비스의 역할이 나뉘는 것입니다.

예린은 표시된 주소의 도메인을 확인한 뒤 메뉴판을 엽니다. 예상과 달리 계정 비밀번호나 결제를 요구한다면 멈추고 가게에 확인하는 편이 좋습니다. 가짜 QR을 덧붙여 다른 사이트로 보내는 피싱도 가능하기 때문입니다. QR은 작은 공간에 정보를 실어 나르는 편리한 표지판이지만, 표지판이 가리키는 곳까지 자동으로 신뢰하게 만드는 기술은 아닙니다. 이 구분은 미국 FTC의 QR코드 사칭 안내에서도 다룹니다.