SlideShare a Scribd company logo
1 of 23
Download to read offline
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

Python Recipes for django girls seoul
Python Recipes for django girls seoulPython Recipes for django girls seoul
Python Recipes for django girls seoulJoeun Park
 
안드로이드 DB, 서버 연동하기
안드로이드 DB, 서버 연동하기안드로이드 DB, 서버 연동하기
안드로이드 DB, 서버 연동하기은아 정
 
Django in Production
Django in ProductionDjango in Production
Django in ProductionHyun-woo Park
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초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 SMARTSTUDYHyun-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 간단한 튜토리얼라한사 아
 

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
 
안드로이드 DB, 서버 연동하기
안드로이드 DB, 서버 연동하기안드로이드 DB, 서버 연동하기
안드로이드 DB, 서버 연동하기
 
Django in Production
Django in ProductionDjango in Production
Django in Production
 
Django beginning
Django beginningDjango beginning
Django beginning
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 
동시성 프로그래밍 기초 in GO
동시성 프로그래밍 기초 in GO 동시성 프로그래밍 기초 in GO
동시성 프로그래밍 기초 in GO
 
Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.
 
간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
 
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
 
스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글
 
스프링 오픈소스 정리
스프링 오픈소스 정리스프링 오픈소스 정리
스프링 오픈소스 정리
 
스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기
 
뭔지 모르지만 발표
뭔지 모르지만 발표뭔지 모르지만 발표
뭔지 모르지만 발표
 
Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료
 
Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기
 
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
 
spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼
 

Viewers also liked

챗봇 개발을 위한 네이버 랩스 api
챗봇 개발을 위한 네이버 랩스 api챗봇 개발을 위한 네이버 랩스 api
챗봇 개발을 위한 네이버 랩스 apiNAVER 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] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXpressEngine
 
코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020
코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020
코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020D.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 & TensorFlowJeongkyu 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 summitTae Young Lee
 
챗봇 시작해보기
챗봇 시작해보기챗봇 시작해보기
챗봇 시작해보기성일 한
 
텐서플로우 기초 이해하기
텐서플로우 기초 이해하기 텐서플로우 기초 이해하기
텐서플로우 기초 이해하기 Yong Joon Moon
 
Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법pyrasis
 

Viewers also liked (14)

챗봇 개발을 위한 네이버 랩스 api
챗봇 개발을 위한 네이버 랩스 api챗봇 개발을 위한 네이버 랩스 api
챗봇 개발을 위한 네이버 랩스 api
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
 
Make "PONG" : 아키텍팅과 동기화 테크닉
Make "PONG" : 아키텍팅과 동기화 테크닉Make "PONG" : 아키텍팅과 동기화 테크닉
Make "PONG" : 아키텍팅과 동기화 테크닉
 
SoftLayer 서비스 설명 3차 - 스토리지
SoftLayer 서비스 설명 3차 - 스토리지SoftLayer 서비스 설명 3차 - 스토리지
SoftLayer 서비스 설명 3차 - 스토리지
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
 
코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020
코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020
코노랩스(최재훈 CTO)_AI Startup D.PARTY_20161020
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
 
Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기
 
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
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summit
 
챗봇 시작해보기
챗봇 시작해보기챗봇 시작해보기
챗봇 시작해보기
 
텐서플로우 기초 이해하기
텐서플로우 기초 이해하기 텐서플로우 기초 이해하기
텐서플로우 기초 이해하기
 
Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법
 

Similar to 휴봇-슬랙 OSX 설치

오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)승훈 오
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012Daum 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
 
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
 
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-v11Dongil Yeom
 
빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for Android빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for AndroidSangkyoon Nam
 
SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표Sinhyub Kim
 
200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 Joohyun Han
 
구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐라한사 아
 
Boost 라이브리와 C++11
Boost 라이브리와 C++11Boost 라이브리와 C++11
Boost 라이브리와 C++11OnGameServer
 
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 1Park Jonggun
 
Posquit0 - Fabric을 이용한 ssh streamlining
Posquit0 - Fabric을 이용한 ssh streamliningPosquit0 - Fabric을 이용한 ssh streamlining
Posquit0 - Fabric을 이용한 ssh streamliningByungjin Park
 

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

오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012
 
오픈세미나 플러그인만들기
오픈세미나 플러그인만들기오픈세미나 플러그인만들기
오픈세미나 플러그인만들기
 
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화
 
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
Parse.com 맛보기
Parse.com 맛보기Parse.com 맛보기
Parse.com 맛보기
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
 
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
 
[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법
 
Introduce Cobuntu 9.04
Introduce Cobuntu 9.04Introduce Cobuntu 9.04
Introduce Cobuntu 9.04
 
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
 
빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for Android빠르고 지속적으로 전달하기: Continuous Delivery for Android
빠르고 지속적으로 전달하기: Continuous Delivery for Android
 
SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표
 
200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의
 
구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐
 
Boost 라이브리와 C++11
Boost 라이브리와 C++11Boost 라이브리와 C++11
Boost 라이브리와 C++11
 
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
 
Posquit0 - Fabric을 이용한 ssh streamlining
Posquit0 - Fabric을 이용한 ssh streamliningPosquit0 - Fabric을 이용한 ssh streamlining
Posquit0 - Fabric을 이용한 ssh streamlining
 

More from Juneyoung Oh

Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginnersJuneyoung 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 jsJuneyoung Oh
 
Github 의 release 기능
Github 의 release 기능Github 의 release 기능
Github 의 release 기능Juneyoung Oh
 
Html5 canvas6 week6n7n8
Html5 canvas6 week6n7n8Html5 canvas6 week6n7n8
Html5 canvas6 week6n7n8Juneyoung Oh
 
Html5 canvas study week1n2
Html5 canvas study week1n2Html5 canvas study week1n2
Html5 canvas study week1n2Juneyoung Oh
 
Tizen installation guide for OSX
Tizen installation guide for OSXTizen installation guide for OSX
Tizen installation guide for OSXJuneyoung Oh
 

More from Juneyoung Oh (7)

Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginners
 
Docker 사내교육 자료
Docker 사내교육 자료Docker 사내교육 자료
Docker 사내교육 자료
 
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
 
Github 의 release 기능
Github 의 release 기능Github 의 release 기능
Github 의 release 기능
 
Html5 canvas6 week6n7n8
Html5 canvas6 week6n7n8Html5 canvas6 week6n7n8
Html5 canvas6 week6n7n8
 
Html5 canvas study week1n2
Html5 canvas study week1n2Html5 canvas study week1n2
Html5 canvas study week1n2
 
Tizen installation guide for OSX
Tizen installation guide for OSXTizen installation guide for OSX
Tizen installation guide for OSX
 

휴봇-슬랙 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로 찍어보니 확인되더라구요.