레이블이 windows인 게시물을 표시합니다. 모든 게시물 표시
레이블이 windows인 게시물을 표시합니다. 모든 게시물 표시

2015년 4월 5일 일요일

Windows에 elasticSearch 설치하고 서비스로 구동하기

Windows 환경에서 elasticSearch를 서비스로 구동하면 향후 따로 설치하거나 명령을 실해할 필요없이 구동되는 elasticSearch에 접속하는 것만으로 개발을 진행할 수 있다. 이를 위해 설치하고 서비스로 구동하는 방법을 정리해 보았다.


1. Java 환경 설치 및 Java_Home 시스템 변수 설정

elasticSearch는 Java위에서 동작하는 서치엔진이다. 그러므로 반드시 Java가 설치되어 있어야 하며 시스템 환경변수에 Java_Home이 등록되어 있어야 한다.
A. Java 다운로드 사이트에서 최신 JDK 설치파일을 다운로드 받는다.이때 32비트(x86)인지 64비트(x64)인지 확인하여 진행한다.
B. 다운 받은 설치 파일을 실행한다.
C. 제어판>시스템> 고급 시스템 설정에서 환경 변수> 사용자 변수로 변수이름은 JAVA_HOME, 변수 값은 설치된 JDK 폴더(예: C:\program files\java\jre7)를 지정한다.
치치

2. elasticSearch 다운로드 및 설치

A. elasticSearch 다운로드 사이트에서 zip 파일을 다운로드해서 적당한 폴더에서 압축을 푼다.
B. 압축을 푼 폴더 아래의 bin 폴더로 이동한다.
C. elasticsearch.bat 파일을 실행한다.
D. command prompt를 실행하여 다음 명령을 실행하여 정상적으로 연결되는지 확인한다.
    (이때 windows용 curl이 설치되어 있다고 가정한다.)
   > curl -X get http://localhost:9200

3. elasticSearch를 서비스로 구동하기 

A. command promt를 실행한다.
B. elasticSearch 폴더의 bin폴더로 이동한다.
C. 서비스로 등록하는 명령을 실행한다.
> service install
D. 서비스를 시작하는 명령을 실행해 본다
> service start
E. 제어판 > 관리도구 > 서비스에서 elasticSearch를 찾아서 '시작 유형'을 자동으로 변경한다.
F. Windows를 재시작한 후 아래 명령을 실행하여 정상적으로 연결되는지 확인한다.
   > curl -X get http://localhost:9200


2015년 3월 18일 수요일

Hapi.js + MongoDB (on Windows)

Hapi.js와 MongoDB를 붙여서 사용하는 예제가 없거나, 제대로 실행이 되지 않는 경우가 많고, 특히 Windows에 대한 내용은 극히 적어 그 방법을 정리해 본다.
아래의 예제는 schema가 없거나 훨씬 자유로운 경우이며, 좀더 schema를 갖추어 MongoDB와 연동하는 경우는 Mongoose를 사용한다.
Mongoose는 다음에 다시한번 다루어보자.


1. OS가 32bit인지 64bit인지 확인

1) 아래의 방법으로 command prompt를 실행시킨다.

  • Win7: Windows key + 'R'을 누르고 'cmd'를 입력한 후 Control+Shift+enter key를 눌러 실행
  • Win8: Windows key + 'X'를 누른 후 'A' 키 입력 


2)command prompt를 열어 아래 명령을 입력하여 32bit인지 64bit인지 확인한다.

> wmic os get osarchitecture


2. Windows 버전 MongoDB 설치

MongoDB download site에서 적합한 version의 MongoDB 설치 파일을 다운받는다. 32bit의 경우 최신 버전에서 지원안할 경우, 이전 버전(Previous Release)을 설치한다.


3. MongoDB를 Windows 서비스로 등록

1) 아래의 방법으로 command prompt를 관리자 모드로 실행시킨다.

  • Win7: Windows key + 'R'을 누르고 'cmd'를 입력한 후 Control+Shift+enter key를 눌러 실행
  • Win8: Windows key + 'X'를 누른 후 'A' 키 입력 

2) 관리자 모드로 MongoDB data와 log를 저장할 folder를 만든다. 여기서 folder위치는 D:\data라 가정하자.

> mkdir D:\data\db
> mkdir D:\data\log


3) MongoDB configuration file을 만든다. 아래와 같이 command prompt에 입력한다. 이때 mongoDB가 설치된 위치를 C:\Program Files\MongoDB Standard라고 가정한다.

>echo logpath=D:\data\log\mongod.log> "C:\Program Files\MongoDB Standard\mongod.cfg"
>echo dbpath=D:\data\db>> "C:\Program Files\MongoDB Standard\mongod.cfg"


4) Windows 서비스로 등록한다. 여기서 주의할 것은 =와 그 뒤의 값(" ") 사이에 여백 한칸이 반드시 필요하다는 것이다.

>sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB Standard\bin\mongod.exe\" --service --config=\"C:\Program Files\MongoDB Standard\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

위의 과정을 모두 마치면 아래와 같은 메시지가 command prompt에 나타난다.

[SC] CreateService 성공


5) 아래 명령을 통해 MongoDB(서비스 이름)가 시작하도록 해보자.

>net start MongoDB


참고로, 서비스를 제거하는 것은 아래 명령을 사용하면 된다.

>sc.exe delete MongoDB


6) 폴더를 하나 만들고, 간단한 node.js 코드를 구현해 MongoDB에 연결을 해보자.

아래와 같이 mongodb 모듈을 설치한다.
>npm install --save-dev mongodb

아래 코드를 index.js 파일에 구현한 후 'node index'로 실행시킨다.



MongoDB에 연결되면 'We are connected'라는 메시지를 볼 수 있다.



지금부터는 MongoDB와 hapi.js를 이해하기 위한 sample 예제이다.

4. 사용할 database와 collection 만들기 

db명을 'taskdb'이고 collection명을 'tasks'라고 가정한다.

1) mongo.exe를 실행한다.

>cd C:\Program Files\MongoDB Standard\bin
>mongo.exe

2) 사용할 database를 생성한다.

mongodb prompt>use taskdb

3) collection을 만들며, 값을 추가한다.

mongodb prompt>var i = {task : "send an email to my boss", description : "CC colleagues"}
mongodb prompt>var j = {task : "submit the paper", description : "Hurry!"}
mongodb prompt>var k = {task : "attend the daily meeting", description : "Room 3"}
mongodb prompt>db.tasks.insert(i);
mongodb prompt>db.tasks.insert(j);
mongodb prompt>db.tasks.insert(k);

다음 명령을 통해 collection이 잘 생성되고 값이 잘 추가되었는지 확인한다.

mongodb prompt>show collections
mongodb prompt>db.tasks.find()


5. sample Hapi.js + mongoDB 코드 

1) 빈 folder를 만들고 hapi project를 만든다.

>npm init
>npm install --save-dev hapi boom joi hapi-mongodb


2) 아래 예제 코드를 이용해 index.js를 구현한다.




6. 테스트

command prompt를 이용해 잘 동작하는지 확인한다.

>curl http://localhost:8080/tasks"
>curl http://localhost:8080/task/xxxxxxx
>curl -X POST -H "Content-Type: application/json" -d "{\"task\":\"Fix bug 1\", \"description\":\"Absolute\"}" -i http://localhost:8080/tasks
>curl -X DELETE http://localhost:8080/tasks/xxxxxxx -i

위에서 POST 명령의 경우 Linux에서는 아래와 같이 실행한다.
>curl -X POST -H "Content-Type: application/json" -d '{"task":"Fix bug 1", "description":"Absolute"}' -i http://localhost:8080/tasks



TL;DR

Hapi와 MongoDB를 windows에서 한번 돌려보자. 앞으로 hapi.js를 공부하기 위한 기본 틀 역할을 한다.





<참조>
1. BUILDING A REST API USING HAPI.JS AND MONGODB
2. hapi-mongodb: A simple Hapi MongoDB connection plugin
3. Getting started with MongoDB and node.js on Windows
4. Install MongoDB on Windows
5. Getting Started with MongoDB