간략소개
리모트미팅은 웹 브라우저와 모바일 디바이스에서 이용하는 화상 미팅 서비스다. 참여 기간은 2021년 6월부터 2022년 3월까지다. 기존 jQuery 기반 UI를 React와 Recoil 기반으로 전환하는 리뉴얼에서, 사용자에게 보이는 기능 조건을 유지하는 범위의 개발을 맡았다.
서비스
화상 미팅 화면은 사용자 정보, 영상 스트림, 화면 모드, 서버에서 전달되는 출력 위치·크기 정보가 함께 맞물리는 서비스다. 하나의 화면에 여러 종류의 비디오와 옵션이 공존하므로, 화면에 무엇을 어떻게 출력할지와 데이터 사이의 대응 관계가 업무 범위의 중심에 있다.

업무
리뉴얼과 공용 UI
- 기능 동일 조건의 jQuery UI를 React·Recoil 기반 UI로 전환
- 공용 컴포넌트 구성
- 사용자 초대 기능과 사용자 데이터 관리
- 사용자 데이터를 다루는 과정에서의 정규화
비디오 출력과 데이터 매핑
- Video 출력 컴포넌트 구성
- HOC를 이용한 기능 단위 옵션 처리
- Recoil을 이용한 MediaStream 관리와 비디오 간 스트림 매핑
- 사용자 정보와 비디오 출력의 매핑
- 서버가 정의한 비디오 metadata와 실시간 영상의 대응
- 화면 모드별 기능 범위
- Video to Canvas를 이용한 단일 비디오 영상 분리 가능성 검토
상태와 렌더링 범위
- 상태관리 기반 서비스 트랜잭션 고려
- 렌더링 범위 점검과 최적화
상태관리와 렌더링 범위는 당시 업무 목록에 남아 있는 검토 범위다. 공개 기록만으로 개별 상태 구조나 구현 경로를 재구성하지 않으며, 이 글은 비공개 구현을 재현하지 않는다.
업무성과
이 프로젝트는 실전 TypeScript 사용, 컴포넌트 재사용과 의존 관계의 명확화, 상태관리 경험을 넓힌 작업으로 남아 있다. 사용자 요구를 기능으로 연결하는 과정과 협업 과정 역시 당시 기록의 중요한 경험 범위다.
회고
비대면 서비스에 대한 요구가 커진 시기의 리뉴얼 작업이었다. 변화하는 요구를 기능으로 반영하는 과정에서 성취를 느꼈고, 협업 중의 오해와 이정표에 대한 불확실성으로 어려움을 겪기도 했다.