본문으로 건너뛰기
·개발

호서 LMS+ 확장프로그램 만들기

학교 LMS에 기능을 추가해보자

시작하게 된 계기

학교 LMS 시스템(코스모스)을 사용하면서 가장 불편했던 점은 출석 정보를 확인하는 과정이었다.

각 과목 페이지에 들어가서 출석부를 하나씩 확인해야 했고,
현재 내가 어떤 수업에서 결석이나 지각이 있는지 한눈에 확인하기가 어려웠다.

사용자로서 느낀 이 불편함을 해결하기 위해
모든 과목의 출석 정보를 한 번에 확인할 수 있는 대시보드를 만들어보기로 했다.

빠르게 만들어 본 첫 번째 버전

처음부터 완성도 높은 서비스를 만들 생각은 없었다.
어차피 나 혼자 사용하거나, 많아야 주변 지인들에게 공유하는 정도일 것이라고 생각했기 때문이다.

그래서 빠르게 동작하는 프로토타입을 만드는 것에 집중했고
간단한 크롬 확장 프로그램 형태로 데모를 구현했다.

결과는 다음과 같았다.

3 4

기능 자체는 단순했지만
여러 과목의 출석 정보를 한 번에 확인할 수 있는 대시보드라는 점에서
개인적으로는 꽤 만족스러운 결과였다.

에브리타임에 공유해보기

나만 사용하기에는 아깝다는 생각이 들어
학교 커뮤니티인 에브리타임에 확장 프로그램을 공유해 보았다.

사실 처음에는 많아야 10명 정도 사용하지 않을까라고 생각했다.

하지만 결과는 예상과 전혀 달랐다.

생각보다 많은 사람들이 관심을 보였고,
특히 직접 사용해보고 피드백을 남겨주는 댓글들이 인상적이었다.

1 2

단순히 "좋다"는 반응보다도
실제로 사용하면서 발견한 문제점이나 개선점들을 공유해주는 댓글들이 큰 도움이 되었다.

예상보다 많아진 사용자

처음에는 단순한 개인 프로젝트라고 생각했지만
게시글 공감 수가 272개를 넘기면서 예상보다 많은 사용자가 생겼다.

그러다 보니 한 가지 문제가 생겼다.

확장 프로그램을 직접 파일 형태로 배포하다 보니 업데이트가 어렵다는 점이었다.

그래서 결국 크롬 웹스토어 등록 비용 $5를 결제하고 등록 신청을 하게 되었다.
웹스토어를 통해 배포하면 자동 업데이트를 지원할 수 있기 때문이다.

사용자 피드백을 반영한 개선

처음 버전은 사실상 내 환경에 맞춰 급하게 만든 버전이었다.

그래서 사용자들이 실제로 사용하면서 다양한 문제가 발견되었다.

예를 들면

  • 특정 과목에서 출석 데이터가 제대로 불러와지지 않는 문제
  • 일부 페이지 구조에서 UI가 깨지는 문제
  • 로딩 속도 문제

이런 피드백들을 하나씩 반영하면서 여러 차례 수정 작업을 진행했다.

그 결과 현재는 다음과 같은 형태로 개선되었다.

5

고민했던 부분

1. LMS 서버 부하 문제

이 확장 프로그램은 fetch를 이용해 LMS 데이터를 가져오는 방식이다.

따라서 사용자 수가 많아질 경우
LMS 서버에 요청이 많이 발생하지 않을까 하는 걱정이 있었다.

다행히

  • 필요한 데이터만 요청하도록 구조를 단순화하고
  • 요청 횟수를 최소화하는 방식으로 최적화를 해두었다.

그래서 현재로서는 큰 문제는 없을 것으로 예상하고 있다.

2. 업데이트 문제

구버전을 사용하고 있는 사용자들이 계속 남아 있을 수 있기 때문에
가능하면 크롬 웹스토어 심사를 빠르게 통과해 자동 업데이트를 제공하는 것이 목표였다.

만들면서 느낀 점

이번 프로젝트를 통해 다시 느낀 점은
좋은 아이디어는 거창한 것에서 나오지 않는다는 것이었다.

단순히 사용자인 내가 불편하게 느꼈던 문제를 해결하려고 만들었을 뿐인데
다른 사용자들에게도 같은 문제가 있었고, 예상보다 좋은 반응을 얻을 수 있었다.

개발을 하면서 느끼는 가장 큰 재미는
이렇게 실제로 누군가에게 도움이 되는 도구를 만드는 순간인 것 같다.

앞으로도 이런 작은 불편함을 해결하는 프로젝트들을 계속 만들어 보고 싶다.