Juni_Dev_log

(node.js) [Part.2] 노드 간단하게 살펴보기 - 내장 모듈 사용하기 본문

카테고리 없음

(node.js) [Part.2] 노드 간단하게 살펴보기 - 내장 모듈 사용하기

Juni_K 2020. 11. 19. 16:35

간단한 내장 모듈 사용하기

노드를 설치했을 때 기본적으로 들어있는 몇 가지 내장 모듈을 간단하게 살펴보자.

 

내장 모듈은 자주 사용하는 기본 기능을 노드에 포함시켜 제공하는 것이다.

노드를 설치하고 나면 그 안에 제공되는 다양한 모듈을 사용할 수 있다.

이렇게 미리 포함된 모듈을 내장 모듈이라고 한다. 개발자가 직접 만들어 올린 모듈을 외장 모듈이라고 한다.

외장 모듈은 npm으로 설치해야하지만, 내장 모듈은 바로 사용할 수 있다.

내장 모듈 중에는, os모듈path모듈에 대해 알아보자.

 

내장 모듈보다 외장 모듈이 더 편리한 경우도 있다.

내장 모듈의 기능이 불편하거나 충분하지 못하다면, 외장 모듈을 사용하는게 더 편리할 수 있다.
노드에서 동작하는 프로그램을 좀 더 쉽게 만들 수 있다면 이미 수많은 외장 모듈이 만들어져있다.

따라서 실무에서 사용할 수 있는 외장 모듈이 있다면 내장 모듈보다 먼저 설명한다.

내장 모듈은 다음 사이트에서 찾아볼 수 있다.

nodejs.org/api/

 

Index | Node.js v15.2.1 Documentation

 

nodejs.org

시스템 정보를 알려주는 os 모듈

실무에서 서버 기능을 만들다 보면 시스템의 CPU나 메모리 또는 디스크 용량이 얼마나 남았는지 확인하는 모니터링이 필요할 때가 있다.

이 때는 os 모듈에 있는 메소드들을 사용할 수 있다.

메소드 이름 설명
hostname() 운영체제의 호스트 이름을 알려준다.
totalmem() 시스템의 전체 메모리 용량을 알려준다.
freemem() 시스템에서 사용 가능한 메모리 용량을 알려준다.
cpus() CPU 정보를 알려준다.
networkInterfaces() 네트워크 인터페이스 정보를 담은 배열 객체를 반환한다.

ch02.test7.js 를 만들어서 작성해보자.

var os = require('os');

console.log('시스템의 hostname : %s',os.hostname());
console.log('시스템의 메모리 : %d / %d', os.freemem(), os.totalmem());
console.log('시스템의 CPU 정보 \n');
console.dir(os.cpus());
console.log('시스템의 네트워크 인터페이스 정보\n');
console.dir(os.networkInterfaces());

파일을 실행하면 메모리, CPU  그리고 IP주소를 포함한 네트워크 인터페이스 정보를 확인할 수 있다.

파일 패스를 다루는 path 모듈

파일을 다룰 때는 파일 패스에서 파일 이름을 폴더 이름과 구별하거나 파일 이름에서 확장자 또는 확장자를 제외한 파일 이름을 알아내는 작업이 많이 필요하다.

path 모듈은 파일패스를 다룰 때, 필요한 메소드를 제공한다. path 모듈의 주요 메소드이다.

메소드 이름 설명
join() 여러 개의 이름들을 모두 합쳐서 하나의 파일 패스로 만들어준다.
파일 패스를 완성할 때, 구분자 등을 알아서 조정한다.
dirname() 파일 패스에서 디렉터리 이름을 반환한다.
basename() 파일 패스에서 파일의 확장자를 제외한 이름을 반환한다.
extname() 파일 패스에서 파일의 확장자를 반환한다.

ch02_test8.js 파일을 만들고, path 모듈을 사용해보자.

var path = require('path');

// 디렉터리 이름 합치기
var diretories = ['users', 'mikes', 'docs'];
var docsDirectory = diretories.join(path.sep);
console.log('문서 디렉터리 : %s', docsDirectory);

// 디렉터리 이름과 파일 이름 합치기
var curPath = path.join('/Users/mike','notepad.exe');
console.log('파일 패스 : %s',curPath);

여러 개의 이름을 담고 있는 배열 객체를 만들었을 때, 배열 객체의 join() 메소드를 사용하면 하나의 디렉터리 이름이나 파일 이름으로 만들 수 있다.

또한 path 객체의 join() 메소드를 사용해 디렉터리 이름과 파일 이름을 합칠 수 있다.

 

거꾸로 파일 패스에서 디렉터리 이름이나 파일 이름을 구별하고 싶을 때는 dirname() , basename(), extname() 을 사용하면 된다.

ch02_test8.js 에 추가로 입력해보자.

...

// 패스에서 디렉터리, 파일이름, 확장자 구별하기
var filename = "C:\\Users\\mike\\notepad.exe";
var dirname = path.dirname(filename);
var basename = path.basename(filename);
var extname = path.extname(filename);

console.log('디렉터리 : %s, 파일 이름 : %s, 확장자 : %s', dirname, basename, extname);

파일을 실행하면 여러 개의 이름을 합쳐서 만든 디렉터리 이름을 확인할 수 있다.

그리고 하나의 파일 패스에서 구분한 파일의 이름도 확인할 수 있다.

 

노드에서는 자바스크립트를 기본 언어로 사용하기 때문에, 자바스크립트에 익숙해져야한다.

다음 장에서는 자바스크립트를 다시 한번 훑어보도록 한다.

 

Comments