Top

HTML5 웹소켓 프로그래밍 [안전하고 확장 가능한 실시간 웹 애플리케이션 개발]

  • 원서명Getting Started with HTML5 WebSocket Programming (ISBN 9781782166962)
  • 지은이밴고스 피터니어스
  • 옮긴이류영선
  • ISBN : 9788960776487
  • 15,000원
  • 2014년 12월 19일 펴냄
  • 페이퍼백 | 136쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 웹 프로페셔널

책 소개

요약

HTML5 웹소켓(WebSocket)은 서버와 클라이언트 사이에서 전이중 양방향 통신을 제공하여 실시간 웹 응용프로그램이 가능하게 해준다. 이 책에서는 실제로 동작하는 채팅 예제 응용프로그램 작성을 통해 웹소켓의 기능을 상세하게 설명하고 현대적인 웹 응용프로그램을 만드는 전체 과정을 안내해준다. 또한 보안 레이어를 추가하고 구형 브라우저를 위한 추가적인 폴백 기능을 제공하는 과정을 차례차례 배울 수 있다. 이 책은 프론트엔드 웹 개발자들이 안전하고 확장 가능한 실시간 웹 응용프로그램을 개발하고 배포할 수 있도록 도움을 줄 것이다.

이 책에서 다루는 내용

■ 웹소켓 API의 개념과 우수성

■ 원격 서버에 연결하는 웹소켓 클라이언트와 다른 클라이언트로의 메시지 전송 구현

■ 기존의 기술과 지식을 사용한 웹소켓 서버의 구성

■ 모바일과 태블릿 기기용 네이티브 웹소켓 클라이언트의 구현

■ HTML5 웹소켓을 지원하지 않는 구버전 브라우저의 지원

■ 가능한 위험요소의 인지와 안전한 웹 응용프로그램의 구현

■ JSON을 사용한 복잡한 메시지의 구성

이 책의 대상 독자

이 책은 고성능의 실시간 웹 응용프로그램 구축을 원하는 모든 사람을 위한 책이다. 프론트엔드 웹 개발(HTML / XHTML, 자바스크립트)에 익숙하다면 이 책을 이해하는 데 큰 도움이 된다.

이 책의 구성

1장, ‘웹소켓 소개’에서는 웹소켓 프로토콜을 요점 위주로 간략하게 소개하고 웹의 양방향 통신 필요성에 대해 설명한다. 그리고 영감을 제공해주는 몇몇 실제 사례들을 소개한다.

2장, ‘웹소켓 API’에서는 웹소켓 API의 기본 개념을 소개하고 웹소켓 클라이언트 응용프로그램을 구현한다.

3장, ‘서버 구성’에서는 효과적으로 진정한 양방향 통신을 지원할 수 있게 서버 측의 주요 기능을 구현한다.

4장, ‘데이터 전송: 송신, 수신, 디코딩’에서는 웹소켓으로 텍스트, 이미지, 멀티미디어 등 다양한 유형의 데이터를 처리하는 방법을 설명한다.

5장, ‘보안’에서는 웹소켓 응용프로그램 실행 시 발생할 수 있는 몇 가지 일반적인 보안 위험에 대해 알아보고 시스템 안정성을 보장하는 방법을 제공한다.

6장, ‘에러 처리와 폴백’에서는 오류가 발생했을 때 처리하는 방법과 구형 브라우저에서 웹소켓 동작을 어떻게 에뮬레이션 할 수 있는지에 대한 해답을 제시한다.

7장, ‘모바일과 태블릿’에서는 웹소켓 기능을 모바일 세계로 확장해 아이폰이나 아이패드에서 웹소켓 앱을 네이티브로 실행하는 방법을 알아본다.

부록에서는 흥미로운 논쟁 기사를 포함한 몇 가지 추가 리소스를 제공한다.

저자/역자 소개

저자 서문

이 책은 양방향 통신의 진정한 힘을 소개하고, 새로운 HTML5 웹소켓 API로 양방향 통신을 구현하는 방법을 보여준다. 서버와 클라이언트를 구성하여 다양한 형식의 데이터를 전송하고, 전체 시스템을 보호하는 방법을 배울 수 있다.

웹소켓의 세계로 안내해 주는 이 책에서는, 웹소켓 API 소개를 시작으로, 모든 유형의 기기에서 동작하는 다기능 웹 응용프로그램을 구축할 수 있도록 유용한 실제 사례와 함께 자세히 설명한다. 쉬운 메커니즘을 적용하여 서로에게 메시지를 전송할 수 있는 웹 클라이언트와 웹 서버를 구성하는 방법을 배울 수 있다. 또한 적은 노력으로 이미지와 비디오 같은 다양한 데이터 형식을 전송하는 방법도 알게 될 것이다. 마지막으로, 더 많은 고객을 확보할 수 있도록 구형 브라우저를 위한 추가적인 폴백 기술과 솔루션을 제시한다.

이 책에서는 다양한 브라우저와 기기 사이에서 실시간 데이터를 전송하는 고성능 웹 응용프로그램의 구현에 필요한 단계별 레퍼런스를 제공한다.

저자 소개

밴고스 피터니어스 (Vangos Pterneas)

내추럴 유저 인터페이스(natural user interface)와 현대적 혁신 기술에 열정을 가지고 있는 소프트웨어 엔지니어다. 웹과 모바일 기기용 스마트 클라이언트 개발을 좋아하며, 다양한 규모의 iOS와 윈도우, 키넥트(kinect), HTML5 개발에 전문적인 경험을 쌓아왔다. 마이크로소프트 이노베이션 센터에서 소프트웨어 엔지니어와 컨설턴트로 일하면서 다양한 EU 연구 프로젝트에 참여했고 수많은 기술 프리젠테이션과 워크숍에서 발표했다. 이제 자신의 회사인 라이트버즈(LightBuzz) 소프트웨어를 설립해 대중에게 새로운 개념의 소프트웨어를 소개하고 있다. 라이트버즈 응용프로그램은 뉴욕에서 개최된 마이크로소프트의 월드 와이드 혁신 경연대회에서 1등을 차지했으며, TEDx의 라이징 스타 프로그램에서도 역시 1등을 했다. 이 책 외에도 팩트 출판사에서 발간한 『Augmented Reality with Kinect』를 감수했다. 코딩하고 있지 않을 때는 기술에 대한 블로그를 작성하거나 웹 사이트(http://lightbuzz.com)를 통해 오픈 소스 유틸리티를 제공하기를 좋아한다

옮긴이의 말

웹소켓은 폴링이나 스트리밍 등 기존의 클라이언트 서버 간 통신의 한계를 극복해주는 새로운 양방향 통신 방법으로 실시간 응용프로그램 개발에 필수적인 기술이다. 비교적 쉬운 기술임에도 불구하고, 이를 처음 접하는 개발자들이 기존의 HTML5 입문 도서에 나와 있는 수준의 설명으로 완벽하게 이해하고 실제 개발로 연결시키기에 부족할 수밖에 없었다. 그런 의미에서 웹소켓 기술만을 다루는 이 책은 프론트엔드 개발자들에게 가뭄의 단비와 같은 양서가 될 것으로 기대된다. 얄팍하지만 필요한 알짜배기 정보들은 모두 담고 있다. 옆에 두고 편안한 마음으로 읽다 보면 어느덧 책 한 권을 독파하는 기쁨을 맛볼 수 있을 것이다.

최근에는 HTML5의 열기가 살짝 시들해져 보인다. 하지만 이는 HTML5에 대한 지나친 기대와 관심 때문이 아니었나 생각된다. HTML5만 있다고 모든 문제가 마법같이 해결될 수는 없다. HTML5는 좋은 도구 중 하나일 뿐이다. 여기에 어떤 재료를 덧붙이고 아이디어를 가미해 얼마나 좋은 제품을 만들어 내느냐는 결국 개발자들의 몫이다. 웹소켓이 바로 그 중요한 재료 중 하나가 될 것이다.

꽤 많은 노력을 기울였지만, 저자의 의도를 충분히 전달하지 못하거나 잘못 번역된 부분이 있을 수 있다. 잘못된 부분이나 책의 내용과 관련한 어떠한 질문이나 의견을 보내주시면 소중히 다루겠다.

옮긴이 소개

류영선

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

목차

목차
  • 1장 웹소켓 소개
    • 웹소켓 이전 세상
      • 폴링
      • 롱 폴링
      • 스트리밍
      • 포스트백과 AJAX
    • HTML5의 등장
    • 웹소켓 프로토콜
      • URL
      • 브라우저 지원
      • 누가 웹소켓을 사용하는가
    • 모바일?
    • 미래는 이미 시작됐다
    • 무엇을 만들 것인가
    • 요약

  • 2장 웹소켓 API
    • HTML5의 기초
      • 마크업
      • 스타일링
      • 로직
    • 채팅 응용프로그램
    • API 개요
      • 지원 브라우저
      • 웹소켓 오브젝트
      • 이벤트
        • onopen
        • onmessage
        • onclose
        • onerror
      • 동작
        • send( )
        • close( )
      • 속성
      • 전체 예제
        • index.html
        • chat.js
      • 서버
    • 요약

  • 3장 서버 구성
    • 소켓 서버가 필요한 이유
    • 서버 설정
      • 적합한 기술 선택
        • C/C++
        • 자바
        • .NET
        • PHP
        • 소제목 : 파이썬(Python)
        • 루비(Ruby)
        • 자바스크립트
      • 개발 환경 설정
    • 웹 서버 연결
      • 웹소켓 서버 인스턴스 생성
      • Open
      • Close
      • Message
      • Send
      • 다른 메소드
    • 전체 소스 코드
    • 요약

  • 4장 데이터 전송: 송신, 수신, 디코딩
    • 웹소켓으로 전송할 수 있는 데이터 종류
      • 문자열
        • JSON
        • XML
      • ArrayBuffer
      • Blobs
        • 비디오 스트림
    • 전체 통합
      • JSON을 이용한 닉네임과 메시지 전송
      • 서버에 이미지 전송
    • 요약

  • 5장 보안
    • 웹소켓 헤더
    • 일반적인 공격
      • 서비스 거부
      • 맨 인 더 미들
      • XSS
    • 웹소켓 기본 방어 메커니즘
      • SSH/TLS
      • 클라이언트 서버 마스킹
    • 보안 도구 상자
      • 피들러
      • 와이어샤크
      • 브라우저 개발자 도구
      • ZAP
    • 요약

  • 6장 에러 처리와 폴백
    • 에러 처리
      • 네트워크 가용성 확인
    • 폴백 솔루션
      • 자바스크립트 폴리필
        • 인기 있는 폴리필
      • 브라우저 플러그인
    • 요약

  • 7장 모바일과 태블릿
    • 왜 모바일이 중요한가
      • 네이티브 모바일 앱 vs 모바일 웹 사이트
      • 전제 조건
      • SDK 설치
      • 모바일 브라우저에서 기존 코드 테스트하기
    • 네이티브로 가기
      • 프로젝트 만들기
      • 웹소켓 아이폰 앱 만들기
    • 아이패드용 앱 작성
    • 요약
    • 자원
      • 온라인 소스
      • 기사
    • 소스 코드
      • 시스템 요구 사항
      • 연락

  • 부록 참고자료

도서 오류 신고

도서 오류 신고

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

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

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