Image
Image

DAY1-5.Node 주요 내장모듈 활용하기

5.Node 주요 내장모듈 활용하기

1)OS 내장 모듈
-운영체제 정보 제공 모듈

- 코딩실습 : os.js 파일을 생성하고 하기코드를  코딩 후 저장합니다.
- 터미널에서 해당 파일을 실행하고 콘솔창에 출력되는 로깅내용을 확인합니다.

//내/외장 모듈을 사용하려면 먼저참조해야죠..
//os내장모듈을 참조합니다.
const os = require('os');

console.log('운영체제 정보를 추출합니다.-----------------');
console.log('os.arche()',os.arch());

console.log('os.plaform()',os.platform());
console.log('os.arche()',os.hostname());
console.log('os.release()',os.release());

console.log('경로정보를 추출해요.-----------------');
console.log('os.homedir()',os.homedir());
console.log('os.tmpdir()',os.tmpdir());

console.log('CPU 정보를 추출해요.-----------------');
console.log('os.cpus()',os.cpus());
console.log('os.cpus.length()',os.cpus().length);


console.log('메모리 정보를 추출해요.-----------------');
console.log('os.freemem()',os.freemem());
console.log('os.totalmem()',os.totalmem());



2)Path 내장모듈

-파일과 폴더의 경로를 쉽게  조작할수 있는 모듈. 
-Windows 계열(c:\users\eddy)과 POSIX계열(MAC,리눅스,유닉스- /home/eddy)
-개발환경과 운영(서비스)환경이 다른 경우 path.posix.sep or path.win32.sep 과 같이 정확한 작동환경을 명시한다.

- 코딩실습 : path.js 파일을 생성하고 하기코드를  코딩 후 저장합니다.
- 터미널에서 해당 파일을 실행하고 콘솔창에 출력되는 로깅내용을 확인합니다.

const path = require('path');

const string = __filename//내장객체 이용
//현재 파일의 전체 물리적 경로 반환
console.log(string);

console.log('경로구분자',path.sep);
console.log('환경변수 구분자',path.delimiter);
console.log('파일위치하는 폴더명',path.dirname(string));
console.log('파일확장자만 조회',path.extname(string));
console.log('파일명만 조회',path.basename(string));
console.log('확장자를 제외한 파일명추출',path.basename(string,path.extname(string)));
console.log('전체경로를 파싱해서 객체로 출력',path.parse(string));




3)url 내장모듈
-인터넷 호출 주소를 쉽게 조작하는 모듈, URL 주소체계, SearchParams

- 코딩실습 : console.js 파일을 생성하고 하기코드를  코딩 후 저장합니다.
- 터미널에서 해당 파일을 실행하고 콘솔창에 출력되는 로깅내용을 확인합니다.

const url = require('url')

const URL = url.URL;
const myURL = new URL('http://www.gilbut.co.kr/book/booklist.aspx?sercate1=001001000#anchor')

console.log('myURL',myURL);
console.log('url.format(myURL)',url.format(myURL)); 




4)querystring 내장모듈
-url 쿼리스트링 정보를 다룰수 있는 모듈.- 노드방식에서의 Querystring 방식사용

- 코딩실습 : console.js 파일을 생성하고 하기코드를  코딩 후 저장합니다.
- 터미널에서 해당 파일을 실행하고 콘솔창에 출력되는 로깅내용을 확인합니다.

const url = require('url');

const URL = url.URL;
const myURL = new URL('http://www.gilbut.co.kr/book/booklist.aspx?sercatel=00101000#achor');

console.log('myURL',myURL);
console.log('url.format(myURL)',url.format(myURL));


console.log(myURL.href);
console.log(myURL.protocol);
console.log(myURL.host);
console.log(myURL.search);
console.log(myURL.searchParams);


const myURL2 = new URL('http://www.gilbut.co.kr/book/booklist.aspx?page=3&limit=10&category=nodejs&category=javascript');
console.log('쿼리스트링의 특정키값의 모든값 추출: ',myURL2.searchParams.getAll('category'));
console.log('쿼리스트링 특정키값추출',myURL2.searchParams.get('limit'));
console.log('퀴리스트링내 특정키가 존재하는 여부',myURL2.searchParams.has('page'));



5)crypto 내장모듈

-각종 암호화 지원 모듈. 단방향 암호화(사용자 암호-복호화불가) 와 양방향 암호화
-단방향 : 해쉬알고리즘(sha512 권장) – 복호화 불가
-양방향 암호화 : 복호화 가능

- 코딩실습 : console.js 파일을 생성하고 하기코드를  코딩 후 저장합니다.
- 터미널에서 해당 파일을 실행하고 콘솔창에 출력되는 로깅내용을 확인합니다.

//먼저 노드프레임워크의 암호화 모듈을 참조한다.

const crypto = require('crypto');
console.log('=========단방향 암호화 절차를 가이드 합니다.========');

//사용자가 입력한 암호문자열
const userPassword = "abcdefg";

//Hash알고리즘을 이용해 사용자 암호 문자열을 단뱡향 암호화(난독화) 처리

//sha256 Hash알고리즘을 적용해 단방향 암호화 문자열을 만든다.
const encryptPassword256 = crypto.createHash('sha256').update(userPassword).digest('base64');

//sha512 Hash알고리즘을 적용해 단방향 암호화 문자열을 만든다.
const encryptPassword512 = crypto.createHash('sha512').update(userPassword).digest('base64');

console.log('SHA256암호화문자열:',encryptPassword256);
console.log('SHA512암호화문자열:',encryptPassword512);

//DB에 암호화된 사용자 암호정보를 저장한다.


//사용자가 회원가입 후 로그인 합니다.
//사용자가 아이디/암호를 입력하고 로그인을 시도합니다.

const inputUserID ="eddy";
const inputPassword = "abcdefg";

//DB에서 로그인한 사용자 정보를 조회합니다.

//사용자가 로그인할때 입력한 암호를 암호화 처리한값
const encryptedInputPassword = crypto.createHash('sha256').update(inputPassword).digest('base64');

//DB에 저장된 암호화된 값
const dbEncryptPassword = "fRpUEnsiJQL1t5tfsIAwYRUqRPkrN+I8ZSe69mXU2po=";

if(encryptedInputPassword == dbEncryptPassword){
    console.log("로그인 완료");
}else{
    console.log("암호가 다릅니다.");
}



6)util 내장모듈

-각종 편의 유틸리티 기능 제공 모듈.

Image

댓글목록

Image