이클립스에서 install 에 들어가서 http://www.nodeclipse.org/updates/ 

로 검색하여 필요한것만 설치(아래의 이미지 참조)



매일 node 개발할땐 터미널만 썼었는데 이클립스에 플러그인이 있었다니;;

but npm 설치가 자유롭지가 않다. 해당 프로젝트를 커맨드로 들어가서 따로 설치하자.

그리고 당연하게도 코드 어시스트 또한 지원이 안된다.

저작자 표시
신고

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret

node.js 를 지원하는 웹IDE는 c9.io 가 있습니다. 먼저 c9.io를 이용하기 위해선 아이디가 필요한데 github.com 아이디가 있으면 됩니다. github는 최대 저장소중 한곳으로 openAPI를 통하여 아이디를 다른사이트로 인증할수 있습니다. 먼저 github.com 아이디를 만들어보겠습니다. (만일 github.com아이디가 있으시면 번 부터 하시면 됩니다.)



1. http://www.github.com 해당 주소를 들어가면 메인화면에 위와 같은 화면이 나옵니다. 

    사용할 이름/email/사용할 비번만 적어줍니다. 

2. github는 기본적으로 퍼블릭접근이 가능합니다. 만일 프라이빗저장소를 원한다면 한달동안 일정량의 사용료를 내야 합니다. 우선 Free 를 선택한후 아래의 Finish sign up 을 클릭합니다. 



3. 아이디가 완성되었습니다. 간편하지요? 이제 http://c9.io 에 접속합니다. 




4. 메인화면 상당에 Sign in 을 클릭한후 펼쳐진 화면에서 github의 아이콘을 클릭합니다.(녹색 바탕의 고양이입니다.)



5. 위와 같이 팝업창이 뜹니다. 이미 로그인 된 상태이므로 접근권한 승인만 해주면 됩니다.

    Authorize application 을 눌러줍니다. 






6. 로그인이 완료되었습니다! 간단하지요? github.com과의 연동도 가능합니다. 

    해당 화면은 프로젝트 리스트 화면입니다 아직은 썰렁 합니다. 



7. 프로젝트를 하나 만들어 보겠습니다. 왼쪽 상단의 CREATE NEW WORKSPACE -> Create a New Workspace 를 클릭합니다. 




8. 팝업창이 나옵니다. 지원하는 언어가 상당히 많으므로 해당 언어를 하신다면 테스트 환경으로 c9.io를 사용하시는걸 추천합니다. 저흰 node.js 를 이용하므로 가장 첫번째 node.js를 선택. 상단엔 원하는 프로젝트 이름을 기입합니다. 저는  node-2 로 했습니다. 그리고 CREATE 클릭.




9. 프로젝트가 완성되었습니다. 기본적으로 제공되는 소스인 server.js 를 보시면 간단하게 실시간 채팅화면을 구성할수 있습니다. 


향후엔 최대한의 공통된 사항이 적용되는 c9.io에서 거의 모든 작업을 할 예정입니다.

물론 원하시는 로컬작업을 하셔도 문제는 없으며, 원하는 IDE를 사용하셔도 됩니다. 

 



저작자 표시
신고

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret

터미널에서 다음의 명령어를 차례로 입력합니다.


$ sudo apt-get install python-software-properties python g++ make

$ sudo add-apt-repository ppa:chris-lea/node.js

$ sudo apt-get update

$ sudo apt-get install nodejs


설치 확인

$ node -v





(제가 설치한 버전은 0.10.25 버전이군요.) 


저작자 표시
신고

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret

windows 사용자들을 위한 node.js 설치 방법 입니다.




1. http://nodejs.org/ 에 접속합니다. 위와 같은 화면이 나오실겁니다. INSTALL을 눌러 설치 파일을 다운로드 한후 실행 시킵니다. 



2. 위와 같은 셋업프로그램이 실행됩니다. Next 를 계속 눌러주면 설치가 완료됩니다. 간단합니다.




3. 설치가 끝났습니다. 

    설치 확인을 위해   시작->프로그램->Node.js->Node.js command prompt   를 실행시킵니다



4. 콘솔 명령창(시작->모든프로그램->Node.js-> Node.js command prompt)에 다음 명령어를 실행 시킵니다.

    >  node -v 

    해당 node.js 의 버전(저의 경우엔 0.10.26 버전이군요)이 나왔다면 정상적으로 설치가 완료된것입니다.

    다운받은 버전에 따라 위의 표시는 다를수 있습니다. 






.





저작자 표시
신고

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret

좋은점이 있다면 단점이 있는법!


1. 동기적 코드사용으로 인한 급격한 성능 저하

기존 대부분의 언어는 비동기적 코드로 프로그램을 만들었습니다. 이에 프로그래머들의 로직 방식도 비동기적으로 따르게 되었죠. 하지만 비동기적프로그램에 동기적 코드를 쓴다면 단순한 코드 한줄이 서비스 전체에 영향을 미칠수도 있게됩니다. 

꼭 보셔야 할 자료 - 난하님의 싱글스레드에서의 동기/비동기 코드 작동  http://vimeo.com/32035710


2. 해당 로직이 실행전까지 에러를 알수 없으며 에러시 전체 서비스에 영향을 미침

단일 스레드 방식이므로 해당 스레드가 작동을 멈추면 전체 서비스에 영향을 미치게 됩니다. 예로 에러가 발생하거나 특정 조건에 따른 무한루프 같은 스레드 하나를 전체 점유하면 node.js의 가비지 컬렉션도 스레드에 좌우되므로 서비스가 다운됩니다. 결국 해당 로직별 테스트 주도 방식으로 개발해야 맘이 편합니다.


3. 기타

    디버깅 환경이 콘솔!(node.js의 핵심개발자들이 모두 유닉스 덕후들이란 소문이 있습니다.) , 정식버전이 아직도안나옴!(14년 2월 현재 0.10.25 버전) , 모듈에 알수없는 버그들 산재, node.js의 미래를 알수 없음, 등이 있습니다.  



저작자 표시
신고

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret


node.js의 특징인 event-driven, non-blocking I/O , 단일 스레드 에 대한 간략한 설명입니다. 


1. event-driven

event-driven은 사용자가 이벤트를 발생시켰을때 즉 마우스/키보드로 데이터를 전송 했을때에만 작동합니다. 대부분의 웹서버는 사용자가 이벤트를 발생하기 까지 기다립니다. 즉 이벤트가 발생하기까지 자원(대기 시간 및 메모리)을 계속 소비하게 됩니다. 하지만 event-driven는 이벤트에만 웹서버가 연결해주기 때문에 자원을 최소화 시킬수 있습니다.  


2. non-blocking I/O

blocking I/O(동기식 I/O) 은 쓰기/읽기 이벤트가 발생하면 이벤트가 끝날때까지 해당 모듈을 점유하게 됩니다. 즉 다른 일을 못하게 되지요. 또한 메모리버퍼에 데이터를 차지하게 되므로 메모리도 소비하게 됩니다. 하지만 non-blocking I/O(비동기식 I/O)의 경우 쓰기/읽기 이벤트가 시작하자마자 모듈을 반환시켜 다른 작업을 하도록 준비상태로 됩니다. 속도가 동기식보다 빠르고 메모리도 덜 차지하게 됩니다.


3. 단일 스레드



단일스레드의 장점은 적은양의 자원으로 일을 처리할수 있습니다.  위의 그림에서 event loop 가 하나만 작동하듯 하나의 몸으로 한가지 일만 합니다. 멀티스레드라면 몸을 여러개로 쪼개서 일을 한다음 일의 결과를 합쳐야 합니다. 이때 일에 대한 점유문제와 해당 일을 쪼개고 합치는 작업이 더해저 자원을 더 사용합니다. 단일 스레드의 가장 큰 단점은 한번에 한가지 밖에 작동을 못합니다.[각주:1] 만일  어느 한곳에 예외상황 및 에러가 발생 한다면 어플리케이션 전체에 영향이 가게 됩니다. 


읽어볼 좋은 글.

outsider님의 node.js  서버사이드개발하기 : http://www.slideshare.net/rockdoli/nodejs-8492796



  1. 예외적으로 cluster모듈을 사용한다면 멀티스레드의 효과를 볼수 있습니다. [본문으로]
저작자 표시
신고

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret



node.js 프로그래밍을 시작하기 앞서 node.js 가 무엇인지를 알아야 겠지요?

node.js 는 구글크롬브라우저 v8 엔진을 이용하여 자바스크립트로 만드는 애플리케이션입니다.  매우 가볍고 능률적인 리얼타임 어플리케이션을 위해서 만들어졌습니다. 

개발자 라이언달이 2009년에 발표하였으며 2014년 2월 현재 node.js 에 사용되는 패키지수는 57800 개를 넘어섰습니다.[각주:1]

자바스크립트를 이용한 개발환경이기 때문에 다른 언어에 비해 간편하고 쉽게 어플리케이션을 만들수 있게 되었습니다. 또한 v8엔진을 사용하기 때문에 자바스크립트의 단점인 속도 문제도 점점 빨라지고 있습니다. 

node.js 의 특징은 event-driven, non-blocking I/O 를 들수 있습니다. 이에 대해서는 다음 포스팅에서 소개 하도록 하겠습니다. 

현재 nodejs를 활용하고 있는 대표적인 회사들은 페이팔, 야후, 링크드인 , 이베이 등에서 사용되고 있습니다. [각주:2]





  1. 당시 발표 자료:http://s3.amazonaws.com/four.livejournal/20091117/jsconf.pdf [본문으로]
  2. 참조 : http://www.nodejs.org/industry/ [본문으로]
저작자 표시
신고

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글 하나 달렸습니다.
  1. 감사합니다^^ 잘 배우고 갈께요~
secret