개인적으로 node.js의 좋은 점

node.js는 javascript이지만 서버에서 하는 일을 시킬 수 있다는 막대한 장점이 있다. 그냥 이렇게 적어놓으면 도대체 뭐가 장점이란 건가? 하는 생각을 할 수 있다고 본다. 어차피 스크립트를 실행하는 것은 그게 그거 아닌가? 하고 말이다.

예전 같으면 서버를 하나 올리려면 소스 받아다 빌드 하는 것은 물론이고 configuration file을 설치 환경에 맞게 잡아주어야 하고 등등등 할 게 많음에도 불구하고 실제로 그 결과 사용하는 기능은 수많은 서버 기능중 극히 일부에 불과했다.

HTTP 서버를 예로 들면 html 파일을 뿌려주거나 경우에 따라서 cgi-bin을 굴려주거나 하는 정도이고, php processor를 붙여주면 php를 실행할 수 있는 것이고 dbms 설치하면 여기에 DB 작업을 덧붙이는 정도다. 그러나 이 일을 하기 위해서 위에 말한 과정을 전부 해주어야 했다. 지금은 잘 알려진 배포판으로 리눅스를 올리면 누군가 친절하게 빌드해 놓은 것을 받아올 수 있는 것도 모잘라 계속 업데 받을 수 있는 세상이니까 그 걱정은 안해도 되지만.

말이 잠시 샜는데, node js를 쓰면 이런 과정도 필요 없다. 어차피 node야 주기적으로 다른 패키지와 함께 업데해주는 정도로 관리하면 되는 정도이고 해도 그만 안해도 그만이다. npm에서 내가 만들고 싶어하는 것과 관련된 필요한 패키지 가져다오면 그만. 나머지는 몇 줄 안되는 스크립트로 필요한 기능은 전부 구현이 된다.

그러니까, node를 받아서 설치하는 것은 APM 설치하는 것보다 간단하고 그것으로 서버 기능은 npm에서의 집단 지능의 힘을 빌어 내가 더 하는 몇 줄의 스크립트로 구현이 되는 것이다.

내 경우는 내 잡일을 다 해주는 라스베리 파이에게 토렌트 받아오는 일을 시키고 얼마나 받았는지 알려주는 일 (flood라는 유명한 node js 기반의 관리 툴이 있다)과 토렌트 사이트를 검색해서 magnet uri를 가져다 주는 일, 또 외부에서 받아둘 대용량 파일이 있다 싶으면 URL 넘겨서 wget이 대신 받아오게 하는 일 등을 시킨다. 이 말고도 집일을 대신 해주는 데 내가 작성한 코드는 길어야 30줄이 되지 않는다.

말이 좀 새는 것 같지만, 네이버가 대용량 파일을 교환 할 수 있도록 큰 공헌을 하는 듯 하다. 미국으로도 워낙 속도가 잘 나오는데 다른 나라로도 엄청 좋을 듯 하고 그 이유로 대용량 파일을 해외로 뿌리는 데도 아주 요긴해 보인다. 어설픈 드랍박스니 뭐니 하는 것보단. 용량도 거의 무제한에 가깝고 말이다. 이렇게 유용한 공짜! 서비스가 어디있을까 싶을 정도로 좋다.