Image
Image

DAY1-4.노드 내장객체 활용하기

4.노드 내장객체 활용하기

-노드 내장객체 실습 코딩을 진행합니다.
-관련 실습자료 완성본은 제공 구글 드라이브 Node\DAY1폴더에 존재합니다.
-학습자료경로: 구글드라이브\Node\DAY1\globalA.js globalB.js

- Visual Studio Code를 가동하고 VSCode 탐색기창에서 Node\DAY1폴더를 선택하고 해당 폴더에 globalA.js globalB.js 파일 2개를 생성합니다.

1)global

노드 어플리케이션 전역정보 관리 객체,global.require, global.console 에서 global 생략사용,전역데이터 공유

코딩실습 : 하기 코드를 globalA.js 파일에 코딩하고 저장합니다.


//해당 모듈에서는 global내장객체에 message라는 속성을 만들었다.
//global내장객체에 개발자 정의 속성을 정의하고 값을 저장해
//모든 모듈에서 공통사용이 가능하다.
module.exports =() => global.message;



코딩실습 : 하기 코드를 
globalB.js  파일에 코딩하고 저장합니다.

const A = require('./globalA');

global.message = '안녕하세요.';

console.log(A());


-Visual Studio Code 상단메뉴>Terminal>New Terminal 메뉴를 클릭합니다.
-하단 터미널 창에서 cd 명령어를 통해 해당 스크립트파일이 존재하는 DAY1폴더로 이동합니다.  cd D:\Eddy\Node\DAY1\
- node globalB  라고 입력 후 엔터를 칩니다. 
- 터미널 콘솔창에 출력되는 로깅내용을 확인합니다.


2)console

노드 프로그래밍 디버깅을 위한 콘솔 객체 제공, global.console 전역객체

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

const string = 'abc';
const number =1;
const boolean = true;
const obj = {
    outside:{
        inside:{
            key:'value',
        }
    }
};


console.time('전체시간');
console.log('평범한 로그,쉼표로구분해 여러값을 로깅할수 있다.',string,number);
console.log(string,number,boolean);
console.error('에러 메시지는 console.error에 담아준다');

console.time('시간측정');
for(let i = 0i100000i++){
    continue;
}

console.timeEnd('시간측정');

function b(){
    console.trace('에러위치 추적');
}

function a(){
    b();
}

a();

console.timeEnd('전체시간');



3)timer

타이머 기능제공 객체,setTimeout(콜백함수,밀리초),setInterval(콜백함수,밀리초), setImmediate(콜백함수)

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


//1.5초후 한번만 시행하는 타이머
//setTimeout : 지정된 시간후에 한번만 실행된다.
const timeout = setTimeout(()=>{
    //1.5초 후에 실행되는 콜백 함수영역
    //로직을 구현하세요.
    console.log('1.5초후 실행됨.')
    //로직처리 완료
},1500);



//1초마다 반복실행되는 타이머
//반복 실행 타임아웃기능은 시스템에 치명적일수 있다.
//노드.js는 싱글쓰레드 기반으로 작동되기에 쓰레드가 죽으면 웹 어플리케이션자체가 죽을수 있어용.
//웹사이트가 통쨰로 다운될수도 있엉용..
const interval = setInterval(()=>{
    //1초마다 아래 로직이 처리됩니다.
    //로직을 요기에 구현하세요.
    console.log('1초마다실행');
    //로직처리가 완료됨
},1000);


const timeout2 = setTimeout(()=>{
    console.log('실행되지 않습니다.');
},3000);


setTimeout(()=>{
    //기 설정된 타이머를 취소한다.
    clearTimeout(timeout2);

    //기 설정된 반복 타이머를 취소한다.
    clearTimeout(interval);

},2500);


4)_ _filename,_ _dirname
현재 실행중인 자바스크립트 파일의 파일과 폴더의 물리적 경로정보를 표시

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


//현재 모듈파일의 물리적 파일경로를 리턴한다.
//현재 모듈파일이 존재하는 폴더의 물리적 경로위치를 리턴한다.
console.log(__filename);
console.log(__dirname);


5)module,exports
모듈 출력객체 module.exports 객체대신 exports 객체를 바로 사용 출력가능,exports는 객체만 사용가능

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

exports.odd ='홀수';
exports.even ='짝수';



6)process

노드 어플리케이션 CPU 프로세스 정보 제공 및 관리 객체.

Image

댓글목록

Image