트랜스버스 개발팀장
- 에보클래스 LMS 서비스(evoclass.ai) 개발
- 에보클래스 화상회의 서비스 (room.evoclass.io) 개발
- 산업기능요원 대체복무 중 (~ 2024.8)
에보클래스는 실시간 화상 수업 플랫폼이자 LMS 솔루션입니다.
개발팀장으로서 트랜스버스에서 개발하는 모든 프로젝트 (LMS, 화상회의) 개발/관리에 참여하였습니다. 초반에는 디자인 및 프론트엔드 개발, 백엔드 개발로 참여하다가 개발자 수가 늘어난 지금은 백엔드 및 DevOps 쪽에 더 참여하고 있습니다.
LMS 프론트엔드는 React 로 개발하였으며 코드 작성의 난이도보다는 기능 구현 수와 안정성, 가벼움, 수 많은 페이지와 관리 페이지를 만드는 데 집중하였습니다. 그리고 페이지도 많고 상태 관리를 해야할 부분도 많아 Redux와 Redux-Saga로 프로젝트 설계를 초반부터 세밀하게 해 두어야 했습니다.
화상회의 프론트엔드는 React 로 개발하였으며 디바이스 호환성과 안정성을 가장 중요하게 생각하고 프론트엔드 최적화에 있어 정말 많은 고민을 하였습니다.
LMS 백엔드는 Python DRF 로 개발하였습니다. LMS 프론트와 화상회의 관리에서 필요한 API를 구현하였고 최대한 안정성은 있지만 속도를 챙길 수 있도록 세밀하게 Query Optimaztion 을 한 기억이 남습니다. Silk 와 Django-debug-tool 로 API 요청에 어떤 쿼리를 보내는지 확인하고 최대한 줄여보기도 하였습니다.
화상회의 백엔드는 WebRTC 를 담당하는 미디어 서버(node.js, mediasoup)와 미디어 서버의 배치를 관리하는 노드 풀 서버(fastapi, redis, nginx)를 구현하였습니다. 대규모 트래픽을 동시에 처리할 수 있도록 구현하였으며 수요 예측 모듈을 통하여 효과적인 서버 배치를 하도록 구현하였습니다.
위와 같은 서비스를 효율적으로 배포하기 위해 모두 Github Action CI/CD 를 구축하였고 GCP에 Terraform 을 사용하여 IaC 로 인프라를 구축하였습니다. 또한 효과적인 Secret 관리를 위해 Vault 를 K8s 로 Wrapping 하여 AKS 에 배포하였습니다.
더보기