sbs-acdemy 학생 공부시간 관리서비스 - 1

김범수·2022년 7월 23일
0

✅개요

사정이 있어 sbs-academy 라는곳의 강사로 잠깐 일하게되었다. 마침 학생들이 배우는 단계이고, 재미있는 예제 겸 학생들이 사용할 수 있는 서비스로 뭐가있을까 생각하다가 재미있는 서비스가 생각나 제작해보게 되었다.

무려 이름하여 학생 공부시간 관리 서비스

이미 꽤 만들었지만, 강의 준비와 개발을 겸하려니 여간 바쁜게 아니라 이제 적는다.
최종적으로 만들고싶은것은 다음과같았다.


쉽게 설명해보자면 discord에서의 입력을 discord-bot이 감지하고 해당 데이터들을 discord-bot 내부적으로 실행하거나 nest-backend로 보낸다. nest-backend에는 user정보와 공부시간등이 쌓이게되며 이후 react-frontend에서 해당 정보들을 이용해 view를 구성할 수 있다.

✅개발

이러한 서비스를 만들어보려했는데 discord-bot정도는 쉽게 만들겠지 하고 코딩을 시작했는데, 생각보다 정말 어려웠다.
개발 자체가 어려웠던것보다도 회사에 다닐때는 시간에 쫓겨서 일단 작동이 되게 만들었었는데 이번에는 꼼꼼하게 만들어보자는 취지로 discord-bot의 input값이 이상할 경우, user의 등록정보가 없을경우, user의 강의 아이디가 일치하지 않을경우, 공부시간을 숫자로 넣지 않았을경우 이런 이상들을 감지하며 오류로인해 서버정지가 되지않게 꼼꼼히 만드는게 굉장히 어려웠다.
그리고 각각의 함수들을 기능별로 분리하고, 그냥 사용하던 axios함수등도 따로 묶어서 분류해주고 이런 분류작업을 항상 해보고싶었는데 이번기회에 원없이 해보고있다.
사실 이번에도 동작하는것에 초점을 두어서 만들뻔했는데 어떤 학생이 테스터마냥 이상한 값들을 넣어보면서 동작시켜봤었는데 처음엔 그러지마라고 말하려다가 꼼꼼히 만들어볼 기회라고 생각해서 아무말도 안했었다. 과정은 웃기지만 그 학생덕분에 예외처리부분에 많이 공부하고 더 생각해볼 시간을 가졌었던 것 같다.

아무튼 본론으로 들어가자면 우선 discord-bot과 nest-backend를 구현했다. 우선적으로 봇 동작과 데이터를 쌓는부분은 이루어져야한다고 생각했다.

각각의 깃허브링크이다.

discord-bot
nest-backend
discord-bot은 처음 hello world부분만 블로그를 만들었고, docs읽는 연습을위해 에러가 날때 찾아보는걸 제외하고는 discord.js discord.js 가이드 이렇게 공식문서와 공식 가이드만 보고 만들었다. 그리고 nest는 전에도 몇번 만들어봐서 그걸 토대로 만들었었다.

결론적으로 db에

이런 user정보와

이런 공부데이터가 들어간다. 이후에 react에서 데이터를 가져올 수 있게 이렇게 작성했다.
실제로 현재 학생 20명이 매일 해당 db에 공부시간을 기입하고있다. 그리고 실제로 도중에 에러도 많이 났다. 해당부분을 실제로 고쳐보면서 알게된부분이 많다. 우선은 저런식으로 저장하고있고, 실제로 봇도 잘 작동한다. 이후에도 개발일지를 더 작성해보겠다.

profile
즐기는 개발자

0개의 댓글