Top

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를 도입할 때 필요한 내용들을 알아본다.

저자/역자 소개

지은이의 말

이 책에서는 WebRTC란 무엇이며, 어떻게 동작하고, 어떻게 웹 애플리케이션에 추가할 수 있는지에 대한 실질적인 정보를 제공한다. 또한 WebRTC를 지원하는 애플리케이션을 지금 당장 구축할 수 있도록, 잘 설계된 예제 코드도 포함한다.

WebRTC는 웹 기반의 실시간 통신을 제공하여, 진정한 ‘웹’이 무엇인가에 대한 시각에 혁신적인 변화를 주었다. 브라우저만으로 오디오와 비디오를 스트리밍할 수 있게 된 것은 일반 전화 및 화상 회의 산업에까지 영향을 미칠 수 있는 중요한 혁신이다. 하지만 이것은 겨우 시작에 불과하다. 자바스크립트 개발자가 카메라나 마이크의 가공되지 않은 데이터에까지 접근할 수 있게 됨으로써 음성, 동작을 비롯한 여러 가지 다양한 방법으로 사용자와 상호 작용할 수 있는 완전히 새로운 형태의 동적 웹 애플리케이션의 제작이 가능하게 된 것이다.

또한 WebRTC는 센서를 비롯한 여러 장치로부터 수집한 동적인 데이터를 상호교환할 수 있는 실시간 데이터 채널도 도입했다. 웹 개발자에게 정말 좋은 기회가 될 것이다. 하지만, WebRTC의 새로운 개념 때문에 경험이 풍부한 웹 개발자도 시작하기에 어려움을 겪을 수 있다.

WebRTC는 하나의 단순한 기술이 아니라 여러 표준과 프로토콜의 집합체이며, 아직도 개발 중인 기술이다. 이 책에서 제시하는 예제는 WebRTC 표준의 1.0 사전 pre 버전의 최신 규격을 기반으로 한다. 하지만 표준이 아직 제정 중이어서 향후 변경될 가능성이 있다. 첫 번째로, 세션 디스크립션 프로토콜(Session Description Protocol)이 WebRTC 통화 관리 프로세스에 통합될 가능성이 있다. 두 번째로 통화 설정 과정에서 사용되는 제안(offer)/응답(answer) 모델이 일반적으로 사용될 수 있는 가능성이다. 마지막으로 프라미스(Promise)(이전에는 Futures로 알려졌음)로 불리는 새로운 디자인 패턴을 WebRTC에 통합하려는 강한 움직임도 있다. 이 모든 것은 WebRTC가 최첨단의 기술이며, 동적이고 흥미로운 기술임을 보여준다. 지금이야말로 계속 성장하고 발전 중인 WebRTC 기술에 참여할 수 있는 좋은 기회다.

이 책이 실질적인 가이드가 되어 WebRTC를 여러분의 애플리케이션에 지금 바로 적용할 수 있기를 기대한다.

지은이 소개

롭 맨슨(Rob Manson)

세계 최고의 증강 현실(Augmented Reality) 콘텐츠 관리 시스템 회사인 buildAR.com의 공동 설립자이자 CEO다. W3C의 증강 웹 커뮤니티 그룹(Augmented Web Community Group) 의장이자 ISO, W3C, 크로너스 그룹(Khronos Group)의 초청 전문가다. ARStandards.org의 공동 설립자 중 한 명이며, 전 세계 AR과 표준 커뮤니티에서 왕성하게 활동하는 기술전도자(evangelist)다. 주기적으로 증강 웹과 증강 현실, WebRTC, 멀티 디바이스 플랫폼에 대한 주제로 강의를 하고 있다.

옮긴이의 말

WebRTC는 브라우저 기반으로 (플러그인 없이) 화상 통화 및 메신저, 파일 공유 등을 가능하게 해주는 P2P 통신 방법으로 W3C에서 표준화가 진행 중인 최신 웹 기술이다. 아직 표준이 완료되지 않아 구글 크롬이나 모질라 파이어폭스, 오페라 브라우저에서만 사용이 가능하지만, 통신사나 단말기, 서비스 제공자와 상관없이 브라우저만 있으면 인터넷을 통해 전 세계 누구와도 화상 통화나 메신저, 파일 공유가 가능하기 때문에 많은 기업들과 개발자들이 주목하고 있는 기술이다. 이 기술로 원격 회의나 이러닝(e-learning), 보이스 콜, 원격 진료 등 다양한 응용이 가능해지기 때문에 많은 서드파티 개발사와 개발자들이 관심을 가지고 지켜볼 필요가 있다.

WebRTC가 이처럼 주목받는 기술이지만 한편 완성되지 않은 기술이다 보니, 국내뿐 아니라 국외에서도 체계적으로 이를 설명하는 자료가 아직 많지 않다. 그런 이유로 이 책을 처음 발견했을 때, 마치 가뭄 속 단비가 내리는 듯한 느낌이 들었다. 비교적 쉬운 기술임에도 처음 접하는 개발자에게는 어디서부터 어떻게 시작해야 할지 난감할 수밖에 없다. 이 책은 WebRTC에 관심을 갖고 자신의 애플리케이션에 다양한 실시간 통신 기술을 탑재하고자 하는 개발자들에게 좋은 출발점이 될 것이라 확신한다.

옮긴이 소개

류영선

소프트웨어 엔지니어로서 오랫동안 웹 브라우저와 웹 서버를 개발했다. 그 경험을 바탕으로 현재는 W3C 및 다양한 국제 표준화 단체에서 웹과 관련된 표준화 업무를 담당하고 있다. 최근에는 웹 기술을 PC에서 벗어나 모바일이나 DTV, 디지털 사이니지(Digital Signage), 웨어러블(Wearable), 오토모티브(Automotive) 등 다양한 IOT 디바이스에 접목하는 오픈 웹 플랫폼(Open Web Platform)에 관심을 가지고 관련 기술을 계속 연구 중이다. 에이콘출판사에서 펴낸 『반응형 웹 디자인』(2012)과 『실전 예제로 배우는 반응형 웹 디자인』(2014), 『HTML5 웹소켓 프로그래밍』(2014)을 번역했다.

목차

목차
  • 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가 제공해주는 혜택
    • 관리자의 기회
    • 정리

도서 오류 신고

도서 오류 신고

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

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

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