ݺߣ

ݺߣShare a Scribd company logo
Juneyoung Oh
I-ON Communications
2015.08.01
슬랙 휴봇 설치하기
목차
자료의 목적
OSX 에서 휴봇 설치하기
Slack 에 휴봇 초대하기
JS 로 휴봇 스크립팅
경험담
주의: 모든 컨텐츠는 OSX 에서 Slack, Heroku 을 사용했습니다.
자료의 목적
보세요 :
- 슬랙에서 봇을 가지고 놀고 싶은 분
- javascript 에 대해 들어는 보신 분
- javascript 로 깊이없이 뭔가 하시고 싶은 분
보지 마세요 :
- 백단에서 돌아가는 모든 것을 알아야 직성이 풀리는
프로그래머
- javascript 를 한번도 들어본 적 없는 분
- 휴봇에 대해 coffee 로 스크립팅 하시고 싶은 분
OSX 에서 휴봇 설치하기
주의: 다루어 지지 않을 주제들.
- node.js 설치하기
- nvm 설치하기
휴봇 공식 인스톨 가이드 (영어) :
https://hubot.github.com/docs/
영어가 가능하다면 위 링크가 한 200 배 정도 정확합니다. b
OSX 에서 휴봇 설치하기
`yo` 명령어로 `hubot-generator` 설치하기
만약 시스템에 권한이 부족하면 아래와 같은 에러가 발생할 수 있습니다.
`sudo` 명령어로 에러 넘어가기 :
OSX 에서 휴봇 설치하기
봇을 위한 디렉토리 생성
프로젝트 디렉토리로 이동
봇 등록
위 명령어를 실행하면 아래와 같은 화면이 출력됩니다.
OSX 에서 휴봇 설치하기
더 진행하기 위해 몇개의 필드를 터미널에서 입력해야 합니다.
당황하지 말고 채워봅시다.
[ 필드 목록 ]
- Owner : 그냥 봇 주인 이름.
- Bot name : 불릴 봇의 이름. 예를 들면, 봇 이름이 ‘testbot’ 라면 `testbot
what is your name?`
- Description : 봇에 대한 설명(넘어가도 됨).
- Adapter : 봇이 사용할 어댑터. 디폴트는 ‘campfire’. 나중에 ‘Procfile’ 에서
변경할 수 있음
예를 들면, 우측과 같이 입력하시면
됩니다.
어차피 adapter 는 slack 으로 이후에
바꿀 겁니다.
OSX 에서 휴봇 설치하기
새로 생성된 폴더와 파일들에 대해 알아봅니다. `ls` 명령으로 현재 하위
아이템을 볼 수 있습니다 :D
[파일 목록]
- Procfile : ‘Adapter’ 를 변경할 수 있습니다.
- external-scripts.js : 휴봇에서 사용할 스크립트를 나열합니다. 디테일은
생략한다. https://www.npmjs.com/browse/keyword/hubot-scripts
- READ.md : git 에서 사용하는 파일. ‘github’ 같은 서비스를 사용한다면, 이
파일이 가장 먼저 노출됩니다.
- hubot-scripts.json : 사용자가 정의한 추가 스크립트 목록이 나열됩니다.
- scripts(d) : 사용자 정의 스크립트를 담는 디렉토리. 반드시 추가 후, hubot-
scripts.js 에도 명시해 줍시다.
- bin(d) : 휴봇 실행 파일이 들어 있는 디렉토리.
OSX 에서 휴봇 설치하기
아래 커맨드로 실행 할 수 있습니다 :D
지금은 터미널 프롬프트가 전부입니다. 그래도 간단히 테스트를 위해 help 를 호출해 봅
‘Botname’ 이 들어가야 합니다.
간단하게 echo 명령어로 테스트 합니다.
이제 Slack 과 연동해 봅시다!
Slack 에 휴봇 초대하기
들어가기 전에 …
- 슬랙 계정은 있다고 가정합니다.
- heroku tool-belt 는 깔려 있다고 가정합니다.
- 공식 가이드 주소 (영어) : https://github.com/slackhq/hubot-slack
1. ‘slack’ 으로 어댑터를 변경합니다.
`vi` 명령어의 결과는 아래와 같습니다.
파일을 수정해야 하기 때문에 ‘insert mode’ 로 전환합니다. ‘a’ 나 ‘I’ 키를 눌러
페이지 하단정보가 아래와 같이 되게 합니다.
Slack 에 휴봇 초대하기
2. 아래 라인처럼 변경합니다. 라인의 맨 앞에 ‘#’ 가 있는 라인은 주석이니,
생략 가능합니다.
‘esc’ 키를 눌러 관리모드로 들어가고 ‘:wq’ 를 쳐서 빠져나옵니다. ‘w’ 는 를
‘write’ 의미하고 ‘q’ 는 ‘quit’ 를 의미합니다.
팁. ‘:set nu’ 를 치면 vi 가 좌측에 라인 넘버를 표기 합니다. 긴 스크립트를
읽을 때 매우 유용합니다.
Slack 에 휴봇 초대하기
3. Heroku 에 배포하기.
Heroku 에 대한 정보는 생략한다. http://www.heroku.com
아래와 같은 결과를 볼 수 있습니다.
마지막 라인에서 Heroku git 주소를 확인할 수 있습니다.
앞으로 진행 상황은 저 git URL 의 내용과 동기화될 것입니다.
이 경우에는,
https://git.heroku.com/testbotapp.git 가 heroku git 주소가 됩니다.
Slack 에 휴봇 초대하기
4. 헤로쿠 redistogo addon 설치하기.
Hubot 이 redis DB 를 사용하기 때문에 애드온을 설치해야 합니다.(로컬에
설치할 필요는 없습니다.)
heroku addons:create (addon name) –app (your app name in Heroku)
녹색 : Heroku 명령어.
귤색 : 변수
보라색 : 생략 가능한 부분 (만약 헤로쿠 앱이 복수라면 –app 옵션으로 목적
애플리케이션을 명시해 주어야 합니다.)
* 헤로쿠 애드온 사용을 위해서는 애드온이 무료라고 할지라도 계좌 정보를
등록해야 합니다. 등록하지 않으면 애드온을 사용할 수 없습니다.
Slack 에 휴봇 초대하기
5-1. Heroku 설정 추가하기.
Slack 연동을 위해서 HEROKU URL 과 HEROKU_SLACK_TOKEN 을 설정해 주어야
합니다. 추가합시다.
아래 URL 로 접근하세요:
https://{방이름}.slack.com/services/new/hubot
봇 이름을 넣고 다음 페이지로 진행하면, 다음 페이지 TOKEN 이 있습니다.
(가장 상단에 있습니다)
Slack 에 휴봇 초대하기
5-2. Heroku 설정 추가하기.
터미널에서 설정을 추가합니다.
HEROKU_URL 은 heroku.com 페이지에서 찾을 수 있습니다.
[Setting] 탭으로 가시면 페이지 중간쯤 [info] 섹션에 있습니다.
Slack 에 휴봇 초대하기
6. 봇 실행 시키고 Slack 에서 확인하기.
그전에 현재 코드를 heroku 의 git으로 push 해야 합니다.
만약 이미 heroku app 이 있다면 추가 작업이 필요합니다.
프로젝트 최상단에서 push 전에 아래 명령어를 입력합니다.
아래 명령어로 heroku 앱을 실행합니다.
슬랙에 가면 [DIRECT MESSAGES] 코너에 아래와 같이 봇이 추가된 걸 볼 수
있습니다.
JS 로 휴봇 스크립팅
coffee script 아닙니다.
기초: 커스텀 스크립트를 ‘scripts’ 폴더 아래에 작성합니다.
JS 로 휴봇 스크립팅
스크립트 작성 후에, ‘hubot-scripts.json’ 파일을 수정합니다.
넣을 때는 확장자를 제외하고 넣으시면 됩니다.
예를 들면, 좌측은 새로 추가된 스크립트들이고, 우측은 그 스크립트들을
hubot-scripts.json에 반영한 모습입니다.
JS 로 휴봇 스크립팅
마지막으로 ‘add’, ‘commit’ , ‘push’ 명령을 실행합니다.
그리고 ‘heroku open’ 를 이용해 앱을 작동시키세요.
슬랙에서 아래와 같이 실행 결과를 확인할 수 있습니다 …
경험담
Tips from my experiences.
1. heroku logs 확인하기.
js 스크립팅에 대한 공식 가이드를 찾을 수 없기 때문에 헤로쿠에서 로그를
출력하는 것이 매우 유용합니다. 이 방식으로 내장된 오브젝트에 대한
정보를 알 수 있습니다.
2.휴봇에서는 DOM 엘리먼트 사용불가.
Hubot 은 ‘document’ 오브젝트(window 도 마찬가지)를 사용할 수 없습니다.
(XMLHttpRequest 오브젝트도 없음).
경험담
Tips from my experiences.
3. ajax 는 내부 API 를 이용해야 합니다.
예를 들면…
4. slack 에서 어떤 API들은 봇이 사용할 수 없습니다.
예를 들면, kick API 는 봇에 의해 불릴 호출될 수 없습니다. 보다 자세한
정보를 위해서는 공식 API 문서를 참고하세요.
URL : https://api.slack.com/methods
경험담
Tips from my experiences.
5. js 로 작성하더라도 coffee script 코드를 참조하기.
javascript 스크립팅에 대한 공식 문서를 찾을 수 없었습니다. 그래서 내장
객체가 어떤 요소나 펑션을 가지고 있는지 모르기 때문에 github 의 coffee 를
참조하는 게 좋습니다. 특히 ‘src’ 디렉토리 안에 있는 coffee 파일들은 js 의
오브젝트와 거의 일치합니다.
URL : https://github.com/github/hubot/tree/master/src
예를 들면, message, brain, robot, user 같은 부분들은 heroku logs로 찍어보니
확인되더라구요.
감사니다!

More Related Content

What's hot (20)

Python Recipes for django girls seoul
Python Recipes for django girls seoulPython Recipes for django girls seoul
Python Recipes for django girls seoul
Joeun Park
안드로이드 DB, 서버 연동하기
안드로이드 DB, 서버 연동하기안드로이드 DB, 서버 연동하기
안드로이드 DB, 서버 연동하기
은아 정
Django in Production
Django in ProductionDjango in Production
Django in Production
Hyun-woo Park
Django beginning
Django beginningDjango beginning
Django beginning
Woojing Seok
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
Kwangyoun Jung
동시성 프로그래밍 기초 in GO
동시성 프로그래밍 기초 in GO 동시성 프로그래밍 기초 in GO
동시성 프로그래밍 기초 in GO
라한사 아
Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.
Kyoung Up Jung
간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기
Kyoung Up Jung
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Joongi Kim
Groovy 시작 입문
Groovy 시작 입문Groovy 시작 입문
Groovy 시작 입문
라한사 아
Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDY
Hyun-woo Park
스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글
라한사 아
스프링 오픈소스 정리
스프링 오픈소스 정리스프링 오픈소스 정리
스프링 오픈소스 정리
라한사 아
스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기
라한사 아
뭔지 모르지만 발표
뭔지 모르지만 발표뭔지 모르지만 발표
뭔지 모르지만 발표
Kyoung Up Jung
Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료
Han Sung Kim
Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기
Kyoung Up Jung
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
Cheol Kang
spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼
라한사 아
Python Recipes for django girls seoul
Python Recipes for django girls seoulPython Recipes for django girls seoul
Python Recipes for django girls seoul
Joeun Park
안드로이드 DB, 서버 연동하기
안드로이드 DB, 서버 연동하기안드로이드 DB, 서버 연동하기
안드로이드 DB, 서버 연동하기
은아 정
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
Kwangyoun Jung
동시성 프로그래밍 기초 in GO
동시성 프로그래밍 기초 in GO 동시성 프로그래밍 기초 in GO
동시성 프로그래밍 기초 in GO
라한사 아
Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.
Kyoung Up Jung
간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기
Kyoung Up Jung
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Joongi Kim
Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDY
Hyun-woo Park
스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글
라한사 아
스프링 오픈소스 정리
스프링 오픈소스 정리스프링 오픈소스 정리
스프링 오픈소스 정리
라한사 아
스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기
라한사 아
Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료
Han Sung Kim
Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기
Kyoung Up Jung
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
Cheol Kang
spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼
라한사 아

Viewers also liked (14)

챗봇 개발을 위한 네이버 랩스 api
챗봇 개발을 위한 네이버 랩스 api챗봇 개발을 위한 네이버 랩스 api
챗봇 개발을 위한 네이버 랩스 api
NAVER D2
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
수정 김
Make "PONG" : 아키텍팅과 동기화 테크닉
Make "PONG" : 아키텍팅과 동기화 테크닉Make "PONG" : 아키텍팅과 동기화 테크닉
Make "PONG" : 아키텍팅과 동기화 테크닉
iFunFactory Inc.
SoftLayer 서비스 설명 3차 - 스토리지
SoftLayer 서비스 설명 3차 - 스토리지SoftLayer 서비스 설명 3차 - 스토리지
SoftLayer 서비스 설명 3차 - 스토리지
IBM Korea
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XpressEngine
코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020
코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020
코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020
D.CAMP
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
iFunFactory Inc.
Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기
Dronix
Chat bot making process using Python 3 & TensorFlow
Chat bot making process using Python 3 & TensorFlowChat bot making process using Python 3 & TensorFlow
Chat bot making process using Python 3 & TensorFlow
Jeongkyu Shin
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
NAVER D2
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summit
Tae Young Lee
챗봇 시작해보기
챗봇 시작해보기챗봇 시작해보기
챗봇 시작해보기
성일 한
텐서플로우 기초 이해하기
텐서플로우 기초 이해하기 텐서플로우 기초 이해하기
텐서플로우 기초 이해하기
Yong Joon Moon
Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법
pyrasis
챗봇 개발을 위한 네이버 랩스 api
챗봇 개발을 위한 네이버 랩스 api챗봇 개발을 위한 네이버 랩스 api
챗봇 개발을 위한 네이버 랩스 api
NAVER D2
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
수정 김
Make "PONG" : 아키텍팅과 동기화 테크닉
Make "PONG" : 아키텍팅과 동기화 테크닉Make "PONG" : 아키텍팅과 동기화 테크닉
Make "PONG" : 아키텍팅과 동기화 테크닉
iFunFactory Inc.
SoftLayer 서비스 설명 3차 - 스토리지
SoftLayer 서비스 설명 3차 - 스토리지SoftLayer 서비스 설명 3차 - 스토리지
SoftLayer 서비스 설명 3차 - 스토리지
IBM Korea
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XpressEngine
코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020
코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020
코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020
D.CAMP
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
iFunFactory Inc.
Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기
Dronix
Chat bot making process using Python 3 & TensorFlow
Chat bot making process using Python 3 & TensorFlowChat bot making process using Python 3 & TensorFlow
Chat bot making process using Python 3 & TensorFlow
Jeongkyu Shin
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
NAVER D2
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summit
Tae Young Lee
챗봇 시작해보기
챗봇 시작해보기챗봇 시작해보기
챗봇 시작해보기
성일 한
텐서플로우 기초 이해하기
텐서플로우 기초 이해하기 텐서플로우 기초 이해하기
텐서플로우 기초 이해하기
Yong Joon Moon
Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법
pyrasis

Similar to 휴봇-슬랙 OSX 설치 (20)

오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)
승훈 오
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012
Daum DNA
오픈세미나 플러그인만들기
오픈세미나 플러그인만들기오픈세미나 플러그인만들기
오픈세미나 플러그인만들기
승훈 오
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기
Mario Cho
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화
Juwon Kim
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제
Tae Young Lee
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
탑크리에듀(구로디지털단지역3번출구 2분거리)
Parse.com 맛보기
Parse.com 맛보기Parse.com 맛보기
Parse.com 맛보기
flashscope
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
Sam Kim
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
Ubuntu Korea Community
[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법
Amy Kim
Introduce Cobuntu 9.04
Introduce Cobuntu 9.04Introduce Cobuntu 9.04
Introduce Cobuntu 9.04
Ubuntu Korea Community
GitHub Actions의 다양한 기능 활용하기 - GitHub Universe '24 Recap
GitHub Actions의 다양한 기능 활용하기 - GitHub Universe '24 RecapGitHub Actions의 다양한 기능 활용하기 - GitHub Universe '24 Recap
GitHub Actions의 다양한 기능 활용하기 - GitHub Universe '24 Recap
JeongHun Byeon
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Dongil Yeom
빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for Android빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for Android
Sangkyoon Nam
SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표
Sinhyub Kim
200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의
Joohyun Han
구글앱엔진+스프링+스프링dٲ貹+메이븐
구글앱엔진+스프링+스프링dٲ貹+메이븐구글앱엔진+스프링+스프링dٲ貹+메이븐
구글앱엔진+스프링+스프링dٲ貹+메이븐
라한사 아
Boost 라이브리와 C++11
Boost 라이브리와 C++11Boost 라이브리와 C++11
Boost 라이브리와 C++11
OnGameServer
IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1
Park Jonggun
오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)
승훈 오
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012
Daum DNA
오픈세미나 플러그인만들기
오픈세미나 플러그인만들기오픈세미나 플러그인만들기
오픈세미나 플러그인만들기
승훈 오
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기
Mario Cho
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화
Juwon Kim
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제
Tae Young Lee
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
Sam Kim
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
Ubuntu Korea Community
[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법
Amy Kim
GitHub Actions의 다양한 기능 활용하기 - GitHub Universe '24 Recap
GitHub Actions의 다양한 기능 활용하기 - GitHub Universe '24 RecapGitHub Actions의 다양한 기능 활용하기 - GitHub Universe '24 Recap
GitHub Actions의 다양한 기능 활용하기 - GitHub Universe '24 Recap
JeongHun Byeon
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Dongil Yeom
빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for Android빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for Android
Sangkyoon Nam
SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표
Sinhyub Kim
200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의
Joohyun Han
구글앱엔진+스프링+스프링dٲ貹+메이븐
구글앱엔진+스프링+스프링dٲ貹+메이븐구글앱엔진+스프링+스프링dٲ貹+메이븐
구글앱엔진+스프링+스프링dٲ貹+메이븐
라한사 아
Boost 라이브리와 C++11
Boost 라이브리와 C++11Boost 라이브리와 C++11
Boost 라이브리와 C++11
OnGameServer
IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1
Park Jonggun

More from Juneyoung Oh (7)

Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginners
Juneyoung Oh
Docker 사내교육 자료
Docker 사내교육 자료Docker 사내교육 자료
Docker 사내교육 자료
Juneyoung Oh
How to build a slack-hubot with js
How to build a slack-hubot with jsHow to build a slack-hubot with js
How to build a slack-hubot with js
Juneyoung Oh
Github 의 release 기능
Github 의 release 기능Github 의 release 기능
Github 의 release 기능
Juneyoung Oh
Html5 canvas6 week6n7n8
Html5 canvas6 week6n7n8Html5 canvas6 week6n7n8
Html5 canvas6 week6n7n8
Juneyoung Oh
Html5 canvas study week1n2
Html5 canvas study week1n2Html5 canvas study week1n2
Html5 canvas study week1n2
Juneyoung Oh
Tizen installation guide for OSX
Tizen installation guide for OSXTizen installation guide for OSX
Tizen installation guide for OSX
Juneyoung Oh
Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginners
Juneyoung Oh
Docker 사내교육 자료
Docker 사내교육 자료Docker 사내교육 자료
Docker 사내교육 자료
Juneyoung Oh
How to build a slack-hubot with js
How to build a slack-hubot with jsHow to build a slack-hubot with js
How to build a slack-hubot with js
Juneyoung Oh
Github 의 release 기능
Github 의 release 기능Github 의 release 기능
Github 의 release 기능
Juneyoung Oh
Html5 canvas study week1n2
Html5 canvas study week1n2Html5 canvas study week1n2
Html5 canvas study week1n2
Juneyoung Oh
Tizen installation guide for OSX
Tizen installation guide for OSXTizen installation guide for OSX
Tizen installation guide for OSX
Juneyoung Oh

휴봇-슬랙 OSX 설치

  • 2. 목차 자료의 목적 OSX 에서 휴봇 설치하기 Slack 에 휴봇 초대하기 JS 로 휴봇 스크립팅 경험담 주의: 모든 컨텐츠는 OSX 에서 Slack, Heroku 을 사용했습니다.
  • 3. 자료의 목적 보세요 : - 슬랙에서 봇을 가지고 놀고 싶은 분 - javascript 에 대해 들어는 보신 분 - javascript 로 깊이없이 뭔가 하시고 싶은 분 보지 마세요 : - 백단에서 돌아가는 모든 것을 알아야 직성이 풀리는 프로그래머 - javascript 를 한번도 들어본 적 없는 분 - 휴봇에 대해 coffee 로 스크립팅 하시고 싶은 분
  • 4. OSX 에서 휴봇 설치하기 주의: 다루어 지지 않을 주제들. - node.js 설치하기 - nvm 설치하기 휴봇 공식 인스톨 가이드 (영어) : https://hubot.github.com/docs/ 영어가 가능하다면 위 링크가 한 200 배 정도 정확합니다. b
  • 5. OSX 에서 휴봇 설치하기 `yo` 명령어로 `hubot-generator` 설치하기 만약 시스템에 권한이 부족하면 아래와 같은 에러가 발생할 수 있습니다. `sudo` 명령어로 에러 넘어가기 :
  • 6. OSX 에서 휴봇 설치하기 봇을 위한 디렉토리 생성 프로젝트 디렉토리로 이동 봇 등록 위 명령어를 실행하면 아래와 같은 화면이 출력됩니다.
  • 7. OSX 에서 휴봇 설치하기 더 진행하기 위해 몇개의 필드를 터미널에서 입력해야 합니다. 당황하지 말고 채워봅시다. [ 필드 목록 ] - Owner : 그냥 봇 주인 이름. - Bot name : 불릴 봇의 이름. 예를 들면, 봇 이름이 ‘testbot’ 라면 `testbot what is your name?` - Description : 봇에 대한 설명(넘어가도 됨). - Adapter : 봇이 사용할 어댑터. 디폴트는 ‘campfire’. 나중에 ‘Procfile’ 에서 변경할 수 있음 예를 들면, 우측과 같이 입력하시면 됩니다. 어차피 adapter 는 slack 으로 이후에 바꿀 겁니다.
  • 8. OSX 에서 휴봇 설치하기 새로 생성된 폴더와 파일들에 대해 알아봅니다. `ls` 명령으로 현재 하위 아이템을 볼 수 있습니다 :D [파일 목록] - Procfile : ‘Adapter’ 를 변경할 수 있습니다. - external-scripts.js : 휴봇에서 사용할 스크립트를 나열합니다. 디테일은 생략한다. https://www.npmjs.com/browse/keyword/hubot-scripts - READ.md : git 에서 사용하는 파일. ‘github’ 같은 서비스를 사용한다면, 이 파일이 가장 먼저 노출됩니다. - hubot-scripts.json : 사용자가 정의한 추가 스크립트 목록이 나열됩니다. - scripts(d) : 사용자 정의 스크립트를 담는 디렉토리. 반드시 추가 후, hubot- scripts.js 에도 명시해 줍시다. - bin(d) : 휴봇 실행 파일이 들어 있는 디렉토리.
  • 9. OSX 에서 휴봇 설치하기 아래 커맨드로 실행 할 수 있습니다 :D 지금은 터미널 프롬프트가 전부입니다. 그래도 간단히 테스트를 위해 help 를 호출해 봅 ‘Botname’ 이 들어가야 합니다. 간단하게 echo 명령어로 테스트 합니다. 이제 Slack 과 연동해 봅시다!
  • 10. Slack 에 휴봇 초대하기 들어가기 전에 … - 슬랙 계정은 있다고 가정합니다. - heroku tool-belt 는 깔려 있다고 가정합니다. - 공식 가이드 주소 (영어) : https://github.com/slackhq/hubot-slack 1. ‘slack’ 으로 어댑터를 변경합니다. `vi` 명령어의 결과는 아래와 같습니다. 파일을 수정해야 하기 때문에 ‘insert mode’ 로 전환합니다. ‘a’ 나 ‘I’ 키를 눌러 페이지 하단정보가 아래와 같이 되게 합니다.
  • 11. Slack 에 휴봇 초대하기 2. 아래 라인처럼 변경합니다. 라인의 맨 앞에 ‘#’ 가 있는 라인은 주석이니, 생략 가능합니다. ‘esc’ 키를 눌러 관리모드로 들어가고 ‘:wq’ 를 쳐서 빠져나옵니다. ‘w’ 는 를 ‘write’ 의미하고 ‘q’ 는 ‘quit’ 를 의미합니다. 팁. ‘:set nu’ 를 치면 vi 가 좌측에 라인 넘버를 표기 합니다. 긴 스크립트를 읽을 때 매우 유용합니다.
  • 12. Slack 에 휴봇 초대하기 3. Heroku 에 배포하기. Heroku 에 대한 정보는 생략한다. http://www.heroku.com 아래와 같은 결과를 볼 수 있습니다. 마지막 라인에서 Heroku git 주소를 확인할 수 있습니다. 앞으로 진행 상황은 저 git URL 의 내용과 동기화될 것입니다. 이 경우에는, https://git.heroku.com/testbotapp.git 가 heroku git 주소가 됩니다.
  • 13. Slack 에 휴봇 초대하기 4. 헤로쿠 redistogo addon 설치하기. Hubot 이 redis DB 를 사용하기 때문에 애드온을 설치해야 합니다.(로컬에 설치할 필요는 없습니다.) heroku addons:create (addon name) –app (your app name in Heroku) 녹색 : Heroku 명령어. 귤색 : 변수 보라색 : 생략 가능한 부분 (만약 헤로쿠 앱이 복수라면 –app 옵션으로 목적 애플리케이션을 명시해 주어야 합니다.) * 헤로쿠 애드온 사용을 위해서는 애드온이 무료라고 할지라도 계좌 정보를 등록해야 합니다. 등록하지 않으면 애드온을 사용할 수 없습니다.
  • 14. Slack 에 휴봇 초대하기 5-1. Heroku 설정 추가하기. Slack 연동을 위해서 HEROKU URL 과 HEROKU_SLACK_TOKEN 을 설정해 주어야 합니다. 추가합시다. 아래 URL 로 접근하세요: https://{방이름}.slack.com/services/new/hubot 봇 이름을 넣고 다음 페이지로 진행하면, 다음 페이지 TOKEN 이 있습니다. (가장 상단에 있습니다)
  • 15. Slack 에 휴봇 초대하기 5-2. Heroku 설정 추가하기. 터미널에서 설정을 추가합니다. HEROKU_URL 은 heroku.com 페이지에서 찾을 수 있습니다. [Setting] 탭으로 가시면 페이지 중간쯤 [info] 섹션에 있습니다.
  • 16. Slack 에 휴봇 초대하기 6. 봇 실행 시키고 Slack 에서 확인하기. 그전에 현재 코드를 heroku 의 git으로 push 해야 합니다. 만약 이미 heroku app 이 있다면 추가 작업이 필요합니다. 프로젝트 최상단에서 push 전에 아래 명령어를 입력합니다. 아래 명령어로 heroku 앱을 실행합니다. 슬랙에 가면 [DIRECT MESSAGES] 코너에 아래와 같이 봇이 추가된 걸 볼 수 있습니다.
  • 17. JS 로 휴봇 스크립팅 coffee script 아닙니다. 기초: 커스텀 스크립트를 ‘scripts’ 폴더 아래에 작성합니다.
  • 18. JS 로 휴봇 스크립팅 스크립트 작성 후에, ‘hubot-scripts.json’ 파일을 수정합니다. 넣을 때는 확장자를 제외하고 넣으시면 됩니다. 예를 들면, 좌측은 새로 추가된 스크립트들이고, 우측은 그 스크립트들을 hubot-scripts.json에 반영한 모습입니다.
  • 19. JS 로 휴봇 스크립팅 마지막으로 ‘add’, ‘commit’ , ‘push’ 명령을 실행합니다. 그리고 ‘heroku open’ 를 이용해 앱을 작동시키세요. 슬랙에서 아래와 같이 실행 결과를 확인할 수 있습니다 …
  • 20. 경험담 Tips from my experiences. 1. heroku logs 확인하기. js 스크립팅에 대한 공식 가이드를 찾을 수 없기 때문에 헤로쿠에서 로그를 출력하는 것이 매우 유용합니다. 이 방식으로 내장된 오브젝트에 대한 정보를 알 수 있습니다. 2.휴봇에서는 DOM 엘리먼트 사용불가. Hubot 은 ‘document’ 오브젝트(window 도 마찬가지)를 사용할 수 없습니다. (XMLHttpRequest 오브젝트도 없음).
  • 21. 경험담 Tips from my experiences. 3. ajax 는 내부 API 를 이용해야 합니다. 예를 들면… 4. slack 에서 어떤 API들은 봇이 사용할 수 없습니다. 예를 들면, kick API 는 봇에 의해 불릴 호출될 수 없습니다. 보다 자세한 정보를 위해서는 공식 API 문서를 참고하세요. URL : https://api.slack.com/methods
  • 22. 경험담 Tips from my experiences. 5. js 로 작성하더라도 coffee script 코드를 참조하기. javascript 스크립팅에 대한 공식 문서를 찾을 수 없었습니다. 그래서 내장 객체가 어떤 요소나 펑션을 가지고 있는지 모르기 때문에 github 의 coffee 를 참조하는 게 좋습니다. 특히 ‘src’ 디렉토리 안에 있는 coffee 파일들은 js 의 오브젝트와 거의 일치합니다. URL : https://github.com/github/hubot/tree/master/src 예를 들면, message, brain, robot, user 같은 부분들은 heroku logs로 찍어보니 확인되더라구요.