실생활을 움직이는 NFC 개발의 모든 것!
NFC는 엄청난 잠재력이 있지만 프로그래머를 위한 내용을 다루는 책은 많지 않았다. 이 책에서는 폰갭을 사용해 NFC를 어떻게 더욱 다양한 방법으로 개발하는지에 집중한다.
기기와 태그 또는 기기와 기기와 기기 간의 메시지를 읽고 쓰는 NDEF(NFC Data Exchange Format)의 기본 사항을 설명하고, 라즈베리 파이(Raspberry Pi), 비글본 블랙(BeagleBone Black)과 같은 임베디드 기기에서 동작하는 폰갭, 아두이노(Arduino), Node.js 예제 애플리케이션을 작성한다.
이 책은 일반 프로그래머에게는 NFC를 사용해 무엇을 할 수 있는지 알려주고, 숙련된 개발자에게는 NFC의 용도를 널리 전파하면서도 사용이 간편한 툴을 만드는 데 커다란 영감을 줄 것이다.
누구를 위한 책인가
전문 개발자가 아니어도 이 책을 읽을 수 있다. 프로그래밍에 대한 열정이 있고 딱딱하고 형식적이지 않은 방법으로 새로운 지식을 학습하려는 이들도 이 책을 읽을 수 있게 노력했다. 큰 규모의 코드를 작성하는 방법을 배우지는 않지만 근거리 통신에 대한 실용적인 도입 방법과 안드로이드, 아두이노, 리눅스에서 어떻게 애플리케이션을 작성하는지를 학습할 것이다.
물론 이 책의 독자는 약간의 프로그래밍 지식이 있다고 가정했다. 예제 대부분은 자바스크립트와 HTML로 작성되었고, 아두이노 프로젝트에서 잠시 C 언어를 접하게 된다. C 언어가 익숙하지 않더라도 자바스크립트나 자바에 익숙하다면 간단한 C 코드를 이해하는 것은 어렵지 않다. 후반부의 프로젝트에서는 기계공학 지식을 알고 있다면 매우 좋겠지만 모르더라도 크게 상관은 없다.
이 책의 구성
『처음 시작하는 NFC 프로그래밍: 안드로이드에서 개발하기(1장 ~ 5장)』, 『처음 시작하는 NFC 프로그래밍: 아두이노, 라즈베리 파이에서 개발하기(6장 ~ 8장)』의 두 권으로 구성되어 있다.
1장에서는 NFC를 소개하고 NFC와 RFID를 비교해 본다. 간단히 말해서 NFC는 RFID의 확장이다. 짧은 거리의 RFID로 할 수 있는 대부분의 기능을 포함해 추가 기능도 사용할 수 있다. 중요한 용어와 NFC 시스템의 구조, 어떤 툴을 어디서 받는지를 알아본다.
2장에서는 폰갭과 폰갭의 NFC 플러그인을 소개한다. 안드로이드의 폰갭 애플리케이션을 개발하기 위한 툴을 설치하고 간단한 애플리케이션을 구동해 본다. 2장 끝에서는 안드로이드 기기를 이용해 NFC 태그를 읽어본다.
3장에서는 NDEF(NFC Data Exchange Format)를 자세히 알아본다. NDEF의 구조를 익히고 NDEF 레코드의 각기 다른 타입을 사용하는 간단한 애플리케이션을 제작해 각각의 레코드 타입이 안드로이드와 어떻게 상호 작용하는지 알아본다.
4장에서는 안드로이드에서 어떻게 NDEF 메시지를 읽는지 알아본다. 다른 태그와 메시지를 걸러내는 방법, NFC 애플리케이션을 개발할 때 안드로이드 태그 처리 시스템이 어떻게 사용되는지를 익혀본다.
5장에서는 안드로이드에서 NFC 태그로 조정하는 사용자 인터페이스, 오디오 플레이, 웹 연결 컨트롤이 있는 NFC 애플리케이션을 만들어본다. NFC의 장점을 최대한 유지하면서 어떻게 애플리케이션의 디자인과 상호 동작하는지, 데이터를 설정하는지 설명한다.
6장에서는 또 다른 환경인 아두이노 마이크로 컨트롤러 개발 플랫폼을 사용한다. 아두이노 NDEF 라이브러리를 사용해 어떻게 NDEF 메시지를 읽고 쓰는지를 익혀본다. 또한, 아두이노와 Node.js를 사용한 애플리케이션을 만들어본다.
7장에서는 안드로이드에서 NFC의 피어-투-피어(peer-to-peer) 교환 방식을 소개한다. 피어-투-피어를 통해 레코드 타입이 수신하는 기기에 어떠한 영향을 주는지 알아본다. 추가로 블루투스와 와이파이 같은 대용량 통신과의 연결을 시작하는 방법을 알아본다.
8장에서는 라즈베리 파이와 비글본에서의 임베디드 리눅스 플랫폼에서 NFC 개발에 대해 알아본다. 임베디드 리눅스에서 가능한 것과 Node.js 예제 애플리케이션을 알아본다. 이 장에 기술된 내용 외에도 유용한 예제들이 아주 많이 남아있다는 것을 기억해두자. 리눅스 명령어를 이미 알고 있다면 8장을 이해하는 데 많은 도움이 된다. 참고로 리눅스는 NFC가 사용되는 가장 흥미로운 플랫폼이며, 이를 잘 익히면 더욱 도움이 될 것이다.
다양한 하드웨어를 컨트롤하는 앱을 개발하고 싶다면!
일반 Windows 운영체제에서 구동되는 프로그램만을 개발했다면 NFC라는 용어가 생소할 수도 있고 어려울 것이라고 지레 겁먹을 수도 있다. 하지만 NFC는 이미 우리가 생각하는 것 이상으로 실제 생활에서 널리 사용되고 있으며 절대 복잡하고 어렵지 않다. 이 책이 NFC에 더욱 가깝게 다가가는 것을 도와줄 것이다.
NFC 태그는 상업적 목적으로 개발되었지만 개인적인 용도로도 충분히 가치가 있다. 예를 들어 NFC 태그로 개인 명함을 만들 수 있다. 모바일 기기를 다른 기기에 가까이 가져가면 자동으로 명함 정보가 대상에게 옮겨지는 것이다. 흔한 종이 명함보다 훨씬 더 인상적이고 멋져 보일 것이다. 이 외에도 NFC 태그의 활용도는 무궁무진하며 계속 발전할 전망이다.
이 책은 NFC의 기본 개념을 익히는 것부터 실제 프로젝트를 개발하고 관련된 하드웨어를 조작하는 것까지 필요한 모든 내용을 담고 있다. 태그와 앱의 연동, 필립스 휴 조명 시스템 제어, 문 잠금 시스템 등 간단한 프로젝트부터 조금 복잡한 프로젝트까지 기술을 넓게 사용하는 데 큰 도움을 줄 것이다. 이 책을 통해 NFC의 기본을 익히고 더 나아가 다양한 NFC 개발에 영감을 얻기를 바란다. <역자 서문 중에서>
6장 아두이노와 NFC 소개
6.1 디지털과 생활의 만남 : 아두이노
6.2 NFC 하드웨어의 중심
6.3 아두이노 개발 환경
6.4 아두이노 NDEF 라이브러리
6.5 NFC 애플리케이션을 위한 마이크로 컨트롤러 : 호텔 카드키
6.6 아두이노 NDEF 작성기를 위한 브라우저 인터페이스
6.7 결론
7장 피어-투-피어 교환
7.1 폰갭의 피어-투-피어 메시지 전송
7.2 폰갭의 피어-투-피어 메시지 받기
7.3 핸드오버
7.4 폰갭이 NFC를 만나다: NFC 수신기
7.5 아두이노로 피어-투-피어 전송
7.6 카드 에뮬레이션
7.7 결론
8장 임베디드 시스템의 NFC
8.1 임베디드 리눅스 디바이스와 패키지 매니저 소개
8.2 임베디드 리눅스의 NFC : 개요
8.3 하우스키핑 자세히 살펴보기
8.4 NFC 툴 설치
8.5 Libnfc와 Libfreefare 커맨드 라인 툴
8.6 Node.js에서 NDEF 읽기와 쓰기
8.7 태그 작성기를 위한 웹 인터페이스
8.8 실제 출력을 제어하는 태그
8.9 결론
처음 시작하는 NFC 프로그래밍 : 안드로이드에서 개발하기
브라이언 젭슨 , 돈 콜먼 , 톰 이고
리얼타임 eBook 안내
PDF 형식으로 제공되며, 다운로드한 eBook은 PDF 포맷을 지원하는 디바이스 또는 프로그램에서 제한없이 열람할 수 있습니다. 또한 eBook 내의 텍스트 검색 및 인쇄도 가능합니다.