Github Action으로 매일마다 브리핑 받기!

cjaewon·2020년 3월 23일
59
post-thumbnail

매일마다 브리핑을 해주는 뉴스봇을 깃허브 액션으로 만들어보기

Google App Script 로 개발...!

구글 앱 스크립트는 간단한 응용 프로그램 개발을 위해 Google에서 개발한 스크립팅 플랫폼이다.
앱 스크립트는 문법이 자바스크립트이고 거의 무료여서 사용하기 편하다고 생각해서 사용하게 되었다.

어...? 최신 자바스크립트 문법을 사용할 수 없었다

무료를 좋아하는 나한테는 어쩔 수 없이 개발을 진행하게되었다.
그렇게 어쩌다보니 개발을 다 완료하고 트리거로 매일 8시에 알람이 오게 하였다.

GAE 플랫폼에서 돌아가는 특성상 오류를 잡기 힘들고 npm 모듈을 사용 할 수 없어서 그냥 람다 또는 파이어베이스의 function 을 사용할려고 햇다.

Github Action 을 쓰자!

이 글을 보고 처음 Github Action을 알게되었고 바로 쓰면 좋을 것 같다는 생각이 들었다.

자신이 원하는 프로그래밍 언어로 작업을 할 수 있는게 매력적으로 느껴졌다.
그렇게 앱 스크립트를 버리고 Github Action을 사용하는김에 코드를 다 최신 문법으로 바꾸고 타입스크립트를 적용시켰다.

1. 웹 파싱을 하자

날씨

봇은 날씨, 온도, 뉴스 등을 보내주기 위해서는 데이터를 파싱해야했다.
날씨와 온도는 Weather Api 를 사용해서 가져오기로 했다. 다만 Wetaher Api에는 한가지 문제점이 있는데 결과값이 영어라는 점이다.
그래서 날씨 코드를 이용해서 한글로 변환해주어한다 그래서 json 파일로 저장 후 날씨 코드를 이용해서 한글로 된 날씨 데이터로 가공하였다.

뉴스

그 다음은 뉴스를 파싱해야했다. 네이버 뉴스, 다음 뉴스, 구글 뉴스 등이 있었는데
나는 그 중 구글 뉴스를 파싱했다.
https://news.google.com/rss?hl=ko&gl=KR&ceid=KR:ko
해당 사이트에서 axios를 사용하여 가져온 후 cheerio를 사용하여 제목과 url을 파싱했다.

2. 웹훅으로 전송

일단 웹훅으로 전송하기 위해서는 웹훅 url이 필요했는데 이 url을 저장할 방법이 고민이었다.
웹훅 url은 공개되면 안 되는 정보였으므로 비밀스럽게 보관해야 했다.


방법을 찾는 도중에 깃헙 secrets에 보관이 가능하다는 것을 알고 설정을 하고 nodejs.yml에 추가해주었더니
process.env로 바로 가져올 수 있었다 :)

그렇게 파싱한 정보를 매일 아침 8시에 웹훅으로 보내게 하였다.

결과

디스코드 웹훅

슬랙 웹훅

이렇게 Github Action으로 편지봇을 만들어 보았다.
Github Action을 처음 사용해보았는데 매우 좋았고 사용할 기회가 있으면 사용할 것 이다.

또한 Github Action을 활용한다면 여러가지 작업을 할 수 있다 ( 배포, 테스트 등)

https://github.com/cjaewon/letterbot

긴글 읽어주셔서 감사합니다!

9개의 댓글

comment-user-thumbnail
2020년 3월 24일

좋은 내용 감사합니다!

1개의 답글
comment-user-thumbnail
2020년 4월 3일

좋은 글 감사합니다!
저도 Github Action 써봐야겠네요 : )

1개의 답글
comment-user-thumbnail
2020년 4월 4일

리얼타임으로 읽어오는 봇이나 서버는 필요없고, 아침 정도에 긁어오는 봇이 필요했는데 그대로 필요한 내용이 적혀있네요. 좋은 글 감사드립니다.

1개의 답글
comment-user-thumbnail
2020년 5월 21일

velog 백업 도구 만든거 글 왜 삭제하셨나요??

2개의 답글