심심한 개발자의 취미생활

node 내장 객체 / 모듈

노드는 개발 지원을 위한 다양한 내장 객체와 모듈을 탑제하고 있다. 따로 설치 않더라도 바로 사용할 수 있다.

__filename, __dirname

  • __filename
    • 현재 파일명
  • __dirname
    • 현재 파일 경로

process

  • process 객체는 현재 실행되고 있는 노드 프로세스에 대한 정보를 담고 있는 객체 이다.

attribute

코드 설명
process.version 설치된 노드의 버전
process.arch 프로세서 아키텍처 정보
process.platform 운영체제 플랫폼 정보
process.pid 현재 프로세스의 아이디
process.execPath 노드의 경로
process.env 시스템 환경 변수

method

코드 설명
process.uptime() 프로세스가 시작 된 후 흐른 시간(초)
process.cwd() 현재 프로세스가 실행되는 위치
process.cpuUsage() 현재 CPU 사용량
process.nestTick(콜백) 이벤트 루프가 다른 콜백 함수들 보다 nextTick의 콜백 함수를 우선 실행 처리
process.exit(코드) 실행 중인 노드 프로세스 종료

os 모듈

  • os 모듈은 실행 환경의 운영 체제에 대한 정보 접근하는 모듈입니다.

attribute

코드 설명
os.contents

method

코드 설명
os.arch() 프로세스 아키텍처 정보
os.platform() 운영체제 플랫폼 정보
os.type() 운영체제의 종류
os.uptime() 운영체제 부팅 이후 흐른 시간(초) 출력
os.hostname() 컴퓨터 이름
os.release() 운영체제의 버전
os.homedir() 홈 디렉토리 경로
os.tmpdir() 임시 파일 저장 경로
os.cpus() 컴퓨터 코어 정보
os.cpus().length 컴퓨터 코어 개수 이지만 노드에서는 멀티 스레드 설정을 하지 않는다면 하나만 출력된다.
os.freemem() 사용 가능한 메모리
os.totalmem() 전체 메모리 용량

path 모듈

  • path 모듈은 개발 환경과 상관 없이 경로를 다루거나 파일 명 등을 쉽게 다룰수 있도록 지원하는 모듈이다.
    • 윈도 : C:\Users\ballboy
    • POSIX : /home/ballboy

attribute

코드 설명
path.sep 경로의 구분자 (윈도: '', POSIX: '/')
path.delimiter 환경 변수의 구분자 (윈도: ';', POSIX: ':')

method

코드 설명
path.dirname(경로) 파일이 위치한 폴더 경로
path.extname(경로) 파일의 확장자
path.basename(경로, 확장자) 확장자를 포함한 파일의 이름
파일의 이름만 표시하고 싶다면 basename의 두번쨰 인수로 확자자를 넣는다.
path.parse(경로) 파일 경로를 root, dir, base, ext, name으로 분리 후 출력
path.format(경로) path.parse()한 객체를 합침
path.normalize(경로) '\', '/'를 혼용하여 사용 했을 경우 정상적인 경로로 변환
path.isAbsolute(경로) 파일의 경로가 절대경로 인지 상대 경로 인지 확인
path.relative(기준 경로, 비교 경로) 기준 경로에서 비교 경로로 가는 경로 출력
path.join(경로, ...) 여러 인수를 넣으면 하나의 경로로 합침
path.resolve(경로, ...) path.join()과 비슷하나 '/'문자를 만나면 절대경로로 처리한다.

url, querystring 모듈

  • 인터넷 주소 조작 지원 모듈로 각각 URL을 파싱하거나 조작할 때, URL의 쿼리 문자열을 처리 할 때 사용한다.

url 모듈

new URL(url주소)

  • url주소 문자열을 URL 객체로 변환

url.format(URL 객체)

  • URL 객체를 다시 문자열로 반환

주요 객체 속성

  • protocol: 'http:', 'https:'
  • host: 'ballboydev.github.io:8080'
  • hostname: 'ballboydev.github.io'
  • port: '8080'
  • pathname: '/path/to/resource'
  • query: 쿼리 문자열 또는 객체
  • hash: target id
const url = require('url')

const { URL } = url
const obj = new URL('https://ballboydev.github.io:80/post/1.html')

console.log(obj.protocol) // https:
console.log(obj.hostname) // ballboydev.github
console.log(obj.port) // 80

querystring 모듈

url의 쿼리 문자열을 객체로 파싱하거나 반대로 객체를 문자열로 변환할때 사용

  • querystring.parse(쿼리)
    • url의 query부분을 자바스크립트 객체로 분해
  • querystring.stringify(객체)
    • 분해된 query 객체를 문자열로 다시 조립