이번 글에서는 메일 발송제한을 좀더 완화하기 위해 생각해낸 방법을 소개하겠다! 내가 만든 알림 서비스 구조에서 메일 발송을 하는 행동은 다음과 같다. 1. 사용자가 이메일 인증을 통해 구독을한다.2. 사용자가 이메일 인증을 통해 구독을 취소한다.3. 하루에 한번 당일 공지사항을 전달받는다. 사실상 1, 2번은 한세트이기 때문에 2개로 나뉜다. 때문에 Google 계정을 하나 더 만들어서 한 계정은 인증메일만 보내고 다른계정은 공지사항을 발송하는 역할을 맡게 하였다. 처음엔 2개의 메일 계정을 통해 메일 발송하는게 가능할지 확실치 않았는데 ChatGPT 선생님께서 좋은 방법을 제안해주셨다.spring: mail: verification: host: smtp.gmail.com por..
이번 글에서는 실제 서비스 개시 후 받았던 피드백을 반영하는 과정을 소개하려고 한다! 우선 내가 맨 처음 올렸던 글이다. 원래는 1분마다 크롤링을하여 새로운 글이 발견되면 메일을 발송하는 시스템이었는데 메일 발송량이 제한이 있다보니 저녁쯤되면 메일 발송이 제한되는 일이 발생하였다.. 그러던 중 어떤 학우님께서 주신 피드백이 생각났다. 원래는 실시간으로 전달받는게 더 좋을 것 같다는 생각이었는데 메일 발송제한도 있고 메일이 너무 많이와서 신경이 쓰이는 건 사실이었다. 그래서 개선을 하고자 크롤링 방식을 변경하였다. 새로운 공지가 올라올 때마다 개별적으로 메일을 보내는 대신, 하루 동안 수집된 공지사항을 매일 저녁 8시에 한 번에 모아 발송하는 방식으로 변경하였다. 작업을 마친후 이제는 HOT게시판..
이번 글에서는 어떤식으로 개발을 하였는지 구체적으로 적어보려한다! 먼저 선정한 기술스택은 다음과 같다.백엔드 : SpringBoot, JPA/Hibernate데이터베이스 : - MySQL, Redis배포환경 : 라즈베리파이 with Ubuntu22.04LTS1편에서 말했다시피 FastAPI로 개발하다가 SpringBoot로 급선회 하였다. MySQL은 구독한 사용자 정보를 저장하는데 사용하고 Redis는 이메일 인증을 하는데 사용한다. 처음에 생각했던 구독방식은 이랬다.교내 메인 공지사항 뿐 아니라 내가 속한 소프트웨어학부의 공지사항이 별도로 있었는데 나는 교내 공지사항보다 학부 공지사항을 확인하는 경우가 더 많았기 때문에 어떤 공지사항을 구독할지 선택할 수 있게 개발을 하다가 Gmail 무료계정의 ..
갑자기 1주일 넘게 잘 운영되던 메일 서비스가 오류가 발생했다. ㅜㅜ오류는 다음과 같이 gmail smtp 서버에서 421 error를 던져준 것이다. 정확히는 421-4.3.0이라는 에러인데 google support page에서 해당 정보를 찾을 수 있었다.일시적인 시스템 장애가 발생했다는 뜻인데 좀 더 자세히 알아보고자 링크를 타고 더 들어가 보았다. 아마 수신서버에서 같은 곳에서 한 번에 많은 양의 메일을 수신하여 생기는 문제 같다.현재 내 서비스 로직은 1개의 메일을 보내다가 421 에러를 마주치면 후속 작업들이 전부 끝나게 되므로 치명적이다.오늘도 대략 뒤에 10명 정도가 받지 못하여 뒤에 10명만 따로 보내는 작업을 해줬다. 참고로 에러가 발생하는지 매일 확인하는 것은 아니고 내가 제일 마지..
요즘 LeetCode에서 문제를 많이 풀면서 LeetHub라는 크롬 확장 플러그인을 잘 이용하고 있다!LeetCode에서 문제를 풀고 특정 버튼을 누르면 Github의 연결된 레포지토리로 코드를 Push 해주는 기능이다.문제도 풀고 잔디도 심고싶으면 꼭 써야하는 기능이기 때문에 나의 빈약한 잔디를 채워주기 위해 애용하고 있다. 기여한 부분은 확장 플러그인 설치 후 Github 계정 로그인 후 Repository 세팅하는 부분이다.기존에는 레포 이름을 자신이 전부 입력해야 하였는데 편의성을 개선시키고자 Github API가 제공하는 레포 리스트를 불러와서 선택할 수 있게끔 하였다! https://github.com/raphaelheinz/LeetHub-3.0/pull/41 feat: added repo l..
오늘은 메인페이지와 구독페이지에 현재 구독자 수를 표기하는 작업을 하였다.또한 구독자 수가 500명이 넘어가면 구독이 안되도록 수정하였고 UI로 알려주는 작업을 하였다! 아직 500명이 되기는 멀었지만 언젠가는 되리라 믿으며 내가 건들지 않아도 서비스가 정상적으로 흘러갈 수 있도록 미리 조치를 취한것이다..! 이런식으로 현재 구독자 수를 표시하였고 만약 500명이 된다면 구독 신청버튼이 보이지 않게 만들었다! 예를들면 이렇다 하지만 페이지를 넘어가는것을 따로 막지는 않았기때문에 URL로 바로 들어갈 수 있다. 하지만 그 경우도 고려하여 아래와 같이 막아놓았다. 끝!