728x90
반응형
SMALL
강의 목표: Node.js의 파일 시스템 모듈인 fs를 사용하여 파일을 읽고, 쓰고, 수정하고, 삭제하는 방법을 학습하고, 비동기와 동기 방식의 차이점을 이해한다.
1. 파일 읽기, 쓰기, 수정, 삭제
파일 시스템 모듈(fs) 소개
· Node.js의 fs 모듈은 파일 시스템과 상호작용하기 위한 다양한 메서드를 제공한다.
· 이 메서드들은 대부분 비동기와 동기 버전으로 제공된다.
1. 파일 읽기
비동기 방식
const fs = require('fs');
// 비동기 방식으로 파일 읽기
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
console.log(data);
});
728x90
동기 방식
const fs = require('fs');
// 동기 방식으로 파일 읽기
try {
const data = fs.readFileSync('example.txt', 'utf8');
console.log(data);
} catch (err) {
console.error(err);
}
2. 파일 쓰기
비동기 방식
const fs = require('fs');
// 비동기 방식으로 파일 쓰기
fs.writeFile('example.txt', 'Hello, Node.js!', (err) => {
if (err) {
console.error(err);
return;
}
console.log('File written successfully');
});
동기 방식
const fs = require('fs');
// 동기 방식으로 파일 쓰기
try {
fs.writeFileSync('example.txt', 'Hello, Node.js!');
console.log('File written successfully');
} catch (err) {
console.error(err);
}
3. 파일 수정
비동기 방식
const fs = require('fs');
// 비동기 방식으로 파일 수정 (기존 내용에 덧붙임)
fs.appendFile('example.txt', '\nWelcome to the world of Node.js!', (err) => {
if (err) {
console.error(err);
return;
}
console.log('File updated successfully');
});
반응형
동기 방식
const fs = require('fs');
// 동기 방식으로 파일 수정 (기존 내용에 덧붙임)
try {
fs.appendFileSync('example.txt', '\nWelcome to the world of Node.js!');
console.log('File updated successfully');
} catch (err) {
console.error(err);
}
4. 파일 삭제
비동기 방식
const fs = require('fs');
// 비동기 방식으로 파일 삭제
fs.unlink('example.txt', (err) => {
if (err) {
console.error(err);
return;
}
console.log('File deleted successfully');
});
동기 방식
const fs = require('fs');
// 동기 방식으로 파일 삭제
try {
fs.unlinkSync('example.txt');
console.log('File deleted successfully');
} catch (err) {
console.error(err);
}
2. 비동기와 동기 방식의 차이점
비동기 방식
· 장점: 비동기 방식은 작업이 완료될 때까지 기다리지 않고, 다른 작업을 동시에 진행할 수 있다. 이는 서버의 응답성을 높이고, 대기 시간을 줄일 수 있다.
· 단점: 콜백 함수나 프로미스를 사용해야 하므로 코드가 복잡해질 수 있다.
동기 방식
· 장점: 동기 방식은 코드가 순차적으로 실행되므로 이해하기 쉽고, 디버깅이 용이하다.
· 단점: 하나의 작업이 완료될 때까지 다음 작업이 대기해야 하므로, 특히 I/O 작업에서 성능 저하가 발생할 수 있다.
비교 예제
· 비동기 방식으로 여러 파일을 읽을 때, 모든 파일이 동시에 읽히기 시작하며 각 파일이 완료될 때마다 콜백 함수가 실행된다.
· 동기 방식으로 여러 파일을 읽을 때, 첫 번째 파일이 완전히 읽힐 때까지 다음 파일은 읽기 시작하지 않는다.
예제: 비동기 방식으로 여러 파일 읽기
const fs = require('fs');
fs.readFile('file1.txt', 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
console.log('File1:', data);
});
fs.readFile('file2.txt', 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
console.log('File2:', data);
});
예제: 동기 방식으로 여러 파일 읽기
const fs = require('fs');
try {
const data1 = fs.readFileSync('file1.txt', 'utf8');
console.log('File1:', data1);
const data2 = fs.readFileSync('file2.txt', 'utf8');
console.log('File2:', data2);
} catch (err) {
console.error(err);
}
- 이전 수업 목록
728x90
반응형
LIST
'프로그래밍 > Node.js' 카테고리의 다른 글
[Node.js 강의 시리즈] 9강 - 이벤트 모듈 (events) (0) | 2024.07.04 |
---|---|
[Node.js 강의 시리즈] 7강 - HTTP 모듈 (0) | 2024.07.02 |
[Node.js 강의 시리즈] 5강 - Node.js의 비동기 처리 (0) | 2024.06.28 |
[Node.js 강의 시리즈] 4강 - Node.js 모듈 시스템 (0) | 2024.06.27 |
[Node.js 강의 시리즈] 3강 - 첫 번째 Node.js 프로그램 (0) | 2024.06.26 |