본문 바로가기

Node

노드 내장 모듈(os, path)

os

  • 운영체제의 정보를 담고 있음
  • 모듈은 require로 가져옴(내장 모듈이라 경로 대신 이름만 적어줘도 됨)

 

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

 

os 모듈의 메소드

메소드설명

os.hostname() 컴퓨터의 이름을 리턴
os.type() 운영체제의 이름을 리턴
os.platform() 운영체제의 플랫폼을 리턴
os.arch() 운영체제의 아키텍처를 리턴
os.release() 운영체제의 버전을 리턴
os.uptime() 운영체제가 실행된 시간을 리턴
os.loadavg() 로드 에버리지 정보를 담은 배열 리턴
os.totalmem() 시스템의 총 메모리를 리턴
os.freemem() 시스템의 사용 가능한 메모리를 리턴
os.cpus() CPU의 정보를 담은 객체를 리턴
os.getNetworkInterfaces() 네트워크 인터페이스의 정보를 담은 배열 리턴

 

 

path

 

  • 폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈
  • 운영체제별로 경로 구분자가 다름(Windows: ‘\’, POSIX: ‘/’)

 

 

path.sep: 경로의 구분자입니다. Windows는 \, POSIX는 /입니다.
path.delimiter: 환경 변수의 구분자입니다. process.env.PATH를 입력하면 여러 개의 경로가 이 구분자로 구분되어 있습니다. Windows는 세미콜론(;)이고 POSIX는 콜론(:)입니다.
path.dirname(경로): 파일이 위치한 폴더 경로를 보여줍니다.
path.extname(경로): 파일의 확장자를 보여줍니다.
path.basename(경로, 확장자): 파일의 이름(확장자 포함)을 보여줍니다. 파일의 이름만 표시하고 싶다면 basename의 두 번째 인자로 파일의 확장자를 넣어주면 됩니다.
path.parse(경로): 파일 경로를 root, dir, base, ext, name으로 분리합니다.
path.format(객체): path.parse()한 객체를 파일 경로로 합칩니다.
path.normalize(경로): /나 \를 실수로 여러 번 사용했거나 혼용했을 때 정상적인 경로로 변환해줍니다.
path.isAbsolute(경로): 파일의 경로가 절대경로인지 상대경로인지 true나 false로 알려줍니다.
path.relative(기준경로, 비교경로): 경로를 두 개 넣으면 첫 번째 경로에서 두 번째 경로로 가는 방법을 알려줍니다.
path.join(경로, .. .): 여러 인자를 넣으면 하나의 경로로 합쳐줍니다. 상대경로인 ..(부모 디렉터리)과 .(현 위치)도 알아서 처리해줍니다.
path.resolve(경로, .. .): path.join()과 비슷하지만 차이가 있습니다. 

 

 join과 resolve의 차이: resolve는 /를 절대경로로 처리, join은 상대경로로 처리
상대 경로: 현재 파일 기준. 같은 경로면 점 하나(.), 한 단계 상위 경로면 점 두 개(..)

 

실행되는 위치가 기준

 

\\와 \ 차이: \는 윈도 경로 구분자, \\는 자바스크립트 문자열 안에서 사용(\가 특수문자라 \\로 이스케이프 해준 것)

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

'Node' 카테고리의 다른 글

DNS 모듈  (0) 2024.01.30
url 모듈  (0) 2024.01.30
노드 내장 객체 process  (0) 2024.01.29
노드 내장 객체(global, console, 타이머)  (0) 2024.01.28
다이나믹 임포트  (0) 2024.01.24