배경
9월 27일 수요일.
점심을 먹고 친구들과 이야기를 하다가 갑자기 느낌이 왔다. 어떤 이야기를 한 건지는 기억이 나지 않지만, "학과 공지사항이나 채용게시판 같은 게시판의 정보가 갱신되면 이메일로 날라오면 좋겠다!"고 생각했고 왠지 그냥 할 수 있을 것 같았다. 내가 속한 과 뿐만 아니라 우리 학교의 모든 학과를 대상으로 서비스를 운영하면 많은 사람들이 애용하는 서비스가 되지 않을까?? 그래서 그냥 바로 다음 수업 시간부터 MVP 개발에 착수했다. 교수님에겐 죄송하지만.. 빨리 이 아이디어를 테스트해보고 싶어졌다.
가능할까?
MVP 개발에 들어가기 전에 가장 중요했던 것은 "학과 게시판 크롤링이 가능한지"를 확인하는 것이었다. 다행히 우리 학교의 대부분의 학과 홈페이지의 게시판은 RSS를 제공한다. 크롤링 테스트용 Express 서버를 빠르게 구축한 후 RSS 크롤링을 수행, 데이터를 정상적으로 가져오는 것을 확인했다. 그리고 여러 게시판의 RSS url이 특정 인덱스만 바뀌는 구조를 가지고 있는 것을 확인할 수 있었다.
RSS(Really Simple Syndication)
- 웹사이트에서 컨텐츠를 쉽게 공유하고 구독하는 데 사용되는 표준 웹 피드 형식
- 주로 뉴스 사이트, 블로그, 팟캐스트 등과 같은 웹사이트의 새로운 글이나 업데이트를 실시간으로 추적하고 구독자에게 알릴 때 사용된다.
- RSS 피드는 일반적으로 XML 형식으로 작성되며, 각 항목은 title, description, link, publication date으로 구성된다.
기술 스택
- FE: React, TypeScript, tailwindcss
- BE: Node.js, JavaScript, nodemailer, node-cron
- 도움: Chat-GPT 3.5
생각보다 어렵지 않은 사이드 프로젝트라서 풀스택으로 개발해보기로 했다. 프론트엔드에는 React와 TypeScript 그리고 요즘 배우고 있는 tailwindcss를 선택했다. 백엔드는 제대로 알지 못했지만, 만인의 친구 Chat-GPT 3.5와 함께라면 두려울 것이 없다. 그리고 프론트와 언어를 통일하기 위해 Node.js + Express를 사용했다.
전달 방식
카카오톡 챗봇
카카오톡 챗봇은 확실히 접근성이 엄청나지만, 나같은 가난한 학부생에게 과금은 부담되는 요소이다. 서비스 초기 사용자가 적을 때는 얼마 안 될지 몰라도, 많은 서비스 사용자를 염두한 나에게는 과금이 기하급수적으로 늘어날 것이 뻔했다. 결국 카카오톡 챗봇이 아닌 대안을 찾을 수 밖에 없었다.
사실 작년에 이러한 서비스가 존재했는데, 같은 학부생이 오픈채팅방에 알림봇을 둠으로써 최신글을 알려주는 서비스를 에브리타임에서 홍보했었다. 실제로 오픈채팅방에 들어가서 몇 달 사용해보니, "카카오톡"이라는 접근성이 좋은 플랫폼을 통해 최신 정보를 볼 수 있다는 것이 엄청 편리했다. 그래서 꽤나 애용하고 있었는데 어느 순간부터 게시글 알림이 오지 않다가 뚝 끊더라. 알고보니 카카오톡 챗봇을 1채팅을 보내는데도 과금이 필요하다.. 아마 과금 부담 때문에 운영을 중단한 것이 아닐까.
이메일 구독
그리고 구독해둔 사이트에서 정기적으로 메일을 보내주는 구독 서비스가 떠올랐다. gmail 기준 무료 계정에서의 일일 메일 제한이 걸려있긴 하지만 챗봇보다는 그래도 훨씬 싸다. nodemailer라는 Node.js 기반 무료 오픈소스 라이브러리를 사용하면 간단하게 메일을 보내는게 가능했다. 그래서 이메일 구독 방식을 선택하게 되었다.
'프로젝트 > MailBadara' 카테고리의 다른 글
[토이프로젝트] MailBadara - (6) 서버 최적화 생각 중 (0) | 2023.10.16 |
---|---|
[토이프로젝트] MailBadara - (5) 트러블슈팅 (0) | 2023.10.13 |
[토이프로젝트] MailBadara - (4) 프론트 최적화 (0) | 2023.10.13 |
[토이프로젝트] MailBadara - (3) 베타테스트 및 피드백 (1) | 2023.10.08 |
[토이프로젝트] MailBadara - (2) MVP 개발 (1) | 2023.10.08 |