-
여권 NFC 정보 가져오기회사 생활/여권 NFC (CameraX + OCR + NFC) 2023. 6. 1. 11:13
여권 NFC를 이용해서 여권 정보를 가져오는 업무를 할당 받았다.
NFC에 대해 아는 것이 하나도 없으므로 공부하면서 시작하려고 한다.
1. NFC(Near Field Communication)란??
NFC는 10cm 이내의 근거리에서 다양한 무선 데이터를 주고 받는 RFID(무선태그) 13.56MHz의 주파수 대역을 사용하는 비접촉식 통신 기술. 즉 '근거리 무선 통신'으로 통신거리가 짧아 상대적으로 보안이 우수하다.
NFC로 휴대폰과 다른 NFC 장치(IC 태그, 휴대폰, 기타 모바일 장치, 결제 장치, 홈 오디오 및 비디오 장치 등) 간에 정보를 전송할 수 있습니다. 예를 들어 웹 주소, 연락처, 전화번호, 음악 트랙, 비디오, 사진을 공유할 수 있습니다.
실생활에서는 NFC 기능을 이용해서 모바일로 대중교통 카드처럼 이용하기도 하고 플라스틱 카드 대신 모바일로 결제하는등 방법으로 활용하고 있다.
사실 무슨말인지 잘 모르겠고 그냥 usb선 같은 것의 연결 없이 근거리에서 정보를 주고 받을 수 있다는 정도로만 이해하면 될 것 같다.
2.NFC의 모드 - 기본모드, 카드모드
비활성화, 기본 모드 (활성화), 카드 모드 (활성화) 위에 스크린샷을 보면 NFC는 기본모드와 카드모드로 나뉘는 것을 알 수 있을 것이다
카드 모드:
- NFC 기능을 이용한 교통 및 신용카드 등의 모바일 결제 서비스만 사용.
- 외부 NFC 기기가 단말기로 무선 접속할 수 있게 수신대기 상태로 동작.
기본 모드:
- NFC카드 기능을 포함한 읽기/쓰기, 데이터 주고 받기 등의 NFC의 모든 기능을 사용.
- P2P (데이터 주고 받기) 양방향 모드 상태로
- 다른 NFC기기와 데이터를 교환하는 통신 기능입니다.
여권의 NFC 정보를 읽어노는 거는 '기본 모드' 를 사용한다.
3. 여권 NFC
우선 여권 NFC에서 얻을 수 있는 정보를 알아보자면 아래와 같다.
- 개인 정보: 여권에는 소지자의 개인 정보가 포함되어 있습니다. 이 정보에는 성명, 생년월일, 성별, 국적 등이 포함된다.
- 여권 번호: 여권에는 고유한 여권 번호가 포함되어 있습니다. 이 번호는 여권을 식별하는 데 사용됩니다.
- 여권 발급 국가 및 발급 일자: 여권이 발급된 국가와 발급 일자도 여권에 저장되어 있습니다.
- 디지털 사진: 여권에는 소지자의 디지털 사진이 저장되어 있습니다.
- 지문 데이터: 일부 국가의 여권에는 소지자의 지문 데이터가 저장되어 있을 수 있습니다.
- 비자 정보: 일부 국가에서는 여권에 비자 정보를 저장하기도 합니다.
먼저 시작하기전에 실제 앱에서 어떻게 활용하는지 확인 해보았다.
일단 기본적으로 구글 플레이 스토어에서 사용되는 앱들을 보니 여권 NFC를 하기 위해서는 3가지 정보가 필요한듯 싶다.
- 여권번호
- 여권의 종료 날짜
- 생일
이 정보들을 활용해서 여권 NFC 정보를 불러오는 것이다.
여러가지 앱들을 테스트 해본 결과 이 정보들을 크게 2가지 방법을 얻는 방식을 취했다.
- (1) 카메라에서 인식시키는 방법 : 카메라를 켜서 이미지를 실시간으로 가져와 여권에 있는 MRZ 이미지를 가져와 Text로 변환(OCR) 하고 그 다음 MRZ 분석하는 코드를 거쳐서 얻어오는 방법
- (2) 유저가 직접 기입하는 방법
(1)번 방식은 크게 4가지 과정을 거쳐야 한다.
- 첫번째, Camera 기능
- 두번째, OCR 기능
- 세번째, MRZ Text를 여권 정보로 변환
- 네번째, NFC로 정보를 얻어오기
(2)번 방식은 앞에 3가지 과정을 이미 유저가 하는 것이기 때문에 마지막 부분 1가지 과정만 있으면 된다.
- NFC로 정보를 얻어오기
(1) 번 방식이 좀 더 복잡하지만 초보자가 구현 못할만큼 어려운 것도 아니고, 유저가 사용하기 쉽게 하기 위해서 (1)번 방식이 채택되고 적용되었다.
학습한 코드 내용 보러 가기 : 링크
github 주소 : 링크
'회사 생활 > 여권 NFC (CameraX + OCR + NFC)' 카테고리의 다른 글
CameraX api 4편 : Anlysis와 text 분석 라이브러리(OCR) (0) 2023.11.14 CameraX api 3편 : takePicture 메소드 (0) 2023.11.13 CameraX api 2 : CameraX 기본 코드 분석 (0) 2023.11.10 CameraX api 1 : 기초 (0) 2023.11.05 Android Camera 사용하기 (0) 2023.07.29