이미 소장하고 있다면 판매해 보세요.
|
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가 제공해주는 혜택 __관리자의 기회 __정리 |
|
★ 이 책에서 다루는 내용 ★
■ 대안으로 음성 전용 옵션을 제공하는 방법 ■ 확장 가능한 웹 소켓 시그널링 서버의 제작 ■ 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를 도입할 때 필요한 내용들을 알아본다. ★ 지은이의 말 ★ 이 책에서는 WebRTC란 무엇이며, 어떻게 동작하고, 어떻게 웹 애플리케이션에 추가할 수 있는지에 대한 실질적인 정보를 제공한다. 또한 WebRTC를 지원하는 애플리케이션을 지금 당장 구축할 수 있도록, 잘 설계된 예제 코드도 포함한다. WebRTC는 웹 기반의 실시간 통신을 제공하여, 진정한 ‘웹’이 무엇인가에 대한 시각에 혁신적인 변화를 주었다. 브라우저만으로 오디오와 비디오를 스트리밍할 수 있게 된 것은 일반 전화 및 화상 회의 산업에까지 영향을 미칠 수 있는 중요한 혁신이다. 하지만 이것은 겨우 시작에 불과하다. 자바스크립트 개발자가 카메라나 마이크의 가공되지 않은 데이터에까지 접근할 수 있게 됨으로써 음성, 동작을 비롯한 여러 가지 다양한 방법으로 사용자와 상호 작용할 수 있는 완전히 새로운 형태의 동적 웹 애플리케이션의 제작이 가능하게 된 것이다. 또한 WebRTC는 센서를 비롯한 여러 장치로부터 수집한 동적인 데이터를 상호교환할 수 있는 실시간 데이터 채널도 도입했다. 웹 개발자에게 정말 좋은 기회가 될 것이다. 하지만, WebRTC의 새로운 개념 때문에 경험이 풍부한 웹 개발자도 시작하기에 어려움을 겪을 수 있다. WebRTC는 하나의 단순한 기술이 아니라 여러 표준과 프로토콜의 집합체이며, 아직도 개발 중인 기술이다. 이 책에서 제시하는 예제는 WebRTC 표준의 1.0 사전 pre 버전의 최신 규격을 기반으로 한다. 하지만 표준이 아직 제정 중이어서 향후 변경될 가능성이 있다. 첫 번째로, 세션 디스크립션 프로토콜(Session Description Protocol)이 WebRTC 통화 관리 프로세스에 통합될 가능성이 있다. 두 번째로 통화 설정 과정에서 사용되는 제안(offer)/응답(answer) 모델이 일반적으로 사용될 수 있는 가능성이다. 마지막으로 프라미스(Promise)(이전에는 Futures로 알려졌음)로 불리는 새로운 디자인 패턴을 WebRTC에 통합하려는 강한 움직임도 있다. 이 모든 것은 WebRTC가 최첨단의 기술이며, 동적이고 흥미로운 기술임을 보여준다. 지금이야말로 계속 성장하고 발전 중인 WebRTC 기술에 참여할 수 있는 좋은 기회다. 이 책이 실질적인 가이드가 되어 WebRTC를 여러분의 애플리케이션에 지금 바로 적용할 수 있기를 기대한다. ★ 옮긴이의 말 ★ WebRTC는 브라우저 기반으로 (플러그인 없이) 화상 통화 및 메신저, 파일 공유 등을 가능하게 해주는 P2P 통신 방법으로 W3C에서 표준화가 진행 중인 최신 웹 기술이다. 아직 표준이 완료되지 않아 구글 크롬이나 모질라 파이어폭스, 오페라 브라우저에서만 사용이 가능하지만, 통신사나 단말기, 서비스 제공자와 상관없이 브라우저만 있으면 인터넷을 통해 전 세계 누구와도 화상 통화나 메신저, 파일 공유가 가능하기 때문에 많은 기업들과 개발자들이 주목하고 있는 기술이다. 이 기술로 원격 회의나 이러닝(e-learning), 보이스 콜, 원격 진료 등 다양한 응용이 가능해지기 때문에 많은 서드파티 개발사와 개발자들이 관심을 가지고 지켜볼 필요가 있다. WebRTC가 이처럼 주목받는 기술이지만 한편 완성되지 않은 기술이다 보니, 국내뿐 아니라 국외에서도 체계적으로 이를 설명하는 자료가 아직 많지 않다. 그런 이유로 이 책을 처음 발견했을 때, 마치 가뭄 속 단비가 내리는 듯한 느낌이 들었다. 비교적 쉬운 기술임에도 처음 접하는 개발자에게는 어디서부터 어떻게 시작해야 할지 난감할 수밖에 없다. 이 책은 WebRTC에 관심을 갖고 자신의 애플리케이션에 다양한 실시간 통신 기술을 탑재하고자 하는 개발자들에게 좋은 출발점이 될 것이라 확신한다. |