728x90
반응형
QR코드는 단순한 정사각형 무늬 같아 보여도, 내부에 매우 정교한 규칙과 디지털 구조가 숨어 있습니다.
아래에서 QR코드 생성 원리와 스캔(인식) 원리를 설명드릴게요.
📦 1. QR코드 생성 원리
QR코드는 데이터를 흑백의 사각형 패턴으로 변환하여 저장하는 방식입니다. 주된 과정은 다음과 같습니다:
① 입력 데이터 → 바이너리로 변환
- 숫자, 문자열, URL 등 입력 데이터를 **이진 데이터(0/1)**로 바꿉니다.
- 인코딩 모드 사용:
- 숫자 모드 (Numeric)
- 알파벳/숫자 모드 (Alphanumeric)
- 8비트 바이트 모드 (Byte)
- 한자 모드 (Kanji)
② 오류 정정 코드 추가 (Reed-Solomon 방식)
- QR코드는 일부가 손상되어도 읽을 수 있도록 **오류 정정 데이터(ECC)**를 추가합니다.
- 오류 복구율은 L/M/Q/H 네 가지 등급으로 선택 (최대 약 30% 손상 복구 가능)
③ 모듈 패턴 배치
- 데이터를 변환한 이진 정보 + 오류 정정 정보를 QR코드 내부 격자에 규칙적으로 배치
- 기본 구조 포함:
- 위치 탐지 패턴 (세 모서리 큰 사각형)
- 정렬 패턴 (중간 및 모서리 부근)
- 타이밍 패턴, 버전 정보, 포맷 정보 등
④ 마스킹 적용
- QR코드는 흑백이 너무 한쪽으로 치우치면 인식이 어렵기 때문에, 8가지 마스크 패턴 중 가장 최적인 것을 선택해 적용합니다.
👁️ 2. QR코드 인식(스캔) 원리
스마트폰 카메라나 스캐너는 아래 순서로 QR코드를 해석합니다:
① 위치 탐지 (3개 큰 사각형 찾기)
- QR코드의 세 모서리에 있는 **큰 정사각형(위치 탐지 패턴)**을 통해 방향, 위치, 회전 상태를 파악
② 정렬 및 타이밍 분석
- 정렬 패턴과 타이밍 패턴으로 세부 격자 위치를 정확히 계산
- 왜곡 보정: 비스듬히 찍혔거나 구부러진 경우도 보정
③ 데이터 추출
- 격자 내 데이터를 읽고, 마스킹 제거 → 이진 코드 추출
- Reed-Solomon 오류 정정을 적용해 손상된 부분 복구
④ 디코딩
- 이진 데이터를 바이트 또는 문자로 다시 변환
- URL, 텍스트, 명함 정보 등으로 최종 출력
📌 요약 정리
구분 | QR코드 생성 원리 | 인식 원리 |
핵심 과정 | 데이터 인코딩 → 오류정정 → 패턴 배치 → 마스킹 | 패턴 탐지 → 위치 계산 → 데이터 추출 → 복원 |
기술 요소 | Reed-Solomon, 마스킹, 이진 인코딩 | 이미지 왜곡 보정, 패턴 인식, 오류 정정 |
특징 | 높은 저장 용량, 손상 복구 가능 | 빠른 인식, 기울어진 상태에서도 인식 가능 |
300x250
반응형
'IT' 카테고리의 다른 글
api key에서 access key, secret key 개념과 역할은? (0) | 2025.06.04 |
---|---|
adid, gaid, idfa 개념과 각각 역할은? (0) | 2025.06.01 |
개인키와 공개키의 역할과 차이는? (Python, Java 예시) (0) | 2025.04.22 |
udid와 uuid의 차이점은? (0) | 2025.04.21 |
클라우드에서 VPC란? (0) | 2025.04.15 |