개인 라이브 강의 플랫폼 바다서원의 프로젝트 소개입니다.

[![Gmail](https://img.shields.io/badge/Email-ktb.nemo%40gmail.com-blue.svg)](mailto:ktb.nemo@gmail.com)


요약

역할

  • Spring Boot를 이용한 REST API 서버 구현
  • 인기 강의 스코어를 연산하는 배치 시스템 개발
  • 미디어 중계 서버 개발

성과

  • Redis Cache 도입으로 API 응답 시간 837ms > 228ms (3.7배 개선)
  • Presigned URL 도입으로 서버의 Network IO 50KB 기준 91% 절감
  • Mediasoup 중계 서버 도입으로 동시 참여 유저 수 11.4배 증가

About the Project

본 프로젝트는 오프라인 교육의 실시간 소통 장점과 온라인 플랫폼의 접근성을 결합 한 라이브 강의 플랫폼을 개발하는 것을 목표로 한다. 또한, WebRTC 기반의 미디어 전 송 최적화와 클라우드 인프라를 도입하여 확장성을 개선하고, 동시 접속자가 많은 상 황에서도 안정적인 스트리밍 환경을 제공한다. 이러한 방식으로 학습자와 강사 간의 상호작용을 극대화하고, 플랫폼의 신뢰성과 사용자 경험을 향상시키고자 한다.
궁극적으로, 본 프로젝트는 학습자들이 언제 어디서나 원활한 환경에서 교육에 집중 할 수 있도록 하여 더 나은 학습 경험을 제공하는 것을 지향한다.

Technologies

Key Features

  1. 강의 탐색 및 수강 신청

    사용자들은 플랫폼 메인 페이지에서 다양한 개설된 강의를 둘러볼 수 있다. 강의 소개 페이지에서는 강의 내용, 커리큘럼, 강사 정보 등을 자세히 확인할 수 있고, 관심 있는 강의를 발견하면 “수강 신청” 버튼을 통해 간편하게 등록할 수 있다.

  2. 라이브 스트리밍 강의

    라이브 강의에서는 강사가 여러 수강생에게 웹캠 영상, 화면 공유 영상, 오디오를 실시간으로 전송할 수 있다.

  3. 실시간 채팅

    라이브 강의 중 강사와 수강생 간의 실시간 소통을 위해 채팅 기능을 도입하였다. 이를 위해 WebSocket을 사용하였다.

  4. 인기강의 순위 제공

    강의 순위 결정 과정은 매일 오전 2시에 일괄적으로 수행되도록 설계되었다. 대용량 데이터의 효율적인 처리를 위해 Spring Batch를 활용하였다.

Architecture

architecture

ERD

ERD

Demo

Contribution

Acknowledgement