블로그 이미지

GUEST

html/css/javascript 2010. 10. 18. 10:46

node.js

node.js는 V8엔진 기반에서 작동하는 SSJS(server side javascript)이다.
server side script 언어의 대표적인 것은 php일 것이다. APM기반으로 많이 사용하고 있으며 빠른 실행속도와 제공되는 수많은 함수들, 확장 모듈들이 장점이다.

굳이 node.js가 거론되는 이유가 뭘까?

간략히 정리해 보면, 
static html을 apache, apache+php, nodejs(V8)에서 부하를 주어 돌렸을 때, nodejs의 성능이 월등하다. 
글쓴이는 웹서버(apache)가 request를 처리하는 방식에서 근본적인  차이가 있는 것으로 해석한다.

웹서버는 request를 처리하기 위한 thread나 process들의 pool을 운영하여 request를 처리하는데, 
nodejs(V8)은 event loop를 돌리는 thread 하나만 있고, event에 대한 callback을 처리하는 방식으로 request를 처리한다. 별도의 thread들을 생성하고 처리하는 방식보다 event - callback 방식이 heap allocation도 적고, 메모리 사용량도 적다는 것이다. 

동접 처리에 있어서도 nodejs가 php보다 월등히 나은 성능을 보여준다.
글쓴이는 이를 V8의 property 처리 방식에서 기인하는 것으로 본다. 
일반적인 script언어에서의 property는 hash style의 key-value 구조로 저장되는데 V8은 class구조로 구현했고 hash처럼 두 단계를 거치지 않고 바로 접근할 수 있게 되었다는 것이다.

이처럼, nodejs의 장점은 빠르고, 동접 처리에 강하며, server-client간 같은 언어로 프로그램을 작성할 수 있다는 것이다. 
단점은 시작하는 시점이라 지원이 약하고, 사용자층이 적다는 것이다. 지금 당장 nodejs를 이용해서 상업적인 서비스를 제공하기에는 무리가 있을 것 같다.


# 지원
Express - nodejs library







,
TOTAL TODAY