Node.js 파일 I/O

seungjun.dev·2025년 7월 26일

Node.js

목록 보기
4/13

Node.js는 내장 fs 모듈을 통해 파일 읽기/쓰기/삭제/폴더 관리 기능을 제공

파일 읽기

비동기 방식 (readFile)

const fs = require("fs");

fs.readFile("hello.txt", "utf8", (err, data) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log(data); // 파일 내용 출력
});
  • 파일 내용을 utf8 문자셋으로 읽어오고, 콜백 함수에서 결과 처리
  • 에러가 있으면 err로 전달

동기 방식 (readFileSync)

const fs = require("fs");

const data = fs.readFileSync("hello.txt", "utf8");
console.log(data);
  • 코드가 여기서 멈추고, 파일을 다 읽으면 다음 코드 진행

파일 쓰기

비동기 방식 (writeFile)

fs.writeFile("output.txt", "파일에 저장할 내용", "utf8", (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log("저장 성공!");
});

동기 방식 (writeFileSync)

fs.writeFileSync("output.txt", "저장할 데이터", "utf8");
console.log("저장 성공!");
  • 작은 프로젝트, 빠른 구현 시 동기방식이 더 쉽고 사용 편리

기타 자주 쓰는 기능

디렉토리 만들기

fs.mkdirSync("New Folder");

파일 존재 검사

const exists = fs.existsSync("filename");

파일/폴더 삭제

fs.unlinkSync("filename");
fs.rmdirSync("foldername");

Promise/async-await 스타일

fs.promises 모듈을 사용하면 비동기 코드도 직관적으로 작성 가능하다.

const fsp = require("fs").promises;

async function saveFile() {
  await fsp.writeFile("demo.txt", "Hello!", "utf8");
  const data = await fsp.readFile("demo.txt", "utf8");
  console.log(data);
}
saveFile();
profile
Frontend Engineer | Microsoft Student Ambassadors Alumni

0개의 댓글