Node.js 기본 개념과 특징
Node.js란?
Node.js는 Chrome V8 JavaScript 엔진으로 구축된 JavaScript 런타임입니다. 이는 브라우저 밖에서도 JavaScript를 실행할 수 있게 해주는 환경입니다.
주요 개념과 특징
1. 모듈 시스템
Node.js의 모듈 시스템은 필요한 기능을 "블록"처럼 가져다 사용하는 구조입니다.
- 요리시 레시피를 가져와 사용하는 것과 같아요.
- 필요한 재료를 가져와 사용하고, 요리를 시작합니다.
// fs 모듈을 가져와 사용합니다
// 재료를 가져옵니다 (require)
const fs = require('fs');
// 요리를 시작합니다 (파일 생성)
fs.writeFileSync('example.txt', 'Hello, Node.js!');
console.log('파일이 생성되었습니다!');
- 비동기와 콜백
Node.js는 시간이 오래 걸리는 작업을 "대기"하지 않고, 작업이 끝나면 알려주는 방식입니다.
- 음식점 홀직원은 한 명이지만, 주방에 요리사가 따로 있어요.
- 직원은 주문을 받고 주방에 요리를 맡기고 다음 손님을 받을 수 있습니다.
// 음식점에 직원이 한명입니다 (단일 스레드)
console.log("직원: 1번 손님 주문 받기 시작");
// 주문을 주방(다른 작업자)에 넘깁니다 (비동기 작업)
setTimeout(() => {
console.log('요리사: 1번 손님 요리 시작');
}, 2000); // 2초 뒤에 완료
// 직원은 기다리지 않고 다음 손님 받습니다
console.log("직원: 2번 손님 주문 받기 시작");
3. 이벤트 기반 프로그래밍
Node.js는 "어떤 일이 발생하면 처리"하는 방식을 채택하고 있습니다.
- 음식점에서 손님이 오면 직원이 처리하는 방식과 같아요.
- 손님이 오면 직원이 처리하고, 다음 손님이 오면 다시 처리합니다.
const button = document.querySelector('button');
// 클릭 이벤트를 처리하는 코드
button.addEventListener('click', () => {
console.log('버튼이 클릭되었습니다!');
});
4. npm으로 패키지 사용하기
npm은 Node.js의 패키지 관리자로, 다른 개발자가 만든 유용한 도구를 가져다 쓸 수 있게 해줍니다.
- 요리할 때, "소스 만들기" 대신 마트에서 이미 만들어진 소스를 사는 것과 같아요.
- npm 패키지는 필요한 소스를 쉽게 가져다 쓸 수 있게 해줍니다.
npm install swiper
npm install axios
5. 파일 시스템 작업
Node.js는 fs 모듈을 사용해 파일을 읽고 쓰는 작업을 쉽게 할 수 있습니다.
- 컴퓨터를 사용하는 것처럼, 파일을 만들고, 내용을 읽거나 쓸 수 있어요.
- 예를 들어, "오늘의 일기장"을 작성하는 작업을 할 수 있습니다.
// fs 모듈을 가져와 사용합니다
const fs = require('fs');
// 파일 생성
// writeFile(파일명, 내용, 콜백함수)
fs.writeFile('diary.txt', '오늘 Node.js를 배웠다!', (err) => {
if (err) throw err;
console.log('일기가 저장되었습니다!');
// 파일 읽기
// readFile(파일명, 인코딩, 콜백함수)
fs.readFile('diary.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log('읽은 내용:', data);
});
});
6. 웹 서버 만들기
Node.js는 http 모듈을 사용해 간단한 웹 서버를 만들 수 있습니다.
- 가게를 열고 손님이 오면 주문을 받고 음식을 제공하는 것과 같아요.
// http 모듈을 가져와 사용합니다
const http = require('http');
// 웹 서버 생성
// createServer(요청, 응답)
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('어서 오세요! Node.js 식당입니다!');
});
// 서버 실행
// listen(포트번호, 콜백함수)
server.listen(3000, () => {
console.log('서버가 http://localhost:3000 에서 실행 중입니다.');
});
'Front > Node.js' 카테고리의 다른 글
node.js로 API 통신 구현하기 (0) | 2024.12.09 |
---|---|
Express 모듈을 사용하여 서버 만들기 (1) | 2024.12.09 |
node.js로 서버 만들기 (0) | 2024.12.09 |
대한민국 공공데이터 포털 사용 가이드 (0) | 2024.11.20 |
node.js, package.json, npm swiper, npm parcel 설치 및 설정 (0) | 2023.09.27 |