Node.js는 자바스크립트를 브라우저 밖에서도 실행할 수 있게 해주는 런타임 환경이다.
즉, 라이브러리나 프레임워크가 아니라 자바스크립트 실행 환경이다.
과거(2008년 이전)에는 자바스크립트가 오직 브라우저 안에서만 실행되었다.
그 이유는 브라우저 안에 자바스크립트를 실행하는 엔진이 포함되어 있었기 때문이다.
그래서 브라우저가 없으면 자바스크립트 파일은 단순한 텍스트 파일에 불과했다.
2009년, 라이언 달(Ryan Dahl)이 구글 크롬의 엔진을 가져와
브라우저 없이도 자바스크립트를 실행할 수 있게 만들었고, Node가 만들어지게 되었다.
실제 개발 환경에서는 서버를 사용하는 경우가 많다.
Node.js를 배우면 서버가 어떻게 동작하는지 이해할 수 있고,
최근 많이 사용되는 서버리스 방식도 더 쉽게 이해할 수 있다.
Node.js에는 REPL이라는 기능이 있다.
REPL은 다음의 과정을 반복한다.


npm은 Node Package Manager의 약자로, Node 생태계의 앱스토어라고 말 할 수 있다.
전세계 개발자들이 만든 JS 코드 묶음(=패키지)을 누구나 다운 받아 쓸 수 있게 하는 시스템이다
예시:
package.json은 프로젝트의 설정 정보를 담고 있는 파일이다.
{
"name": "nodejs-day1",
"version": "1.0.0",
"type": "module",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
}
}
주요 항목:
모듈은 기능 단위로 나누어진 자바스크립트 파일이다.
다른 파일에서 가져와 사용할 수 있어 코드 재사용이 가능하다.
ㄴ import
과거에는 CommonJS 방식이 사용되었다.
const math = require('./math');
이후 ES Module이 등장하면서 다음과 같이 사용할 수 있게 되었다.
import math from './math.js';
import dayjs from "dayjs";
const now = dayjs();
console.log(now);
console.log(now.format("YYYY-MM-DD"));
console.log(now.format("YYYY년 MM월 DD일"));
console.log(now.format("YYYY-MM-DD HH:mm:ss"));
const nextWeek = now.add(7, "day");
console.log("일주일 후:", nextWeek.format("YYYY년 MM월 DD일"));
dayjs 라이브러리를 사용하여 현재 날짜와 시간을 다루는 코드이다.
dayjs() : 현재 날짜와 시간을 가져온다.
format() : 날짜를 원하는 형식의 문자열로 변환한다.
"YYYY-MM-DD" → 2026-04-25 형태"YYYY년 MM월 DD일" → 한국어 날짜 형식"YYYY-MM-DD HH:mm:ss" → 날짜 + 시간add(7, "day") : 현재 날짜에서 7일을 더해 일주일 후 날짜를 계산한다.
export default function (name) {
return `안녕하세요, ${name}!`;
}
사용자의 이름을 받아 인사말을 반환하는 함수이다.
export default : 이 파일의 기본 내보내기 값name : 매개변수로 전달받은 이름`)을 사용하여 문자열을 생성다른 파일에서 import할 때 이름을 자유롭게 지정할 수 있다.
export function add(a, b) {
return a + b;
}
export function multiply(a, b) {
return a * b;
}
export const PI = 3.14159;
기본적인 수학 연산을 수행하는 함수들을 모아둔 모듈이다.
add(a, b) : 두 수를 더하는 함수multiply(a, b) : 두 수를 곱하는 함수PI : 원주율 상수각 요소를 export하여 다른 파일에서 사용할 수 있도록 한다.
import { add, multiply, PI } from "./math.js";
import greet from "./greeting.js";
console.log(add(3, 5));
console.log(multiply(4, 7));
console.log(`원주율은 ${PI}입니다.`);
console.log(greet("서영"));
여러 모듈을 불러와 실행하는 메인 파일이다.
import {} : 이름을 지정하여 가져오는 방식 (named export)import greet : default export를 가져오는 방식console.log() : 실행 결과를 출력각 모듈에서 만든 기능을 실제로 사용하는 역할을 한다.

{
"name": "nodejs-day1",
"version": "1.0.0",
"type": "module",
"main": "index.js",
"scripts": {
"start": "node main.js",
"dev": "node --watch main.js"
},
"dependencies": {
"dayjs": "^1.11.20"
}
}
Node.js 프로젝트의 설정 정보를 담고 있는 파일이다.
type: "module"
→ ES Module(import/export) 문법 사용 가능
scripts
npm run start : main.js 실행npm run dev : 파일 변경 시 자동 재실행dependencies
→ 프로젝트에서 사용하는 외부 라이브러리 목록 (dayjs)
설치된 패키지들의 정확한 버전 정보를 기록하는 파일이다.
npm install 시 자동 생성Node.js가 프레임워크가 아닌 런타임임을 자기 말로 설명할 수 있다
Node.js는 기능을 제공하는 도구(프레임워크)가 아니라
자바스크립트를 실행해주는 환경이다.
브라우저 없이도 JS 파일을 실행할 수 있게 해주며,
코드를 “돌리는 역할”을 한다는 점에서
라이브러리나 프레임워크와 다르다.
서버리스 방식과 전통 서버 방식의 차이를 구분할 수 있다
Node.js는 기능을 제공하는 도구(프레임워크)가 아니라
자바스크립트를 실행해주는 환경이다.
브라우저 없이도 JS 파일을 실행할 수 있게 해주며,
코드를 “돌리는 역할”을 한다는 점에서
라이브러리나 프레임워크와 다르다.
Node REPL 에서 자바 스크립트를 직접 실행할 수 있다.
Node REPL은 코드를 입력하면
즉시 실행하고 결과를 바로 보여주는 환경이다.
브라우저 콘솔처럼 동작하며,
간단한 테스트나 실습을 빠르게 할 때 유용하다.
오늘은 Node의 탄생부터 기초를 조금 배워봤습니다!
더 열심히 공부해서 서버에 대해 높은 이해도를 가질 수 있도록 하겠습니다
그럼 우리 모두 즐코!