문제
디지털 취약계층에게 실시간 화면공유는 정보격차를 좁히는 가장 직접적인 도구다. 그런데 도움을 받으려고 화면을 켜는 순간 의도하지 않은 정보까지 함께 넘어간다 — 메신저 알림, 금융 정보, 열려 있던 문서가 상대에게 그대로 보인다.
기존 화면 공유는 전체 화면 / 특정 창 / 브라우저 탭 단위로만 선택할 수 있었다. "이 창은 공유하되 그 안의 이 영역은 가리고 싶다"는 요구를 충족할 방법이 없었다.
두 갈래 해결책
이 프로젝트는 문제를 두 방향에서 풀었다.
- 화면 세밀 영역 지정 — 사용자가 공유할 영역을 직접 지정
- AI 민감정보 자동 마스킹 — YOLO 모델이 민감 요소를 실시간 탐지해 자동으로 가림
둘 다 모든 처리를 송신 클라이언트에서 끝낸다. 가공이 끝난 프레임만 네트워크로 나가므로, 가려진 영역의 원본 픽셀은 애초에 전송되지 않는다.
표준 WebAPI만으로 구현
이 프로젝트에서 가장 신경 쓴 제약은 브라우저 확장도, 네이티브 프로그램도, 플러그인도 쓰지 않는다는 것이다.
확장을 쓰면 화면 캡처 제어가 훨씬 쉬워진다. 하지만 도움이 필요한 순간에 설치부터 요구하는 도구는 실제로 쓰이지 않는다. 특히 디지털 취약계층이 대상이라면 설치 단계 자체가 진입 장벽이 된다.
그래서 전부 표준 웹 API 로만 구성했다.
| API | 역할 |
|---|---|
getDisplayMedia() | 화면 스트림 획득 |
| WebRTC | 서버 중계 없는 P2P 전송 |
| Insertable Streams API | 인코딩 전 프레임에 직접 접근 |
MediaStreamTrackProcessor / Generator | 트랙 ↔ 스트림 변환 |
| Web Worker | 프레임 연산을 메인 스레드 밖으로 |
RTCRtpSender.replaceTrack() | 가공된 트랙으로 무중단 교체 |
브라우저만 있으면 즉시 동작한다. 논문에서도 이 점을 실용적 가치로 짚었다.
파이프라인

getDisplayMedia()로 사용자가 선택한 화면의MediaStream을 획득한다.MediaStreamTrackProcessor가 비디오 트랙을ReadableStream으로 바꿔 Web Worker 로 넘긴다.- Worker 안의
TransformStream이 각VideoFrame을 처리한다 — 지정 영역으로 자르거나, YOLO 추론 결과에 따라 마스킹한다. MediaStreamTrackGenerator가 가공된 프레임으로 새 비디오 트랙을 구성한다.RTCRtpSender.replaceTrack()으로 기존 전송 트랙을 교체한다.
왜 Web Worker 인가
실시간 스트림에서 프레임마다 자르기·추론을 수행하는 것은 계산 비용이 크다. 메인 스레드에서 동기 처리하면 UI 가 멈추고 반응성이 무너진다.
Worker 로 옮기면서 계산 집약 작업이 렌더링과 독립된 스레드에서 처리되고, UI 지연 없이 부드러운 사용자 경험을 유지할 수 있었다.
해결책 1 — 화면 세밀 영역 지정
송신자가 top / bottom / left / right 로 공유 영역을 지정하면, 그 바깥은 상대에게 전송되지 않는다.
해결책 2 — YOLO 기반 자동 마스킹
영역 지정은 사용자가 직접 판단해야 한다는 한계가 있다. 그래서 YOLO 모델을 연동해 민감정보를 실시간으로 탐지·마스킹하는 기능을 함께 구현했다.
딥러닝 모델이 프레임에서 특징을 추출해 물체의 종류와 위치를 예측하고, 민감 요소로 분류된 영역을 가린 뒤 전송한다. 사용자가 매번 좌표를 조정하지 않아도 되고, 화면이 바뀌어도 따라간다.
성능
프레임당 평균 처리 시간 약 40ms — 25~30fps 에 해당한다. 실시간 화면공유로 쓰기에 충분한 수준이다.
이 수치가 나온 이유는 파이프라인 설계에 있다. 추론과 프레임 가공이 모두 Web Worker 에서 비동기로 처리되므로, 메인 스레드는 렌더링에만 집중한다.
결과
2025 CNU SW/AI Project Fair 창의작품경진대회 우수상 · 전체 85팀 중 2위 — AI · SW · Security/BigData/IoT 부문, 팀 CTR (2025.06.26, 충남대학교 컴퓨터융합학부장)
KIISC CCC 2025 제1저자 논문 게재 — 「클라이언트 측 사용자 영역 지정 화면공유 시스템」 (이예인, 장진수). 과학기술정보통신부·한국인터넷진흥원 정보보호특성화대학 지원사업 연구.

남은 과제
발표 당시 정리한 개선 방향은 다음과 같다.
- 발열 개선 — 실시간 추론이 이어지면 기기 발열이 누적된다.
- 마스킹 성능 개선 — 탐지 정확도와 처리 속도를 함께 끌어올려야 한다.
- 마스킹 요소 확장 — 어떤 요소를 얼마나 민감하게 볼지 조사한 뒤 대상을 넓힌다.
- 영역 지정 UX — 슬라이더를 없애고 화면에서 직접 드래그해 영역을 고르도록 바꾼다.
이 프로젝트의 출발점
처음부터 보안 프로젝트로 시작하지 않았다. 2024년 하반기 안랩 산학 협력 프로젝트에서 WebRTC P2P 통신을 담당하며 시그널링 서버와 미디어 스트림 처리를 구축했고, 그때 만든 통신 기반 위에서 "공유되는 화면 자체를 통제할 수 있지 않을까"라는 질문이 나왔다. 졸업작품은 그 질문에서 출발했다.




