ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 모듈(Module)이란?
    node.js 2023. 6. 13. 15:35

    Module 이란?

    자바스크립트 파일 단위로 분리된 코드를 의미합니다.

     

    1.모듈(Module)은 하나의 모듈에서 다른 모듈호출하여 사용할 수 있습니다.

     

    2.모듈(Module)은 그 자체로도 하나의 프로그램이면서 다른 프로그램의 부품으로도 사용할 수 있습니다.

     

    3.보통 1개의 파일1개의 모듈이 됩니다.

     

    Module 은 왜 필요한가? 

    1.코드 베이스분리할 수 있으며, 이를 통해 코드를 구조적으로 관리할 수 있습니다.

     -> 유지 보수가 용이해 진다는 뜻

     

    2.코드를 재사용 가능하게 만들어줍니다. 즉, 모듈화(module) 됩니다.

     

    3.모듈의 인터페이스(Interface)만 노출 시킬 수 있습니다.

    즉, 인터페이스 이외에는 모든 정보를 은닉하는 정보은닉(information hiding)을 구현 할 수 있게 됩니다.

     

    4. 종속성관리할 수 있게 됩니다.

     

    • CommonJS(CJS)

    Node.js에서는 CommonJS를 기본으로 사용하게 됩니다.

    CommonJS는 전역 스코프에 정의 되어있는 require함수로 대표됩니다.

    require함수는 경로 혹은 문자열을 가지고 내부 알고리즘을 통해 모듈을 가져오고 종속성을 처리합니다.

     

    • ES6(ES2015)

    import로 모듈 시스템을 관리할 때 사용합니다.

     

    사용 예시

    module 폴더를 생성해math.js run.js라는 파일을 생성하여 사용하겠습니다.

    2가지 인자를 입력받았을 때 값을 더해주는 함수를 생성합니다.

    // modules/math.js
    function add(a, b) {return a + b}

    생성된 함수를 다른 모듈로 보내주기 위한 코드 작성

    // modules/math.js
    // 모듈 그 자체를 바로 add 함수에 할당한다.
    module.exports = add;

    run.js에서 불러들인 add함수를 사용하도록 작성

    // modules/run.js
    const add = require("./math");
    console.log(add(10, 30));

     

    익명함수 사용

    // modules/math.js
    function add (a, b) {return a + b}
    // 모듈을 호출했을 때, add 키 값에는function(a,b) {return a + b} 익명함수가 할당되는 방법
    export.add = function(a,b) {return a + b}

    함수그자체를 내보내는 것이아니라 객채로서 내보낸다

    // modules/run.js
    const add =require("./math.js");
    console.log(add.add(10,30));
    // 이런 형태로 사용 해야하지만

    // 객체구조분해할당을 사용하면 깔끔하게 사용가능
    const {add} =require("./math.js");
    console.log(add(10,30));

     

    Module.exports 자체를 객체로 내보내는 방법

    // modules/math.js
    function add (a, b) {return a + b}
    // 모둘을 호출했을 때, add 키 값에는 add 함수가 들어가는 방법이다.
    module.exports = { add : add };
    const {add} =require("./math.js");
    console.log(add(10,30));

     

    위의 방법 중 어느 것을 사용해도 무방하며, 본인이편하거나, 프로젝트 중 팀원들과 맞추어 사용하면 될 듯하다.

    'node.js' 카테고리의 다른 글

    환경변수 dotenv  (0) 2023.07.16
    객체 지향에 대해  (0) 2023.07.06
    Access Token 과 Refresh Token  (0) 2023.07.06
    Prettier 사용법  (0) 2023.07.04
    JWT 토큰 인증이란 ? (Cookie, Session, Token)  (0) 2023.06.21
Designed by Tistory.