프로젝트 개요
영상 분석 결과를 이벤트로 저장하고 관제 화면과 사용자에게 전달하는 서비스를 개발·운영했습니다. 백엔드 API, 실시간 알림, 분석 런타임과 온프레미스·Kubernetes 환경을 함께 맡았습니다.
주요 개선 성과
- 이벤트 전체를 한 번에 불러오던 조회를 서버 페이지 단위로 변경해 로딩 시간을 약 30초에서 3.5~4초로 줄였습니다. 개선 후 상한인 4초 기준 약 86.7% 단축입니다.
- PC·모바일에서 겹쳐 발생하던 동일 화면의 API 요청을 2회에서 1회로 통합해 호출 수를 50% 줄였습니다.
- 모델과 분석 작업 배치를 조정한 부하 테스트에서 메인 루프 p95 시간을 약 400ms에서 80ms로 줄였습니다. 해당 테스트 기준 약 80% 단축했습니다.
담당한 일
- 여러 Socket Pod에서 알림을 함께 수신하도록 메시지 전달을 정리하고 사용자별 알림 라우팅을 개선했습니다. 영상 스트림 공유를 적용해 같은 스트림을 여러 곳에서 사용할 수 있도록 했습니다.
- 영상 입력, AI 추론, 이벤트 저장·전달 흐름을 연결하고 메시지 큐를 통해 분석 처리와 이벤트 처리를 분리했습니다.
- Jenkins와 Argo CD로 이미지 빌드부터 GitOps 배포까지 연결했습니다. Prometheus·Grafana·Alertmanager로 상태를 확인하고 장애 알림을 받을 수 있게 구성했습니다.
- 관제 웹을 React·Vite 구조로 전환하며 기존 API·Socket 연동을 유지하고 사건 관리·오탐 검토와 모바일 화면을 개선했습니다.
성과 수치의 기준
로딩 시간 단축률은 (30−4)÷30×100으로 계산했습니다. API 호출 감소율은 (2−1)÷2×100입니다. 메인 루프 p95 단축률은 (400−80)÷400×100이며, 모델과 작업 배치를 조정한 부하 테스트 결과입니다. 서비스 전체의 응답 시간이나 운영 처리량을 나타내는 수치는 아닙니다.
사용 기술
TypeScript · Node.js · Python · React · Triton · Ray · Kubernetes · RabbitMQ · MinIO · Jenkins · Argo CD · Prometheus · Grafana
