Realtime · WebRTC
intreviewX — 실시간 WebRTC 음성/화상 면접
WebRTC 시그널링 서버와 하이브리드 모바일 앱으로 구현한 실시간 AI 면접
- 소속
- 무한네트웍스 / 유저커넥트
- 기간
- 2024.10 – 2025.03
- 역할
- WebRTC 시그널링 · 모바일 앱 · 데이터 분석
WebRTCNode.js (ws)CapacitorAndroidPython
01
Overview
실시간 화상/음성 AI 면접 서비스입니다. WebRTC 기반 P2P 미디어 연결을 위한 시그널링 서버와, Capacitor로 패키징한 안드로이드 하이브리드 앱, 면접 데이터 라벨링/분석을 담당했습니다.
02
Background
비대면 면접 수요가 늘면서 실시간 음성/영상 품질과 연결 안정성이 핵심 과제로 떠올랐습니다.
03
Problem
WebRTC 피어 연결을 위한 시그널링(SDP/ICE 교환) 중계, 웹 기술 자산의 모바일 앱 재사용, 면접 데이터의 구조화·라벨링이 필요했습니다.
04
My Role
- Node.js(ws) 기반 WebRTC 시그널링 서버 구축
- Capacitor 기반 Android 하이브리드 앱 패키징
- 면접 데이터 라벨링/분석 파이프라인 구성
05
Architecture
클라이언트 간 미디어는 WebRTC로 직접(P2P) 연결하고, 연결 수립에 필요한 SDP·ICE 후보 교환만 WebSocket(ws) 시그널링 서버가 중계합니다. 프론트엔드 자산은 Capacitor로 네이티브 앱에 래핑합니다.
Mobile App (Capacitor / WebRTC)→WebSocket 시그널링 서버 (Node.js ws)→SDP / ICE 교환→P2P 미디어 스트림→면접 데이터 라벨링·분석 (Python)
06
Key Features
- ▸WebRTC P2P 음성/화상 연결
- ▸WebSocket 시그널링(연결 수립·세션 관리)
- ▸하이브리드 앱(단일 웹 자산 → Android)
07
Technical Decisions
미디어는 P2P, 시그널링만 서버
왜 → 서버가 미디어를 중계하지 않아 비용과 지연을 낮췄습니다.
Capacitor 하이브리드 채택
왜 → 웹 자산을 재사용해 모바일 앱을 빠르게 패키징했습니다.
08
Troubleshooting
문제 · 피어 간 연결 수립 타이밍과 세션 관리
해결 · 시그널링 서버에서 세션 상태를 관리해 SDP/ICE 교환 순서를 보장.
09
Result
- 실시간 화상/음성 면접 MVP 및 시그널링 서버 구축
- 데이터 라벨링 기반 분석 파이프라인 마련
10
What I Learned
- WebRTC 연결 수립(시그널링/NAT)의 원리
- 실시간 미디어 서비스의 구조 설계