Top

실전 IoT 네트워크 프로그래밍 [라즈베리 파이와 C#을 활용한 사물인터넷 통신 프로토콜과 서비스 플랫폼 이해]

  • 원서명Learning Internet of Things (ISBN 9781783553532)
  • 지은이피터 웨허(Peter Waher)
  • 옮긴이남기혁
  • ISBN : 9788960777231
  • 35,000원
  • 2015년 06월 23일 펴냄
  • 페이퍼백 | 452쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 임베디드 시스템

책 소개

이 책에서 사용된 예제 파일은 저자의 깃허브 페이지에서 이용 가능합니다.
https://github.com/Clayster

요약

이 책에서는 사물인터넷, 즉 IoT에서 활용할 수 있는 대표적인 프로토콜 HTTP, UPnP, CoAP, MQTT, XMPP를 하나씩 소개하고, 각 프로토콜을 이용해 네트워크 토폴로지를 구성하고 통신하는 방법과 방화벽이 통신에 미치는 영향에 대해 알아본다. IoT 통신의 보안을 위한 핵심 도구로서 사물 레지스트리(Thing registry)와 신뢰 위임(delegation of trust)을 이용하는 방법도 소개한다. 여러 프로토콜을 하나씩 살펴본 뒤에는 IoT의 강력함과 유연성을 그대로 유지하면서 최종 사용자와 사적인 데이터를 보호하는 보안 개념이 반영된 아키텍처를 구성하는 방법에 대해 알아본다.

이 책에서 다루는 내용

HTTP, UPnP, CoAP, MQTT, XMPP 프로토콜에서 제공하는 기능과 한계

요청/응답, 게시/구독, 이벤트 구독, 비동기 메시징, 멀티캐스팅 같은 주요 통신 패턴

사물 레지스트리와 신뢰 위임을 통한 IoT 기기의 생명주기 관리 방법

IoT 서비스 플랫폼을 이용해 개발 시간과 복잡도를 줄이는 방법

인터넷의 주요 공격 사례와 효과적인 대응책 수립 방법

보안에 뛰어난 공개 소프트웨어를 활용해 상호운용성과 보안을 확보하는 방법

안전하고 확장성이 뛰어나며 상호운용성도 보장하는 분산 아키텍처로 솔루션을 구현하는 방법

이 책의 대상 독자

이 책은 IoT에 관심 있는 소프트웨어 및 하드웨어 개발자를 대상으로 집필했다. 고등학교 수준의 전자 공학 지식만 있어도 라즈베리 파이를 비롯한 소형 IoT 하드웨어 플랫폼을 충분히 사용할 수 있으며, C#뿐만 아니라 자바나 C++ 같은 객체 지향 프로그래밍 언어를 써본 적이 있다면 예제를 충분히 따라갈 수 있을 뿐만 아니라, 최신 IoT 솔루션을 쉽게 만들 수 있을 것이다.

이 책의 구성

1장, '실습 환경'에서는 이 책의 전반에 걸쳐 사용할 예제 프로젝트를 소개한다. 프로젝트의 기본 구조와 개발 환경을 비롯해 라즈베리 파이를 설정하고 기본 입출력 연산을 수행하는 방법에 대해 설명한다.
2장, 'HTTP'에서는 HTTP 프로토콜의 기본 개념과 IoT 응용 제작 환경에 대해 소개한다. 이 과정에서 요청/응답과 이벤트 구독과 같은 통신 패턴도 소개한다.
3장, 'UPnP'에서는 UPnP 프로토콜의 기본 개념과 애드혹 네트워크에서 다른 장치를 찾는 방법에 대해 소개한다. 또한 장치에서 제공하는 서비스를 호출하고, 여기서 발생하는 이벤트를 구독하는 방법에 대해서도 설명한다. 그리고 다른 장치에서 호출할 수 있는 서비스와 이벤트를 네트워크에 제공하는 서비스를 제작하는 방법에 대해서도 살펴본다.
4장, 'CoAP'에서는 CoAP 프로토콜의 기본 개념을 소개하고, 대역폭이 제한된 네트워크에서 장치끼리 이 프로토콜로 통신하는 방법에 대해 알아본다. 앞 장과 마찬가지로 콘텐츠를 게시하고 이벤트를 구독하는 방법뿐만 아니라, 대용량 데이터를 블록 단위로 보내는 방법과 장치에서 제공하는 리소스를 검색하는 방법도 소개한다.
5장, 'MQTT'에서는 MQTT 프로토콜의 기본 개념을 소개하고, 게시/구독 통신 패턴과 메시지 중개자를 통해 방화벽을 뛰어넘어 통신하는 방법에 대해 살펴본다.
6장, 'XMPP'에서는 XMPP 프로토콜의 기본 개념을 소개하고, 이 프로토콜에서 글로벌 ID를 제공하기 위해 메시지 중개자를 페더레이션하는 방법과 IoT 응용 개발에 필요한 다양한 통신 패턴에 대해 소개한다. 이 장에서는 친구 관계를 인증하고, 프레즌스를 구독하고, 메시지를 비동기식으로 보내고, 신뢰를 위임하고, 프로비저닝하는 것처럼 앞 장에서 보지 못한 새로운 통신 패턴도 소개한다.
7장, 'IoT 서비스 플랫폼'에서는 IoT 서비스를 빠르게 개발하고, 보안과 상호운용성, 확장성, 관리, 모니터링 등과 같이 대표적으로 거론되는 IoT 관련 기능을 구현하기 위해 IoT에 특화된 서비스 플랫폼을 활용하는 방법에 대해 설명한다.
8장, '프로토콜 게이트웨이'에서는 프로토콜 브릿지를 쉽게 만들 수 있도록 추상 모델을 활용하는 방법에 대해 소개한다. 이러한 프로토콜 브릿지를 사용하면 다양한 시스템과 다양한 프로토콜을 사용하는 서비스를 서로 엮을 수 있다. 이를 통해 IoT 기반으로 스마트 시티를 구축하기 위한 안전하고 상호 호환성을 보장하는 인프라를 구축할 수 있다.
9장, '보안과 상호운용성'에서는 대표적인 보안 위협과 공격 패턴을 소개하고, 이로부터 IoT 시스템을 보호하는 방법에 대해 살펴본다. IoT에서 상호운용성의 중요성에 대해서도 알아보면서 원하는 기능을 구현하기 위해 특정한 기술에 종속되지 않도록 시스템을 구성하는 방법에 대해서도 설명한다.
부록 A, '프로젝트 개발 환경 및 프로그래밍 기초'는 1장에 대한 보완 내용으로서, 이 책의 예제에서 사용하는 콘솔 애플리케이션의 기본 구조와 사용법, 센서 값 샘플링, 오브젝트 데이터베이스를 통해 간단히 데이터의 영속성을 보장하는 방법, 액추에이터 프로젝트에서 제어 연산을 구현하는 방법, 이 책의 예제를 구성하는 데 사용한 부품에 대해 소개한다
부록 B, 'HTTP 프로젝트 구현 기법'은 2장에 대한 보완 내용으로서, HTTP의 기초와 HTTP 프로토콜의 기본 개념, 센서 데이터의 쿼리 파라미터, 이벤트 구독 메커니즘 구현 방법에 대해 설명한다.
부록 C, 'UPnP 프로젝트 구현 기법'은 3장에 대한 보완 내용으로서, UPnP의 기초와 지원하는 데이터 타입, 카메라 웹 인터페이스 제작, 텍스트 인코딩 과정의 문제점, 카메라의 사진을 메일로 보내는 방법, 네트워크 상의 카메라 관리 방법에 대해 설명한다.
부록 D, 'XMPP 프로젝트 구현 기법'은 6장에 대한 보완 내용으로서, 인증서의 개념과 처리 과정, 설치하는 방법을 다루고, 채팅 인터페이스를 추가하고 QR코드를 생성하는 방법에 대해 설명한다.

저자/역자 소개

지은이의 말

IoT(Internet of Thing, 사물인터넷)는 현재 IT 분야에서 대표적으로 손꼽히는 주제 중 하나다. 주요 IT 기업에서는 IoT 시장을 수십조 달러에 이를 것으로 예상하고 있으며, 이미 IoT 연구와 개발에 수십억 이상의 금액을 투자하고 있다. 이러한 맥락으로 조만간 엄청난 수의 커넥티드 디바이스가 출시될 예정이다. 이런 통계만 보더라도 왜 IoT가 이처럼 많은 화제를 몰고 다니는지를 알 수 있을 것이다.
이러한 관심에도 불구하고 아직까지 IoT가 정확히 무엇인지를 정의하지 못한다. IoT가 무엇이든 상관없이 돈이 된다는 것만 알고 있을 뿐이다. 이처럼 돈이 되는 분야에는 자연스레 경쟁이 치열해지면서 여러 가지 혼선이 발생하곤 한다. 남들보다 좀 더 유리한 고지를 점령하고자 자사의 제품을 부각할 수 있는 새로운 용어를 개발하기도 하는데, 소비자로부터 좀 더 주목을 받기 위해 경쟁하면서 등장한 용어를 몇 가지만 예로 들면 IoE(Internet of Everything, 만물 인터넷), WoT(Web of Things, 사물 웹), IoPT(Internet of People and Things, 사람과 사물 간 인터넷) 등이 있다. 여기에 빅데이터, M2M(Machine-to-Machine), CPS(Cyber-Physical Systems) 등이 가미되면서 상황은 더욱 혼란스러워지고 있다.
이렇게 IoT의 실체와 정의에 대한 의견이 다양하기 때문에 IoT라는 주제로 책을 쓰기는 좀처럼 쉽지 않았다. 기술적으로 어렵다기보다는 이 책에서 다룰 주제와 범위를 정하기 어려웠기 때문이다. 따라서 이 책을 집필하기 전에 IoT라는 개념부터 최대한 간단하고 정확하게, 그러면서도 논란을 최소화할 수 있도록 정의해야 했다.

IoT의 정의는 다음과 같은 4가지 주요 요소로 나뉜다.
■ 연결: 주로 통신 프로토콜을 지칭한다.
■ 사물: 센서와 액추에이터, 컨트롤러와 같은 사물을 다룬다.
■ 사람의 개입이 없는 제어: 프로비저닝과 같은 기술을 다룬다.
■ 인터넷: ID, 인증, 권한 검사와 같은 보안 기술과 상호운용성과 관련 있다.

이 책에서는 라즈베리 파이를 이용해 실제로 작동하는 예제를 만들어보면서, 이러한 네 가지 개념이 구체적으로 어떻게 적용되고 있는지 직접 확인해본다.

지은이 소개

피터 웨허(Peter Waher)

스칸디나비아 지역에서 시작해 현재 4대륙에 지사를 운영하고 있는 IoT 응용 개발 및 플랫폼 전문 회사인 클레이스터(Clayster)의 공동 창업자다. 현재는 클레이스터 칠레 연구소의 CEO로 근무하고 있으며, 파트너 회사에게 개발 관련 노하우를 제공하고, IoT 기술을 확산하는 일을 하고 있다. 수학자이자 상용 항공기 조종사이며 컴퓨터 게임 개발자이기도 한 그는 어셈블리를 이용한 저수준 프로그래밍부터 고수준 시스템 설계 및 아키텍처까지, 컴퓨터를 비롯한 여러 장치에 대한 통신 관련 기술에 대한 20년 경력을 보유하고 있다. 현재는 IEEE, UPnP, XSF 같은 여러 표준 기구에서 IoT 관련 표준 작업에 참여하고 있다. 제작한 IoT용 스마트 애플리케이션과 IP-TV 응용인 ‘Energy Saving through Smart Applications’는 Cultural and Societal Participation and Collaboration Tools 분야에서 Urban Living Labs 글로벌 쇼케이스 어워드를 수상하기도 했다. 링크드인(http://linkedin.com/in/peterwaher)을 통해 저자와 만나볼 수 있다.

옮긴이의 말

최근 IoT, 사물인터넷에 대한 관심이 부쩍 늘어난 것을 느낄 수 있습니다. 특히 아두이노나 라즈베리 파이처럼 손쉽게 접할 수 있는 플랫폼이 저렴한 가격으로 등장하면서 더욱 부담없이 접할 수 있는 여건이 마련된 것도 큰 영향을 미치지 않았나 생각합니다.
소프트웨어 관련 분야에서 그 동안 겪은 경험에 비춰볼 때 IoT는 새로우면서도 새롭지 않은 주제이기도 합니다. 임베디드 시스템과 네트워크 프로그래밍을 개발해본 경험이 있거나, M2M이나 센서 네트워크 분야를 오랫동안 연구하던 사람이라면 한 번쯤은 IoT와 관련된 영역 중 최소한 한 가지 이상은 경험해 본 적이 있을 것입니다. 저처럼 주로 소프트웨어만 다루고, 그나마 다뤄본 임베디드 시스템도 소프트웨어 쪽에 비중을 두고 개발해본 이들에게는 전기 및 전자공학 관련 지식을 좀 더 다뤄줬으면 좋았겠다는 아쉬움이 있을 수 있으나, 사실 이러한 내용에 대한 자료는 서점과 웹에 넘쳐나고 있습니다. 오히려 기존 자료나 도서들은 사물인터넷의 관점에서 ‘인터넷’보다는 ‘사물’에 더 치우쳐 설명하지 않았나 하는 느낌이 들기도 했습니다. 이런 관점에서 볼 때 사물 자체에 대한 설명보다는 이들을 연결해주기 위한 방법에 대해 네트워크 프로토콜 중심으로 설명한다는 점에서 이 책이 꽤 신선하게 느껴졌습니다. IoT를 위한 최선의 기술을 제시해주진 못하더라도, 최소한 이러한 기술을 찾거나 최적의 솔루션을 구성하는 안목을 높이는 데 도움이 될 것이라고 생각합니다.
이 책에서는 다양한 통신 프로토콜로 IoT 장치를 엮는 기술에 초점을 맞추다 보니, 라즈베리 파이나 C# 언어를 비롯한 이 책에 나온 설명과 예제를 이해하는 데 필요한 요소 기술에 대해서는 자세한 설명은 생략하고 간략히 설명하고 넘어갑니다. 아두이노나 라즈베리 파이에 대한 기본 설정과 조립에는 어느 정도 자신 있으면서, 아직 여러 대의 기기를 네트워크에 맞물려 작동하는 시스템을 만들어본 경험은 없는 독자에게 가장 잘 맞는 책이라 볼 수 있습니다. 그러나 IoT 분야를 처음 접하고 배경 지식도 충분히 갖추지 않은 독자라 하더라도, 기본적인 전산 지식만으로도 부록에 나온 보충 설명을 참고해 충분히 따라갈 수 있습니다. 관련 기술에 대한 자료가 이미 웹이나 서점에 많이 나와 있기 때문에, 부록의 설명만으로 충분하지 않더라도 큰 어려움이 없이 이 책을 읽을 수 있을 것입니다.
간혹 표현이 난해하기도 하고, 이를 보완하기 위해 원서의 저자도 뒤늦게 원문의 절반에 육박하는 부록을 추가하기도 했습니다. 5개 장에 걸친 부록을 통해 본문의 내용을 보충해주는 여러 자료들을 참조할 수 있습니다. 독자들도 이 책을 통해 더 많은 것을 느끼고 배우길 바랍니다.

옮긴이 소개

남기혁

고려대 컴퓨터학과에서 학부와 석사 과정을 마친 후 한국전자통신연구원에서 선임 연구원으로 재직하던 중 네트워크 제어 및 검증 솔루션 회사인 ㈜프리스티를 창업했다. 관심 분야는 SDN과 IoT를 비롯한 네트워크 제어 및 응용 기술이다. 에이콘출판사에서 출간한 『GWT 구글 웹 툴킷』(2008), 『해킹 초보를 위한 USB 공격과 방어』(2011), 『HTML5 비디오』(2012), 『자바 7의 새로운 기능』(2013), 『iOS 해킹과 보안 가이드』(2014), 『Neutron 오픈스택 네트워킹』(2015) 등을 번역했다.

목차

목차
  • 1장 실습 환경
    • 센서 프로젝트
      • 라즈베리 파이 설정
      • 클레이스터 라이브러리
      • 하드웨어 구성
      • 하드웨어 제어
      • 하드웨어 인터페이스 만들기
      • 코드에서 센서 값 표현하기
      • 데이터 영속성 보장
      • 센서 값에 대한 외부 전달용 포맷
      • 센서 데이터 내보내기
    • 액추에이터 프로젝트
      • 하드웨어 구성
      • 하드웨어 인터페이스 만들기
    • 컨트롤러 프로젝트
      • 코드에서 센서 값 표현하기
      • 센서로부터 받은 데이터 파싱
      • 제어 상태 계산하기
    • 카메라 프로젝트
      • 하드웨어 구성
      • 라즈베리 파이의 시리얼 포트 설정
      • 하드웨어 인터페이스 만들기
      • 디폴트 설정 값
      • 설정 속성 추가
      • 설정 값 유지
      • 현재 설정 값 유지
      • 카메라 초기화
    • 정리

  • 2장 HTTP
    • HTTP 개요
    • 센서 프로젝트에 HTTP 기능 추가
      • 센서에 HTTP 서버 설치
      • 센서에 HTTPS 서버 설정
      • 루트 메뉴 추가
      • 측정한 데이터를 HTML 페이지에 표시
      • 동적으로 그래프 생성
      • 센서 데이터에 대한 웹 리소스 생성
      • 리드아웃 요청 처리
      • 센서 데이터를 외부에 제공하는 기능 테스트
      • 사용자 인증
      • 네트워크 성능 향상을 위해 이벤트 사용하기
    • 액추에이터 프로젝트에 HTTP 기능 추가기
      • 웹 서비스에 대한 웹 리소스 만들기
      • 디지털 출력을 하나씩 다루기
      • 디지털 출력 전체를 한꺼번에 다루기
      • 알람 출력 다루기
      • 테스트 폼
      • WSDL 문서 보기
      • REST 방식 웹 서비스 만들기
    • 컨트롤러 프로젝트에 HTTP 기능 추가
      • 이벤트 구독
      • 제어용 스레드 만들기
      • 액추에이터 제어
    • 정리

  • 3장 UPnP
    • UPnP
      • 서비스 아키텍처 구성
      • 장치 설명서와 서비스 설명서
    • 장치 설명서 만들기
      • 장치 종류 지정
      • 사람도 읽기 좋게 표현하기
      • 장치 ID 지정
      • 아이콘 추가
      • 서비스 정보 지정
      • 웹에 표현할 페이지의 URL 지정
    • 서비스 설명서 만들기
      • 액션 추가
      • 상태 변수 추가
      • 고유 장치 이름 지정
    • 웹 인터페이스 만들기
    • UPnP 인터페이스 만들기
      • UPnP 리소스 등록
      • 빈 칸 채우기
      • SSDP 지원 기능 만들기
      • 네트워크에 장치 알리기
      • 검색에 응답하기
    • 카메라로 찍은 사진을 제공하는 서비스 만들기
      • 이벤트 상태 변수의 초기화
      • 웹 서비스의 프로퍼티를 제공하는 메소드 정의
      • 서비스 프로퍼티 추가
      • 액션 추가
    • 카메라
      • 컨트롤러에 UPnP 설정
      • 장치와 서비스 찾기
      • 이벤트 구독
      • 이벤트 받기
      • 액션 실행
    • 정리

  • 4장 CoAP
    • HTTP 바이너리 만들기
      • CoAP 관련 개발 도구
    • 센서 프로젝트에 CoAP 기능 추가
      • 첫 CoAP 리소스 만들기
      • 이벤트 알림 직접 발생하기
      • 데이터 리드아웃 리소스 등록
      • XML 리턴
      • JSON 리턴
      • 일반 텍스트 리턴
      • CoAP 리소스 찾기
      • CoAP 리소스 테스트
    • 액추에이터 프로젝트에 CoAP 기능 추가
      • 컨트롤 리소스 정의
      • CoAP에서 URL 파싱
      • CoAP로 출력 제어
    • 컨트롤러에 CoAP 기능 추가
      • 리소스 모니터링
      • 알림 받기
      • 제어 동작 수행
    • 정리

  • 5장 MQTT
    • 게시하고 구독하기
    • 센서 프로젝트에 MQTT 기능 추가
      • 스레드의 라이프 사이클 관리
      • 중요한 이벤트에 대한 플래그 설정
      • MQTT 서버에 연결
      • 콘텐츠 게시
    • 액추에이터에 MQTT 기능 추가
      • 토픽 콘텐츠 초기화
      • 토픽 구독
      • 게시된 콘텐츠 받기
      • 콘텐츠 디코딩하고 파싱하기
    • 컨트롤러에 MQTT 기능 추가
      • 센서에서 발생한 이벤트 처리
      • 센서 값 디코딩하고 파싱하기
      • 센서 이벤트 구독
      • 액추에이터 제어
        • LED 출력 제어
        • 알람 출력 제어
    • 정리

  • 6장 XMPP
    • XMPP의 기본 구조와 동작
      • 페더레이션으로 무한대로 확장하기
      • 글로벌 ID 제공
      • 통신 권한 검사
      • 온라인 상태에 있는지 확인
      • XML 사용
      • 통신 패턴
      • XMPP 확장
      • 서버에 연결하기
      • 보안을 적용하여 프로비저닝하기
    • XMPP 지원
      • XMPP 네트워크에 연결
      • 연결 상태 모니터링
      • 친구에게 알림 보내기
      • XMPP를 통해 들어온 HTTP 요청 처리
    • 보안 기능 추가
      • 프로비저닝의 기본 구조와 동작
      • Thing Registry 인터페이스 초기화
      • 장치 등록
      • 공용 장치 업데이트
      • 장치에 대한 사용 권한 요청
      • 레지스트리에서 장치 삭제
      • 장치에 대한 사용 권한 포기
      • 프로비저닝 서버 인터페이스의 초기화
      • 친구 요청 처리
      • 친구 관계를 끊기
      • 프로비저닝 서버 찾기
      • 레지스트리 정보 제공
      • 연결 유지
      • 친구 관계 맺기
      • 프레즌스 구독 요청 처리
      • 중단된 친구 맺기 과정 계속 진행하기
      • 센서에 XMPP기능 추가
      • 센서 서버 인터페이스 추가
      • 이벤트 구독 업데이트
      • contract 게시
    • 액추에이터에 XMPP 기능 추가
      • 컨트롤러 서버 인터페이스 추가
      • 카메라에 XMPP 기능 추가
    • 컨트롤러에 XMPP 기능 추가
      • 센서 클라이언트 인터페이스 만들기
        • 센서 데이터 구독
        • 들어온 센서 데이터 처리
        • 컨트롤러 클라이언트 인터페이스 만들기
      • 카메라 클라이언트 인터페이스 만들기
      • XMPP로 카메라 이미지 가져오기
      • 상대방이 제공하는 기능 확인
      • 상대방 상태 확인하기
      • 규칙이 변경됐는지 확인
    • 모두 합치기
    • 정리

  • 7장 IoT 서비스 플랫폼
    • IoT 플랫폼 고르기
    • 클레이스터 플랫폼
      • 클레이스터 플랫폼 다운로드
      • 서비스 프로젝트 만들기
      • 레퍼런스 추가
      • 클레이스터 모듈 만들기
      • 서비스 실행
      • 패키지 매니페스트 사용
      • 비주얼 스튜디오에서 실행
      • 클레이스터 시스템 설정
      • CMT
      • 데이터 소스 살펴보기
    • XMPP로 장치 다루기
      • 센서에 대한 XMPP 인터페이스 클래스 만들기
        • 가장 적합한 클래스 찾기
        • 센서 데이터 구독
        • 가져온 센서 데이터 해석
      • 액추에이터에 대한 XMPP 인터페이스 클래스 만들기
        • 제어 연산 커스터마이즈
      • 카메라에 대한 XMPP 인터페이스 클래스 만들기
    • 컨트롤러 애플리케이션 만들기
      • 렌더링 이해하기
      • 애플리케이션 클래스 정의
      • 컨트롤러 초기화
      • 제어 규칙 추가
      • 애플리케이션 레퍼런스 이해하기
      • 브리플릿 정의
      • 게이지 표시
      • 바이너리 시그널 표시
      • 클라이언트에게 업데이트 알리기
      • 애플리케이션 완성
      • 애플리케이션 설정
      • 10-foot 인터페이스 애플리케이션으로 서비스 보기
    • 정리

  • 8장 프로토콜 게이트웨이
    • 프로토콜 브릿징 이해
    • 추상 모델 사용하기
    • 클레이스터 추상 모델
      • 편집 가능한 데이터 소스
      • 편집 가능한 오브젝트
      • 공통 데이터 소스
      • 핵심 프로퍼티와 메소드 오버라이드
        • 구조 제어 관련 프로퍼티와 메소드
        • 속성 게시 관련 프로퍼티와 메소드
        • 명령 게시 관련 프로퍼티와 메소드
      • 장치와 통신하기
        • 장치 읽기
        • 장치 설정
    • CoAP 게이트웨이 아키텍처
    • 정리

  • 9장 보안과 상호운용성
    • IoT 환경에서 발생할 수 있는 문제
      • 기존 솔루션을 다시 만드는 이유
    • 네 이웃을 알라
      • 흔히 볼 수 있는 공격 유형
      • 서비스 거부
      • 자격증명 추측하기
      • 저장된 자격증명에 접근하기
      • 중간자 공격
      • 네트워크 통신 스니핑
      • 포트 스캐닝과 웹 크롤링
      • 검색 기능과 와일드카드
      • 암호 깨기
    • 보안 관련 도구
      • 가상 사설 네트워크, VPN
      • X.509 인증서와 암호화
      • ID 인증
      • 유저네임과 패스워드
      • 메시지 중개자와 프로비저닝 서버
      • 중앙 집중형 아키텍처와 분산 아키텍처의 비교
    • 상호운용성의 중요성
      • 복잡도 줄이기
      • 비용 절감
      • 새로운 서비스로 장치 재활용하기
      • 보안과 상호운용성이 공존하기
    • 정리

  • 부록 A 프로젝트 개발 환경 및 프로그래밍 기초
    • 콘솔 애플리케이션
    • 샘플링과 히스토리
    • 오브젝트 데이터베이스
    • 제어
    • 부품 구성표

  • 부록 B HTTP 프로젝트 구현 기법
    • HTTP의 기초
    • 센서 데이터의 쿼리 파라미터
    • HTTP에서 제공하는 인증 방법
    • HTTP에서 이벤트 구독 메커니즘 구현

  • 부록 C UPnP 프로젝트 구현 기법
    • UPnP의 기초
    • UPnP에서 지원하는 데이터 타입
    • 카메라 웹 인터페이스
    • 텍스트 인코딩 관련 주의 사항
    • 카메라로 찍은 사진을 메일로 보내기
    • 카메라 관리

  • 부록 D XMPP 프로젝트 구현 기법
    • 인증서
    • 채팅 인터페이스

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안