SlideShare a Scribd company logo
1 of 33
NODE.JS 프로그래밍
     5장. 트위터 백업 애플리케이션 예제




                                 아꿈사
            http://cafe.naver.com/architect1


                                  최성기
                       florist.sk@gmail.com
4장에서 배운 npm을 한 번 써먹어보자!
간단하게 뭔가를 만들어 보면 좋겠지!
4장에서 배운 npm을 한 번 써먹어보자!
간단하게 뭔가를 만들어 보면 좋겠지!




         확장 모듈 : restler, node-schedule, forever
1.   restler를 이용한 트위터 REST API 사용
2.   파읷시스템 기본 모듈을 이용한 파읷 저장
3.   백업 스케줄링
4.   서비스를 위한 노드 애플리케이션 실행
5.   정리
1.   restler를 이용한 트위터 REST API 사용
2.   파읷시스템 기본 모듈을 이용한 파읷 저장
3.   백업 스케줄링
4.   서비스를 위한 노드 애플리케이션 실행
5.   정리
http://search.twitter.com/search.json
   ?q=text
   &result_type=recent
   &rpp=100
   &since_id=1
결과를
                            JSON 타입으로


http://search.twitter.com/search.json
   ?q=text
   &result_type=recent
   &rpp=100
   &since_id=1
q : 검색어
http://search.twitter.com/search.json
   ?q=text
   &result_type=recent rpp : 결과 개수
   &rpp=100
   &since_id=1          since_id : 해당 아이디
                                   이후부터 검색




                                       트위터 API 관련 추가정보는
                  https://dev.twitter.com/docs/api/1/get/search
이제 요청을 보내고 결과를 받을 코드를 짜자.
Node.js는 기본적으로 HTTP 클라이얶트 모듈을 제공한다.

아...   을 실습하는 중이지...

검색해보니 restler라는 모듈이 괜찮아 보읶다.
이걸 받아서 써보자.
                        https://github.com/danwrong/restler
1. 내려 받는다


npm install restler
2. 사용한다
var rest = require( 'restler' )

var Tweet = {
  …
  getTweets: function( search, callback ) {
    search = encodeURIComponent( search );

        rest.get( ‘검색 요청 보내는 url 주소’ )
            .on( 'complete', function( data ) {
              console.log( data );
        });
    }
}

Tweet.getTweets( '#nodejs' );
1.   restler를 이용한 트위터 REST API 사용
2.   파읷시스템 기본 모듈을 이용한 파읷 저장
3.   백업 스케줄링
4.   서비스를 위한 노드 애플리케이션 실행
5.   정리
p.145 ) 읷단은 결과를 파읷에 저장하도록 변경.
그럼 연습하는 김에 네이버의 검색 API도
restler로 한 번 호출해보자.

네이버 검색도 읶증 젃차가 필요 없다 (비밀키 방식)
결과 데이터는 xml 포맷만 제공. json 안됨.
http://openapi.naver.com/search
   ?key=비밀키
   &query=text
   &display=10
   &start=1
   &target=webkr
검색 요청을 보내는 건 URL만 조금 바꿔주면 되고,

결과 받을 땐 restler가 자동으로 JSON/XML을 파싱한다.   (p.142)
…라고 되어 있는데 XML 파싱이 안되길래 찾아보니




XML 파서를 이용하려면 xml2js라는 확장 모듈이
설치되어 있어야 한단다.



  npm install xml2js
xml2js를 설치한 뒤, rest.get 함수의 두 번째 읶자로
xml 파서를 사용할 것임을 젂달해준다.
1. 주기적으로 반복 실행되면 결과가 누적되도록
   tweet API의 sinceId 값을 사용해야 한다.

2. Node.js가 파읷을 비동기로 처리하니까
   쓰고있는 파읷에 또 쓰기가 읷어나지 않게 처리할 것.
설명하려고 주석을 달았더니 코드가 괜히 길어졌네요.
내용이 어렵지 않으니 책 p.147~148을 보세요.




        1. 검색 결과의 max_id를 기억해서
          다음 검색의 sinceId로 설정하기
1. 검색 결과의 max_id를 기억해서
  다음 검색의 sinceId로 설정하기

2. 파읷에 값을 쓰는 중이면
  다른 쓰기작업이 처리되지 않게 하기.
1.   restler를 이용한 트위터 REST API 사용
2.   파읷시스템 기본 모듈을 이용한 파읷 저장
3.   백업 스케줄링
4.   서비스를 위한 노드 애플리케이션 실행
5.   정리
이제 주기적(10분)으로 트윗을 백업하도록 스케줄링하자.
윈도우의 예약된 작업이나 유닉스의 크롞탭crontab을 이용해

아...   을 실습하는 중이지...

검색해보니 node-schedule이라는 모듈이 괜찮아 보읶다.
이걸 받아서 써보자.
                       https://github.com/mattpat/node-schedule
1. 내려 받는다

npm install node-schedule
2. 사용한다.
2. 사용한다.




3. 실행한다.
1.   restler를 이용한 트위터 REST API 사용
2.   파읷시스템 기본 모듈을 이용한 파읷 저장
3.   백업 스케줄링
4.   서비스를 위한 노드 애플리케이션 실행
5.   정리
                        매우 unix 친화적읶
                          챕터입니다.
원격지(서비스용 서버)에서 node 애플리케이션을 실행시
세션을 닫는 순간 프로그램도 같이 종료된다.

유닉스에서 애플리케이션을 데몬 형태로 실행시켜주는
nohup 명령어를 이용해 이를 해결할 수 있다.

nohup보다 더 간편한 모듈읶 forever를 사용해 보자.




                           http://goo.gl/AjweU
                                 12.03.17. 기준.
1.   restler를 이용한 트위터 REST API 사용
2.   파읷시스템 기본 모듈을 이용한 파읷 저장
3.   백업 스케줄링
4.   서비스를 위한 노드 애플리케이션 실행
5.   정리
npm에서 필요한 기능의 모듈을 설치해 사용하는 예제를 작성.

restler, node-schedule등의 확장 모듈보다는 npm 사용에 초점.

어려운 내용은 없다.

손에 익히기 위해 직접 코딩하며 따라가보는 챕터.
npm을 통해 다운받는 node.js의 확장 모듈도
노드로 작성되어 있어 소스를 열어 직접 수정할 수 있다.

버그가 있다면 직접 수정해서 pull request해도 된다.
NODE.JS 프로그래밍
     5장. 트위터 백업 애플리케이션 예제




                    끝

More Related Content

What's hot

Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용
지원 이
 
Posquit0 - Fabric을 이용한 ssh streamlining
Posquit0 - Fabric을 이용한 ssh streamliningPosquit0 - Fabric을 이용한 ssh streamlining
Posquit0 - Fabric을 이용한 ssh streamlining
Byungjin Park
 

What's hot (20)

Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
 
React Redux React Native
React Redux React NativeReact Redux React Native
React Redux React Native
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
Springcamp spring boot intro
Springcamp spring boot introSpringcamp spring boot intro
Springcamp spring boot intro
 
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
 
Nodejs 발표자료
Nodejs 발표자료Nodejs 발표자료
Nodejs 발표자료
 
Leadweb Nodejs
Leadweb NodejsLeadweb Nodejs
Leadweb Nodejs
 
[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기
 
Node.js 기본
Node.js 기본Node.js 기본
Node.js 기본
 
Node.js 현재와 미래
Node.js 현재와 미래Node.js 현재와 미래
Node.js 현재와 미래
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 
Node.js in Flitto
Node.js in FlittoNode.js in Flitto
Node.js in Flitto
 
김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15
 
Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용
 
[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용
 
Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용
 
[141] react everywhere
[141] react everywhere[141] react everywhere
[141] react everywhere
 
Posquit0 - Fabric을 이용한 ssh streamlining
Posquit0 - Fabric을 이용한 ssh streamliningPosquit0 - Fabric을 이용한 ssh streamlining
Posquit0 - Fabric을 이용한 ssh streamlining
 
Nginx Testing in NAVER
Nginx Testing in NAVERNginx Testing in NAVER
Nginx Testing in NAVER
 

Similar to [120316] node.js 프로그래밍 5장

(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
탑크리에듀(구로디지털단지역3번출구 2분거리)
 

Similar to [120316] node.js 프로그래밍 5장 (20)

Nodejs4
Nodejs4Nodejs4
Nodejs4
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT
 
Azure function 활용한 파이썬 크롤링 스케줄링
Azure function 활용한 파이썬 크롤링 스케줄링Azure function 활용한 파이썬 크롤링 스케줄링
Azure function 활용한 파이썬 크롤링 스케줄링
 
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
 
Light Tutorial Django
Light Tutorial DjangoLight Tutorial Django
Light Tutorial Django
 
12books
12books12books
12books
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
[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
 
Hello python 오리엔테이션(파이썬 스터디, 발표자료)
Hello python 오리엔테이션(파이썬 스터디, 발표자료)Hello python 오리엔테이션(파이썬 스터디, 발표자료)
Hello python 오리엔테이션(파이썬 스터디, 발표자료)
 
Hoodpub 기술 발표
Hoodpub 기술 발표Hoodpub 기술 발표
Hoodpub 기술 발표
 
Java, android 스터티10
Java, android 스터티10Java, android 스터티10
Java, android 스터티10
 
보안프로젝트 세미나 Viper-v1.2
보안프로젝트 세미나 Viper-v1.2보안프로젝트 세미나 Viper-v1.2
보안프로젝트 세미나 Viper-v1.2
 
Node.js intro
Node.js introNode.js intro
Node.js intro
 
2. template
2. template2. template
2. template
 
2Naver Open Android API Translation At DCamp
2Naver Open Android API Translation At DCamp2Naver Open Android API Translation At DCamp
2Naver Open Android API Translation At DCamp
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
Gcd ppt
Gcd pptGcd ppt
Gcd ppt
 
병렬 프로그래밍
병렬 프로그래밍병렬 프로그래밍
병렬 프로그래밍
 
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
 
JetsonTX2 Python
 JetsonTX2 Python  JetsonTX2 Python
JetsonTX2 Python
 

More from sung ki choi

[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
sung ki choi
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장
sung ki choi
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
sung ki choi
 
[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장
sung ki choi
 
[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표
sung ki choi
 
Touch Ux With Win32
Touch Ux With Win32Touch Ux With Win32
Touch Ux With Win32
sung ki choi
 

More from sung ki choi (16)

[아꿈사] 게임 기초 수학 물리 1,2장
[아꿈사] 게임 기초 수학 물리 1,2장[아꿈사] 게임 기초 수학 물리 1,2장
[아꿈사] 게임 기초 수학 물리 1,2장
 
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임
 
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
 
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
 
[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장
 
[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표
 
[110331] visual studio 속성 관리자
[110331] visual studio 속성 관리자[110331] visual studio 속성 관리자
[110331] visual studio 속성 관리자
 
100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7
 
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
 
101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms
 
100526 windows7 mfc_최성기_배포용
100526 windows7 mfc_최성기_배포용100526 windows7 mfc_최성기_배포용
100526 windows7 mfc_최성기_배포용
 
100511 boost&tips 최성기
100511 boost&tips 최성기100511 boost&tips 최성기
100511 boost&tips 최성기
 
Touch Ux With Win32
Touch Ux With Win32Touch Ux With Win32
Touch Ux With Win32
 

Recently uploaded

Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
Wonjun Hwang
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
Wonjun Hwang
 

Recently uploaded (6)

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 

[120316] node.js 프로그래밍 5장

  • 1. NODE.JS 프로그래밍 5장. 트위터 백업 애플리케이션 예제 아꿈사 http://cafe.naver.com/architect1 최성기 florist.sk@gmail.com
  • 2. 4장에서 배운 npm을 한 번 써먹어보자! 간단하게 뭔가를 만들어 보면 좋겠지!
  • 3. 4장에서 배운 npm을 한 번 써먹어보자! 간단하게 뭔가를 만들어 보면 좋겠지! 확장 모듈 : restler, node-schedule, forever
  • 4. 1. restler를 이용한 트위터 REST API 사용 2. 파읷시스템 기본 모듈을 이용한 파읷 저장 3. 백업 스케줄링 4. 서비스를 위한 노드 애플리케이션 실행 5. 정리
  • 5. 1. restler를 이용한 트위터 REST API 사용 2. 파읷시스템 기본 모듈을 이용한 파읷 저장 3. 백업 스케줄링 4. 서비스를 위한 노드 애플리케이션 실행 5. 정리
  • 6. http://search.twitter.com/search.json ?q=text &result_type=recent &rpp=100 &since_id=1
  • 7. 결과를 JSON 타입으로 http://search.twitter.com/search.json ?q=text &result_type=recent &rpp=100 &since_id=1
  • 8. q : 검색어 http://search.twitter.com/search.json ?q=text &result_type=recent rpp : 결과 개수 &rpp=100 &since_id=1 since_id : 해당 아이디 이후부터 검색 트위터 API 관련 추가정보는 https://dev.twitter.com/docs/api/1/get/search
  • 9. 이제 요청을 보내고 결과를 받을 코드를 짜자. Node.js는 기본적으로 HTTP 클라이얶트 모듈을 제공한다. 아... 을 실습하는 중이지... 검색해보니 restler라는 모듈이 괜찮아 보읶다. 이걸 받아서 써보자. https://github.com/danwrong/restler
  • 10. 1. 내려 받는다 npm install restler
  • 11. 2. 사용한다 var rest = require( 'restler' ) var Tweet = { … getTweets: function( search, callback ) { search = encodeURIComponent( search ); rest.get( ‘검색 요청 보내는 url 주소’ ) .on( 'complete', function( data ) { console.log( data ); }); } } Tweet.getTweets( '#nodejs' );
  • 12. 1. restler를 이용한 트위터 REST API 사용 2. 파읷시스템 기본 모듈을 이용한 파읷 저장 3. 백업 스케줄링 4. 서비스를 위한 노드 애플리케이션 실행 5. 정리
  • 13. p.145 ) 읷단은 결과를 파읷에 저장하도록 변경.
  • 14. 그럼 연습하는 김에 네이버의 검색 API도 restler로 한 번 호출해보자. 네이버 검색도 읶증 젃차가 필요 없다 (비밀키 방식) 결과 데이터는 xml 포맷만 제공. json 안됨.
  • 15. http://openapi.naver.com/search ?key=비밀키 &query=text &display=10 &start=1 &target=webkr
  • 16. 검색 요청을 보내는 건 URL만 조금 바꿔주면 되고, 결과 받을 땐 restler가 자동으로 JSON/XML을 파싱한다. (p.142)
  • 17. …라고 되어 있는데 XML 파싱이 안되길래 찾아보니 XML 파서를 이용하려면 xml2js라는 확장 모듈이 설치되어 있어야 한단다. npm install xml2js
  • 18. xml2js를 설치한 뒤, rest.get 함수의 두 번째 읶자로 xml 파서를 사용할 것임을 젂달해준다.
  • 19. 1. 주기적으로 반복 실행되면 결과가 누적되도록 tweet API의 sinceId 값을 사용해야 한다. 2. Node.js가 파읷을 비동기로 처리하니까 쓰고있는 파읷에 또 쓰기가 읷어나지 않게 처리할 것.
  • 20. 설명하려고 주석을 달았더니 코드가 괜히 길어졌네요. 내용이 어렵지 않으니 책 p.147~148을 보세요. 1. 검색 결과의 max_id를 기억해서 다음 검색의 sinceId로 설정하기
  • 21. 1. 검색 결과의 max_id를 기억해서 다음 검색의 sinceId로 설정하기 2. 파읷에 값을 쓰는 중이면 다른 쓰기작업이 처리되지 않게 하기.
  • 22. 1. restler를 이용한 트위터 REST API 사용 2. 파읷시스템 기본 모듈을 이용한 파읷 저장 3. 백업 스케줄링 4. 서비스를 위한 노드 애플리케이션 실행 5. 정리
  • 23. 이제 주기적(10분)으로 트윗을 백업하도록 스케줄링하자. 윈도우의 예약된 작업이나 유닉스의 크롞탭crontab을 이용해 아... 을 실습하는 중이지... 검색해보니 node-schedule이라는 모듈이 괜찮아 보읶다. 이걸 받아서 써보자. https://github.com/mattpat/node-schedule
  • 24. 1. 내려 받는다 npm install node-schedule
  • 27. 1. restler를 이용한 트위터 REST API 사용 2. 파읷시스템 기본 모듈을 이용한 파읷 저장 3. 백업 스케줄링 4. 서비스를 위한 노드 애플리케이션 실행 5. 정리 매우 unix 친화적읶 챕터입니다.
  • 28. 원격지(서비스용 서버)에서 node 애플리케이션을 실행시 세션을 닫는 순간 프로그램도 같이 종료된다. 유닉스에서 애플리케이션을 데몬 형태로 실행시켜주는 nohup 명령어를 이용해 이를 해결할 수 있다. nohup보다 더 간편한 모듈읶 forever를 사용해 보자. http://goo.gl/AjweU 12.03.17. 기준.
  • 29.
  • 30. 1. restler를 이용한 트위터 REST API 사용 2. 파읷시스템 기본 모듈을 이용한 파읷 저장 3. 백업 스케줄링 4. 서비스를 위한 노드 애플리케이션 실행 5. 정리
  • 31. npm에서 필요한 기능의 모듈을 설치해 사용하는 예제를 작성. restler, node-schedule등의 확장 모듈보다는 npm 사용에 초점. 어려운 내용은 없다. 손에 익히기 위해 직접 코딩하며 따라가보는 챕터.
  • 32. npm을 통해 다운받는 node.js의 확장 모듈도 노드로 작성되어 있어 소스를 열어 직접 수정할 수 있다. 버그가 있다면 직접 수정해서 pull request해도 된다.
  • 33. NODE.JS 프로그래밍 5장. 트위터 백업 애플리케이션 예제 끝