nodejs
Node.js에서 파일이나 디렉토리의 정보를 확인할 때 자주 쓰는 함수 중 하나가 바로
처음에는
const fs = require('fs');
const stats = fs.lstatSync('./uploads');
console.log('isFile:', stats.isFile());
console.log('isDirectory:', stats.isDirectory());
console.log('isSymbolicLink:', stats.isSymbolicLink());
위 예제처럼
즉, 심볼릭 링크가 있을 때
예를 들어 설명하면:
// ./uploads -> ./real_uploads 를 가리키는 심볼릭 링크
const stat = fs.statSync('./uploads');
console.log(stat.isDirectory()); // true (real_uploads가 디렉토리니까)
const lstat = fs.lstatSync('./uploads');
console.log(lstat.isSymbolicLink()); // true (링크 자체니까)
fs.lstatSync는 다음과 같은 속성들도 함께 확인할 수 있습니다:
console.log(stats.size); // 파일 크기 (bytes)
console.log(stats.mtime); // 마지막 수정 시간
console.log(stats.mode); // 퍼미션 정보
이 정보들은 로그 시스템이나 사용자 접근 제어, 캐싱 전략 수립에도 활용할 수 있습니다.
존재하지 않는 경로를 넣거나 권한 문제가 발생하면 예외가 발생하므로 try-catch로 감싸는 습관을 들이면 좋습니다:
try {
const stats = fs.lstatSync('./not-found');
} catch (err) {
console.error('에러 발생:', err.message);
}
동기 방식이기 때문에 간단한 CLI 툴이나 초기 설정 파일 검사에 적합하며, 고성능 서버 코드에서는