모던 자바스크립트 Deep Dive 48장 정리 - 모듈

Hyodduru ·2022년 11월 19일
0
post-thumbnail

모듈의 일반적 의미

모듈(module)이란 애플리케이션을 구성하는 개발적 요소로서 재사용 가능한 코드 조각을 말함. 일반적으로 모듈의 기능을 기준으로 파일 단위로 분리함. 이때 모듈이 성립하려면 모듈은 자신만의 파일 스코프를 가질 수 있어야 함.

✔️ 모듈은 공개가 피요한 자산에 한정하여 명시적으로 선택적 공개가 가능하다. 이를 export라고 함.

✔️ 모듈 사용자는 모듈이 공개(export)한 자산 중 일부 또는 전체를 선택해 자신의 스코프 내로 불러들여 재사용할 수 있다. 이를 import라고 함.

모듈은 애플리케이션과 분리되어 개별적으로 존재하다가 필요에 따라 다른 모듈에 재사용된다. 모듈은 기능별로 분리되어 개별적인 파일로 작성도니다. 따라서 코드의 단위를 명확히 분리하여 애플리케이션을 구성할 수 있고 재사용성이 좋아서 개발 효율성과 유지보수성을 높일 수 있다.

자바스크립트와 모듈

자바스크립트를 클라이언트 사이드, 즉 브라우저 환경에 국한하지 않고 범용적으로 사용하려는 움직임이 생김 -> CommonJS와 AMD가 제안됨.

자바스크림트 런타임 환경인 Node.js는 모듈 시스템의 사실상 표준인 CommonJS를 채택했고, 현재는 CommonJS 사양과 100% 동일하지는 않지만 기본적으로 CommonJS 사양을 따르고 있음.

즉 Node.js는 ECMAScript 표준 사양은 아니지만 모듈 시스템을 지원함.

ES6 모듈(ESM)

ES6에서는 클라이언트 사이드 자바스크립트에서도 동작하는 모듈 기능을 추가함.

<script type ="module" src="app.mjs"></script>

모듈 스코프

모듈 내에서 선언한 식별자는 모듈 외부에서 참조할 수 없음.

export 키워드

export const pi = Math.PI

import 키워드

import { pi, squar, Person } fron './lim.mjs';
profile
꾸준히 성장하기🦋 https://hyodduru.tistory.com/ 로 블로그 옮겼습니다

0개의 댓글