Pair Programming on learning RTC
- WebRTC 학습을 위한 페어 프로그래밍 세션에서 Gather Town과 유사한 2D 가상 보드 앱을 구축하는 것이 목표입니다. 🗺️
- 코디(RTC 앱 경험)와 잭(실시간 게임 및 Zoom 클론 경험)의 기술 조합이 프로젝트에 적합합니다. 🤝
- 페어 프로그래밍은 5분 타이머를 사용해 드라이버와 내비게이터 역할을 번갈아 가며 진행하는 엄격한 방식으로 이루어집니다. ⏱️
- WebRTC는 연결이 설정된 후에는 서버 없이 사용자 간 직접 통신(P2P)이 가능합니다. ↔️
- 초기 연결 설정 및 정보 교환을 위해서는 시그널링 서버(일반적으로 WebSocket 서버)가 필수적입니다. 📡
- WebRTC 연결 과정은 사용자가 WebSocket 서버에 연결한 후, 한쪽에서 '오퍼(Offer)'(RTC 세션 설명)를 생성하여 WebSocket을 통해 상대방에게 전송하고, 상대방은 이를
setRemoteDescription으로 수락하는 방식으로 진행됩니다. 🔗
- '연결 정보'는 IP 주소 외에 라우팅 및 네트워크 주소 지정 정보가 포함된
RTCSessionDescription 객체(오퍼)입니다. 📄
RTCPeerConnection.createOffer() 메서드를 사용하여 RTCSessionDescription 객체를 생성합니다. 🛠️
- 수신된 오퍼를 수락하는 데
RTCPeerConnection.setRemoteDescription() 메서드가 사용됩니다. ✅
- 순수 P2P 메시 네트워크 방식은 각 클라이언트가 N-1개의 스트림을 업로드/다운로드해야 하므로, 참여자가 많아질수록 클라이언트에 과도한 부하를 줍니다. 📈
- 현재 설명된 방식은 '초보적인 접근 방식'이며, 실제 프로덕션 환경에서는 확장성을 고려한 다른 접근 방식이 필요합니다. 🚀
데브허브 | DEVHUB | Pair Programming on learning RTC