node.js 관련.

2011. 6. 10. 16:33오픈소스관련

728x90
반응형
http://nodejs.org/

실시간 서버를 개발하고 운영한다.
직접만들어서 사용하기도 하고 오픈 소스를 가져다가 최적화해서 사용하기도 한다.
자바의 nio를 이용해서 만든 서버의 경우 접속자당 Thread를 사용하는게 아니라 설정에서 필요한 적당수의 Thread만을 사용하므로 메모리 사용량과 CPU의 사용에서 효율적으로 사용할 수 있다..
현재 만들어서 사용하고 있는 서버의 경우 국내 모바일 게임에 적용해서 어느정도 검증을 받았다. 하지만 온라인 게임 처럼 대량의 데이타를 주고받는 것은 아니므로 아직까지 완벽한것도 아니고 완벽하게 검증을 받은 것도 아니다.

최근 들어서 node.js라는 것을 들었다..
아직 실험을 해보지는 않았다.

어느분의(http://amix.dk/blog/post/19577)  사용기에서 보면 
기존에 netty를 서버로 사용하다가 node.js로 변경했다고 한다. 약 2일 정도 작업을 비교적 짧은 기간이었다. 처음 8개월 정도는 별 문제 없이 운영되었다고한다. 하지만 그 후부터 메모리 누스와 속도 저하를 경험하게되면서 여러가지 해결방법을 모색 결과, HW를 업그래이드 하는 쪽으로 처리했다고 한다. 하지마 회사를 시작하는 단계인 그들의 근본적인 해결 방법은 아니라 생각되어서 기존에 사용하던 Netty를 최적화해서 운영하기로 했다고 함..

현재 초당 6,000~ 10,000건 정도의 요청사항 처리가 가능하고( node.js의 초당 500건 정도에 비하면 양호하다) 한다.
node.js의 속도가 만족할정도가 안되는 이유로는 한개의 Thread를 사용하다보니 일기와 쓰기 그리고 쓰레기수집기까지 한개의 Thread에서 처리하다보니 속도면에서 느려진다고 합니다. 그리고 이분의 경험은 작년 2010년 10월에 작성한것입니다.

=================================================================
Node.js는 현재 새로운 버전이 올라와있고 많은 부분에서 개선되었다..
그리고 속도 문제를 해결하기 위해서 한개의 Thread로만 모든걸 처리해서 야기되던 문제점들은 근본적으로 해결하기 위해서 Multi-Thread를 지원할 계획이 있다고 합니다.

앞으로 간단하게 실시간 서버를 만들어야 할경우라면 Node.js를 사용해보는 것도 좋을 것 같습니다. 특히 JavaScript에 익숙한 분들이라면 더욱 그렇습니다.
 

다움로드 : http://nodejs.org/
한글자료 : http://blog.outsider.ne.kr/480
사용자 경험 : http://amix.dk/blog/post/19577
슬라이드 : http://www.slideshare.net/rockdoli/what-is-nodejs-6751599 
728x90
반응형