WebRTC 프로그래밍 [실시간 P2P 통신 애플리케이션 개발]
- 원서명Getting Started with WebRTC (ISBN 9781782166306)
- 지은이롭 맨슨(Rob Manson)
- 옮긴이류영선
- ISBN : 9788960777934
- 14,000원
- 2015년 11월 19일 펴냄 (절판)
- 페이퍼백 | 140쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 웹 프로페셔널
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
요약
WebRTC는 브라우저 기반으로 플러그인 없이 화상통화 및 메신저, 파일 공유 등을 가능하게 해주는 P2P 통신 방법으로 W3C에서 표준화가 진행 중인 최신 웹 기술이다. 이 책에서는 WebRTC가 무엇이며, 어떻게 동작하고 구현하는지에 대해 체계적으로 설명한다. 또한 실제로 동작하는 잘 설계된 예제가 포함되어 있어 자신의 WebRTC 애플리케이션을 구축하고자 하는 개발자에게 좋은 지침서가 될 것이다.
이 책에서 다루는 내용
■ 대안으로 음성 전용 옵션을 제공하는 방법
■ 확장 가능한 웹 소켓 시그널링 서버의 제작
■ WebRTC 지원 브라우저의 감지 방법
■ 애플리케이션에 실시간 텍스트 채팅 지원
■ 드래그앤드롭 파일 공유로 다양한 협업을 제공하는 방법
■ RTCDataChannel로 실시간 데이터 공유하기
■ WebRTC 애플리케이션을 위한 상태 기반 사용자 인터페이스 디자인
■ 이미지와 영상의 후처리 및 분석에 사용할 수 있는 옵션들
이 책의 대상 독자
이 책은 웹 애플리케이션에 실시간 P2P(피어투피어(peer-to-peer)) 통신 기능을 추가하는 데 관심을 가지고 있지만, WebRTC 표준을 처음 접하는 개발자들에게 적합한 책이다. HTML과 자바스크립트에 대한 기본 경험만 있으면 충분하다.
이 책의 구성
1장, ‘웹 기반의 실시간 통신 소개’에서는 새로운 웹 기반의 실시간 통신, 즉 WebRTC(Web-based Real-Time Communication) 규격의 개념을 소개한다.
2장, ‘웹 기반 실시간 통신의 기술적인 소개’에서는 새로운 WebRTC 규격의 기술적인 부분을 소개한다.
3장, ‘실시간 화상 통화 애플리케이션 제작’에서는 mediaStream과 RTCPeerConnection API를 사용하여 두 사용자 간 P2P 화상 채팅 애플리케이션을 만들어본다.
4장, ‘음성 전용 통화 애플리케이션 제작’에서는 3장에서 개발한 화상 채팅 애플리케이션을 음성 전용 통화 애플리케이션으로 전환하는 방법을 설명한다.
5장, ‘텍스트 기반 채팅 기능 추가’에서는 3장에서 개발한 화상 채팅 애플리케이션을 확장해 사용자 간 텍스트 기반 채팅을 지원하는 방법을 설명한다.
6장, ‘파일 공유 기능 추가’에서는 3장과 4장에서 개발한 화상 채팅 애플리케이션을 확장해 두 사용자 간에 파일 공유를 지원하는 방법을 알아본다.
7장, ‘예제 애플리케이션 1: 교육과 이러닝 이러닝’에서는 애플리케이션에 WebRTC를 도입할 때 필요한 내용들을 알아본다.
8장, ‘예제 애플리케이션 2: 팀 커뮤니케이션’에서는 팀 커뮤니케이션 애플리케이션에 WebRTC를 도입할 때 필요한 내용들을 알아본다.
목차
목차
- 1 웹 기반의 실시간 통신 소개
- WebRTC 소개
- WebRTC 사용
- 지금 당장 WebRTC를 사용해보자
- 브라우저 호환성
- PC 기반의 크롬과 파이어폭스
- 안드로이드 기반의 크롬과 파이어폭스
- 오페라
- 마이크로소프트
- 애플
- 최신 상황 업데이트
- 정리
- 2 웹 기반 실시간 통신의 기술적인 소개
- 통신 설정
- 일반적인 흐름
- 사용자 연결
- 시그널링 시작
- 후보 찾기
- 미디어 세션 협상
- RTCPeerConnection 스트림 시작
- 웹 소켓 사용
- 다른 선택 가능한 시그널링 방법
- 일반적인 흐름
- MediaStream API
- RTCPeerConnection API
- 발신자 흐름
- onicecandidate 핸들러 등록
- onaddstream 핸들러 등록
- message 핸들러 등록
- 로컬 카메라 접근을 위한 getUserMedia 사용
- JSEP 제안/응답 처리
- 수신자 흐름
- onicecandidate 핸들러 등록
- onaddstream 핸들러 등록
- message 핸들러 등록
- 로컬 카메라 접근을 위한 getUserMedia 사용
- JSEP 제안/응답 처리
- RTCPeerConnection의 위치
- 발신자 흐름
- RTCDataChannel API
- 정리
- 통신 설정
- 3 실시간 화상 통화 애플리케이션 제작
- 간단한 WebRTC 화상 통화 설정
- 웹 서버를 이용한 두 사용자 연결
- 시그널링 서버 설정
- 발신자의 브라우저에서 제안 생성
- 수신자의 브라우저에서 응답 생성
- 로컬 비디오 스트림 미리보기
- 피어투피어 스트림 생성
- 스트림 처리 옵션
- 챗룰렛 앱으로 확장
- 정리
- 4 음성 전용 통화 애플리케이션 제작
- 간단한 WebRTC 음성 전용 통화 설정
- 음성 전용 통화 애플리케이션을 위한 HTML 사용자 인터페이스
- 시그널링 서버에 음성 전용 흐름 추가
- 오디오 스트림 처리 옵션
- 정리
- 5 텍스트 기반 채팅 기능 추가
- 화상 통화 애플리케이션에 텍스트 기반의 채팅 추가
- 텍스트 기반 채팅을 위한 HTML 사용자 인터페이스
- 채팅 지원을 위한 자바스크립트 함수 추가
- 서버에서의 텍스트 기반 채팅 시그널 처리
- 텍스트 메시지 처리 옵션
- 정리
- 6 파일 공유 기능 추가
- 화상 통화 애플리케이션에 파일 공유 기능 추가
- 파일 공유를 위한 HTML 사용자 인터페이스
- 파일 공유 지원을 위한 자바스크립트 함수 추가
- <input> 요소로 파일 추가
- 드래그앤드롭 지원 추가
- 웹 소켓을 통한 파일 전송을 지원하기 위한 자바스크립트 추가
- 서버에서의 파일 공유 시그널 처리
- 미리보기 썸네일 전송
- 진행 상황 업데이트 제공
- RTCDataChannel 연결 설정
- RTCDataChannel 연결을 통한 파일 전송
- 다른 파일 공유 옵션
- 정리
- 7 예제 애플리케이션 1: 교육과 이러닝
- WebRTC를 교육과 이러닝에 적용
- 전체 애플리케이션 구조
- 교육자
- 학생
- WebRTC 가능 브라우저
- 기존 또는 새로운 웹 애플리케이션
- 시그널링 서버
- TURN 서버
- 보관 서버
- 직면할 수 있는 잠재적인 문제
- 개인 정보 보호
- 저작권 및 지적재산권
- 제한적인 네트워크
- 제한적인 표준운영환경
- 구형 학생용 브라우저
- 상호 운용성
- WebRTC가 제공해주는 혜택
- 교육자의 기회
- 정리
- 8 예제 애플리케이션 2: 팀 커뮤니케이션
- WebRTC를 팀 커뮤니케이션에 적용
- 전체 애플리케이션 구조
- 관리자
- 팀 구성원
- WebRTC 가능 브라우저
- 기존 또는 새로운 웹 애플리케이션
- 시그널링 서버
- TURN 서버
- 메시징 서버
- 직면할 수 있는 잠재적인 문제
- 개인 정보 보호
- 데이터 보안
- 제한적인 네트워크
- 제한적인 표준운영환경
- 상호운용성
- 시간대
- WebRTC가 제공해주는 혜택
- 관리자의 기회
- 정리