node.js의 개요
- node.js는 구글 크롬 브라우저에서 JavaScript 코드를 처리하기 위한 엔진인 v8 엔진을 사용하는 서버측 프로그램 개발을 위한 플랫폼입니다.
- node.js는 2009년 Ryan Dahl에 의해 만들어졌습니다.
- node.js는 빠르고 확장 가능한 네트워크 애플리케이션을 쉽게 구축할 수 있도록 개발되었습니다.
- node.js는 가볍고 효율적인 비동기식으로 이벤트를 처리하여 분산 처리가 가능합니다. 그래서 no sql 제품과 빅데이터와 같이 대용량 데이터를 처리하는 개발 분야에서도 node.js를 많이 사용합니다.
동기식과 비동기식이라는 방식이 있는데요. 여러분들이 흔히 은행 같은데를 생각시면 되겠습니다. 은행 직원이 한명이고 고객이 10명이라고 한다면 이 첫번째 손님을 처리할 때 다른 손님들은 기다려야겠죠. 즉, 작업 하나가 끝날 때까지 다른 작업은 대기하고 있다가 첫번째 처리가 끝나면 두번째 그다음 세번째 이렇게 순차적으로 가는거를 동기식이라고 부릅니다. 그런데 반면, 비동기식은 일하는 사람이 두명인겁니다. 그래서 동시에 여러 일을 처리할 수 있도록 동작하는게 비동기식입니다.
- node.js는 한번 작성된 프로그램은 다양한 플랫폼에서 동작할 수 있도록 설계되어 있으며 현재 Windows, Linux, MacOs에서 실행이 가능합니다.
node.js의 특징
- 비동기식 이벤트 처리: 개발자가 만든 프로그램에서 발생되는 여러 사건들은 비동기 방식으로 동시에 처리될 수 있도록 지원합니다.
- 빠른 속도: 구글 크롬 브라우저에 탑재되어 있는 V8 JavaScript 엔진을 이용하여 처리하므로 코드 처리가 굉장히 빠릅니다.
- 단일 쓰래드이지만 확장성이 뛰어나다: Node.js는 단일 쓰래딩 방식을 사용함으로써 Apache Tomcat과 같은 기존의 서버들보다 확장성이 용이하고 훨씬 많은 수의 클라이언트 요청을 처리할 수 있습니다.
- 쓰레드라는 것은 작업하는 단위라고 보시면 될 것 같습니다. 작업하는 단위가 많을 수록 동시 처리가 가능하겠죠. 쓰레드 방식은 여러가지 작업이 있으면요.
작업이 3개라고 가정했을 경우.
3개의 작업들을 한번씩 왔다 갔다 처리하기 때문에 전체적으로 봤을 때는 첫번 째, 작업에 걸리는 시간 더하기 두번째, 작업에 걸리는 시간 더하기 세번 째, 작업에 걸리는 시간으로 동작하게 됩니다. 멀티 쓰레딩 방식은 이렇게 되는데요. 단일 쓰레딩 방식 같은 경우에는 하나의 프로세스 즉 실제 작업을하는 하나의 프로세서가 하나의 작업을 담당하고요. 여러 작업을 처리할 경우에는 그 수에 맞는 프로세스가 동작을 하기 때문에 진짜로 동시에 여러 작업을 처리할 수 있도록 동작을하게됩니다.
- 버퍼링이 없다: node.js 응용 프로그램은 데이터 입출력시 버퍼링 방식을 사용하지 않습니다.
- 버퍼링이라는 것은 데이터를 보내고 받을 때 소프트웨어와 물리적인 장치간에 속도차이가 있기 때문에 메모리상에 쌓아 놓다가 그 다음에 보내는 방식인데요. 데이터 양이 굉장히 작더라도 버퍼링을 이용하면 어디하나 거쳐가기 때문에 속도가 느릴 수 밖에 없습니다. 근데 node.js 같은 경우에는 데이터를 입출력할 때 바로 데이터를 보내고 바로 데이터를 받기 때문에 속도가 굉장히 빠릅니다.
- node.js는 현재 ebay, GE, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo, Yammer, facebook, twitter 등에서 사용되어지고 있습니다.
'IT-백엔드' 카테고리의 다른 글
Node.js - Path (0) | 2024.01.24 |
---|---|
Node.js - FS(File System) (0) | 2024.01.24 |
node.js basic module1 - 기본 작성법 (0) | 2024.01.24 |
백엔드node.js basic module2-Assert 모듈1 (0) | 2024.01.24 |
node.js basic module3-Buffer 모듈1 (0) | 2024.01.24 |