-- 설치환경 --
OS : OSX Lion 10.7.3
이클립스 :  3.7.2
node.js : 0.6.11

1. node.js 설치
전용 인스톨러로 설치 : http://nodejs.org/#download

2. 이클립스 설치
Plain한 것으로 큰맘먹고 설치 : http://download.eclipse.org/eclipse/downloads/eclipse3x.php
자바가 무슨 Dependency 드립을 칠 지 모르니(뻐킹 자바) 3.X로 설치

3.Google Chrome Developer Tools for Java설치
Name : Google Chrome Developer Tools

4. 신규 자바스크립트 프로젝트를 만든 다음.


// dbgtest.js var sys=require('sys'); var count = 0; sys.debug("Starting ..."); function timer_tick() { count = count+1; sys.debug("Tick count: " + count); if (count === 10) { count += 1000; sys.debug("Set break here"); } setTimeout(timer_tick, 1000); } timer_tick();
을 복사하여 dbgtest.js로 명명.

5. 콘솔에서 디버깅모드로 node프로세스 시작

$ node --debug dbgtest.js
debugger listening on port 5858
DEBUG: Starting ...
DEBUG: Tick count: 1
DEBUG: Tick count: 2
DEBUG: Tick count: 3 
// and so on  


6. 이클립스의 Debug Configurations에 들어가서 디버깅 프로필을 만들고
Debug를 클릭하여 Listen.


7. dbg가 표시하는(것으로 추정되는)프로세스에 브레이크 포인트를 발행하는 것이 포인트!
소스에 포인트 백날 찍어봤자 안 멈춘다!!





출처 - http://cinos81.blogspot.kr/2012/03/eclipse-nodejs.html

'Framework & Platform > Node.js' 카테고리의 다른 글

node.js - 디버깅  (0) 2012.07.20
node.js - npm 1.0 사용하기  (0) 2012.07.16
node.js - socket.io 소개  (0) 2012.07.12
node.js - CentOS에서 설치(install in linux)  (0) 2012.07.03
node.js - 소개 3  (0) 2012.06.07
Posted by linuxism
,


npm 은 Isaac Schlueter 이 만든 node.js 팩키지 매니저로 전에 node.js 프로젝트 설치시 npm 사용하기라는 포스팅을 올린적이 있습니다. 0.3.x버전대를 유지하다가 지난 3월 1일에 많은 기능을 넣으면서 메이저버전을 업그래이드 했습니다. 사용법이 많이 달라졌기 때문에 따로 포스팅을 합니다. npm에 익숙해 지니 어찌나 편한지 npm없는 node.js 작업을 상상할 수 없군요. 문서는 github저장소에 잘 정리되어 있습니다.




설치하기
설치는 기존과 거의 동일합니다. 

curl http://npmjs.org/install.sh | sh

curl을 이용해서(curl이 없으면 설치해야 합니다.) 1.0으로 올라가면서 아키텍쳐자체가 많이 달라졌기 때문에 이전에 0.3.x에서 업그래이드 하던것과는 다르게(원래는 npm update npm으로도 업데이트 할수 있었죠.) 완전히 새로 설치하는 형태를 띄게 되고 기존에 npm을 이용해서 설치했던 모듈들도 모두 삭제처리를 하게 됩니다.

npm 새버전 설치하는 화면

위와 같이 npm팩키지를 다운받아서 설치를 하면서 기존의 1.0미만의 npm으로 설치했던 모듈들에 대한 리스트가 나오게 됩니다. 

npm 설치중 기존 설치모듈 지울것인지를 묻는 화면

리스팅이 다되고 나면 위 화면처럼 해당 모듈들을 삭제할 것이냐고 묻게 됩니다.  여기서 yes를 입력하면 아래화면처럼 기존 모듈들을 모두 삭제하고 npm 1.x의 설치를 완료하게 됩니다.(어차피 1.0대해선 구조가 다르기 때문에 no를 할 이유는 없어보입니다. ㅎ)

사용자 삽입 이미지

위의 설치과정처럼 yes를 묻는 것을 생략하고 싶으면 아래처럼 파이프로 연결해서 명령을 입력하면 됩니다. 

curl http://npmjs.org/install.sh | clean=yes sh
curl http://npmjs.org/install.sh | clean=no sh




Global 설치와 Local 설치
npm이 0.3.x에서 1.x로 올라오면서 가장 크게 달라진 점은 npm으로 모듈을 설치할 때 글로벌 설치와 로컬설치로 나누어 진다는 것입니다. 글로벌 설치와 로컬설치를 구분하는 것은 아래와 같습니다.

  • Global 설치 : 터미널에서 모듈의 명령어를 사용할 일이 있다면 Global로 설치합니다. 
  • Local 설치 : 소스내에서 require()로 불러들이는 모듈들은 Local로 설치합니다.
cloud9처럼 터미널에서 명령어를 입력해서 에디터를 띄우거나 expresso 처럼 명령어를 입력해서 유닛테스트를 실행해야 하는 경우는 글로벌로 설치해야 하고 jsdom이나 socket.io처럼 소스내에서 사용하는 모듈들은 로컬로 설치해야 합니다. 그러면 express처럼 소스내에서도 사용하지만 명령어를 입력해서도 기본구조를 만드는 기능을 제공하는 모듈들은 어떻게 해야하는가 하는 의문이 납는데요 Isaac은 이럴 경우 명시적으로 글로벌과 로컬을 둘다 설치해 주는 것을 권장하고 있습니다. 그렇지 않으면 글로벌에 설치하고npm link 를 이용해서 사용할 수 있는 대안이 있습니다.(이부분은 저도 아직 안해봐서.... 해보고 나중에 포스팅할 내용이 있으면 포스팅하겠습니다.)

사용자 삽입 이미지

글로벌설치는 위 화면 처럼 -g 옵션을 사용해서 npm install -g 팩키지명의 명령어로 설치를 합니다. 이렇게 설치할 경우 {prefix}/lib/node_modules에 설치가 되고 실행파일은 {prefix}/bin에 설치가 되며{prefix}/share/man에 man page가 설치됩니다. {prefix}는 기본적으로 /usr/local 입니다. 로컬설치는 현재 위치에서 ./node_modules에 설치가 되고 ./node_modules/.bin/가 설치되며 man page는 설치되지 않습니다

사용자 삽입 이미지

로컬설치는 기존에 0.3.x에서 사용하던 것과 동일하게 아무런 옵션도 주지 않고 npm install 팩키지명의 명령어로 설치를 하면 됩니다.(문서 참고로컬설치를 하면 현재 위치의 ./node_modules에 바로 설치가 되기 때문에 프로젝트폴더내에서 설치할 경우 관련 모듈들이 프로젝트내에 포함되게 됩니다.(모듈에 따라서는 컴파일이 필요한 경우가 있기 때문에 저같은 경우는 버전관리에 추가하진 않았습니다.) npm으로 로컬설치한 곳의 하위 폴더에서는 해당 모듈을 사용할 수 있기 때문에 상위에서 설치를 하고 여러 프로젝트 폴더를 만들면 공통으로도 쓸 수 있을 것으로 보이지만 npm의 의도는 각 프로젝트별로 필요한 모듈을 설치해서 사용하도록 하는 것으로 보입니다.(이렇게 로컬설치한 하위 경로에서 npm 로컬설치를 하더라도 상위의 npm 설치위치를 찾아서 자동으로 그곳에 설치해주게 됩니다.) 이럴 경우 프로젝트가 의존하고 있는 모듈에 대한 의존을 명확하게 알 수 있으며 프로젝트별로 다른 버전을 사용하는 경우에도 쉽게 관리가 가능할 것으로 보입니다.(전체 없데이트할때마다 신경쓰이던 부분이 없어지겠네요.) Issac의 포스팅 에 더 자세한 내용들이 있습니다.




그밖에 간단한 사용법들
기존에 저장소에 있는 팩키지들을 보기 위해서 npm ls 명령어를 사용했고 설치된 모듈은 npm ls installed를 사용했습니다. 하지만 중앙저장소의 팩키지들이 많아지면서 npm ls 명령어는 너무 무거워졌기 때문에 1.0에서는 두 기능이 다른 명령어로 분리되었습니다. 중앙저장소의 리스트를 보는 경우는 npm search 팩키지명을 이용해서 검색해 볼 수 있으며(문서 참고npm ls는 자신의 PC의 팩키지를 보는데 사용합니다.(문서 참고)

npm ls 로 설치된 모듈 리스트를 본 화면

1.0에서는 로컬설치의 경우 프로젝트 폴더별로 따로 설치할 수 있기 때문에 npm ls를 실행할 경우 현 위치에서 로컬설치된 팩키지들을 확인할 수 있습니다. 1.0부터는 팩키지가 트리뷰로 보이기 때문에 의존관계를 쉽게 파악할 수 있습니다. 글로벌로 설치된 팩키지를 보려면 npm ls -g처럼  -g 옵션을 사용해서 확인할 수 있으면 트리뷰를 보지 않고 그냥 폴더리스트로 보려면 -p 옵션을 사용하면 되고 자세한 내용을 보려면 -l 옵션(Long의 l입니다.)을 사용하면 됩니다. 자세한 내용은 Issac의 ls에 대한 포스팅 을 참고하면 됩니다.

npm config ls로 설정값들을 확인한 화면

앞에서 글로벌 설치의 폴더가 {prefix}의 값인 /usr/local이라고 했었는데 그부분은 npm의 설정값으로 들어가 있으며 npm config ls로 확인해 볼 수 있으며 npm get / npm set 명령어를 통해서 각 설정값을 변경해 줄수 있으면 기존과 동일하게 홈디렉토리에 .npmrc파일을 두고 설정리스트를 셋팅해 놓을 수 있습니다. 자세한 내용은 config에 대한 문서를 참고하시면 됩니다.


출처 - http://blog.outsider.ne.kr/638

'Framework & Platform > Node.js' 카테고리의 다른 글

node.js - 디버깅  (0) 2012.07.20
node.js - 이클립스에서 디버깅  (0) 2012.07.16
node.js - socket.io 소개  (0) 2012.07.12
node.js - CentOS에서 설치(install in linux)  (0) 2012.07.03
node.js - 소개 3  (0) 2012.06.07
Posted by linuxism
,

linux - scp 사용법

System/Linux 2012. 7. 16. 13:10


local 서버에서 remote 서버에 파일을 올리고 받을 때는 주로 FTP를 사용하지만, 시스템을 설정하고 테스트하고 잦은 파일 교환 작업을 할 때는 GUI툴을 사용하지 않고 local에서 파일을 복사하듯이 사용해야 할 때가 있다. SSH를 통해서 scp 명령으로 안전하고 간단하게 파일을 복사할수 있다. 

$ scp <옵션> <원본 경로 및 파일> <복사 받을 곳 경로 및 파일>


명령어

옵션
Remote 서버 경로
local 서버 경로

1. Remote 서버에 파일 올리기

$ scp -P 22 /home/myhome/abc.tar oracle@123.456.78.9:/home/oracle/


abc.tar 파일을 123.456.78.9 서버의 22번 포트로 SSH 접속하여 oracle 사용자로 로그인 한 후 /home/oracle/ 아래에 복사한다.


2. Remote 서버에서 파일 받기

scp -P 22 root@123.456.78.9:/usr/local/abc.xml /home/oracle/


remote 서버의 abc.xml 파일을 local의 /home/oracle로 다운로드 받는다.


SSH포트는 변경하는 경우가 많으므로 -P 옵션 사용했고, 서버 주소와 디렉토리의 구분은 콜론(:)을 사용한다. 원격지의 home 주소는 "./"를 사용해도 된다.
Ex) root@123.456.78.9:./


자주사용하는 옵션
-P : 포트번호 지정
-p : preserve의 약자로 원본 파일 시간의 수정시간, 사용시간, 권한을 유지한다.
-r : recursive의 약자로 하위 폴더/파일 모두 복사한다.



출처 - http://dinggur.tistory.com/94


Posted by linuxism
,