HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤩
개발
/
NodeJs
NodeJs
/
노드 기능 알아보기

노드 기능 알아보기

REPL 사용하기모듈로 만들기노드 내장 객체global__filename, __dirnamemodule, exports, require노드에서 this는 무엇?

REPL 사용하기

자바스크립트는 스크립트 언어이므로 미리 컴파일을 하지 않아도 즉석에서 코드를 실행할 수 있음
  • Read - 코드 읽고
  • Eval - 해석하고
  • Print - 결과물 반환
  • Loop - 반복
터미널에서 node를 실행시키고 위의 REPL 사용이 가능함
 
V8 엔진 동작 방식의 기본 원리
  • 엔진이 스크립트를 읽음(파싱)
  • 읽어 들인 스크립트를 기계어로 전환(컴파일)
  • 기계어로 전환된 코드가 실행됨. 기계어로 전환 되었기 때문에 실행 속도가 빠름

모듈로 만들기

const odd = '홀수'; const even = '짝수'; module.exports = { odd, even, };
var.js
const { odd, even } = require('./var'); function checkOddOrEven(num) { if (num % 2) { return odd; } return even; } module.exports = checkOddOrEven;
func.js
  • 다른 파일에서 이 파일(var.js)을 불러올 시 module.exports에 정의된 값들을 사용할 수 있음
  • require 함수로 불러올 모듈의 경로 작성
  • module.exports와 require는 따로 선언하지 않았음에도 사용 가능 → 내장 객체
  • ES2015 에서는 아래와 같이 사용
    • import { odd, even } from './var'; function checkOddOrEven(num) { if (num % 2) { return odd; } return even; } export default checkOddOrEven;
      이대로 사용하려면 파일 확장자를 mjs로 바꾸던가 package.json에 type : “module” 속성을 넣어야 함

노드 내장 객체

노드에서 기본적인 내장 객체와 내장 모듈을 제공. 따로 설치하지 않아도 바로 사용할 수 있으며, 브라우저의 window 객체와 비슷하다고 보면 됨

global

  • 브라우저의 window와 같은 전역 객체임. 전역 객체이므로 모든 파일에서 접근할 수 있음 → 파일 간에 간단한 데이터 공유도 가능함
  • window.open 메서드를 그냥 open으로 호출할 수 있는 것처럼 global도 생략할 수 있음(require도 global.require임)

__filename, __dirname

  • 현재 파일명과 현재 파일 경로에 대한 정보임

module, exports, require

  • 모듈 만들 때 module.exports 가 아닌, exports 객체로도 모듈 만들 수 있음

노드에서 this는 무엇?

console.log(this); // {} console.log(this === module.exports); // true console.log(this === exports); // true function whatIsThis() { console.log('function', this === exports, this === global); } whatIsThis(); // function false true
최상위 스코프의 this는 module.exports(또는 exports 객체)를 가리킴 함수 선언문 내부의 this는 global 객체