node.js는 브라우저에서 동작하지 않기 때문에 디버깅을 돌리기 위해서는 도구가 필요합니다. 이클립스에 node.js 플러그인을 깔아서 하는 방법이 있고, node-inspector 도구를 이용하는 방법 두 가지가 있습니다. node-inspector는 크롬브라우저를 독립적으로 띄워서 크롬 인스펙터처럼 디버깅 할 수 있게 합니다.


설치

npm install -g node-inspector


node-inspector 명령이 위와 같이 설치되면 node.js 로 만들어진 프로그램을 디버그 가능한 모드로 실행합니다. 다음과 같이 node.js를 두 가지 디버그 모드로 실행할 수 있습니다. 5858 포트를 엽니다.



디버그 모드 실행

node --debug ex.js

실행 처음에 브레이크포인트 적용된 모드로 실행
node --debug-brk ex.js

다른 명령창에서 node-inspector 를 실행합니다.

node-inspector 

크롬브라우저가 따로 뜹니다.

http://localhost:8080/debug?port=5858 주소를 이용합니다.



브레이크포인트를 잡으면 실행시 디버그가 가능합니다. 변수의 메모리를 확인할 수 있고, Console탭을 통해서 this 등의 키워드가 가르키는 내용도 확인이 가능합니다. 실행된 변수 위에 마우스를 올리면 내용을 풍선도움말로 띄워서 보여줍니다.


만약 디버그모드로 떠 있는 node.js 가 없다면 다음과 같은 메시지를 보게 됩니다.



전체적인 구조는 다음과 같습니다.



관련 링크: 

node.js debug: 

http://nodejs.org/api/debugger.html


node-inspector 

https://github.com/node-inspector/node-inspector#node-inspector




이클립스 4.3 Kepler의 장터에서 발견했습니다. 

메뉴의 Help > Eclipse MarketPlace... 를 선택하시고,

node로 검색하면 됩니다.

node로 검색해서 나오는 2번째 Enide를 설치했습니다.


설치되는 목록이 많습니다.


우측상단에 보이듯이 node 퍼스펙티브로 전환한 뒤에 간단한 node.js 프로젝트를 만들어 봤습니다. hello-world-server.js는 자동생성된 코드입니다. 



실행하는 옵션은 hello-world-server.js를 선택하고 Run As > Node Application 하면 Console에 결과를 볼 수 있습니다. 물론 예제는 웹서버를 띄우는 내용입니다만, 웹 뷰나 브라우저는 자동실행되지 않습니다. 


부지런한 개발자들이 많습니다. 이클립스에서 노드 개발을 하다니


하지만 아직 Code Assist 기능은 안 되는 것 같습니다. 자바스크립트 문법 검사 정도만 지원하는 것 같습니다.





이번 주 zdnet을 통해서 기사가 나왔습니다.

http://www.zdnet.com/how-replacing-java-with-javascript-is-paying-off-for-paypal-7000023697/

Paypal이 Java를 버리고, node.js로 서버를 변경했다고 합니다. 기사에 링크된 페이팔 블로그 링크에 옮겨간 이유가 나옵니다. 여러 이유가 있겠지만, 서버에서 프론트까지 같은 언어로 커뮤니케이션하는 것이 좋다고 판단했다는 이유가 눈에 띕니다.


"It unifies our engineering specialties into one team which allows us to understand and react to our users’ needs at any level in the technology stack."

from: https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/


오래 전부터 프로토타이핑을 해왔고, 올해부터 서비스에 적용했다고 합니다. 웹 애플리케이션 프레임워크로 express를 쓰고, Grunt 작업 실행기와 설정을 위해서 nconf를 사용했다고 zdnet이 전합니다.


개발 생산성 향상은 다음과 같습니다.


2배 더 빨라졌고, 더 적은 인원으로 Built almost twice as fast with fewer people

33%라인 수가 줄었으며 Written in 33% fewer lines of code

40%의 파일 갯수로 만들어 집니다 Constructed with 40% fewer files


자바가 파일이 많기는 하죠. 스프링이나 EJB 모두 말이죠.


성능에 대한 그래프도 응답시간이 줄어서 node.js 쪽이 나은 데이터가 공개되었습니다. 고객의 대기시간이 줄었다는 얘기죠.





java 시장이 현재 크지만, node.js로 인해 많이 잠식될 것 같습니다. 당장은 아니라도 말이죠.


ps. Douglas Crockford님이 야후에서 Paypal로 간 까닭은?http://techcrunch.com/2012/05/13/paypal-gets-its-own-share-of-the-yahoo-diaspora-hires-java-icon-douglas-crockford/


+ Recent posts