프로젝트/MailBadara

프로젝트/MailBadara

[토이프로젝트] MailBadara - (7) 1차 서버 리팩토링

Migration 그동안 미루고 미루었던 서버 리팩토링을 진행하기로 했다. 그 과정을 기록한다. 이슈 현재 MailBadara 서버의 문제는 바로, 구독자들에게 뉴스레터를 전달할 때 순간적으로 메모리 사용량이 튀어서 Koyeb(호스팅 플랫폼)의 무료 플랜 메모리 오버로 프로세스가 강제로 종료된다는 것이다. Koyeb에선 프로세스가 죽을 때 즉시 재실행시켜주기 때문에 메일 전송 로직은 완료되기는 한다. 끝날 때까지 몇 번 씩 프로세스가 죽을 뿐.. 서비스가 작동"은" 해서 로직을 더 이상 수정하지 않고 이 상태로 배포하고 말았는데, 한 달이 지난 지금. 더 이상 미룰 수 없다 생각했고 진행 중이다. 슈팅 이를 해결할 방법은 2가지다. node에서 bun으로 migration node보다 훨씬 빠르고 효율적..

프로젝트/MailBadara

[토이프로젝트] MailBadara - (6) 서버 최적화 생각 중

초고 서버의 성능 최적화를 위해 프레임워크를 변경시키는 것을 고려하고 있다. 응답속도나 처리 속도보다는 메모리 사용률을 최소화시키는 방향으로 최적화하고 싶다. 클라이언트에는 그동안 써왔던 React를 썼지만 서버는 배웠던 프레임워크가 없었기 때문에 간편하게 바로 짤 수 있는 express.js를 사용했다. 또 신생 프레임워크보다 챗지피티에게 짜달라고 하기도 쉽고. 그러던 어느 날, 프레임워크별 성능 차이 표를 보게 되었다. https://youtu.be/a8uPDppckQk?si=Y6wD-fHww1tOgxoi - 출처: 유튜브 코딩애플 심플하게 nodejs + express를 사용하는 것보다 bun이라는 새로운 자바스크립트 런타입과 fastify라는 JS 서버 프레임워크를 사용하면 성능이 엄청나게 상승하..

프로젝트/MailBadara

[토이프로젝트] MailBadara - (5) 트러블슈팅

트러블슈팅 axios timeout 상황: 특정 시간이 되면 서버에서 크롤링 작업을 수행 후, DB의 유저들에게 메일을 뿌려야 한다. 그러나 서버에서 크롤링 작업을 수행할 때 크롤링 대상 사이트의 속도가 너무 느려서 axios.get의 반환이 늦어짐에 따라 timeout: 3초로 제한을 두었다. 그런데 어떤 때는 크롤링을 빠르게 잘하는 반면, 어떤 때는 너무 느려서 timeout: 3초가 계속해서 터진다. 솔루션: 크롤링 대상인 학과 홈페이지들의 서버 상태가 시시각각 달라져서 timeout을 지정하기가 애매했다. 작업이 길어질수록 메모리 사용량이 커질 것 같았지만, timeout을 무제한으로 두는 수밖에 없었다. 서버 로그 AxiosError: timeout of 3000ms exceeded at Red..

프로젝트/MailBadara

[토이프로젝트] MailBadara - (4) 프론트 최적화

프론트 최적화 2023-10-10 크롬의 Lighthouse 기능을 사용해서 React 프론트에 대한 최적화를 진행했다. Lighthouse Lighthouse는 웹 앱과 웹 페이지의 성능, 접근성, 웹사이트 작성 규칙, SEO 등 다양한 품질을 체크할 수 있는 오픈소스 도구이다. Google이 주도적으로 개발하고 있으며, 크롬 브라우저 내장 개발자 도구에서도 사용할 수 있다. CLI(Command-Line Interface) 형태로도 사용이 가능하고, Node 패키지로도 제공된다. 주요 기능 성능: 페이지 로드 시간, 렌더링 성능 등을 측정 접근성: 웹 표준과 접근성에 대한 준수 여부를 체크 Best Practices: 현대 웹 개발의 모범 사례를 체크 SEO: 검색 엔진 최적화에 필요한 요소를 체크 ..

프로젝트/MailBadara

[토이프로젝트] MailBadara - (3) 베타테스트 및 피드백

배포 이제 그래도 사람들이 봐줄만하게는 만들었기에 베타 테스트를 진행해보고자 했다. 그러나 사람들에게 배포하기 위해서는 서버를 개설해야 했고, 돈이 드는 유료 모델은 싫었다. AWS EC2의 프리티어는 진작에 써버렸고 vercel의 프리티어도 저번 해커톤에서 사용해버렸다. 이곳저곳 무료 호스팅 서비스를 찾아보다가 koyeb을 발견했고 기간 제한 없이 최저 스펙의 프리티어 서버를 무료로 사용할 수 있었다. 첫 베타 테스트 10월 3일 오후 12시부터 10월 6시 오후 6시까지. 학술 동아리 사람들을 대상으로 베타 테스트를 진행했다. 목표가 학교 전체를 대상으로 하는 만큼 사전에 철저하게 버그를 잡기 위해 먼저 소규모로 배포했다. 다행히 별 문제없이 베타 테스트를 마쳤고 피드백을 들을 수 있었다. 피드백 1..

KimCookieYa
'프로젝트/MailBadara' 카테고리의 글 목록 (2 Page)