Nodejs(15)
-
다이나믹임포트 [ node.js 교과서 ]
본 게시글은 node.js 교과서 강의를 듣고 정리한 글입니다. - CommonJS 모듈에서는 다이나믹 임포트(동적불러오기) 가 되는데 ES 모듈에서는 다이나믹 임포트가 안된다. - if 문 안에 require 를 넣는 것을 말한다. // dynamic.mjs const a = true; if (a) { const m1 = await import("./func.mjs"); console.log(m1); const m2 = await import("./var.mjs"); console.log(m2); } [Module: null prototype] { default: [Function: checkOddOrEven] } [Module: null prototype] { even: '짝수입니다.', odd: '..
2023.04.10 -
ECMAScript 모듈 [ node.js 교과서 ]
본 게시글은 node.js 교과서 강의를 듣고 정리한 글입니다. - 공식적인 자바스크립트 모듈 형식이다. 노드에서 아직까지는 CommonJS 모듈을 많이 쓰긴 하지만 , ES 모듈이 표준으로 정해지면서 ES 모듈이 표준으로 정해지면서 점점 ES 모듈을 사용하는 비율이 늘어나고 있다. - 브라우저에서도 ES 모듈을 사용할 수 있어 브라우저와 노드 모두에게 같은 모듈 형식을 사용할 수 있다는 것이 장점 - 확장자가 mjs 이다. // var.mjs export const odd = "홀수입니다."; export const even = "짝수입니다."; // exports.odd = odd; // exports.even = even; // module.exports = { // odd, // even, // ..
2023.04.10 -
캐싱 , require, 순환참조 [ node.js 교과서 ]
본 게시글은 node.js 교과서 강의를 듣고 정리한 글입니다. 캐싱 - 파일은 하드디스크에서 불러오는 것은 느리고 메모리에서 불러오는 것은 빠르다. - 하드디스크에 있는 정보를 메모리로 옮겨오는 것을 캐싱이라고 한다. require 의 특성 - require 가 제일 위에 위치할 필요는 없다. - require.cache 에 한번 require 한 모듈에 대한 캐슁 정보가 들어있다. - require.main 은 노드 실행시 첫 모듈을 가리킨다. // var.js const odd = "홀수입니다."; const even = "짝수입니다."; exports.odd = odd; exports.even = even; // require.js console.log("require가 가장 위에 오지 않아도 ..
2023.04.10 -
this [ node.js 교과서 ]
본 게시글은 node.js 교과서 강의를 듣고 정리한 글입니다. - 노드에서 this 를 사용할 때 주의점이 있다. - 최상위 스코프의 this 는 module.exports 를 가리킨다. - 그 외에는 브라우저의 자바스크립트와 동일하다. - 함수 선언문 내부의 this 는 global 객체를 가르킨다. //this.js console.log(this); console.log(this === module.exports); console.log(this === exports); function whatIsThis() { console.log("function", this === exports, this === global); } whatIsThis(); {} true true function false t..
2023.04.10 -
CommonJS 모듈 시스템 [ node.js 교과서 ]
본 게시글은 node.js 교과서 강의를 듣고 정리한 글입니다. - 브라우저에서는 사용 불가 - 노드는 자바스크립트 코드를 모듈로 만들 수 있다. - 모듈 : 특정한 기능을 하는 함수나 변수들의 집합 - 모듈로 만들면 여러 프로그램에서 재사용 가능 만들어보기 - 같은 폴더 내에 var.js, func.js, index.js 만들기 - 파일 끝에 module.exports 로 모듈로 만들 값을 지정 - 다른 파일에서 require(파일경로) 로 그 모듈의 내용을 가져올 수 있음 // var.js const odd = "홀수입니다."; const even = "짝수입니다."; module.exports = { odd, even, }; // func.js const { odd, even } = require(..
2023.04.10 -
node.js 를 알아보자 [ node.js 교과서 ]
본 게시글은 node.js 교과서 강의를 듣고 정리한 글입니다. - node.js 는 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임이다. ( 런타임 : 포켓몬 골드버전 에뮬레이터 느낌? ) - 노드는 서버가 아니다. - 노드는 서버의 역할도 수행할 수 있는 자바스크립트 런타임 - 노드로 자바스크립트로 작성된 서버를 실행할 수 있다. - 서버 실행을 위해 필요한 http / https / http2 - 브라우저 종속성에서 벗어난 것 ( 브라우저 탈출 ) 특성 - 비동기, 싱글스레드, 이벤트 기반 이벤트 기반 - ex) 버튼을 클릭했을 때 팝업이 뜬다, 스크롤을 내리면 화면이 내려간다 ( 상호작용? ) - 이벤트 리스너에 콜백 함수 등록 > 이벤트 발생 > 등록된 콜백함수 호출 논 블로킹 I /..
2023.04.10