Programming (467) 썸네일형 리스트형 4. Node 기능 살펴보기 (3) - 노드 내장 객체 : 타이머2 앞선 아티클에서, 타이머 함수와 관련된 예제를 실행시켜 보고 결과도 예측해 보았습니다. 예제와 결과, 그리고 초별 타임라인에서 함수가 실행되는 과정을 다시 한번 아래와 같이 살펴보겠습니다. 4. Node 기능 살펴보기 (3) - 노드 내장 객체 : 타이머 1 여기서 말하는 '타이머'라는 기능은, 우리가 익히 사용했던 setTimeout, setInterval, setImmediate 같은 함수를 의미합니다. 간단하게 살펴보도록 하겠습니다. · setTimeout(callback, ms) : 주어진 밀리초 이후에 nozeroslope.tistory.com const timeout = setTimeout( () => { console.log('1.5초 후 실행'); }, 1500 ); const interv.. 4. Node 기능 살펴보기 (3) - 노드 내장 객체 : 타이머 1 여기서 말하는 '타이머'라는 기능은, 우리가 익히 사용했던 setTimeout, setInterval, setImmediate 같은 함수를 의미합니다. 간단하게 살펴보도록 하겠습니다. · setTimeout(callback, ms) : 주어진 밀리초 이후에 콜백 함수를 실행한다. · setInterval(callback, ms) : 주어진 밀리초마다 콜백 함수를 반복 실행한다. · setimmediate(callback) : 콜백 함수를 즉시 실행한다. 위에서 설명한 함수들은 모두 각각의 아이디를 반환하게되고, 이 아이디를 이용해 해당 타이머를 취소할 수도 있습니다. 각각 clearTimeout(id) / clearInterval(id) / clearImmediate(id) 입니다. 일단 설명만으로는 정.. 4. Node 기능 살펴보기 (3) - 노드 내장 객체 : console 노드에서 사용하는 console 역시 디버깅을 위한 객체입니다. 다만 브라우저와는 달리 window 객체가 아닌 global 객체 안에 들어있다는 것이 차이입니다. 사용함에 있어서는 큰 차이를 느낄 수 없을 것입니다. console.log로 대표되는 메서드들을 사용할 수 있는데, console.log 이외의 다른 로깅 함수들에 대해서도 예제를 통해서 살펴보겠습니다. const string = 'abc'; const number = 1; const boolean = true; const obj = { outside: { inside: { key: 'value', } } }; console.time('entire time'); console.log('normal log'); console.log(string.. 4. Node 기능 살펴보기 (3) - 노드 내장 객체 : global 노드에서는 이번 챕터에서 살펴보게 될 내장 객체, 그리고 따로 살펴볼 내장 모듈을 제공하고 있습니다. 예상하셨다시피 이 내장 객체와 모듈은 별도의 선언이나 설치가 필요 없이 바로 사용할 수 있습니다. 여기서 살펴볼 내장 객체 global은 브라우저의 window객체와 같은 레벨이라고 생각하시면 되겠습니다. · 즉, global은 전역 객체로 작동합니다. 그래서 모든 파일에서 자유롭게 접근이 가능합니다. · 브라우저에서 window.open을 open으로 호출이 가능했습니다. 이와 마찬가지로 global도 생략이 가능합니다. 우리가 사용하던 require도 사실은 global.require이고, 콘솔에 로그를 담는 console 객체 역시 global.console입니다. ※ 참고로 노드에서는 window.. 4. Node 기능 살펴보기 (2) - 모듈 사용하기 : __filename, __dirname 노드에서 사용되는 파일들은 단순 파일로서 사용되는 경우뿐만 아니라 모듈로서 관계성을 가지는 경우가 대다수입니다. 당연한 이야기죠? 그래서 특정 모듈(파일)들의 경로나 파일명을 필요로 하는 경우가 종종 발생합니다. 아래와 같이 예제 파일에서 console.log로 __filename과 __dirname을 출력해 보겠습니다. 그럼 특별한 설정 없이 현재의 파일명과 파일 경로를 자동으로 출력해 줍니다. console.log(__filename); console.log(__dirname); /* 출력 X:\XXXXX\XXXXXX\example.js X:\XXXXX\XXXXXX */ 물론 윈도우가 아닌 경우 위 예제와 같이 ' / '가 아닌 ' \ '로 경로가 구분이 될 수도 있습니다. 또한 경로의 문자열 반환 .. 4. Node 기능 살펴보기 (2) - 모듈 사용하기 : 다이나믹 임포트 다이나믹 임포트(dynamic import), 이것은 말 그대로 동적으로 import를 진행한다는 의미입니다. 간단하게 설명하면 조건문을 기반으로 import 하는 경우를 생각하시면 됩니다. 특히 CommonJS에서는 다이나믹 임포트를 지원하지만 ES 모듈에서는 지원하지 않습니다. (물론, 다른 방법을 사용합니다) 우선 앞선 예제에서 살펴보았던 var, func 파일(js와 mjs모두)이 있는 폴더에서 계속 예제 작성을 이어나가도록 하겠습니다. 일단 [dynamic.js]를 하나 만들어 보겠습니다. // [dynamic.js] const a = false; if (a) { require('./func'); } console.log('done'); /* 출력 done */ 간단해 보이지만, 위 예제는 다이.. 4. Node 기능 살펴보기 (2) - 모듈 사용하기 : ECMAScript 1 ECMAScript(ES 모듈)은 공식적인 Javascript 모듈 형식입니다. 점차 표준 모듈로서 사용량이 늘어나고 있고, 무엇보다 브라우저와 노드 양쪽에서 모두 같은 모듈 형식을 사용할 수 있습니다. 우선 이 ES 모듈의 특징을 CommonJS와 비교하면 다양한 차이점이 있습니다. 우선 몇 가지를 설명하고 예제를 살펴보겠습니다. ES 모듈에서 사용하는 import, export default는 require나 module.exports를 대체합니다. 하지만, 단순 객체나 함수 레벨의 변수가 아니라 '문법' 자체라는 사실을 기억해야 합니다. 모듈 파일의 확장자도 .js가 아닌 .mjs입니다. 그렇기에 일반 js 확장자 파일에서 import를 사용하게 되면 syntax error가 발생하게 됩니다. (j.. 4. Node 기능 살펴보기 (2) - 모듈 사용하기 : CommonJS 5 [require 1] 이번 아티클에서는 모듈을 불러오는 데 사용한 require에 대해서 살펴보도록 하겠습니다. 기본적으로 require도 함수입니다. 함수는 객체이므로 require도 객체로서의 속성을 몇 가지 가지게 되겠죠. 일단, require.cache와 require.main에 대해서 살펴보도록 하겠습니다. 우선 앞선 아티클에서 작성했던 예제 파일 중, [var.js]가 있는 폴더에 [require.js]를 새로 생성해 보겠습니다. // [var.js] exports.odd = 'CJS 홀수'; exports.even = 'CJS 짝수'; /* const odd = 'CJS 홀수'; const even = 'CJS 짝수'; module.exports = { odd, even, }; */ // [require.js] .. 이전 1 ··· 17 18 19 20 21 22 23 ··· 59 다음