Hello, Android!

node의 내장 객체(global, console, timer) 본문

Node

node의 내장 객체(global, console, timer)

lwndnjs93 2021. 1. 24. 16:55

노드에는 기본적인 내장 객체와 모듈이 있어서

별도의 설치 없이 바로 사용이 가능하다

 

1. global

global객체는 전역 객체이며 모든 파일에서 접근이 가능하며

키워드 global을 생략하는것도 가능하다

다른 모듈을 호출할때 사용하는 reqire또한

global.require에서 global이 생략된 것이며 다양한 속성들이 있다

global은 전역 객체이기때문에 파일 사이에 데이터 공유가 가능하다

같은 폴더 내에 ryan.js와 friends.js 두개의 파일이 있으며

ryan.js 에서는 익명함수로 global.Ryan을 반환한다

friends.js 에서는 ryan.js를 호출하여 global.Ryan에 값을 넣은 뒤

호출하였을때 "Hello, Ryan" 이 출력되었다

다른 파일에서도 global.Ryan에 접근이 가능함을 알수있다

 

노드 뿐만아니라 다른 언어에서도 마찬가지로

꼭 필요한 경우에만 사용하는것 처럼 노드에서도 global객체를

너무 많이 사용하는것은 좋지않다

 

2. console

로그 출력시 사용하는 콘솔 또한 global 안에 들어있다

 

- console.log()

일반적인 내용들을 출력할때 사용한다

쉼표를 활용하여 여러 값들을 출력하는것도 가능하다

 

- console.error() / console.trace()

console.error은 에러 출력시에 사용하는 함수이며

console.trace는 에러 위치를 출력하는데 사용하는 함수이다

trace를 사용하게 되면 해당 함수가 어느 파일의 몇번째 줄에 위치하는지 로그를 출력한다

 

- console.table()

배열의 요소로 객체를 넣으면 각각의 객체의 값들이 테이블로 출력된다

첫번째 로그처럼 직접 객체를 넣어도 되고 변수에 할당된 객체를 넣어도 된다

 

 

- console.time() / console.timeEnd()

time함수는 timeEnd와 함께 사용이 되어 time이 호출되었을때부터

timeEnd가 호출될때까지 걸린 시간을 표시한다

두 함수의 매개변수로 레이블이 들어가며 time과 timeEnd에 레이블이 일치하는

세트의 사이 시간을 측정한다

time test1은 전체 흐름의 시간을 측정하고

time test2는 두번째 for만의 시간을 측정한다

- console.dir()

객체를 콘솔에 출력할때 사용한다

객체를 출력한다는 점에서는 table 함수와 유사하지만

출력 형태가 테이블이 아니며 매개변수로

첫번째 매개변수는 객체 두번째 매개변수는 옵션을 넣는다

객체는 출력할 객체를 넣어주고

옵션에는 출력할때 색을 넣거나 출력 단계를 지정할수 있다

두번째 매개변수로 {color: falsedepth: 2}를 넣었다

depth 옵션은 기본값이 2 이다ㅈㅈㅈ

3. 타이머

타이머 함수인 setTimeout, setInterval, setImmediate 또한 global 객체에 들어있다

 

- setTimeout() / clearTimeout()

setTimeout()는 매개변수로 콜백 함수와 밀리초를 받아 지정한 시간이 지난 뒤 콜백함수를 실행한다

clearTimeout()는 setTimeout의 아이디를 받아 해당 타이머를 취소한다

네개의 타이머를 1초 간격으로 실행하고 로그를 출력하게 했다

마지막에 clearTimeout은 setTimeout으로 3초 뒤 clearTimeout으로 timer4를 해제하게 했다

그렇기때문에 timer1,2,3은 실행이 되지만 4초 뒤 실행되는 timer4는 해제되어 로그가 출력되지 않는다

 

- setInterval() / clearInterval()

setInterval()또한 매개변수로 콜백 함수와 밀리초를 받아 타이머를 실행한다

setTimeout()는 지정된 시간 뒤에 콜백 함수를 한번 실행하지만 setInterval은 별도의 해제

혹은 프로그램이 종료되기 전까지 지정한 시간마다 콜백 함수를 실행한다

clearInterval()는 매개변수로 아이디를 받아 setInterval()을 해제한다

intervalTimer1은 1초마다 intervalTimer2는 2초마다 로그를 출력하며

프로그램 시작으로부터 10초 뒤에 두 타이머가 해제된다

 

- setImmediate() / clearImmediate()

setImmediate()는 매개변수로 콜백함수만을 받으며 즉시 콜백 함수를 실행한다

clearImmediate() 지정된 아이디의 setImmediate를 해제한다

세개의 setImmediate가 각각의 로그를 출력한다

하지만 3번은 바로 해제를 하고있기때문에 1,2번의 타이머만 로그를 출력한다

 

'Node' 카테고리의 다른 글

자식 프로세스  (0) 2021.01.30
thread  (0) 2021.01.30
crypto 모듈  (1) 2021.01.26
exports와 require  (0) 2021.01.26
node의 모듈  (0) 2021.01.23