2009년 5월 27일 라이언 라인하트 달(Ryan Linenhart Dahl)은 크로스플랫폼 오픈소스 자바스크립트 런타입 환경으로 윈도우, 리눅스, macOS를 지원하는 Node.js를 발표합니다. 자바스크립트 V8 엔진을 지원하며, 웹 브라우저 바깥에서 자바스크립트 코드를 실행할 수 있게 되었습니다.
Node.js는 Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임 환경으로 주로 서버 사이드 애플리케이션 개발에 사용되고, 비동기 I/O와 이벤트 기반 아키텍처를 통한 높은 성능과 확장성을 제공합니다.
Node.js는 현재까지도 업데이트와 유지보수가 진행중이며 파이썬으로 만든 트위스티드, 펄로 만들 펄 객체 환경, 루비로 만든 이벤트 머신과 용도가 비슷하게 사용됩니다. Node.js는 버전별 출시 및 관리를 규칙적인 주기를 가지고 이루어져 있으며 v4 버전 이후로 약 6개월 주기로 새로운 버전을 출시하고 있습니다.
Node.js의 장단점
Node.js의 장점
- 비동기 I/O: 비동기 방식으로 I/O 작업을 처리해 블로킹이 발생하지 않고 높은 성능 유지
- 이벤트 기반 아키텍쳐: 이벤트 드리블 방식으로 동작해 많은 수의 동시 연결을 효율적으로 처리함
- 크로스 플랫폼: Windows, macOS, Linux 등 다양한 운영체제에서 실행 가능
- NPM(Node Package Manager): 방대한 양의 오픈 소스 라이브러리와 패키지를 제공해 개발 생산성을 높임
- 단일 언어 사용: 클라이언트와 서버 모두 Javascript를 사용해 개발 생산성을 높이고 코드 재사용에 용이
Node.js의 단점
- 단일 스레드 모델: CPU 집약적인 작업에 적합하지 않을 수 있고, 멀티 스레드 처리가 필요할 경우 추가적인 설정이 필요
- 콜백 지옥(Callback Hell): 비동기 코드의 중첩으로 인한 코드 가독성이 떨어짐, (Promise 나 async/awiat로 대체)
- 에러 처리: 단일 스레드로 인한 에러 발생 시 전체 애플리케이션 중단 가능성
- 상대적으로 젊은 생태계: 몇몇 라이브러리와 도구들에 성능 저하 의심
Node.js 설치하기
Node.js — 어디서든 JavaScript를 실행하세요
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
먼저 Node.js 공식홈페이지에서 Node.js를 설치해 줍니다. OS별 설치법은 아래와 같습니다.
- macOS: brew install node
- Linux/Ubuntu: sudo apt-get install nodejs npm
- Windows: Chocolatey를 사용한 choco install nodejs
다음 코드를 이용해 Node.js 폴더 생성과 node.js 프로젝트를 세팅해줍니다.
mkdir nodejs-temple
cd nodejs-temple
다음은 node.js를 세팅할 package.json 파일을 만들어줍니다.
npm init -y
그 다음 폴더에 index.js 파일 하나를 만들어주고 아래 코드를 입력해줍니다.
const http = require("http");
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader("Content-Type", "text/plain");
res.end("Hello, World! \n");
});
server.listen(8500, "127.0.0.1", () => {
console.log("Server running at http://127.0.0.1:8500/");
});
다음 아래 코드를 입력해서 8500 포트에 접속해봅니다.
node index.js
8500 포트에 Hello, World! 가 출력된 것을 볼 수 있습니다. 다음은 npm을 이용해서 패키지를 설치해보겠습니다.
npm install eslint --save-dev && yarn add -D eslint
코드 스타일과 문법을 검사하는 ESLint를 설치해줍니다.
npm install nodemon --save-dev && yarn add -D nodemon
파일 변경 시 다시 실행하지 않고 새로고침하면 반영해주는 Nodemon을 설치해줍니다.
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js"
},
package.json에 스크립트 부분에 nodemon을 이용해서 yarn dev && npm run dev로 실행할 수 있게 설정해줍니다.
'Back-End > Node.js' 카테고리의 다른 글
[NodeJS] 6장 인증 및 보안 (0) | 2025.02.26 |
---|---|
[NodeJS] 5장 데이터베이스 연동하기 (0) | 2025.02.25 |
[NodeJS] 4장 Express.js 프레임워크 (0) | 2025.02.23 |
[NodeJS] 3장 라우팅 구현, HTTP 서버만들기 (0) | 2025.02.22 |
[NodeJS] 2장 Node.js의 비동기 제어 (0) | 2025.02.15 |