트랜스버스 백엔드 개발자
- 학습 관리 시스템과 화상회의가 통합된 서비스인 에보클래스의 백엔드 개발 및 유지보수
- 산업기능요원 보충역 복무 중 ( ~ 2024.06.)
에보클래스는 LMS와 화상회의가 통합된 비대면 교육 플랫폼으로, 화면 동시 공유, STT를 이용한 자막 추출 및 실시간 번역, 판서, 퀴즈 등 다양한 기능을 지원하는 화상회의와 과제, 출석, 학습 성취도 등을 관리할 수 있는 LMS 서비스로 구성되어 학습 관리와 화상회의를 통한 비대면 수업을 편하고 효율적으로 할 수 있도록 도와주는 서비스입니다.
백엔드 개발자로서 화상회의 내 출석 기능, 화상회의 예약 기능, 화상회의 서버 배치 최적화 등 주로 화상회의 서버의 기능 개발과, 화상회의 서버가 배치되는 인스턴스를 생성하고, 관리하는 노드 풀 서버 작업을 담당하였습니다. 이 외에도 LMS의 유지보수, 계정인증 서버 개발 등 전체적인 백엔드 작업에 모두 참여하였습니다.
화상회의 서버는 Node.js로 개발되었고, 화상회의에 필요한 여러 기능들을 개발하였습니다. 또한, 기존에는 Javascript와 Typescript가 혼용되어 있었으나, 모두 Typescript로 변경하여 가독성을 높이고 유지보수를 용이하게 하였습니다.
노드 풀 서버는 FastAPI로 개발되었으나, 서버가 불안정해져 FastAPI로 개발된 수요 예측 서버, 노드 풀 서버와 NestJS로 개발된 인스턴스 관리 서버로 나누어 세 서버를 gRPC로 연결함으로써 MSA로 다시 구축하였습니다. 주로 사용자 경험 향상 및 비용 절약을 위한 배치 로직 최적화 작업을 수행하였습니다.
계정 인증 서버는 NestJS로 개발되었고, JWT 인증 방식에 refresh token 및 refresh token rotation 기법 적용, JWT 블랙리스트를 이용한 로그아웃 기능 추가 등의 작업을 수행하며 기존 인증 방식을 개선하였습니다.
LMS 백엔드는 Python DRF로 개발되었으며, LMS 및 화상회의 관리에 필요한 API 작성하고, 계정 인증 서버와 gRPC를 통해 연결하였습니다.
더보기