[Node.js] 내장 모듈 - OS, Path

Main·2024년 9월 24일
0

Node.js

목록 보기
4/20
post-thumbnail

1. OS

운영체제 정보를 가져오는 모듈입니다.

시스템의 CPU 정보, 메모리 상태, 플랫폼 정보 등을 제공받을 수 있습니다.


OS 모듈 메서드

1 ) os.arch()

  • 프로세서의 아키텍처를 반환합니다.
  • 반환값 예시: 'x64', 'arm', 'ia32'
const os = require("os");
console.log(os.arch());

2 ) os.constants

  • 운영 체제에 따른 특정 상수들을 포함하는 객체를 제공합니다. 예를 들어, 에러 코드나 신호 등을 참조할 수 있습니다.
const os = require("os");
console.log(os.constants.signals); // { SIGINT: 2, SIGTERM: 15, ... }

3 ) os.cpus()

  • 시스템의 각 CPU(코어)에 대한 정보를 배열로 반환합니다. CPU 모델, 속도, 사용자 및 시스템 시간 등을 포함합니다.
const os = require("os");
console.log(os.cpus());

4 ) os.freemem()

  • 시스템에서 사용 가능한 메모리의 양을 바이트 단위로 반환합니다.
const os = require("os");
console.log(os.freemem());

5 ) os.homedir()

  • 현재 사용자의 홈 디렉토리 경로를 반환합니다.
const os = require("os");
console.log(os.homedir());

6 ) os.hostname()

  • 시스템의 호스트 이름을 반환합니다.
const os = require("os");
console.log(os.hostname());

7 ) os.loadavg()

  • 시스템의 평균 부하를 배열로 반환합니다. 1분, 5분, 15분 간의 평균 부하를 각각 배열로 반환합니다.
const os = require("os");
console.log(os.loadavg()); // [0.12, 0.34, 0.56]

8 ) os.networkInterfaces()

  • 네트워크 인터페이스의 정보를 객체로 반환합니다. 각 네트워크 인터페이스의 IP 주소, MAC 주소 등의 정보를 확인할 수 있습니다.
const os = require("os");
console.log(os.networkInterfaces());

9 ) os.platform()

  • Node.js가 실행되고 있는 플랫폼을 반환합니다.
const os = require("os");
console.log(os.platform());

10 ) os.release()

  • 운영 체제의 버전 정보를 반환합니다.
const os = require("os");
console.log(os.release());

11 ) os.tmpdir()

  • 시스템의 기본 임시 파일 저장 경로를 반환합니다.
const os = require("os");
console.log(os.tmpdir()); // '/tmp' or 'C:\\Temp' (depending on OS)

12 ) os.totalmem()

  • 시스템의 총 메모리 용량을 바이트 단위로 반환합니다.
const os = require("os");
console.log(os.totalmem());

13 ) os.type()

  • 운영 체제의 이름을 반환합니다. 예시: 'Linux', 'Darwin', 'Windows_NT'.
const os = require("os");
console.log(os.type());

14 ) os.uptime()

  • 시스템이 부팅된 후 경과한 시간을 초 단위로 반환합니다.
const os = require("os");
console.log(os.uptime());

15 ) os.userInfo([options])

  • 현재 사용자에 대한 정보를 객체로 반환합니다. 사용자 이름, 홈 디렉토리, 셸 등을 포함합니다.
const os = require("os");
console.log(os.userInfo());

16 ) os.version()

  • 운영 체제의 버전 정보를 반환합니다. 플랫폼과 운영 체제의 상세한 버전을 확인할 수 있습니다.
const os = require("os");
console.log(os.version());

기타 자세한 OS 모듈 설명은 https://nodejs.org/api/os.html를 참고해주세요.


2. Path

파일 및 디렉토리 경로를 처리하는 데 사용됩니다.

운영체제에 상관없이 경로를 처리하는 기능을 제공합니다.

운영체제 별로 구분자가 다름(Windows: ‘\’, POSIX: ‘/’)


예시 폴더 구조

아래 Path 모듈 메서드 예시 코드에서 사용할 폴더 구조입니다.

/home
 └── user
     ├── docs
     │   └── file.txt
     └── photos
         └── image.jpg

Path 모듈 메서드

1 ) path.basename(path[, ext])

  • 주어진 경로에서 파일명만 추출합니다.
  • 두 번째 인자인 ext를 제공하면 해당 확장자를 제거한 파일명을 반환합니다.
const path = require('path');
console.log(path.basename('/home/user/file.txt')); // 'file.txt'
console.log(path.basename('/home/user/file.txt', '.txt')); // 'file'

2 ) path.dirname(path)

  • 주어진 경로에서 디렉토리 경로만 추출합니다.
const path = require('path');
console.log(path.dirname('/home/user/file.txt')); // '/home/user'

3 ) path.extname(path)

  • 주어진 경로에서 파일의 확장자를 추출합니다.
const path = require('path');
console.log(path.extname('/home/user/file.txt')); // '.txt'

4 ) path.isAbsolute(path)

  • 주어진 경로가 절대 경로인지 확인합니다. 절대 경로면 true, 상대경로면 false를 반환합니다.
const path = require('path');
console.log(path.isAbsolute('/home/user/file.txt')); // true
console.log(path.isAbsolute('file.txt')); // false

5 ) path.join([…paths])

  • 여러 경로 조각을 결합하여 하나의 경로를 생성합니다.
  • 운영체제에 맞게 경로 구분자를 자동으로 처리합니다.
const path = require('path');
console.log(path.join('/home', 'user', 'docs')); // '/home/user/docs'
console.log(path.join('/home/', '/user/docs')); // '/home/user/docs'

6 ) path.normalize(path)

  • 주어진 경로에서 불필요한 ., .., \, / 등의 경로를 정규화하여 반환합니다.
const path = require('path');
console.log(path.normalize('/home/user/../docs')); // '/home/docs'

7 ) path. parse(path)

  • 경로를 분석하여 루드, 디렉토리, 파일명, 확장자 등으로 분리한 객체를 반환합니다.
const path = require('path');
console.log(path.parse('/home/user/file.txt'));
/*
{
  root: '/',
  dir: '/home/user',
  base: 'file.txt',
  ext: '.txt',
  name: 'file'
}
*/

8 ) path.format(pathObject)

path.parse() 메서드로 얻은 객체를 다시 하나의 경로 문자열로 반환합니다.

const path = require('path');
const parsedPath = {
  root: '/',
  dir: '/home/user',
  base: 'file.txt',
  ext: '.txt',
  name: 'file'
};
console.log(path.format(parsedPath)); // '/home/user/file.txt'

9 ) path.relative(from, to)

from 경로에서 to 경로로 가는 상대 경로를 반환합니다.

const path = require('path');
console.log(path.relative('/home/user/docs', '/home/user/photos')); // '../photos'

10 ) path.resolve([…paths])

  • 주어진 경로 조각들을 결합하여 절대 경로를 반환합니다.
  • 경로 조각 중 절대 경로가 포함되면 그 앞의 경로는 무시되고 뒤부터 계산합니다.
const path = require('path');
console.log(path.resolve('user', 'docs', 'file.txt')); // '/current/working/directory/user/docs/file.txt'

💡 path.join, path.resolve의 차이점

  • resolve는 /를 절대경로 처리하고 join은 상대경로로 처리합니다.
  • 상대 경로 : 현재 파일 기준 경로
  • 절대 경로 : 루트 폴더나 노드 프레서스가 실행되는 위치 경로
const path = require('path');
console.log(path.join('/home', 'user', 'docs')); // '/home/user/docs'
console.log(path.join('/home', '/user', 'docs')); // '/home/user/docs'
console.log(path.join('home', 'user', 'docs')); // 'home/user/docs' (상대 경로)

console.log(path.resolve('home', 'user', 'docs')); // '/current/working/directory/home/user/docs'
console.log(path.resolve('/home', 'user', 'docs')); // '/home/user/docs' (절대 경로)
console.log(path.resolve('/home', '/user', 'docs')); // '/user/docs' (절대 경로)

기타 자세한 Path 모듈 설명은 https://nodejs.org/api/path.html를 참고해주세요.

profile
함께 개선하는 프론트엔드 개발자

0개의 댓글