slack

요즘 나름 뜨거운 서비스 중의 하나이다. 협업을 위한 서비스로, 다양한 외부 서비스 연동이 큰 특징이다. 다양한 외부 서비스들 외에 다양한 기능을 추가할 수 있게 slack bot에 대한 API도 제공한다.

emille bot

우연히 slack 관련 자료를 인터넷에서 찾아보다가 slack bot을 쉽게(?) 구현할 수 있다는 것을 알게 되었다.

재미삼아 간단한 것을 만들어 볼까 하는 생각이 들었다. 각종 SNS에서 정시를 알려주는 에밀레 bot들이 문득 생각이 났다. 매 정시에 시간을 알려주는 것이 전부이다. 일단 시작해봤다.

python으로 구현

어떤 언어로 만들어 볼까 고민하다가 가끔 사용해보았던 python을 골랐다.

bot을 쉽게 구현할 수 있다는 것도 python으로 구현된 slack bot 코드를 살펴보았기 때문이다. 여기에서 python-slackclient라이브러리를 사용하고 있었고, 간편하게 사용할 수 있는 것으로 보였다.

첫 번째 구현

첫 번째 구현은 노트북에서 직접 돌아가는 버전이었다. 현재 시각을 확인하여 적당히 sleep을 하여 매시간 slack 접속해서 메시지를 알려주는 정도로 구현했다.

돌아가는 것을 확인하니 노트북이 아닌 24시간 수행할 수 있는 환경이 필요하였다. 그래서 선택한 것이 heroku이다.

두 번째 구현

heroku

보통 Web App을 주로 돌리지만, 그 외의 작업도 가능하고 python을 지원하여 선택했다. 그리고 이 정도의 작업은 무료로 사용할 수 있다.

unix의 cron같은 동작을 APScheduler라는 라이브러리를 이용하면 가능하다는 것과 이 라이브러리를 이용한 heroku 도움 문서가 있어 큰 도움이 되었다.

결과물

완성한 emille bot은 다음처럼 24시간 잘 동작하고 있다.

실행화면

작업한 결과물은 github 저장소에 있다.

Comments