본문 바로가기

개발/Github Actions 이메일 뉴스레터 제작기3

뉴스레터 리팩토링 2. 타입스크립트 적용 저장소 # 저번의 첫 번째 뉴스레터 개선에 이어서 이번에 두번째 개선을 진행하였습니다. 가장 큰 변화는 Typescript 도입, Yarn PnP 도입, 커스텀 에러 정리를 진행하였습니다. 1. Yarn PnP 적용 및 패키지 업데이트, Workflow 수정 첫번째 리팩토링에서 밝혔듯이, 이 프로젝트는 npm을 사용해서 진행하고 있었습니다. 그렇지만 npm 대신에 다시 Yarn을 사용하게 되었습니다. Yarn이 2.x 이상 버전으로 올라오면서(code명 berry) Plug'nPlay라는 기능이 추가되었습니다. # node_modules라는 폴더를 만들어서 사용하던 기존 방식은 굉장히 비효율적인 관리 방식입니다. 의존성을 정리하는 과정에서 package.json에 없는 패키지임에도 사용할 수 있게 되는 .. 2021. 11. 21.
뉴스레터 리팩토링 1. Async function 적용 예전에 저는 이메일 봇을 Github Actions를 통해 만든 적이 있습니다. 이번에는 그 봇을 조금 더 개선해본 경험을 정리해보겠습니다. 1. .then() 체이닝에서 async function으로 JS에서 비동기 작업을 처리하는 데에는 여러 방법이 있습니다. 옛날 부터 많이 쓰였던 CallBack도 있고, 반환 결과에 따라 다른 결과를 연결하기 쉽게 .then()으로 처리하는 Promise도 있고, 이를 동기함수 처리하듯이 짜기 위해 만들어진 asynce function도 있습니다. 처음에는 직관적으로 바로 다음 작업이 연계되는 Promise와 .then()을 기반으로 짰었는데 뭔가 아쉬웠습니다. 각 부분이 뭘 하는 지 명확하지가 않다. : 전부 다 then으로 연결되어 있으니 각 부분이 뭘 하는 .. 2021. 11. 14.
Github Actions로 이메일 뉴스레터 만들기 (1) 먼저 제 글과 이번 프로젝트는 jwn4492님의 Github Action으로 매일마다 브리핑 받기!을 기반해서 만들었습니다. 감사합니다. 소스코드는 이 곳입니다. 왜 GitHub Actions를 썼는가? Github actions는 여러분의 git 저장소에 있는 코드를 원하는 조건(예) cron, push, pull request, issue 작성) 등의 일이 생겼을 때 지정해놓은 명령어를 실행시켜주는 기능입니다. 테스트 통과여부를 측정하는 코드를 작성할 수도 있고, 아니면 결과물을 빌드해서 다른 곳에 올려주는 코드를 작성할 수 있습니다. 아니면 단순하게 작성한 코드를 정기적으로 실행시키는 역할만 해도 되죠. 제가 하기로 한 일은 대학공지들 중 최근 공지들을 긁어와서 그 목록을 보여주는 일이었습니다. 매.. 2021. 11. 14.