WDSS (Web Show Drone Simulator) Project
기획부터 검증까지 한 화면에서 끝내는 드론 쇼 웹 제작 서비스
- 깃허브 : Github / 노션 : Notion
- 개발 인원 : 6명
- 프로젝트 진행 일자 : 2025. 08. ~ 2025. 09.
- 맡은 역할 : 팀장, C#을 통해, Web과 Unity, 실제 드론(ESP32 Drone)과 통신하는 중앙 제어 서버(GCS) 구축 및 구현
프로젝트 배경
- 기획 : 드론쇼 제작은 설계–변환–시뮬–수정 과정이 단절되어 준비 기간이 길고(통상 4주+), 전문 인력 의존과 인건비 부담이 큼. 비전공자가 접근하기 어려움.
- 기술 : 이미지 → 점군 변환과 실시간 미리보기를 단일 파이프라인에서 처리하고, 중앙 제어 로직을 서버로 분리(ASP.NET Core)해 Web·Unity·실드론(ESP32)까지 일관된 제어가 필요.
- 목표 : 웹 기반 에디터–GCS–뷰어(Unity WebGL)를 잇는 엔드투엔드 파이프라인으로 빠른 제작·저비용·실기 확장을 검증.
프로젝트 문제
- 모놀리식 구조: Unity 내부 스크립트로 GCS 기능(상태/세션/통신/이벤트/시나리오)을 모두 구현 → 시뮬레이션 내에서만 동작, 실 드론 적용 불가.
- 성능 병목: 렌더링과 제어 로직이 한 프로세스라 CPU 사용률 급증(평균 85% 이상), FPS 변동 심화.
- 운영 난이도: 서버/클라이언트 강결합으로 CI/CD·테스트·배포 효율 저하.
해결과정
- 서버 분리: 중앙 제어 로직을 Unity에서 완전히 분리 → ASP.NET Core 기반 GCS 서버를 AWS EC2에 독립 배포.
- 
    Unity 역할 단순화: Unity는 렌더링 전담(Viewer) 으로 축소. 
- 결과:
    - Unity CPU 점유율 85% → 25% 감소
- 서버 리소스 사용량 70% 절감
- 실제 ESP32 드론 적용 가능성 확보, 시뮬과 현실 간 일관된 아키텍처 달성
 
기술적 의사결정 과정
- ASP.NET Core(C#) : 기존 C# 코드 재사용 + 고성능 비동기 통신 지원 → 빠른 전환 및 안정성 확보.
- FastAPI(OpenCV) : 이미지 변환·전처리를 비동기로 처리, JSON 기반 결과물을 GCS 서버와 공유.
- 통신 방식 :
    - WebSocket → 시뮬레이터와 서버 간 양방향 상태 동기화
- UDP/TCP → 드론 실기 제어(저지연, 경량화)
 
- 인프라 : AWS EC2로 서버 구성, DB는 PostgreSQL+Redis 혼합 운용(영속/세션 분리).
아키텍쳐 설명
Frontend–Backend–DB(FastAPI/OpenCV + PostgreSQL/Redis)와 ASP.NET GCS 서버를 AWS EC2에 독립 구성.
- 사용자는 Web Editor(React·Vite·Fabric.js) 로 장면을 설계 → FastAPI(OpenCV) 가 점군 변환/JSON 생성 → PostgreSQL/Redis 에 저장.
- ASP.NET GCS 서버는 중앙 제어 허브로서, Unity(WebGL)에는 상태 스트림을 전송, ESP32 드론에는 UDP/TCP 제어 신호를 송신.
- Unity는 렌더링 전담 시뮬레이터, ESP32는 실기 드론으로 현실 세계 테스트가 가능.
    Written on September 27, 2025
  
  
