본문 바로가기

programming study/JavaScript

48장. 모듈

본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다.

48.1 모듈의 일반적 의미

  • 모듈 : 애플리케이션을 구성하는 개별적 요소로서 재사용 가능한 코드 조각
  • 모듈의 자산(변수, 함수, 객체)은 기본적으로 비공개 상태
    • 캡슐화되어 다른 모듈에서 접근 불가
    • 애플리케이션과 분리
  • 공개가 필요한 자산에 한정하여 명시적으로 선택적 공개는 가능
    • export
  • 모듈 사용자 : 공개된 모듈의 자산을 사용하는 모듈
    • 다른 모듈이 공개한 자산을 선택해 자신의 스코프 내로 불러 재사용 가능
  • 모듈의 의의
    • 코드의 단위를 명확하게 분리
    • 재사용성, 개발 효율성, 유지 보수성 증대

48.2 자바스크립트 모듈

  • 자바스크립트는 script 태그로 분리를 하여도 하나의 자바스크립트 파일 내에 있는 것처럼 동작
    • 하나의 전역 공유
  • CommonJS, AMD(Asynchronous Module Definition) 제안
  • Node.js는 CommonJS를 채택

48.3 ES6 모듈(ESM)

  • ES6
  • 클라이언트 사이드 자바스크립트에서도 동작하는 모듈
  • script 태그에 type="module" 어트리뷰트 추가
    • 확장자는 mjs 사용
  • 기본적으로 strict mode 적용
  • ESM은 독자적인 모듈 스코프를 가짐
  • export 키워드를 선언문 앞에 사용하여 다른 모듈들이 재사용 가능하게 함
  • import 키워드를 사용하여 다른 모듈에서 공개한 자산을 스코프 내부로 가져와 사용
    • import되는 식별자는 as 뒤에 지정한 이름의 객체에 프로퍼티로 할당

'programming study > JavaScript' 카테고리의 다른 글

Vue.js - 라우터 네비게이션 가드  (0) 2022.06.09
조건부 렌더링  (0) 2022.06.02
47장. 에러 처리  (0) 2022.05.27
46장. 제너레이터와 async/await  (0) 2022.05.26
45장. 프로미스(2)  (0) 2022.05.25