BioPlayground

🧬
목록으로

Node.js 파일 시스템 (fs 모듈)

Node.js의 fs 모듈로 파일을 읽고, 쓰고, 삭제하는 방법을 이해합니다.

입문
|
5
|
검증 완료 (2026-07)
진행률0/9 (0%)

Node.js 파일 시스템 (fs 모듈)

이 토픽을 마치면

Node.js에서 파일을 읽고, 쓰고, 삭제하는 코드를 작성할 수 있습니다.


브라우저에서는 못하는 일

브라우저의 JavaScript는 보안상 내 컴퓨터의 파일에 접근할 수 없습니다. 하지만 Node.js는 서버 환경이기 때문에 파일을 자유롭게 읽고 쓸 수 있습니다. 이 기능을 제공하는 것이 fs(File System) 모듈입니다.

javascript
// fs 모듈 불러오기
const fs = require("fs");

// 파일 읽기 (동기 방식 — 읽을 때까지 멈춤)
const data = fs.readFileSync("memo.txt", "utf8");
console.log(data);

require("fs")는 Node.js에 내장된 모듈을 불러오는 방식입니다. 별도 설치가 필요 없습니다. "utf8"을 빼먹으면 Buffer(바이너리 데이터)가 반환되어 글자 대신 숫자가 보입니다.

파일 쓰기와 추가

javascript
const fs = require("fs");

// 파일 쓰기 — 파일이 없으면 생성, 있으면 덮어씀
fs.writeFileSync("output.txt", "첫 번째 줄\n");

// 파일에 내용 추가 (덮어쓰지 않음)
fs.appendFileSync("output.txt", "두 번째 줄\n");

// 확인
const result = fs.readFileSync("output.txt", "utf8");
console.log(result);
// 첫 번째 줄
// 두 번째 줄

writeFileSync는 기존 내용을 완전히 덮어씁니다. 기존 내용을 유지하면서 추가하려면 appendFileSync를 쓰세요.

파일 존재 확인과 삭제

javascript
const fs = require("fs");

// 파일 존재 확인
if (fs.existsSync("output.txt")) {
  console.log("파일이 존재합니다");

  // 파일 삭제
  fs.unlinkSync("output.txt");
  console.log("삭제 완료");
}

// 디렉토리(폴더) 만들기
if (!fs.existsSync("logs")) {
  fs.mkdirSync("logs");
}

// 디렉토리 내 파일 목록
const files = fs.readdirSync(".");
console.log(files); // ["index.js", "logs", ...]

여기서 쓴 메서드는 모두 Sync(동기)가 붙어 있습니다. 파일 작업이 끝날 때까지 다음 코드가 실행되지 않습니다. 실제 서버에서는 비동기 버전(readFile, writeFile — Sync 없음)을 쓰는데, 이것은 동기 vs 비동기에서 다룹니다.