-
1장 - 환경구성 ( Node.js, MongoDB ) 설치MeanStack (deprecated) 2016. 6. 4. 00:19
1. Node.js 설치
최근 MeanStack에 관련된 책과 강의를 보며 구글링을 해보았지만 국내에서는 많은 자료를 찾기 힘들었다.
그래서 복습도 할 강의와 책을 통해 배웠던 내용을 조금 더 알기 쉽게 풀어서 내용을 적으려고 한다.
이번 MeanStack 의 최종점은 간단한 SNS Web applicaiton을 만드는 것 이 최종목표이고 ,
추후 Angular.js 2 를 활용한 application 도 같이 만들 것 이다.
MeanStack 을 처음 접하는 사람도 쉽게 따라 올 수 있고, 나중에 내가 봐도 '아' 하면 '어' 하고 나올 수 있도록
처음부터 끝까지 최대한 쉽게 풀어보려고 한다. (사실 본인도 초보라 설명을 디테일하게 하지 못 한다...)
먼저 작업환경 구성을 위해 Node.js 를 설치 해보자.
(참고로 Windows 환경에서 작업하였다. 만약 Linux 환경이라면
https://nodejs.org/en/download/package-manager/ <-- 여기를 참조하자.)
https://nodejs.org/ko/ <-- 노드 홈페이지
접속하면 다음과 같은 화면이 나온다.
현재 Node 의 최신버전은 v6.2.1 인데 , 보통 여기서 결정장애가 있는 사람은 현재버전을 받을려다가
옆에 안정적, 신뢰도 높음 이라는 걸 보고 뭘 받아야 되지? 하고 고민할 수 도 있다.
저 문구에 홀리면 안된다.
(현대인 대다수가 겪고 있는 질병 결정장애)
Javascript 의 라이브러리 또는 프레임워크는 오픈소스가 대부분이라 업데이트가 무지하게 (짜증나게) 자주 되고
그에 따라 소소하게 계속 바뀌는 부분이 많다.
어짜피 결국 업데이트 하게 될 건데 굳이 안정적이라고 예전 버전을 받을 필요는 없다.
과감하게 최신 기능이 들어있는 현재 버전을 다운로드 하자.
(.....그냥 평범한 SETUP 화면이다.)
SETUP 을 마치고 나면 바로 Node.js 를 사용할 수 있다 !!
예전에는 윈도우 환경변수에 Node.js 경로를 따로 추가시켜야 했지만 이제는 자동으로 추가 시켜준다.
정말 편하고 좋은 세상이다.
2. Node.js 실행
설치한 기념으로 Node.js 를 실행해보자.
기본적으로 Node.js는 command prompt , 즉 커맨드 입력창에서 실행을 한다.
윈도우의 cmd 창을 열고 , node 라고 입력 후에 엔터를 치자.
그런 후에 console.log('first') 를 치고 엔터를 처보자.
위 스샷처럼 나와야 정상이다.
한번 더 확인하기 위해 메모장을 열고 console.log('first start'); 를 적고 first.js 로 저장하자.
(메모장에서는 모든파일로 바꾸고 저장해야 한다.)
해당 파일이 있는 경로에서 node first.js 를 적고 엔터를 치자.
위 화면처럼 console.log 가 제대로 출력된다면 설치가 완벽하게 된 것이다.
3. MongoDB 설치
일단 Node.js 의 설치를 확인했으니 다음은 우리의 DB를 담당 할 든든한 서포터 MongoDB 를 설치 해보자.
https://www.mongodb.com/download-center?jmp=nav#community <-- MongoDB 다운로드 페이지
접속하면 위와 같은 화면이 나오고 OS별로 다운로드 받을 수 있다.
다운로드 받고 설치를 하자.
(여기서 또 머뭇 거리면 안된다. Complete 을 고르자.)
설치를 했으면 가장 먼저 사용하기 쉽게 윈도우 환경변수에 등록을 하자.
내 컴퓨터 -> 속성 -> 고급 시스템 설정 -> 고급 -> 환경변수 -> 시스템변수 -> Path 편집 클릭
-> 마지막 부분에 MongoDB를 설치한 폴더의 경로를 적어주자.
(기본 경로라면 C:\Program Files\MongoDB\Server\3.2\bin 가 될 것이다.)
4. MongoDB 실행
환경 변수를 설정 하였다면 이제 MonogDB를 Test 해 볼 시간이다.
cmd 창을 열고 mongod 를 입력해보자.
실행하면 위 화면과 같이 에러와 함께 실행이 되지 않을 것 이다. 당연한 결과이다.
MongoDB를 실행 하기 위해서는 데이터 폴더를 만들거나 경로를 지정해 주어야 한다.
데이터 폴더를 만들기 위한 명령어는 md data\db 이다.
해당 명령어를 입력하면 현재 위치에 data 폴더가 생성 될 것이다.
이제 다시 mongod 를 실행하면 에러없이 정상적으로 실행이 될 것이다.
위 화면과 같이 데이터 폴더는 C:\data\db 를 사용하고 포트는 27017 을 사용하는 mongodb 가 구동 되었다.
또 다른 손쉬운 방법은 데이터 폴더를 만들지 않아도 mongod --dbpath=(사용할 데이터 폴더경로) 를 이용하면
mogodDB 에서 자동으로 해당폴더에 데이터 폴더를 생성하면서 실행이 된다.
mongod 구동에 성공했다면 이제 몽고 쉘을 사용해보자 . 직접 db를 조작해 보는 것 이다.
이번에는 간단한 명령어만 사용해 볼 것이다.
먼저 mongod 를 구동 시킨 뒤 cmd 창을 하나 더 켜서 mongo 를 적고 실행을 해보자.
위와 같이 몽고디비 명령창이 나타날 것 이다.
먼저 use first 라고 입력하고 실행 하면 switched to db first 라는 문구가 뜰 것이다.
mongodb는 따로 db를 만드는 명령이 없어도 use 커맨드를 이용한다면 자동으로 merge 가 된다.
(db 가 있다면 해당 db로 바뀌고 없다면 자동으로 생성한다.)
또는 mongo 를 실행 할 때 인수로 db 명을 같이 주는 방법도 있다. (ex : mongo db명 )
이번엔 show dbs 명령어를 실행해보자.
show dbs 명령어는 해당 db에 다큐먼트가 1개라도 저장된 모든 가용 데이터 베이스의 목록을 보여준다.
(처음에는 local 만 존재 할 것이다.)
mongoDB 에서는 기존 관계형데이터베이스 에서 사용하는 테이블과 유사한 개념으로 collection 이라는 것 을
사용한다. collection 도 따로 생성할 필요 없이 첫 데이터를 넣을 때 자동으로 생성이 된다.
그럼 collection 에 데이터를 넣어보자.
mongo 명령창에서 db.test.insert ({ "title" : "First data" , "user" : "king" }) 을 입력해보자.
mongoDB 는 JSON 의 이진 바이너리 형식인 BSON 을 사용하기 때문에 입력할 때 JSON 형식으로
입력을 한다.
위 화면처럼 insert 되었다는 확인 메시지가 나오고
바로 이어서 db.test.find() 라는 명령어를 실행하면 방금 넣었던 데이터가 나올 것 이다.
db.test.find() 명령어는 관계형 데이터 베이스에서 select * from test 와 같다고 보면 된다.
db.collection이름.명령어 형식으로 기본적인 질의를 실행 한다는 것을 기억하자.
데이터의 있는 "_id" 항목은 unique key 즉 , RDBMS의 primary key 와 같은 개념이다.
유일하게 각 데이터를 식별하는 항목이고, 데이터를 넣을 때 자동으로 생성이 된다.
이번엔 show collections 명령어를 실행 하여 보자.
현재 db에서 사용가능한 collection 목록이 나올 것이다. 현재 데이터를 넣은 test 가 나와야 정상이다.
마지막으로 db.test.drop() 을 실행 해보자 .
drop() 명령어는 해당 collection 을 삭제하는 명령어이다.
실행하면 성공적으로 실행되었다는 true 메시지가 나오며 해당 collection 이 삭제 된다.
show collections 명령어를 실행해보면 test collection 이 삭제 된 것을 알 수 있다.
이번엔 간단한 mongoDB 의 맛만 보았고 나머지 CRUD 작업은 web service 를 직접 만들면서 차근차근
배울 것 이다.
작업을 위한 Tool은 현재 본인은 sublimeText3 포터블 버전을 사용 중 인데 , Tool 은 개발자의 취향이므로
어떤 것을 사용해도 무방하다. 여러 Tool 을 설치하여 써보고 마음에 드는 것을 사용하자.
보통 sublimetext , atom , webstrom 등을 많이 사용한다.
다음엔 mean stack 개발을 위한 간단한 tool 설정과 node.js 서버를 설정하고 실행해본다.
(끝)
'MeanStack (deprecated)' 카테고리의 다른 글
5장 express 추가 구성, 다양한 환경 대응 (0) 2016.06.08 4장 express 를 활용한 Routing 처리 (0) 2016.06.08 3장 - express 를 활용한 Node.js 시작하기 (0) 2016.06.07 2장 - 환경구성 ( Node.js 개발 Tool , 모듈 관리 Npm , Package.json ) (0) 2016.06.06 Mean Stack ? (민스택) (1) 2016.05.29