728x90

node.js 를 이용하여 서버 프로그램을 만드는 경우, 디버깅이 짜증날때가 간혹 있습니다. 소스코드를 수정하면 다시 프로세스를 죽였다가 살리는 과정을 반복하는 경험들을 많이 하실텐데요, 이런 불편함을 없애주기 위한 여러가지 패키지들이 많이 준비되어 있습니다. 다 간단하긴 하지만 그 중에서도 nodemon 을 무척 잘 쓰고 있어서 소개해 봅니다.



nodemon GitHub 페이지 [바로가기]


당연하겠지만 Node Packager Manager 를 이용해서도 손쉽게 설치하실 수 있습니다. npm 명령을 이용해서 패키지를 설치하려면 아래와 같이 명령을 입력하시면 됩니다. 관리자 권한이 필요할 수 있다는 점 기억해 두시면 되겠네요.


npm install -g nodemon


nodemon 을 설치한 이후에 이용하는 방법은 node 를 통해 스크립트를 실행하지 마시고 nodemon 을 이용해서 스크립트를 실행하기만 하면 됩니다. 말로 적으면 복잡하나 커맨드로 보자면...


(기존) node server.js

(변경) nodemon server.js


번거로움을 한번에 없애주는 nodemon 으로 프로세스 중단, 재시작하는 불편함을 없애보시기 바랍니다!


728x90
728x90
Node.js 가 등장한 이후 간단히 테스트 목적의 웹 서버를 만드는 일이 손쉬워졌습니다. 단순한 Static 컨텐츠의 노출이 아닌 이상 닷넷을 이용하던 자바를 이용하던 뭔가 무거운 개발도구를 실행하고 코드 몇 줄을 넣은 후 컴파일 해야 했다면 Node.js 는 그런 번거로움과 불필요함을 한방에 날려주고 있습니다.

새롭게 옮긴 직장에서 고객사의 PUT Request 에 대한 처리를 해야 할 일이 생겼는데 고객사의 API 에 대고 신나게 테스트를 할 수 있는 것도 아니고 해서 간단하게 가상머신에 Node.js 와 Express 모듈을 이용하여 RESTful API (..라고 적었지만 그냥 PUT Request 를 처리하는...) 를 만들어 봤습니다. 혹시나 RESTful API 의 CRUD 액션을 간단히 구현할 필요가 있으신 분들 참고하시라고 올려둡니다. Node.js 와 Express 모듈을 설치하신 뒤 소스코드를 참고해서 보시면 됩니다. REST 호출 이외에도 처리를 위해 Jade 모듈도 설치후 설정이 들어가 있는데요, 이 부분은 필요하신 경우 선택적으로 쓰시면 되겠습니다.

(참고로 현재 시점에서의 Node.js 와 Express 최신 버전을 따르고 있기 때문에 보시는 시점에 따라 해당 엔진과 모듈의 행동양태가 변경되면 동작하지 않을 수도 있습니다 ^^;;)

// express_server.js
var express = require('express');
var app = express();

app.configure(function() {
	app.set('views', __dirname + '/views');
	app.set('view options', { layout: false });
	app.use(express.methodOverride());
	app.use(express.bodyParser());
	app.use(app.router);
	app.use(express.static(__dirname + '/public'));
	console.log('configure successful...');
	console.log('view directory is ' + __dirname + '/views');
	console.log('static directory is ' + __dirname + '/public');
});

app.get('/hello', function(req, res) {
	res.render('index.jade', {
			message:'hello world'
	});
});

// TYPE 1 (RESTful) : call "/puttest/3"
app.put('/puttest/:id', function(req, res) {
	res.send('received id :' + req.params.id);
});

// TYPE 2 (Traditional) : call "/puttest" with body parameter "id=9" then
app.put('/puttest', function(req, res) {
	res.send('received id :' + req.body.id);
});

app.configure('production', function() {
	app.use(express.logger());
	app.use(express.errorHandler());
});

app.configure('development', function() {
	app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.listen(81);

위의 소스코드에서 사용한 Jade 템플릿은 아래와 같이 간단하게 되어 있습니다. 그냥 그렇구나 하시면 될 것 같습니다.
// Jade 렌더링 테스트용 : /views/index.jade
#{message}

[ Node.js 의 기초를 위한 추천 도서 ]
인기 저자 윤인성 작가의  "모던 웹을 위한 Node.js 프로그래밍" [자세히보기]


- NoPD -
728x90
728x90
최근 Cloud 를 이용한 서비스 개발이 인기입니다. 초기 스타트업이나 실험적인 프로젝트들이 없는 자금으로 손쉽게 이용할 수 있는 저렴한 초기 비용이 Cloud 의 메리트라서 찾는 분들이 많아지고 있습니다. 하지만 막상 DIY 로 혼자서 알아서 써야 하는 Cloud Server 이용에 괜한 어려움을 겪는 분들이 많습니다. 막상 써보면 별 것 아닌데 말이죠!

SK텔레콤이 T cloud biz 의 서버 상품인 Cloud Server 기반에서 Node.js 실습을 통해 클라우드 환경에도 익숙해지고 인기저자 윤인성 군의 Node.js 강의도 들을 수 있는 프로그램을 준비했다고 합니다. 선착순 30명에게만 제공되는 기회라 지금이라도 달려가서 등록 신청을 해보시기 바랍니다! 일단 선물이 너무 마음에 드는 행사라는 ;;;

오프닝 세션은 제가 직접 진행하니... 많은 관심 부탁드립니다 ^^

본 메일은 ZDNet Korea에서 제공하는 기업의 신제품 소개, 신기술 동향, PR 및 컨퍼런스, 세미나 등의
이벤트 관련 소식을 이메일로 받겠다고 승인해주신 회원들에게만 보내는 Permission Mail 입니다.

| 신규가입 | 뉴스레터 해지/변경 | 수신거부 |
본 메일은 회원가입(변경)시 회원님의 동의를 얻은 후 발송한 Permission Mail 입니다.
ㆍ 송진호님은 20010619000000에 ZDNET KOREA에 가입하셨습니다.
ㆍ 본 뉴스레터의 수신을 원하지 않으시면 수신거부를 눌러주세요.
This Newsletter was sent at your request. If you unknowingly received this, please accept
our apologies, and click here to unsubscrib. Thank you.
ㆍ 본 메일은 발신전용 메일입니다. 문의는 ask@zdnet.co.kr으로 문의 주시기 바랍니다.
[공정거래위원회 고시 제 2000-1호에 따른 안내]
서울특별시 마포구 서교동 466-8 코마빌딩 4층, 5층 / TEL : 02-3300-100 / 사업자번호 220-87-44355

'The Korean edition of 'ZDNet' is published under license from CNET Networks, Inc., San Francisco, CA,
USA. Editorial items appearing in 'ZDNet Korea' that were originally published in the US Edition of 'ZDNet',
'CNET', and 'CNET News.com' are the copyright properties of CNET Networks, Inc. or its suppliers.
Copyright ⓒ 2007 CNET Networks, Inc. All Rights Reserved.
'ZDNet', 'CNET' and 'CNET News.com' are trademarks of CNET Networks, Inc.


728x90
728x90
Node.js 를 공부하고 코드를 테스트 하는 방법은 여러가지가 있습니다. Cloud9 과 같은 웹 기반의 IDE 를 이용하는 방법이 가장 간편하고 사용자 환경도 타지 않기 때문에 좋지만 웹 기반이다 보니 은근히 불편한 점들이 있는 것도 사실입니다. 이 때 우리가 선택할 수 있는 좋은 대안은 Node.js 를 PaaS 형태로 제공하는 호스팅 서비스를 이용하는 것입니다. 그중에서도 오늘은 Node.js 를 비롯하여 Ruby, Java, Python 등을 PaaS 형태로 제공하는 Heroku 를 이용하기 위한 준비를 해보겠습니다. (간만에 글 올리면서 마치 준비된냥 Heroku 를 건드립니다 ;;;)

먼저 Heroku 를 사용하기 위해서는 간단한 가입 절차를 거쳐야 합니다. 이런 류의 외국 서비스들이 그러하듯 간단한 이메일 인증만을 하면 무료로 사용할 수 있는 공간을 할당받게 됩니다. Heroku 는 기본적으로 무료 서비스이고 추가적으로 용량을 늘리거나 다른 서비스를 이용할 때 추가적으로 비용을 내면 됩니다. 참고로 Cafe24 가 제공하고 있는 Node.js 호스팅 서비스의 최소 단위는 월 500원 입니다 ;;;



 Heroku 에 가입하기 위해서 가입 페이지로 이동합니다. (바로가기 : https://api.heroku.com/signup) 간단한 이메일 입력만으로 가입은 끝납니다. 참 쉽죠잉? 이메일을 입력하고 Sign Up 버튼을 누르면 입력한 이메일로 컨펌 URL 이 발송됩니다. 이메일도 빨리 도착하기 때문에 수신함에서 메일을 찾아 본문의 컨펌 URL 을 클릭하면 됩니다.


이메일에 대한 유효성 점검이 끝났다고 모두 끝은 아니겠지요? 비밀번호 정도는 셋팅 해줘야 나중에 로그인을 할 수 있을 겁니다. 설마 정말로 이메일만 입력했다고 모든게 끝이라고 생각했다면 여러분은 바보 입니다 -_-;; (퍽퍽...) 실제로 개발을 하고 소스 버전 관리를 하고 커밋 하는 등의 행위를 위해서 커맨드 라인 도구를 제공하는데 이 때도 필요한게 바로 이 비밀번호이니 잘 기억해 두시기 바랍니다.

 
비밀번호까지 입력하고나면 간단한 Get Started 방법에 대한 가이드가 화면에 출력됩니다. 로컬에서 개발하고 Heroku 로 소스코드를 업데이트 하고 구동시키기 위해서 몇 가지 도구가 필요한데요, Git 과 SSH 도구를 잘 엮어둔 Heroku Toolbelt 라는 패키지를 제공하고 있습니다. 사용자 환경이 윈도우냐 맥이냐, 아니면 리눅스냐에 따라 패키지가 여러가지로 제공되니 각자 필요한 패키지를 다운로드 받아 설치하면 되겠습니다. Heroku Client 와 Git, SSH 등이 설치된다는 것 기억하시구요.

 
잠시동안 지루한 설치 작업이 진행되고나면 끝납니다. 그리고 아무것도 보이지 않습니다. 뭘 해야 할까요? 윈도우 기준으로 설명을 드리면 설치가 끝나고 나면 윈도우 커맨드라인 도구 (시작 > cmd) 를 실행해서 Heroku 라는 커맨드를 통해 명령행 도구를 실행하셔야 합니다. 그냥 Heroku 라고 한번 쳐보시고... " 아 그렇구나 " 하신다음 위의 스샷처럼 heroku login 명령을 내려주시기 바랍니다. heroku login 명령을 입력하면 조금전에 가입시 썼던 이메일과 비밀번호를 입력합니다.


Git 에 엑세스 하기 위해서는 SSH Key 를 만들어야 합니다. 로컬에서 접근하기 위해서도 필요하고 Heroku 가 Git 에 접근하기 위한 권한 부여를 위해서도 필요합니다. heroku login 을 처음 하게 되면 이런 과정을 한큐에 다 정리를 해줍니다. SSH Key 를 생성해서 로컬에 저장해 주고 (윈도우의 경우 기본 사용자 프로파일 경로에 /.ssh/ 폴더 밑에 생성) Heroku 에 업로드까지 깔끔하게 마무리 해줍니다. Key 가 잘 등록되었는지 확인하기 위해서는 heroku keys 라고 입력해 보면 됩니다. 키를 지우려면 heroku remove 하면 되고 키 추가를 위해서는 heroku keys:add 하시면 됩니다.

자 여기까지가 Heroku 사용을 위한 환경 셋팅입니다. Heroku Toolbelt 가 제공되기 전까지는 별도로 Git 도구를 설치하고 키 생성을 하는 등 번거로운 작업이 많았지만 이제는 참 많이 편해졌다고 다들 그러시더군요 -_-... 그럼 샘플 코드 올려서 구동해보는 건 다음시간에... 해보시지요.

- NoPD -

 
728x90

+ Recent posts