← Projects
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)의 원리
  • 실시간 미디어 서비스의 구조 설계