1. Node.js: JavaScript 런타임 환경
1.1. Node.js란 무엇인가?
Node.js는 Chrome V8 JavaScript 엔진을 기반으로 구축된 JavaScript 런타임 환경입니다. 이벤트 기반(Event-driven), Non-blocking I/O 모델을 채택하여 가볍고 효율적이며, 데이터 집약적인 실시간 애플리케이션 개발에 이상적인 환경을 제공합니다. Node.js를 활용하면 JavaScript를 서버 측 애플리케이션 개발에도 사용할 수 있어, 프론트엔드와 백엔드 개발 간의 언어 장벽을 해소할 수 있습니다. 예를 들어, 웹 브라우저에서 사용하던 JavaScript 문법을 서버 개발에도 동일하게 적용할 수 있습니다.
1.2. Node.js 활용 예시
- 간단한 웹 서버 구축: Node.js를 사용하면 단 몇 줄의 코드로 간단한 웹 서버를 만들 수 있습니다.
// http 모듈을 불러옵니다.
const http = require('http');
// 서버를 생성합니다.
const server = http.createServer((req, res) => {
// 응답 헤더를 설정합니다.
res.writeHead(200, { 'Content-Type': 'text/plain' });
// 응답 본문을 작성합니다.
res.end('Hello, World from Node.js Web Server!\n');
});
// 3000 포트에서 서버를 실행합니다.
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
위 코드를 server.js
파일로 저장하고 node server.js
명령을 실행하면, 웹 브라우저에서 http://localhost:3000/
에 접속하여 "Hello, World from Node.js Web Server!" 메시지를 확인할 수 있습니다.
- 파일 시스템 접근: Node.js는 파일 시스템에 접근하여 파일을 읽고 쓰는 기능을 제공합니다.
// fs 모듈을 불러옵니다.
const fs = require('fs');
// test.txt 파일에 텍스트를 작성합니다.
fs.writeFile('test.txt', 'Hello from the file system!', (err) => {
if (err) throw err;
console.log('The file has been saved!');
// test.txt 파일의 내용을 읽어옵니다.
fs.readFile('test.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data); // "Hello from the file system!" 출력
});
});
2. Node.js 설치 가이드
Node.js를 사용하기 위해 가장 먼저 해야 할 일은 시스템에 Node.js를 설치하는 것입니다. 설치 과정은 비교적 간단하지만, 올바른 버전을 선택하고 설치 과정을 정확하게 수행하는 것이 중요합니다.
2.1. Node.js 다운로드
- 공식 웹사이트 방문: Node.js 공식 웹사이트에 접속합니다.
- 버전 선택:
- LTS(Long Term Support) 버전과 Current(최신) 버전이 제공됩니다.
- 일반적으로 LTS 버전을 선택하는 것을 권장합니다. LTS 버전은 장기적으로 안정적인 지원과 보안 업데이트를 제공하기 때문에 프로덕션 환경에 적합합니다. Current 버전은 최신 기능 및 개선 사항을 포함하지만, LTS 버전에 비해 안정성이 다소 떨어질 수 있습니다.
- 운영 체제 선택:
- 현재 사용 중인 운영 체제(Windows, macOS, Linux)에 맞는 설치 파일을 다운로드합니다.
2.2. Node.js 설치: Windows/macOS
- 설치 파일 실행: 다운로드 받은
.msi
(Windows) 또는.pkg
(macOS) 파일을 더블 클릭하여 실행합니다. - 설치 마법사 안내 따르기: 화면에 표시되는 지시에 따라 'Next' 또는 'Install' 버튼을 클릭합니다. 대부분의 경우 기본 설정을 사용하여 설치를 진행하면 됩니다. 설치 과정에서 관리자 권한이 필요할 수 있습니다.
2.3. Node.js 설치: Linux
Linux 환경에서는 터미널을 통해 Node.js를 설치하는 것이 일반적입니다. 다음은 Ubuntu/Debian 계열 Linux 배포판에서 Node.js LTS 버전을 설치하는 예제입니다.
# 패키지 목록 업데이트
sudo apt update
# curl이 없는 경우 curl 설치
sudo apt install curl
# NodeSource 저장소 추가 (LTS 버전, 예: Node.js 14.x)
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
# Node.js 설치
sudo apt install nodejs
참고: setup_14.x
의 14.x
는 원하는 Node.js 버전으로 수정할 수 있습니다. 예를 들어, Node.js 16.x 버전을 설치하려면 setup_16.x
를 사용합니다.
CentOS/RHEL 계열 Linux 배포판에 Node.js 설치 (추가 예제)
# 패키지 목록 업데이트
sudo yum update
# NodeSource 저장소 추가 (LTS 버전, 예: Node.js 14.x)
curl -fsSL https://rpm.nodesource.com/setup_14.x | sudo bash -
# Node.js 설치
sudo yum install nodejs
2.4. 설치 확인
설치가 완료된 후, 터미널 또는 명령 프롬프트에서 다음 명령어를 입력하여 Node.js와 NPM이 정상적으로 설치되었는지 확인합니다.
node -v # Node.js 버전 확인 (예: v14.17.0)
npm -v # NPM 버전 확인 (예: 6.14.13)
npx 사용 확인 (추가 예제)
npx
는 npm 5.2.0 버전부터 함께 제공되는 도구로, 로컬에 설치되지 않은 패키지를 일회성으로 실행하거나 최신 버전의 패키지를 사용할 때 유용합니다.
npx -v # npx 버전 확인
3. NPM: Node.js 패키지 관리자
NPM(Node Package Manager)은 Node.js와 함께 설치되는 패키지 관리 도구입니다. NPM을 사용하면 개발에 필요한 라이브러리나 모듈을 손쉽게 다운로드하고 관리할 수 있습니다. 전 세계 개발자들이 제작한 방대한 오픈 소스 패키지를 활용하여 애플리케이션을 효율적으로 개발할 수 있습니다.
3.1. NPM 주요 기능 및 명령어
패키지 설치 및 관리:
npm install
명령어를 사용하여 필요한 패키지를 간편하게 설치하고 업데이트할 수 있습니다.npm install <package_name> # 특정 패키지 설치 npm install -g <package_name> # 특정 패키지를 전역으로 설치 npm update <package_name> # 특정 패키지 업데이트 npm uninstall <package_name> # 특정 패키지 제거 npm list # 현재 프로젝트에 설치된 패키지 목록 확인 npm list -g --depth=0 # 전역 설치된 패키지 목록 확인 (depth=0은 최상위 패키지만 표시) npm outdated # 업데이트가 필요한 패키지 목록 확인
예를 들어, Express라는 인기 있는 웹 프레임워크를 설치하려면 다음과 같이 입력합니다.
npm install express
-g
옵션:
-g
옵션을 사용하면 패키지를 전역으로 설치할 수 있습니다. 전역으로 설치된 패키지는 모든 프로젝트에서 사용할 수 있습니다.의존성 관리:
프로젝트에서 사용하는 모든 패키지는
package.json
파일에 기록됩니다. 이 파일은 프로젝트의 루트 디렉토리에 위치하며, 프로젝트의 메타데이터와 의존성 정보를 포함합니다.package.json
파일을 통해 프로젝트에서 사용하는 패키지와 해당 패키지의 버전을 명확하게 관리할 수 있습니다.package.json
파일 생성:npm init # package.json 파일 생성 (여러 질문에 답변) npm init -y # package.json 파일 생성 (기본 설정으로 빠르게 생성)
package.json
파일의dependencies
섹션에는 프로젝트에 필요한 패키지와 버전 정보가 기록됩니다. 예를 들어, Express 패키지를 설치하면package.json
파일에 다음과 같이 기록됩니다."dependencies": { "express": "^4.17.1" }
^
기호의 의미:
^
기호는 해당 패키지의 major 버전은 고정하고, minor 버전과 patch 버전은 업데이트를 허용한다는 의미입니다. 예를 들어,"express": "^4.17.1"
은 Express 4.x.x 버전 중 최신 버전을 사용하도록 지정합니다.package-lock.json
파일 (추가 설명):
npm install
명령어를 실행하면package-lock.json
파일이 생성됩니다. 이 파일은 설치된 패키지의 정확한 버전과 의존성 트리를 기록하여, 다른 환경에서도 동일한 빌드를 재현할 수 있도록 보장합니다.스크립트 실행:
NPM을 사용하면
package.json
파일에 사용자 정의 스크립트를 정의하고 실행할 수 있습니다. 이를 통해 개발, 테스트, 배포 등 다양한 작업을 자동화할 수 있습니다.package.json
파일에 스크립트 추가 예시:"scripts": { "start": "node app.js", "test": "mocha", "dev": "nodemon app.js", "build": "webpack", "preinstall": "echo 'Installing dependencies...'", // npm install 실행 전에 실행 "postinstall": "echo 'Dependencies installed successfully!'" // npm install 실행 후에 실행 }
스크립트 실행:
npm run <script_name> # 정의된 스크립트 실행 npm start # "start" 스크립트 실행 (위 예시에서는 node app.js 실행) npm test # "test" 스크립트 실행 (위 예시에서는 mocha 실행) npm run dev # "dev" 스크립트 실행 (위 예시에서는 nodemon app.js 실행) npm run build # "build" 스크립트 실행 (위 예시에서는 webpack 실행)
3.2. NPM 활용 실습
Node.js 및 NPM 버전 확인:
node --version npm --version
새로운 프로젝트 생성 및 초기화:
mkdir my-node-project # 새 프로젝트 디렉토리 생성 cd my-node-project # 생성된 디렉토리로 이동 npm init -y # package.json 파일 생성 (기본 설정)
Express 프레임워크 설치:
npm install express
package.json
파일 확인:package.json
파일을 열어dependencies
섹션에express
패키지가 추가되었는지 확인합니다."dependencies": { "express": "^4.17.1" }
lodash
패키지 설치 및 사용 (추가 예제):lodash
는 JavaScript 유틸리티 라이브러리로, 배열, 객체 등을 다루는 데 유용한 함수들을 제공합니다.npm install lodash # lodash 패키지 설치
app.js
파일을 생성하고 다음 코드를 작성합니다.// lodash 모듈을 불러옵니다. const _ = require('lodash'); // 배열에서 중복된 값을 제거합니다. const numbers = [1, 2, 2, 3, 4, 4, 5]; const uniqueNumbers = _.uniq(numbers); console.log(uniqueNumbers); // [1, 2, 3, 4, 5] 출력
node app.js # app.js 파일 실행
4. Node.js 첫걸음: "Hello, World!" 예제
Node.js 설치와 NPM의 기본 개념을 이해했다면, 간단한 "Hello, World!" 예제를 통해 Node.js 애플리케이션을 실행해보겠습니다.
app.js
파일 생성:프로젝트 디렉토리에
app.js
파일을 생성하고 다음 코드를 작성합니다.console.log('Hello, World from Node.js!');
애플리케이션 실행:
터미널에서 다음 명령어를 실행합니다.
node app.js
터미널에 "Hello, World from Node.js!"가 출력되면 Node.js 애플리케이션을 성공적으로 실행한 것입니다.
명령줄 인수(arguments) 처리 (추가 예제)
Node.js 애플리케이션은 명령줄 인수를 process.argv
배열을 통해 접근할 수 있습니다.
// app.js
console.log(process.argv);
node app.js arg1 arg2 arg3
실행 결과:
[
'/usr/local/bin/node', // Node.js 실행 파일 경로
'/path/to/your/project/app.js', // 실행된 스크립트 파일 경로
'arg1',
'arg2',
'arg3'
]
process.argv
배열의 첫 번째 요소는 Node.js 실행 파일의 경로이고, 두 번째 요소는 실행된 스크립트 파일의 경로입니다. 그 이후의 요소들은 명령줄에서 전달된 인수들입니다.
'프로그래밍 > Node.js' 카테고리의 다른 글
Node.js 웹 개발: Express.js와 Koa.js 프레임워크 비교 (0) | 2025.02.18 |
---|---|
Node.js로 웹 애플리케이션 개발하기: 기본부터 실전까지 (0) | 2025.02.18 |
Node.js 핵심 정복: 주요 모듈 완벽 가이드 (0) | 2025.02.18 |
Node.js 정복을 위한 세 가지 열쇠: 이벤트 기반 프로그래밍, 비동기 I/O, 모듈 시스템 (0) | 2025.02.18 |
Node.js: 서버사이드 JavaScript의 혁명 (0) | 2025.02.17 |