Easy LMS

간편하게 등록하여 사용하는 완전관리형 LMS 서비스

개요

  • 기간 : 2021년 3월 1일 ~ 2021년 8월 31일

  • 회사 : 미래직업전망연구원

  • 담당 범위 : 전체 (Backend, Frontend, Infrastructure)

주요 기술 스택

Frontend

  • UIkit Framework 3 + jQuery (어드민 페이지 제외 전체)

  • Bootstrap + jQuery (어드민 페이지)

  • 반응형 설계

Backend & Infrastructure

  • PHP CodeIgniter 3 (PHP 7.4)

  • MariaDB 10.4 (AWS RDS)

  • AWS EC2 (Linux Debian, Apache, php-fpm)

  • AWS S3, CloudFront CDN : 동영상 업로드 및 스트리밍

  • Cloudflare DNS : 사이트 생성, 삭제시 DNS 처리

Etc.

  • Github에서 버전 관리

  • 소스 커밋시 Jenkins를 통해 EC2 서버에 자동 배포

  • Youtube Data API 연동 : 유튜브 영상의 메타 데이터와 썸네일 추출 목적

  • 결제 연동 (아임포트, KG이니시스)

상세 개발 내용

  • 수강생용 페이지 전체 개발 (프론트 & 백엔드 & DB)

  • 강사용 페이지 전체 개발 (프론트 & 백엔드 & DB)

  • 메인 랜딩 페이지 전체 개발 (프론트 & 백엔드 & DB)

  • 어드민 페이지 전체 개발 (프론트 & 백엔드 & DB)

주요 개발 이슈 및 해결 사례

1) Youtube Upload API의 Quota 문제로 인한 기획 변경

LMS 특성상 영상 업로드가 이뤄져야 하는데, 트래픽과 저장공간 등 비용 부담이 커질 것을 우려해 업로드받은 파일을 유튜브에 올린 후, 별도 플레이어에 유튜브 영상을 씌워 진도관리 등을 하려 하였습니다. 하지만 이후 서칭 중 유튜브 업로드 API에 일일 Quota 제한으로 인해 다이렉트로 유튜브 업로드를 하기 어렵다고 판단하고 기획 수정을 위해 팀에서 논의를 했습니다. 이에 이용자가 직접 유튜브에 영상을 업로드한 뒤 영상의 링크만 제공하는 방식, 영상을 우선 업로드해 이용하고 이후에 유튜브로의 업로드는 관리자가 직접 하는 2가지 방식을 이용하는 방향으로 결론을 냈습니다. 이에 따라 유튜브 링크를 제공할 경우 Youtube Data API로 영상의 메타데이터와 썸네일 등의 정보만 가져오고, 파일을 직접 업로드하는 경우는 영상 파일을 S3에 업로드한 후 관리자가 주기적으로 영상을 유튜브에 올린 후 링크를 교체해주고, S3에 업로드된 파일을 지우는 방식으로 하는 것으로 방향을 잡고 개발을 진행했습니다. 비용 부담으로 인해 여러 선택지들을 놓고 고민했고, 비록 개발자지만 직접 기획에도 참여하며 아이디어를 제공하고 의사 결정에 있어 역할을 했습니다.

성장

교육 관련 서비스, 특히 LMS가 요구하는 다양한 기능들을 구현하며 관련 도메인 지식을 갖게 되었습니다.

Last updated