노드

노드 os와 path

포칼이 2023. 4. 11. 17:21

OS

운영체제의 정보를 담고 있다.

모듈은 require로 가져온다. (내장 모듈이라 경로 대신 이름만 적어줘도 된다.)

 

간단히 os 모듈 메서드를 소개하자면 다음과 같다

  • os.arch() : process.arch와 동일하다.
  • os.platform() : process.platform 과 동일하다.
  • os.type() : 운영체제의 종류를 보여준다.
  • os.uptime() : 운영체제 부팅 이후 흐른 시간(초)을 보여준다. 
  • os.hostname() : 컴퓨터의 이름을 보여준다.
  • os.release() : 운영체제의 버전을 보여준다.
  • os.homedir() : 홈 디렉터리 경로를 보여준다.
  • os.tmpdir() : 임시 파일 저장 경롤르 보여준다.
  • os.cpus() : 컴퓨터의 코어 정보를 보여준다.
  • os.freemem() : 사용 가능한 메모리 (RAM)를 보여준다.
  • os.totalmem() : 전체 메모리 용량을 보여준다.

Path

폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈이다. 보통 아래와 같이 많이 쓴다

//path.js
const path = require('path');

운영체제별로 경로 구분자가 다르다. (Windows:\, POSIX : /) *맥과 리눅스를 합쳐서 POSIX라 한다.

이렇게 os에 따라서 경로를 표시하는 것이 중구 난방이기 때문에 편하게 path로 처리하면 간편하다.

const path = require('path');

console.log(path.join(__dirname, 'var.js'));

알아둬야할 path 관련 정보

join과 resovle의 차이 :

resolve는 / 를 절대경로로 처리, join은 상대결로로 처리한다.

상대 경로 : 현재 파일 기준. 같은 경로면 점 하나(.), 한 단계 상위 경로면 점 두 개(..)

절대 경로는 루트 폴더나 노드 프로세스가 실행되는 위치가 기준이다.

//path.js
const path = require('path');

console.log(path.join(__dirname, '/var.js'));
console.log(path.resolve(__dirname, '/var.js'));

출력문을 확인해보면 join은 절대 경로를 따르고 resolve는 상대 경로를 따른다.

 

\\와 \ 차이 :

\는 윈도 경로 구분자이다.

\\는 자바스크립트 문자열 안에서 사용(\가 특수문자라 \\로 이스케이프 해준 것이다).

 

윈도우에서 POSIX path를 쓰고 싶다면 :

  • path.posix 객체 사용하면 된다.
  • POSIX에서 윈도 path를 쓰고 싶다면 : path.win32 객체를 사용하면 된다.