현재 버전

몇년전에 NFC 관련해서 참 많은걸 했었는데.. ㅋㅋ

문열기도 NFC 모듈 업체랑 해서 이것저것 해보기도 했었던..  추억이 새록새록하기도 해서.. 주저리 주저리 몇가지 적어봅니다. ㅋㅋ 


카드모드 관련 제가 아는 부분 설명을 드리면..

Single Wire Protocol 이라고 스마트폰 내의 NFC 모듈 <-> USIM간의 연결 프로토콜이 있습니다.

삼성폰에 있는 "카드모드"라는 설정은 저 Single Wire Protocol 만 활성화 & 스마트폰 내의 NFC 모듈을 passive 모드(읽기 & 쓰기는 안되고 외부 리더기가 쏘는 전파에 반응해서 동작만 하는... 즉 NFC 카드와 같이 동작)로 동작시키는 모드로 알고 있습니다.

Single Wire Protocol은... 스마트폰에 장착된 NFC 모듈 <-> USIM을 연결하는 규약인데.. 

그냥 쉽게 생각하시면 스마트폰에 장착된 NFC 모듈 <-> USIM을 연결해서 "NFC 카드(passive모드만 되고 저장영역을 가지고 있는)"처럼 쓴다라고 생각하시면 됩니다.. USIM의 일부영역을 NFC 모듈이 저장소로 쓰는 형태라고 보시면 됩니다.


Single Wire Protocol 이 모든 스마트폰 다 적용된건 아닌걸로 알고 있구요. (이건 확실하진 않아요... 제가 알기로는 그래요..)

그래서 국내 스마트폰이 아닌 경우 Tmoney / 캐시비 들어가있는 USIM을 장착해도 교통카드로 못씁니다. Single Wire Protocol 이 없거나 있어도 그걸 사용하는 API가 국내폰들과 달라서 인걸로 알고있어요.

그래서 카드사에서 HCE로 티머니나 캐시비 프로토콜을 구현하고 앱에서 후 처리를 하도록해서 교통카드 기능을 지원하죠.  (그래서 이 경우 폰화면이 켜져야 교통카드 결제가 가능합니다)



구현하시려는 문열기의 경우... 2가지 방법이 있을거예요.

1. NFC 리더기로 Tmoney / 캐시비 카드번호를 읽어서 식별값으로 사용.

  - 이 경우 티머니 / 캐시비가 있는 USIM이 장착되지 않은 경우

  - 국내 스마트폰이 아닌 경우.

  위 2가지 케이스에 대응이 안되지만 사용자가 폰 화면을 켜지 않고도 구현 가능하구요.

  스마트폰 쪽에선 특별히 아무것도 개발하지 않아도 된다는 장점이 있습니다.

2. HCE를 사용할 경우.

  - NFC 지원하는 대부분 스마트폰 지원(HCE가 .. 안드로이드 6.0인가? 이후인가 그럴겁니다. 이건 확인 필요)

  스마트폰에서 HCE 지원하는 어플리케이션 개발이 필요.


번외. (가능은 하지만 굳이 이렇게?? 싶은 방법)

3. NFC 모듈이 카드처럼 동작하고 폰에서 Write 합니다.

  - 단점은 앱개발 해야하고 앱에서 write하는 화면을 켜고 동작시켜야 합니다.

  - 장점은 없습니다.. ㅋㅋㅋ

4. P2P 모드.. 3번이랑 비슷한 장단점인데 구현방식이 다릅니다.


3/4번의 경우 문열기(식별값만 인식)하는 경우엔 쓰기 참 애매한데..

통신으로 주고받는 데이터가 좀 더 많은 경우에는 쓸만 합니다.

실제로 몇몇 케이스에서 3/4번을 활용해서 개발을 한적도 있습니다. ㅎㅎ



수정 이력

2021-08-03 11:42:00 에 아래 내용에서 변경 됨 #1

몇년전에 NFC 관련해서 참 많은걸 했었는데.. ㅋㅋ

문열기도 NFC 모듈 업체랑 해서 이것저것 해보기도 했었던..  추억이 새록새록하기도 해서.. 주저리 주저리 몇가지 적어봅니다. ㅋㅋ 


카드모드 관련 제가 아는 부분 설명을 드리면..

Single Wire Protocol 이라고 스마트폰 내의 NFC 모듈 <-> USIM간의 연결 프로토콜이 있습니다.

삼성폰에 있는 "카드모드"라는 설정은 저 Single Wire Protocol 만 활성화 & 스마트폰 내의 NFC 모듈을 passive 모드(읽기 & 쓰기는 안되고 외부 리더기가 쏘는 전파에 반응해서 동작만 하는... 즉 NFC 카드와 같이 동작)로 동작시키는 모드로 알고 있습니다.

Single Wire Protocol은... 스마트폰에 장착된 NFC 모듈 <-> USIM을 연결하는 규약인데.. 

그냥 쉽게 생각하시면 스마트폰에 장착된 NFC 모듈 <-> USIM을 연결해서 "NFC 카드(passive모드만 되고 저장영역을 가지고 있는)"처럼 쓴다라고 생각하시면 됩니다.. USIM의 일부영역을 NFC 모듈이 저장소로 쓰는 형태라고 보시면 됩니다.


Single Wire Protocol 이 모든 스마트폰 다 적용된건 아닌걸로 알고 있구요. (이건 확실하진 않아요... 제가 알기로는 그래요..)

그래서 국내 스마트폰이 아닌 경우 Tmoney / 캐시비 들어가있는 USIM을 장착해도 교통카드로 못씁니다. Single Wire Protocol 이 없거나 있어도 그걸 사용하는 API가 국내폰들과 달라서 인걸로 알고있어요.

그래서 카드사에서 HCE로 티머니나 캐시비 프로토콜을 구현하고 앱에서 후 처리를 하도록해서 교통카드 기능을 지원하죠.  (그래서 이 경우 폰화면이 켜져야 교통카드 결제가 가능합니다)



구현하시려는 문열기의 경우... 2가지 방법이 있을거예요.

1. NFC 리더기로 Tmoney / 캐시비 카드번호를 읽어서 식별값으로 사용.

  - 이 경우 티머니 / 캐시비가 있는 USIM이 장착되지 않은 경우

  - 국내 스마트폰이 아닌 경우.

  위 2가지 케이스에 대응이 안되지만 사용자가 폰 화면을 켜지 않고도 구현 가능하구요.

  스마트폰 쪽에선 특별히 아무것도 개발하지 않아도 된다는 장점이 있습니다.

2. HCE를 사용할 경우.

  - NFC 지원하는 대부분 스마트폰 지원(HCE가 .. 안드로이드 6.0인가? 이후인가 그럴겁니다. 이건 확인 필요)

  스마트폰에서 HCE 지원하는 어플리케이션 개발이 필요.