자주 사용되는 모듈

[Node.js] 자주 사용되는 모듈


본 내용은 Node.js 교과서 개정2판을 보고 공부, 정리한 내용입니다.

node를 사용하면서 거의 필수적으로 사용되는 모듈들을 공부했다. 이 내용을 지금 전부 외우는 것은 비효율적이다. 어떤 내용이 있는지 정도만 훑어보았고, 이후에 필요할 때 손쉽게 찾아볼 수 있도록 정리해두는 것이 목적이다.

process

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

process.version

설치된 노드의 버전

process.arch

프로세서 아키텍쳐 정보
ex) x64, x86, aprm, ia32 등

process.platform

운영체제 플랫폼 정보
ex) win32, linux, darwin 등

process.pid

현재 실행중인 노드 프로세스의 아이디

process.uptime()

프로세스가 시작한 이후 현재까지 흐른 시간 (단위 : 초)

process.execPath

node.exe의 경로
ex) C:\Program Files\nodejs\node.exe

process.cwd()

현재 실행중인 노드 파일의 위치

process.cpuUsage()

현재 노드 프로세스의 cpu 사용량


os

os모듈은 운영체제의 정보를 가져올 수 있는 모듈이다.

os.arch()

process.arch와 동일

os.platform()

process.platform과 동일

os.type()

운영체제의 종류
ex) Windows_NT

os.uptime()

운영체제 부팅 이후 현재까지 흐른 시간

os.hostname()

컴퓨터의 이름

os.release()

운영체제 버전

os.homedir()

홈 디렉토리 경로

os.tmpdir()

임시 파일 저장 디렉토리 경로

os.cpus()

컴퓨터의 코어 정보
os.cpus().length 는 코어 개수를 보여준다.

os.freemem()

사용 가능한 메모리 용량

os.totalmem()

전체 메모리 용량

os.constant()

각종 에러, 신호에 대한 정보
ex) EADDRINUSE, ECONNRESET 등


path

폴더와 파일 경로를 쉽게 조작하도록 도와주는 모듈
대표적으로 windows, linux의 서로 다른 경로 delimiter를 운영체제의 영향 없이 node.js 코드가 동작할 수 있도록 해주는 역할을 한다.
(윈도우 타입 = ‘' , POSIX 타입 = ‘/’)

path.sep

경로의 구분자
윈도우는 ‘' , 리눅스는 ‘/’ 이다.

path.delimiter

환경 변수의 구분자
process.env.PATH에 사용되는 구분자이다.
윈도우는 ‘;’ , 리눅스는 ‘:’ 이다.

path.dirname(파일경로)

파일이 위치한 폴더 경로

path.extname(파일경로)

파일의 확장자

path.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()과 비슷하지만, path.resolve()는 파라미터 중간에 절대 경로가 주어지면 이전 파라미터들을 무시한다.

path.join(“/a”, “/b”, “../c”) ⇒ “/a/c”

path.resolve(“/a”, “/b”, “../c”) ⇒ “/c”



url

url모듈은 인터넷 주소를 쉽게 조작할 수 있도록 도와주는 모듈이다.
node.js의 url 처리 방식에는 크게 두 가지 방식이 있는데, WHATWG 방식기존 방식이다.
아래 그림의 가운데 주소를 기준으로 위가 WHATWG 방식이고, 아래가 기존 node.js 에서 사용하던 url 구조이다.
WHATWG-basic-url

WHATWG 방식으로 url을 파싱하기 위해선 url 모듈 내의 URL 생성자를 사용한다.
기존 방식으로 url을 파싱하기 위해선 url.parse() 를 이용한다.

1
2
3
4
5
6
7
8
const url = require("url");
const { URL } = url;

// WHATWG 방식으로 url 파싱
const myURL = new URL("https://exampleshoppingmall/laptop?name=lenovo");

// 기존 방식으로 url 파싱
const parsedUrl = url.parse("https://exampleshoppingmall/laptop?name=lenovo");



myURL과 parsedUrl 객체는 아래와 같이 생겼다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// myURL
URL {
  href: 'https://exampleshoppingmall/laptop?name=lenovo',
  origin: 'https://exampleshoppingmall',
  protocol: 'https:',
  username: '',
  password: '',
  host: 'exampleshoppingmall',
  hostname: 'exampleshoppingmall',
  port: '',
  pathname: '/laptop',
  search: '?name=lenovo',
  searchParams: URLSearchParams { 'name' => 'lenovo' },
  hash: '' 
}

// parsedUrl
Url {
  protocol: 'https:',
  slashes: true,
  auth: null,
  host: 'exampleshoppingmall',
  port: null,
  hostname: 'exampleshoppingmall',
  hash: null,
  search: '?name=lenovo',
  query: 'name=lenovo',
  pathname: '/laptop',
  path: '/laptop?name=lenovo',
  href: 'https://exampleshoppingmall/laptop?name=lenovo' 
}



두 방식의 주요 차이점은 아래와 같다.

  • 쿼리 파라미터 파싱 방식
    WHATWG 방식은 searchParams이라는 특수한 객체로 반환한다.
    myURL.searchParams.name과 같이 사용 가능하다.
    기존 방식은 query 라는 프로퍼티에 담아 반환한다.
    query는 단순 문자열이므로, 이를 더 쉽게 사용할 수 있는 객체 형태로 바꿔주는 “querystring” 이라는 모듈과 같이 쓰이는 경우가 대부분이다.

  • 인식하는 url 형태
    WHATWG 방식은 host 부분 없이 pathname 부분만 있는 url을 인식하지 못한다.
    예를 들어, WHATWG 방식은 /food?name=apple과 같은 url은 인식하지 못한다.
    이러한 url을 다룰 땐 url.parse()를 사용해야 한다.

url.format(객체)

파싱된 객체를 원래의 url 문자열로 되돌릴 때 사용한다.
URL 객체와 Url 객체 모두 사용 가능하다.

0%