라스베리파의 용도: node js

Node Js를 쓰면 편리한 게 이만저만이 아니지만, 내 입장에서는 웹 인터페이스를 이용해서 외부에서 일을 시키기가 아주 편하다는 것이다.

흔히들 생각하는 것이 Apache + PHP인데 이 방법은 내가 기억하기에 90년대 중반에 보급되기 시작해서 유행된 것이라 지금으로 보면 거의 20년도 넘은 방법이지 싶다. node JS는 그보다 역사가 미천하지만 Apache + PHP처럼 무겁지도 않고 웹서버를 만들어서 명령실행하는 것을 만드는 것도 대개 20줄을 넘어가지 않는 간단한 자바스크립트로 할 수 있다.

사실 C/C++이나 Java나 PHP나 Perl이나 shell script나 대개 다 거기서 거기다. Perl은 shell script와 상당히 가깝고 PHP는 perl과 HTML을 하다가 그 둘이 사실상 붙어버린 것이라고 보면 되고 Java도 C와 shell script를 즐겨쓰던 사람들이 만든 것이라 멀리가지 못하는 것이다.

내가 보기엔 이들의 차이는 거의 지방 사투리급의 차이로 보여지는데, 어차피 어떤 언어든 복잡한 기능을 쓴다거나 특수한 기능을 쓸 때는 별도의 문서를 참조할 수 밖에 없다. 그런 입장에서 보면 어떤 언어를 쓰든 큰 차이가 없다. 사용자 입장에선 빨리 쉽게 잘 만들 수 있으면 되는 것 아닌가? 사실 그런 입장에서 apache + PHP는 의미가 없다고 본다. Apache를 아주 오래전부터 가지고 놀아야 했던 입장으로 쓸데 없이 설정할 게 많지만 사실 HTTP 서버 외에는 쓰는 게 거의없었던 입장에선 골치스러운 물건이다. 사실 이 정도 기능은 그냥 소켓 열어서 즉문 즉답으로 주고 받게 만드는 것밖에 없는데 사실 C로 프로그래밍해서 만들어 넣기도 애매한 일이다. 그걸 쉽게 자바스크립트 몇 줄로 가능하게 해주는 게 node js라고 보면 된다.

라스베리파이에서 node js를 쓰는 이유는 밖에서 집에 있는 라스베리파이에게 일을 시키거나 상황을 보고 받을 때 웹 인터페이스를 쓸 수 있기 때문이다. 간단히 GET이나 PUT으로 명령이나 보내주어야 할 데이터를 하달하면 라스베리파이에게 나머지를 처리하게 할 수 있기 때문이다.

아주 쉽게 집에서 뭔가 다운로드 받게 하고 싶다면 wget을 쓰면 쉽게 해결되니까 node js를 써서 내가 복붙하는 URL로부터 다운로드를 받아오게 시킬 수도 있고 내가 알려주는 URL의 사이트에 접속해서 내용을 적당히 파싱해서 원하는 일을 하게 해 준다든가 (광고같은 것은 다 생까고 원하는 내용만 긁어온다), 특정인의 module을 이용하면 훨씬 복잡하고 다양한 기능 (이를테면 flood처럼 rtorrent를 모니터링 종합 관리를 하게 해준다든가)을 할 수 있다.