Node.js 기초 (Node.js Basics)
Node.js는 자바스크립트를 브라우저 밖에서 실행할 수 있게 해주는 런타임이다. 비동기 I/O와 이벤트 기반 아키텍처로 서버 개발에 강력한 도구로 자리잡았다. 이번에는 Node.js의 기본부터 심화까지 코드와 함께 자세히 풀어보려고 한다.
Node.js를 잘 다루면 서버와 백엔드 로직을 효율적으로 구현할 수 있다. 하나씩 단계별로 알아보자.
Node.js 시작하기
Node.js를 사용하려면 먼저 설치해야 한다. 설치 후 간단한 코드를 실행해보자:
// hello.js
console.log("안녕, Node.js!");
# 터미널에서 실행
node hello.js
// "안녕, Node.js!"
Node.js가 설치되어 있다면 node
명령어로 파일을 바로 실행할 수 있다.
1. 모듈 시스템
Node.js는 모듈로 코드를 분리해 관리한다. 기본 모듈을 사용해보자:
// math.js
function add(a, b) {
return a + b;
}
module.exports = { add };
// main.js
const math = require("./math");
console.log(math.add(2, 3));
// 5
module.exports
로 함수를 내보내고, require
로 불러왔다.
2. 파일 읽고 쓰기
fs
모듈로 파일 시스템을 다룰 수 있다:
const fs = require("fs");
// 파일 쓰기
fs.writeFileSync("test.txt", "Hello, Node.js!");
// 파일 읽기
const data = fs.readFileSync("test.txt", "utf8");
console.log(data);
// "Hello, Node.js!"
동기 방식으로 파일을 읽고 썼다. 비동기 방식도 가능하다.
3. 비동기 처리
Node.js의 강점은 비동기 처리다. fs
모듈의 비동기 메서드를 사용해보자:
const fs = require("fs");
fs.readFile("test.txt", "utf8", (err, data) => {
if (err) {
console.log("에러: " + err);
return;
}
console.log(data);
});
// "Hello, Node.js!"
콜백으로 비동기 작업 결과를 처리했다.
4. 간단한 서버 만들기
http
모듈로 웹 서버를 구축할 수 있다:
const http = require("http");
const server = http.createServer((req, res) => {
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("안녕, Node.js 서버!");
});
server.listen(3000, () => {
console.log("서버가 3000번 포트에서 실행 중");
});
3000번 포트에서 실행하면 브라우저에서 응답을 확인할 수 있다.
5. Express로 서버 개선
express
를 사용하면 서버 개발이 더 간편해진다:
# 설치
npm install express
// app.js
const express = require("express");
const app = express();
app.get("/", (req, res) => {
res.send("안녕, Express!");
});
app.listen(3000, () => {
console.log("Express 서버가 3000번 포트에서 실행 중");
});
Express로 간단한 GET 요청을 처리하는 서버를 만들었다.
6. 미들웨어 사용
Express에서 미들웨어로 요청을 가공할 수 있다:
const express = require("express");
const app = express();
app.use((req, res, next) => {
console.log("요청 시간: " + new Date());
next();
});
app.get("/", (req, res) => {
res.send("미들웨어 테스트");
});
app.listen(3000);
미들웨어로 요청 시 시간을 로그에 남기고 다음 단계로 넘어갔다.
7. REST API 구축
간단한 REST API를 만들어 보자:
const express = require("express");
const app = express();
app.use(express.json());
let items = ["사과", "바나나"];
app.get("/items", (req, res) => {
res.json(items);
});
app.post("/items", (req, res) => {
items.push(req.body.name);
res.json(items);
});
app.listen(3000);
GET으로 리스트를 조회하고, POST로 새 항목을 추가했다.
8. 성능과 활용성
Node.js가 코드에 어떤 영향을 주는지 보자:
- 성능: 비동기 처리로 I/O 작업이 많은 환경에서 뛰어나다.
- 활용성: 자바스크립트로 풀스택 개발이 가능해진다.
비동기와 모듈 시스템이 Node.js의 핵심이다.
마무리
Node.js는 모듈, 비동기, 서버 구축을 통해 백엔드 개발을 단순화한다. 기본 파일 작업부터 REST API까지 다채롭게 활용할 수 있다.
'코딩 공부 > 자바스크립트' 카테고리의 다른 글
76. Angular 기초 (Angular Basics) (0) | 2025.03.25 |
---|---|
75. Vue.js 기초 (Vue.js Basics) (0) | 2025.03.25 |
73. React 기초 (React Basics) (0) | 2025.03.24 |
72. 자바스크립트 jQuery 기초 (jQuery Basics) (2) | 2025.03.24 |
71. 자바스크립트 Canvas API (2) | 2025.03.24 |