본문으로 바로가기
COMMUNITY모든 이야기

Node.js에서 fs.promises.writeFile 사용 시 비동기 루프 내 파일 덮어쓰기 문제

빗방울 2026.10.31 12:20 2분 읽기 조회 17 · 추천 2

토이 프로젝트에서 여러 개의 설정 파일을 생성하는 기능을 구현하고 있습니다. 반복문을 통해 파일 내용을 작성하려는데, 예상과 달리 마지막 데이터만 파일에 남는 현상이 발생하고 있습니다.

코드:

const fs = require('fs').promises;

async function saveFiles() {
  const data = ['Content 1', 'Content 2', 'Content 3'];
  
  data.forEach(async (text) => {
    await fs.writeFile('output.txt', text);
  });
}

saveFiles();

오류: output.txt 파일의 내용이 'Content 1', 'Content 2' 순차적으로 쌓이지 않고 최종적으로 'Content 3'만 저장됨.

시도: async/await를 사용했음에도 forEach 내부의 비동기 처리가 기다려지지 않는 점을 확인하였고, 단순 호출 순서를 변경해 보았으나 결과는 동일했습니다.

질문: forEach 대신 어떤 반복문을 사용해야 비동기 작업이 순차적으로 완료되어 파일 쓰기 작업이 의도대로 수행될까요?

모든 이야기1496

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1496개의 이야기
댓글