Seapy's Blog


socket.io slack 자동화 트윗

@outsideris님이 트윗으로 socket.io는 Slack에 자동으로 가입하는 폼이 있다는 정보를 알게되면서 지금 내가 활동중인 커뮤니티들에도 적용하면 좋겠다는 생각이 들었다.

Slack이 좋기는 한데 가입 하려면 초대 이메일을 받아야 하고 이걸 관리자가 일일이 추가하는것도 번거로운데 저런식으로 자동 가입폼을 제공하면 좋겠다 싶었다. 왠지 API가 있을것 같았고 주말에 해야할일 + 빈둥거리다가 지나가버렸다.

slack 초대 자동화 node.js 앱 트윗

그리고 월요일 아침 왠일로 일찍일어나서 일찍 출근했는데 @outsideris 님은 내가 생각만 했던걸 만들어 두셨다! (node.js로 만든 Slack 초대 자동화) 거기에 블로그에 글까지 남겨 확인해보니 예상과 다르게 Slack 가입 API 같은건 없었다.

잘 만들어 주셨으니 낼름 받아 먹으면 되는데 node.js는 한번도 안써봤고 괜히 Docker로 만들고 싶다는 생각에 이왕이면 sinatra로 만들면 되겠다 싶었다.(마침 이 시점에 RORLab Slack 채널에서 Padrino 프레임워크가 무언지에 대한 이야기와 sinatra에 제네레이터같은거 추가된 거라는 채팅이 오가고 있었던것도 영향이 있었다)

원래 의도는 Docker 이미지로 만드는것이었고 개발전에 먼저 작성한 README 파일에도 Docker 배포방법까지 적어두었는데 막판에 Heroku 배포 버튼이 생각나서 방향을 바꾸었다.(이것도 스택오버플로우에서 sinatra 검색하다가 Heroku 단어를 보고 예전에 봤던 Heroku 배포 버튼이 생각난것이다) Heroku 배포 버튼은 해당 버튼만 누르면 GitHub 소스를 가지고 Heroku에 바로 배포 할 수 있도록 해주는것으로 필요한 환경설정도 app.json에 미리 지정해두면되기 때문에 README에 지저분하게 환경변수를 어떻게 설정하고 어떻게 배포하고 이런거 설명할 필요가 없었다.

+추가
@subicura님이 도커라이징한거 PR 올려주셔서 머지했습니다. 이제 도커로 실행할수 있습니다.

slack 자동 가입 페이지 샘플 스크린샷

결론은 sinatra로 Slack 자동 가입 페이지를 만들었고 Heroku 계졍을 가지고 있다면 누구나 자신의 Slack 자동 가입 페이지를 공짜로 생성 할 수 있다.

GitHub : https://github.com/seapy/slack_invite_automation_sinatra

GitHub 소스 페이지로 가서 보라색의 Deploy to Heroku 버튼을 누르면 Heroku 페이지로 이동하고 거기서 적절한 환경변수만 입력하면 바로 Slack 자동 가입 페이지가 생성된다. 요즘 재미 들린 스크린캐스트로도 만들어서 YouTube에 올렸다.(개발 관련된거 많이 올릴테니 구독좀 해주세요~)

디자인은 하지 말까 하다가 당장 내가 속한 2개의 커뮤니티에서 사용하려고 이쁜것으로 골랐다. 이건 Docker Korea Slack 채널에서 raccoony 님이 찾아주셨는데 다시 한번 감사드립니다. ^

이제 내일, 모레 이틀동안 각각 커뮤니티 모임 나가서 Slack 자동 가입 페이지를 쓸것인지 이야기 해봐야됩니다. 처음에는 좋겠다 싶어서 막 만들고 있었는데 다 하고 나니까 이렇게 가입 받아도 괜찮나라는 생각이 들면서 자신감이 위축되고 있습니다. 좀더 좋은 방법은 Slack 가입 요청 페이지를 만들고 요청자 리스트에 대한 허가 동작은 Slack 에서 채팅으로 하는것이 아닐까라는 생각도 하고 있습니다. Slack에 가입대기자 라고 치면 목록이 나오고 그중에 허용할 사람만 허용 1 이런식으로 하면 되는 그런거 말이죠.

마지막으로 이번 삽질의 최대 결과물은 Heroku 배포 버튼 적용이었습니다. 개념만 알고 막연했던것을 제대로 알고 써먹게 되었네요.

참고자료