SlideShare a Scribd company logo
리스펙토링
세 번째 세션
목차  카카오톡 플러스친구 개설
 카카오톡 API 이해
 Node.js 응답 서버 구축
 Heroku에 서버 올리기
 카카오톡 응답 테스트
카톡 플러스친구 개설
플친 가입 후 새로 생성
이런 형식으로 생성됨
두 기능만 사용
공개 설정
API형 설정
카카오톡 API 요청을 받아서
사용자 질문에 대답해 줄 서버 URL
API 요청 방식 문서
카톡 API 이해
• GET : HTTP 요청 방식
• your_server_url : 우리가
배포할 서버 주소
• /keyboard : 키보드 버튼
요청
• json : 응답 데이터 형태
서버에 작성할 응답 데이터 코드
Node.js
응답 서버 구축
NPM 기초 명령어 및 프로젝트 폴더 생성
 node –v : Node.js 버전 확인
 npm –v : NPM 버전 확인
 npm init : Node 프로젝트를 위한 package.json
파일 생성 => 초기화
 npm lnstall 패키지명 : 패키지 설치
npm install --save express
: express 프레임워크 설치
기본 서버 구축 & 키보드 응답 코드 작성
Heroku에 서버 배포
HEROKU 란?
 여러 프로그래밍 언어를 지원하는 클라우드 플랫폼
서비스
 웹 서버의 기능을 포함하는 플랫폼 및 인프라 제공
(빌드, 배포, 환경설정, 확장, 튜닝 등)
 간단한 웹 페이지를 올릴 수 있는 무료 서버 제공
(512MB 메모리, 1 web / 1 worker)
CLI (Command Line Interface)
: 터미널 창에서 heroku 명령어를 사용할 수 있음
헤로쿠 CLI 설치
https://devcenter.heroku.com/articles/heroku -cli
자신의 헤로쿠 앱 목록
=> 카카오톡 응답 서버를 배포할 헤로쿠 앱 생성
개인 헤로쿠 화면
vscode 터미널에서 헤로쿠 로그인
heroku login : 헤로쿠 접속
=> 헤로쿠 email & password 입력
헤로쿠 앱 생성
heroku create 앱이름
=> 앱 이름이 이미 존재하면 생성되지 않음
heroku config:set NODE_ENV=노드환경변수명
=> 노드 환경변수 설정
=> 기본값은 production
런타임 환경변수 설정
깃 초기화 및 원격 경로 설정
1. 깃 초기화
2. 깃-헤로쿠 원격 경로 설정
3. 원격 설정 확인
.gitignore 파일 추가
.gitignore
=> 깃 추적 시, 작성된 파일 및 폴더는 무시
=> .vscode와 node_modules 추적하지 않음
=> 파일이나 폴더 이름 앞에 .이 붙으면 숨김 파일을 의미
깃 추적 및 커밋
git add . => 모든 파일 추적 (임시)
git commit –m “메시지” => 추적된 파일 커밋 (확정)
헤로쿠 앱 서버
배포 및 적용
헤로쿠 앱 실행
헤로쿠 앱 URL 확인 및 테스트
헤로쿠 앱 온오프 설정
heroku ps:scale web=0 : 앱 중지
heroku ps:scale web=1 : 앱 실행
카톡 요청-응답 테스트
잘 되는지 확인
키보드 요청이 잘 된 것을 확인할 수 있다.
응답 메시지 코드를 서버 파일에 작성하지
않아서 생기는 오류이다.
응답 메시지 형식
데이터를 Request Body 에 담아서 보내는 HTTP 요청 방식
/message 경로로 요청
사용자가 입력한 메시지가 content 안에 담겨서 보내진다.
content는 request body 안에 저장
npm install --save body-parser
body-parser
• 클라이언트에서 요청한 데이터가
담겨 있는 request body 를 읽어
req.body 객체를 생성
urlencoded ()
• UTF-8 인코딩을 지원
json()
• 데이터를 JSON 형태로 가져옴
req.body.content
• 사용자가 카톡에 입력한 대화 내용은
request body의 content 객체 안에
담겨 전송된다.
var responseMsg
• 카톡 사용자에게 응답해줄 메시지 작성
res.json()
• 응답 메시지를 JSON 형식으로 전송
응답 메시지 작성
• git add . && git commit –m “”
• git push heroku master
변경된 코드 적용 및 헤로쿠 재배포
응답 테스트
이미지와 링크 추가
여기서부턴 입맛대로
• http://codevkr.tistory.com/30
• https://devcenter.heroku.com/article
s/getting-started-with-
nodejs#introduction
• http://expressjs.com/ko/
참고 링크
감사합니다.

More Related Content

What's hot

Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초
Circulus
 
[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술
NAVER D2
 
Mongo db intro & tips
Mongo db intro & tipsMongo db intro & tips
Mongo db intro & tips
InBum Kim
 
Atom publishing protocol 2003
Atom publishing protocol 2003Atom publishing protocol 2003
Atom publishing protocol 2003rooya85
 
Node.js 첫걸음
Node.js 첫걸음Node.js 첫걸음
Node.js 첫걸음
SeungHyun Lee
 
Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법
pyrasis
 
CoreOS를 이용한 Docker 관리툴 소개
CoreOS를 이용한 Docker 관리툴 소개CoreOS를 이용한 Docker 관리툴 소개
CoreOS를 이용한 Docker 관리툴 소개
충섭 김
 
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
Wooyoung Ko
 
랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치
Lee Seungeun
 
CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드
jSoboro
 
Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자
용진 조
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
Jo Hoon
 
1908 Hyperledger Fabric 소개 및 첫 네트워크 구축하기
1908 Hyperledger Fabric 소개 및 첫 네트워크 구축하기1908 Hyperledger Fabric 소개 및 첫 네트워크 구축하기
1908 Hyperledger Fabric 소개 및 첫 네트워크 구축하기
Hyperledger Korea User Group
 
웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해
2minchul
 
Grunt 사용법 간단정리
Grunt 사용법 간단정리Grunt 사용법 간단정리
Grunt 사용법 간단정리
SuHyun Jeon
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee docker
DK Lee
 
도커 학습과 Boot2Docker
도커 학습과 Boot2Docker도커 학습과 Boot2Docker
도커 학습과 Boot2Docker
pyrasis
 
Creating autoscaling web server
Creating autoscaling web serverCreating autoscaling web server
Creating autoscaling web serverSoojin Lee
 
5. Install - NiFi
5. Install - NiFi5. Install - NiFi
5. Install - NiFi
merry7
 
Docker Casual Talk #2 - Dockerizing newrelic-sysmond
Docker Casual Talk #2 - Dockerizing newrelic-sysmondDocker Casual Talk #2 - Dockerizing newrelic-sysmond
Docker Casual Talk #2 - Dockerizing newrelic-sysmond
Daegwon Kim
 

What's hot (20)

Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초
 
[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술
 
Mongo db intro & tips
Mongo db intro & tipsMongo db intro & tips
Mongo db intro & tips
 
Atom publishing protocol 2003
Atom publishing protocol 2003Atom publishing protocol 2003
Atom publishing protocol 2003
 
Node.js 첫걸음
Node.js 첫걸음Node.js 첫걸음
Node.js 첫걸음
 
Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법
 
CoreOS를 이용한 Docker 관리툴 소개
CoreOS를 이용한 Docker 관리툴 소개CoreOS를 이용한 Docker 관리툴 소개
CoreOS를 이용한 Docker 관리툴 소개
 
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
 
랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치
 
CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드
 
Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
1908 Hyperledger Fabric 소개 및 첫 네트워크 구축하기
1908 Hyperledger Fabric 소개 및 첫 네트워크 구축하기1908 Hyperledger Fabric 소개 및 첫 네트워크 구축하기
1908 Hyperledger Fabric 소개 및 첫 네트워크 구축하기
 
웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해
 
Grunt 사용법 간단정리
Grunt 사용법 간단정리Grunt 사용법 간단정리
Grunt 사용법 간단정리
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee docker
 
도커 학습과 Boot2Docker
도커 학습과 Boot2Docker도커 학습과 Boot2Docker
도커 학습과 Boot2Docker
 
Creating autoscaling web server
Creating autoscaling web serverCreating autoscaling web server
Creating autoscaling web server
 
5. Install - NiFi
5. Install - NiFi5. Install - NiFi
5. Install - NiFi
 
Docker Casual Talk #2 - Dockerizing newrelic-sysmond
Docker Casual Talk #2 - Dockerizing newrelic-sysmondDocker Casual Talk #2 - Dockerizing newrelic-sysmond
Docker Casual Talk #2 - Dockerizing newrelic-sysmond
 

Similar to 리스펙토링 세미나 - 나만의 카카오 챗봇 만들기

Internship backend
Internship backendInternship backend
Internship backend
Yein Sim
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
Park Jonggun
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptx
wonyong hwang
 
Ngrok을 이용한 Nginx Https 적용하기.pptx
Ngrok을 이용한 Nginx Https 적용하기.pptxNgrok을 이용한 Nginx Https 적용하기.pptx
Ngrok을 이용한 Nginx Https 적용하기.pptx
wonyong hwang
 
Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용
Jin wook
 
[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdf[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdf
HeeJung Chae
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
Gruter
 
PCF Installation Guide
PCF Installation GuidePCF Installation Guide
PCF Installation Guide
seungdon Choi
 
postgres_빌드_및_디버깅.pdf
postgres_빌드_및_디버깅.pdfpostgres_빌드_및_디버깅.pdf
postgres_빌드_및_디버깅.pdf
Lee Dong Wook
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정
leejungwang
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
wonyong hwang
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
수정 김
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기Ted Won
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)
Ian Choi
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
JEEHYUN PAIK
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
Electron forge
Electron forgeElectron forge
Electron forge
Jung Young Kim
 
내 맘대로 이해한 오픈소스 소프트웨어
내 맘대로 이해한 오픈소스 소프트웨어내 맘대로 이해한 오픈소스 소프트웨어
내 맘대로 이해한 오픈소스 소프트웨어
서영 허
 
[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법
Amy Kim
 

Similar to 리스펙토링 세미나 - 나만의 카카오 챗봇 만들기 (20)

Internship backend
Internship backendInternship backend
Internship backend
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptx
 
Ngrok을 이용한 Nginx Https 적용하기.pptx
Ngrok을 이용한 Nginx Https 적용하기.pptxNgrok을 이용한 Nginx Https 적용하기.pptx
Ngrok을 이용한 Nginx Https 적용하기.pptx
 
Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용
 
[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdf[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdf
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
 
PCF Installation Guide
PCF Installation GuidePCF Installation Guide
PCF Installation Guide
 
postgres_빌드_및_디버깅.pdf
postgres_빌드_및_디버깅.pdfpostgres_빌드_및_디버깅.pdf
postgres_빌드_및_디버깅.pdf
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
Electron forge
Electron forgeElectron forge
Electron forge
 
내 맘대로 이해한 오픈소스 소프트웨어
내 맘대로 이해한 오픈소스 소프트웨어내 맘대로 이해한 오픈소스 소프트웨어
내 맘대로 이해한 오픈소스 소프트웨어
 
[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법
 

리스펙토링 세미나 - 나만의 카카오 챗봇 만들기