로고

편안한 WebRTC 입문 가이드

이제 막 WebRTC에 입문하시는 분들을 위한 글입니다.

제가 WebRTC를 배우기 시작했을 때, 한국어로 번역된 자료가 워낙 부족했고

인터넷상에 있는 예제들도 옛날 코드여서 학습에 어려움이 많았습니다.

어차피 배우게 될 것들을 힘들여 배우시지 않게 제가 공부했던 것들을 정리해두었습니다.

웹과 관련한 기초지식이 필요하긴하지만 쉽게 입문하실 수 있게 목차를 꾸려봤습니다.


입문은 쉽지만, 그 너머에는 무시무시한 녀석들이 여러분을 기다리고 있습니다.

저에게도 많이 어렵기에 여러분과 함께 WebRTC 문서를 만들어나갔으면 하는 바람입니다.

언제든 기여해주세요!

목차

WebRTC가 무엇인지, 어디에 사용하면 좋고 어디에 적합하지 않은지 설명드립니다.

다루는 내용

  • WebRTC의 정의
  • 활용사례

예제 구현에 앞서 웹에 관한 기초지식이 필요합니다.

해당 섹션에서는 웹페이지를 구성하는 간단히 HTML과 JavaScript에 대해 배웁니다.

그리고 최소한의 기능만 갖춘 웹서버(Web Server)와 웹소켓(WebSocket)을 구현해보겠습니다.

다루는 내용

  • HTML
  • JavaScript
  • 웹서버와 웹소켓

실제 코드와 함께 WebRTC 맛보기 애플리케이션을 만들어봅니다.

다루는 내용

  • getUserMedia
  • RTCPeerConnection
  • RTCDataChannel

빠르게 배우는 WebRTC에서는 최소한의 코드와 기능으로 맛보기 애플리케이션을 만들어봤습니다.

바르게 배우는 WebRTC에서는, WebRTC가 어떻게 돌아가는지 더 자세히 알아봅니다.

또한 상용화를 하는 데 필요한 기술과 아키텍처에 대한 논의도 담고 있습니다.

다루는 내용

  • STUN
  • TURN
  • ICE
  • SDP 기초
  • 미디어 서버
  • 아키텍처
  • 보안

앞선 목차들을 통해 WebRTC의 기본을 배웠습니다.

이제 여러분의 애플리케이션을 이용할 사용자들의 경험을 높일 차례입니다!

어떻게 하면 WebRTC에서 안정적인 통신을 유지할 수 있을까요?

네트워크 상태가 나빠지면 어떤 방법으로 대처해야 할까요?

여기서부터는 WebRTC보다는 미디어에 대한 전반적인 지식(프로토콜과 코덱 등)을 다루게 됩니다.

다루는 내용

  • 프로토콜(SDP/TCP/UDP/RTP/SCTP)
  • 코덱(Opus/VP8/H.264)

WebRTC 기반의 실시간 통신 기술을 이용하면 지연율이 아주 낮은 멋진 애플리케이션을 만들 수 있습니다.

구체적으로 어떤 활용을 통해 멋진 애플리케이션을 만들 수 있는지, 말은 쉬우니 코드로 확인해보세요!

다루는 내용

  • 음성인식
  • 얼굴인식
  • 온라인게임
  • AR/VR
  • IoT

MDN에서 제공하는 WebRTC와 관련된 API 목록을 정리해두었습니다.

공부에 도움이 되었던 사이트 목록입니다.

앞으로의 추가적인 공부를 위해 종종 참고하신다면 많은 도움이 될 것이라 믿습니다!

WebRTC에 이용되는 기술에 대한 구체적인 명세들을 모아두었습니다.