중국에 잠깐 경유하며 여행을 했을때 느꼈던 놀랍고도 편리한 점 중하나는 QR코드가 모든 분야에서 사용되고 있었다는 것이다. 대만 여행차 들렀기때문에 중국 돈은 한 푼도 없었지만 지하철도 타고, 가챠도 할 수 있었고 음식점, 편의점까지 휴대폰 하나만 딸랑들고 가능했다.
QR코드의 QR은 Quick Response의 줄임말이라고 한다. 무려 1994년, 일본에서 개발되었는데 본격적으로 사용되기 시작한 건 스마트폰의 등장 이후다.
QR코드의 구성
이 이미지가 QR코드의 구성요소를 가장 잘 설명해주고 있어서 들고왔다.
1. 경계 또는 마진 (Quiet Zone)
QR코드의 원활한 인식을 위해 반드시 필요한 여백이다.
2. 파인더 또는 위치 지정 패턴(Positioning Pattern/Marker)
QR코드의 세 모서리에 있으며 QR코드의 방향, 위치, 크기를 식별하는데 도움을 준다. QR코드는 정사각형이기때문에 3개의 사각형만 보더라도 전체 사이즈를 짐작할 수 있다.
3. 얼라인먼트 패턴 (Alignment Pattern/Marker)
QR코드에 보이는 작은 정사각형 패턴이 이것이다. 이해를 돕기위해 아주 큰 크기의 QR코드를 들고 왔다. 일정한 규칙마다 작은 네모가 보일 것이다. 얼라인먼트 패턴은 파인더 패턴에서 대각선으로 배치되며 코드의 중앙을 향해 기울어진다. 인식각도나 인쇄 상태등에 의해 비뚤어지거나 왜곡되어도 이 얼라인먼트 패턴을 보며 교정할 수 있다.
정렬 패턴은 반드시 배치해야하는 위치가 있으며, 그것이 파인터 패턴과 겹칠 경우에는 배치하지 않는다. 따라서 위 QR코드 샘플은 하나의 정렬 패턴을 가지게된다.
4. 타이밍 패턴 (Timing Pattern)
파인더의 1px 바깥에 있는 세퍼레이터(Sperator) 바깥에 있는 수평과 수직으로 위치하는 패턴이다. 흑,백 패턴이 번갈아 나타나며 항상 검은패턴으로 시작하고 끝난다. 정렬패턴과 겹칠 수도 있다. 타이밍 패턴은 안쪽의 셀들의 크기와 위치를 알려주는 패턴이다.
5. 버전 정보 (Version Information)
QR코드의 7버전 이상부터 버전정보 비트가 배치되는 2개의 영역이다.
6. 개별단위 또는 셀(Cell)
0과 1로 구성된 데이터 비트는 흑백 셀에 대응된다. 일정한 패턴에 따라 하나씩 배치된다. 특정한 레벨의 오류수정(Error Correction) 수준에따라 다르게 인코딩 된다. 레벨은 L, M, Q, H로 구분되는데 H레벨의 경우 최대 30%의 훼손이 발생해도 인식이 가능하다. 이때문에 QR코드 중간에다가 회사 로고를 갖다 박아도 인식이 되는 것이다.
정적(Static) QR코드와 동적(Dynamic) QR코드
QR 코드를 생성하는 서비스를 이용하다보면 정적 QR코드와 동적 QR코드를 구분하는 것을 보게된다. QR코드 자체 형식이 달라지는 건 아니고 동작 방식이 달라진다. 정적 방식은 데이터 그대로 보여주고, 동적 방식은 인식 후에 리다이렉트된다. 정적 방식은 예로들어 엄-청나게 긴 URL로 이동한다고 가정하면 QR코드의 사이즈도 그에 따라 커지게된다. 반면, 동적 방식은 그 엄청나게 긴 URL로 리다이렉트하는 짧은 URL만을 가지면 되기때문에 QR코드 사이즈가 내부 데이터와는 관계없이 일정하게 작고 이쁘게 유지된다는 장점이 있다. 그 외에 QR코드 서비스에서 통계같은걸 제공해주기도하고, 리다이렉트할 데이터도 언제든지 수정가능하다.
참고자료
https://www.thonky.com/qr-code-tutorial/module-placement-matrix#step-3-add-the-alignment-patterns
https://nordvpn.com/ko/blog/what-is-a-qr-code/
'프로그래밍 > 단어장' 카테고리의 다른 글
크로미움(Chromium), 그리고 브라우저 엔진들 (0) | 2024.12.11 |
---|---|
RFID와 NFC (0) | 2024.12.09 |
SIM, USIM, eSIM (1) | 2024.12.05 |
근거리 무선 통신 기술(WPAN)과 블루투스(Bluetooth) (1) | 2024.12.04 |
양자 컴퓨팅 (0) | 2024.12.02 |