Excel & IT Info

아이엑셀러 닷컴, 엑셀러TV

IT Info

QR 코드는 어떻게 작동하나요?

권현욱(엑셀러) 2024. 6. 6. 18:27
반응형

들어가기 전에

QR(Quick Response) 코드는 바코드의 진화된 형태로, 일본 자동차 제조에서 유래했습니다(덴소 웨이브). QR 코드는 영화 티켓부터 언더그라운드 레이브까지 다양한 용도로 사용되고 있습니다. QR코드는 다양한 데이터를 저장할 수 있으며, 스마트폰의 개선을 통해 다양한 애플리케이션으로 진화하고 있습니다. 중간에 약간 생소한 내용도 있지만 일반 상식 차원에서 참고하시기 바랍니다.

권현욱(엑셀러) | 아이엑셀러 닷컴 대표 · Microsoft Excel MVP · Excel 솔루션 프로바이더 · 작가

이미지: 아이엑셀러 닷컴

 

※ 이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.


  • 원문: How do QR codes work?
  • URL: https://www.xda-developers.com/how-do-qr-codes-work/

QR 코드 개요

일본 자동차 제조에 뿌리

QR 코드는 근본적으로 바코드가 진화한 형태입니다. 1차원 바코드는 다양한 거리에 일련의 선을 배열하여 많은 양의 데이터를 저장하며, 빛으로 판독하여 데이터로 해석할 수 있습니다. 어디서나 흔히 볼 수 있는 바코드이지만 대체 및 경쟁 표준도 상당수 존재합니다. 1차원 바코드는 많은 데이터를 저장하지 않으므로 일반적으로 부착된 품목의 제품 코드인 숫자만 표시하는 경우가 많습니다.

 

2D 바코드는 말 그대로 1차원 바코드에 2차원이 추가된 것입니다. 한 줄의 선으로 데이터를 인코딩하는 대신 2차원으로 데이터를 인코딩합니다. 따라서 저장할 수 있는 데이터 비트 수가 엄청나게 증가합니다. 1D 바코드가 n비트를 저장할 수 있다면 2D 바코드는 n^2를 저장할 수 있습니다. QR 코드는 몇 가지 추가 기능이 있는 특정 유형의 2D 바코드에 지나지 않습니다.

최초의 QR 코드는 생산 라인용으로 설계

QR 코드는 원래 생산 라인이 점점 자동화됨에 따라 일본의 자동차 산업을 위해 발명되었습니다. QR 코드는 일반 바코드보다 더 많은 데이터를 저장할 수 있을 뿐만 아니라 오류를 더 많이 확인할 수 있었습니다. 생산 라인을 통과하는 부품에 라벨을 붙이는 데 활용되었습니다.

 

QR 코드는 일반적으로 다르게 스캔됨

QR 코드는 바코드에 뿌리를 두고 있지만 일반적으로 동일한 방식으로 스캔되지는 않습니다. 바코드 스캐너는 각 바를 개별적으로 스캔하는 광학 광선에 의존하지만 QR 코드는 일반적으로 훨씬 더 빠르고 정교한 머신 비전 기술을 사용합니다. 바코드와 같은 방식으로 QR 코드를 스캔하는 것도 가능하지만 머신 비전 기술이 크게 향상되었기 때문에 지금은 흔하지 않습니다.

 

QR 코드에는 몇 가지 추가 기능이 필요

사각형 속의 사각형, 사각형 속의 사각형?

 

이미지: wikimedia commons

 

1D 바코드에서 2D 바코드로 전환할 때 몇 가지 추가 기능이 필요합니다. 그 중 가장 눈에 띄는 것은 위치 감지 패턴이라고 하는 각 QR 코드의 큰 방향 사각형입니다. 이 사각형은 소프트웨어에서 처음에 QR 코드의 위치를 찾는 데 사용됩니다. 큰 사각형이 없는 모서리에 있는 작은 사각형은 눈에 잘 띄지 않는데, 이는 QR 코드의 방향이 올바른지 확인하는 데 사용되며 정렬 패턴으로 알려져 있습니다.

 

또한 타이밍 패턴이라고 하는 각 위치 감지 패턴 사이에는 번갈아 가며 나타나는 선이 있고, QR코드 가장자리에는 식별에 도움이 되는 표준 공백 영역(조용한 영역이라고 함)이 있습니다(많은 QR코드가 이 부분을 생략하지만). 이러한 위치 감지 및 정렬 패턴의 조합으로 머신 비전 알고리즘이 QR 코드를 빠르고 쉽게 찾을 수 있습니다.

형식 및 버전 비트

QR 코드의 위치와 방향이 결정되면 QR 코드의 버전 정보를 읽을 수 있습니다. 이 정보는 지정된 위치의 지정된 사각형에 저장되며, 현재 보고 있는 QR 코드의 크기를 나타냅니다.

 

QR 코드의 버전과 크기를 식별하고 방향을 올바르게 지정하면 QR 코드의 시장 형식을 읽을 수 있습니다. 여기에는 두 개의 고유한 사본이 있으며 오류 수정 수준과 마스크 패턴 비트에 대한 정보가 포함되어 있습니다. 오류 수정 수준은 QR 코드의 두 비트(즉, 2개의 작은 사각형)로 표시되는 네 가지 값 중 하나로, 낮음, 중간, 사분위수, 높음 중 하나를 인코딩하여 전체 QR 코드의 7%, 15%, 25%, 30%를 각각 파괴할 수 있지만 데이터는 복구할 수 있도록 허용하는 값입니다.

 

QR 코드는 리드-솔로몬이라는 오류 수정 알고리즘을 사용합니다. 이 기법이 어떻게 작동하는지 자세히 설명하지는 않겠지만(이 글이 CS 강의가 될까 봐), 매우 효과적이며 DVD에서 RAID6에 이르기까지 모든 것에 사용됩니다. 리드 솔로몬은 손상된 데이터의 양에 따라 부분적으로 재구성하거나 오류만 감지할 수 있습니다. 이 모든 정보가 식별되면 데이터 비트 읽기를 시작할 수 있습니다.

QR 코드 읽기

QR 코드를 손으로 디코딩하는 것은 어렵지만 불가능하지는 않음

이미지: wikimedia commons

 

QR 코드의 데이터 영역은 오른쪽 하단에서 읽으며, QR 코드의 방향은 오른쪽 하단의 정렬 패턴과 일치합니다. 데이터 영역의 크기는 다양하며 수천 자를 인코딩하는 경우도 있습니다. QR 코드는 하단 모서리부터 8개의 블록으로 이루어진 개별 사각형(또는 픽셀)을 읽습니다.

 

각 패턴에 해당하는 것은 QR 코드의 인코딩 설정에 따라 다르지만 일반적으로 ASCII(즉, 영숫자) 문자를 나타냅니다. 일반적으로 코드의 길이와 인코딩 모드가 먼저 오고 데이터 블록이 그다음, 오류 확인에 사용되는 데이터가 다시 그 뒤를 따릅니다.

 

QR 코드는 한 번에 8픽셀씩 한 블록씩 오른쪽 아래에서 왼쪽 위까지 스네이킹 패턴으로 읽힙니다. 이 데이터를 추출하고 정렬한 다음 디코딩하여 원래 문자열을 검색합니다.

URL이 포함된 QR 코드

URL 리디렉션은 QR 코드가 있는 앱을 여는 데 사용 가능

QR 코드의 가장 일반적인 용도는 URL을 저장하는 것입니다. 이러한 URL은 브라우저에서 웹페이지를 여는 것부터 이메일 시작까지 다양한 방식으로 디바이스에서 처리할 수 있습니다.

 

URL은 웹페이지가 앱을 여는 것으로 디바이스에서 해석되어 메타데이터를 앱으로 전달하는 기술인 URL 리디렉션에 사용될 수 있습니다. 웹사이트에서 열렸던 QR 코드를 스캔한 후 메타데이터나 컨텍스트가 있는 앱을 열었을 때 이 방법을 사용한 적이 있을 것입니다.

항상 그런 것은 아니지만...

QR 코드는 URL 외에도 다양한 용도로 사용됩니다. 대부분의 스마트폰은 기본 카메라 앱을 사용하여 URL의 링크를 열 수 있지만, 카메라에 액세스할 수 있는 다른 앱에서는 다양한 용도로 QR 코드를 사용할 수 있습니다.

 

지오캐싱부터 3D 증강 현실 몬스터 스폰까지 다양한 용도로 사용할 수 있습니다. 스마트폰 카메라 및 일반적인 처리 능력과 함께 대체 애플리케이션을 위한 QR 코드의 속도와 유용성도 향상되었습니다.

 

기기가 데이터 해석 방법을 결정

QR 코드를 이해하는 가장 좋은 방법은 단순하게 이해하는 것입니다. QR 코드는 하나의 메시지일 뿐입니다. 아주 짧게는 4000자에서 4000자 이상의 길이를 가진 문자열을 나타냅니다. QR 코드를 디코딩하는 것 자체는 아무런 영향을 미치지 않으며, 다음에 일어나는 일은 앱이나 사용자가 디코딩하는 앱에 의해 결정됩니다.

 

앱마다 다양한 용도로 QR 코드를 사용할 수 있습니다. 티켓에는 티켓을 나타내는 UUID(범용 고유 식별자)가 포함되어 있는 경우가 많으며, 많은 의료 시스템이나 코로나19 예방 접종 패스가 유사한 시스템을 사용합니다. QR코드 자체의 표준은 변경되지 않으며, 적용 및 해석만 변경됩니다.

그래픽 QR 코드

QR 코드에 어떻게 로고를 넣는지 궁금한 적이 있나요?

이미지: xda

 

QR코드 중 한 가지 특이한 것은 중간에 로고, 텍스트 또는 이미지가 있는 코드입니다. 어떻게 작동할까요? QR코드 중간에 이미지를 넣는 것은 실제로 QR코드 표준에서 지원되지 않으며, 오류 검사에 의존하고 있습니다. 이미지가 데이터가 있어야 할 위치를 차지하여 QR 코드가 효과적으로 손상될 수 있습니다.

 

이러한 이미지는 일반적으로 오류 수정 설정이 높으며 이미지 인터프리터가 데이터가 저장되어야 하는 영역이 아닌 오류 수정 비트에서 값을 디코딩하는 데 의존합니다.

 

미관상 보기 좋고 브랜딩에도 좋지만, 이렇게 하면 QR코드가 손상되기 쉬우므로 코드가 읽을 수 없게 되기 전에 손상될 수 있는 QR코드 면적이 줄어듭니다.

QR 코드의 미래

QR 코드에 대한 한 가지 분명한 사실은 QR 코드가 계속 사용될 것이라는 점입니다. 많은 사람들이 NFC와 같은 더 화려한 기술을 위해 QR 코드의 죽음을 예언했습니다. 하지만 QR 코드는 건물이나 모든 유형의 디스플레이 영역에 거의 모든 곳에 투사할 수 있어 수백, 수천 명의 사람들이 한 번에 스캔할 수 있습니다.

 

이러한 대중적인 매력과 스마트폰 공급업체의 거의 보편적인 채택으로 인해 QR 코드는 매우 강력한 기술로 자리 잡았으며, 앞으로도 계속 사용될 것입니다.

Excel과 VBA의 모든 것 아이엑셀러 닷컴 · 강사들이 숨겨 놓고 보는 엑셀러TV