Node.js | Node.js 사용 준비 | Node.js 란?

Node.js는 JavaScript에서 작업을 수행할 수 있는 서버 환경이다. “서버 환경"라고 하면, 누구든지 생각할 수 있는 것은 “Web 서버가 있고, 거기에 HTML 파일 등이 배치되어 있는 것"일 것이다. “서버 사이드 개발"이라고하면, Perl이나 PHP라든가 프로그래밍 언어로 작성된 스크립트를 제공하여, 그들이 공개된 주소에 액세스하면 스크립트가 실행된다는 것으로 생각하는 사람이 많을 것이다.

Node.js는 이러한 개발 스타일과는 전혀 다르다. Node.js는 먼저 “서버를 만들겠다"것부터 시작한다. “응? 서버 자체를 만드다?” 라고 의문을 가지는 사람이 있을 것이다. 그렇다.

Perl이나 PHP라면, 서버 환경이라는 것은 따로 있고(Apache HTTP Server 라든지 xampp라는 것은 들어 본 적이 있을 것이다, 바로 그거이다), 이미 Web 서버로 동작하는 프로그램에서 “이 주소에 액세스가 있으면 이를 실행하는 거야"라는 것이 있어서, 이른바 “서버에 준비해 두는 부품"같은 부분으로 웹프로그램을 만들었다.

그런데 Node.js는 “서버 프로그램으로 실행되는 스크립트"자체를 만든다. 그 스크립트에서 “이 주소에 액세스하는 경우 이 작업을 수행하려면"같은 기본적인 부분까지 모두 만든다. 여기가 기존의 서버 개발의 개념과 크게 다른 점이다.

“서버 자체를 만든다? 뭔가 몹시 어려워 보인다” 아무래도 그럴 것이다. 그런데, “서버를 만들겠다"고 하더라도, Node.js에는 제대로 된 “서버 개체"라는 것이 있어서, 그것을 준비하는 것만으로 만들 수 있기 때문에 매우 어려운 것은 아니다. 그렇게 난이도가 높으면 이렇게 주목받는 일도 없을 것이다.

Node.js가 주목되는 이유를 단적으로 말하면 다음과 같다.

  • 서버 사이드와 클라이언트 사이드를 하나의 언어로 개발할 수 있다. Web 개발이라는 것은 어쨌든 곳곳의 언어를 조합하여 누더기 투성이로 만드는 있는 느낌이 든다. 하지만 Node.js를 사용하면 서버에서 클라이언트까지 모든 “JavaScript"만으로 만들 수 있다.

  • 기존의 Web 서버의 문제의 해소한다. 지금까지 형태의 Web 서버는 액세스가 집중되면, 효율이 뚝 떨어져 버렸다. Node.js는 “이벤트 루프"방식을 채택하여, 스케일링(갑자기 맹렬한 액세스되거나 한 경우에도 대응할 수 있는 능력)에 뛰어나다는 것을 증명했다.

아무튼, 우리와 같은 초보가 “Web 응용 프로그램을 만들어 볼까"라고 했을 때, 스케일링이 ……라고 해도 느낌오지 않을지도 모른다. 그렇지만 “어쨌든 전부 JavaScript만"이라는 것은 꽤 매력적이지 않은가?

이 Node.js, 얼마 전까지는 “자, 잠깐 사용해 볼까"라고 생각한 사람이 있어도 좀처럼 손을 댈 수 없었다. 이유는 두 가지. 하나는 “Linux 으로 하지 않으면 안된다"는 것 때문에, Windows 또는 Mac에서 사용할 수 없었다. 그리고 두 번째는 “운영환경이 없다"는 것이다. 모처럼 배워도 Node.js를 지원하는 렌탈 서버가 아니면 동작하지 않았다. 자기 부담으로 서버 컴퓨터를 준비해서 공개해야 하는 것인가? 설마…

…… 그런 매니아적인 환경 같았던 Node.js도 지금은 Windows와 Mac 버전도 있으며, 누구나 쉽게 설치하고 사용할 수 있게 되었다. 그리고 운영 환경도 “클라우드"를 이용하여 누구나 무료로 Node.js으로 사이트 구축을 할 수 있게 되었다. 아마추어 수준에서도 손을 댈 수 있는 환경이 갖추어진 것이다. 더 이상 장애되는 것은 아무것도 없다.