본문 바로가기
NodeJS

Module Wrapper Function

by kkodecaffeine 2021. 8. 17.

시작하며;

시험삼아 플랫폼에서 node.js 시험아닌 시험을 진행했다. 한번쯤 생각해볼만한 내용들을 잊지 않기 위해 여기에 남겨두려고 한다. 요즘 Node.js 를 학습 중인데 module.export 사용 시 저 module 이 도대체 어디서 온 것인지 생각해보았다.


Module Wrapper Function ?! 🤔;

(function(exports, require, module, __filename, __dirname) {
    // 모듈 코드가 이 안에 위치한다
});

 

Node.js에서 모든 파일은 모듈로 취급되며, 이 모듈은 실행 시 Module Wrapper Function에 의해 감싸진다. 이 함수는 Node.js가 모듈 간의 의존성을 관리하고, 각 모듈에 독립적인 스코프를 제공하기 위해 사용됩니다.

더보기

exports

   > 모듈에서 데이터를 내보내는 데 사용한다.

 

require

   > 다른 모듈을 불러오기 위해 사용한다.

   > Node.js의 require() 함수는 해당 모듈을 캐싱하며, 동일한 모듈이 여러 번 호출되더라도 한 번만 실행한다.

 

module

   > 현재 모듈에 대한 정보를 담고 있는 객체이다. 

   > module.exports 를 사용해 모듈 전체를 내보낼 수 있다.

 

__filename

   > 현재 모듈 파일의 전체 경로를 나타낸다. 이를 통해 현재 파일의 위치를 파악할 수 있다.

 

__dirname

   > 현재 모듈 디렉터리의 경로를 나타낸다. 이를 활용해 파일 경로나 상대 경로를 다룰 때 유용하다.


쏘 왔?! 🫠;

Module Wrapper Function 은 Node.js 가 제공하는 강력한 기능으로, 모듈 간 의존성을 관리하고, 효율적인 코드 작성 환경을 제공한다. 가령 exports 와 module.exports 를 통해 모듈 간 데이터를 주고받을 수 있고 코드 재사용성과 유지보수성을 높일 수 있다.


return;