HOME > Detail View

Detail View

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

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

Material type
단행본
Personal Author
Waher, Peter 남기혁, 역
Title Statement
실전 IoT 네트워크 프로그래밍 : 라즈베리 파이와 C#을 활용한 사물인터넷 통신 프로토콜과 서비스 플랫폼 이해 / 피터 웨허 지음 ; 남기혁 옮김
Publication, Distribution, etc
의왕 :   에이콘,   2015  
Physical Medium
447 p. : 삽화 ; 24 cm
Series Statement
acorn+PACKT technical book
Varied Title
Learning Internet of Things : explore and learn about Internet of Things with the help of engaging and enlightening tutorials designed for the Raspberry Pi
ISBN
9788960777231 9788960772106 (Set)
General Note
색인수록  
부록: A. 프로젝트 개발 환경 및 프로그래밍 기초, B. HTTP 프로젝트 구현 기법, C. UPnP 프로젝트 구현 기법 외  
Subject Added Entry-Topical Term
Raspberry Pi (Computer) Wireless communication systems Computer networks --Management Internet of things Database management
000 00000cam c2200205 c 4500
001 000045848976
005 20151105142236
007 ta
008 151104s2015 ggka 001c kor
020 ▼a 9788960777231 ▼g 94000
020 1 ▼a 9788960772106 (Set)
035 ▼a (KERIS)BIB000013799069
040 ▼a 248003 ▼c 211009 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.3 ▼2 23
085 ▼a 005.3 ▼2 DDCK
090 ▼a 005.3 ▼b 2015z1
100 1 ▼a Waher, Peter
245 1 0 ▼a 실전 IoT 네트워크 프로그래밍 : ▼b 라즈베리 파이와 C#을 활용한 사물인터넷 통신 프로토콜과 서비스 플랫폼 이해 / ▼d 피터 웨허 지음 ; ▼e 남기혁 옮김
246 1 9 ▼a Learning Internet of Things : ▼b explore and learn about Internet of Things with the help of engaging and enlightening tutorials designed for the Raspberry Pi
260 ▼a 의왕 : ▼b 에이콘, ▼c 2015
300 ▼a 447 p. : ▼b 삽화 ; ▼c 24 cm
440 0 0 ▼a acorn+PACKT technical book
500 ▼a 색인수록
500 ▼a 부록: A. 프로젝트 개발 환경 및 프로그래밍 기초, B. HTTP 프로젝트 구현 기법, C. UPnP 프로젝트 구현 기법 외
650 0 ▼a Raspberry Pi (Computer)
650 0 ▼a Wireless communication systems
650 0 ▼a Computer networks ▼x Management
650 0 ▼a Internet of things
650 0 ▼a Database management
700 1 ▼a 남기혁, ▼e
900 1 0 ▼a 웨허, 피터, ▼e
945 ▼a KLPA

Holdings Information

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.3 2015z1 Accession No. 121234704 Availability Available Due Date Make a Reservation Service B M

Contents information

Book Introduction

acorn+PACKT 시리즈. 이 책에서는 사물인터넷, 즉 IoT에서 활용할 수 있는 대표적인 프로토콜 HTTP, UPnP, CoAP, MQTT, XMPP를 하나씩 소개하고, 각 프로토콜을 이용해 네트워크 토폴로지를 구성하고 통신하는 방법과 방화벽이 통신에 미치는 영향에 대해 알아본다.

IoT 통신의 보안을 위한 핵심 도구로서 사물 레지스트리(Thing registry)와 신뢰 위임(delegation of trust)을 이용하는 방법도 소개한다. 여러 프로토콜을 하나씩 살펴본 뒤에는 IoT의 강력함과 유연성을 그대로 유지하면서 최종 사용자와 사적인 데이터를 보호하는 보안 개념이 반영된 아키텍처를 구성하는 방법에 대해 알아본다.

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

★ 요약 ★

이 책에서는 사물인터넷, 즉 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코드를 생성하는 방법에 대해 설명한다.


Information Provided By: : Aladin

Author Introduction

피터 웨허(지은이)

스칸디나비아 지역에서 시작해 현재 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)을 통해 저자와 만나볼 수 있다.

남기혁(옮긴이)

고려대 컴퓨터학과에서 학부와 석사 과정을 마친 후 한국전자통신연구원에서 선임연구원으로 재직하고 있다. 한빛미디어에서 출간한 『Make: 센서』(2015), 『메이커 매뉴얼』(2016), 『이펙티브 디버깅』(2017), 『전문가를 위한 C++』(2019), 『리팩토링 2판』(2020)과 에이콘출판사에서 출간한 『현대 네트워크 기초 이론』(2016), 『도커 컨테이너』(2017), 『스마트 IoT 프로젝트』(2017), 『파이썬으로 배우는 인공지능』(2017), 『메이커를 위한 실전 모터 가이드』(2018), 『Go 마스터하기』(2018), 『자율주행 자동차 만들기』(2018), 『The Hundred-Page Machine Learning Book』(2019), 『스콧 애론슨의 양자 컴퓨팅 강의』(2021), 『자율주행차량 기술 입문』(2021) 등을 번역했다.

Information Provided By: : Aladin

Table of Contents

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 프로젝트 구현 기법 
__인증서 
__채팅 인터페이스 
__QR 코드

New Arrivals Books in Related Fields