[교내 공지사항 알림 서비스] 개발일기 2편 [개발 방식]

이번 글에서는 어떤식으로 개발을 하였는지 구체적으로 적어보려한다!
 
먼저 선정한 기술스택은 다음과 같다.

  • 백엔드 : SpringBoot, JPA/Hibernate
  • 데이터베이스 : - MySQL, Redis
  • 배포환경 :  라즈베리파이 with Ubuntu22.04LTS

1편에서 말했다시피 FastAPI로 개발하다가 SpringBoot로 급선회 하였다. 
MySQL은 구독한 사용자 정보를 저장하는데 사용하고 Redis는 이메일 인증을 하는데 사용한다.
 
처음에 생각했던 구독방식은 이랬다.
교내 메인 공지사항 뿐 아니라 내가 속한 소프트웨어학부의 공지사항이 별도로 있었는데 나는 교내 공지사항보다 학부 공지사항을 확인하는 경우가 더 많았기 때문에 어떤 공지사항을 구독할지 선택할 수 있게 개발을 하다가 Gmail 무료계정의 발송 제한이 하루에 500건인 것을 확인하고 포기했다. 
 
먼저 사용자 정보에는 최소한의 정보만을 담으려고 컬럼을 최소한으로 줄였다.

 
pk인 id 를 제외하면 2개의 컬럼뿐이다.
email은 발송하는 대상을 알아야하기 때문에 있어야하며 구독 취소를 할경우 notice_flag를 false로 설정하여 해당 사용자에게는 메일이 발송되지 않도록 하였다!
 
구독 취소 시 그냥 해당 ROW를 삭제하면 되지 않냐고 물으신다면.. 맞는 말이다. 하지만 실무 서비스에서는 행을 삭제하기 보다는 flag를 변경하여 사용자 정보를 삭제하지 않기 때문에 나도 이런식으로 구현을 해보았다.
 
다음내용은 3편에서 계속..
 
서비스를 언제까지 지속할지는 모르겠으나 관련 링크를 남기겠다.
github repo : https://github.com/jyp-on/notice-crawler

 

GitHub - jyp-on/notice-crawler: 한림대학교 공지사항 알림 시스템

한림대학교 공지사항 알림 시스템. Contribute to jyp-on/notice-crawler development by creating an account on GitHub.

github.com

 

service url : http://notice-crawler.ddns.net/

 

구독 관리 메인 페이지

현재 구독자 수: 434명 최대 500명까지 구독이 가능합니다.

notice-crawler.ddns.net