2장 - 모듈 시스템
모듈은 주요 애플리케이션들을 구조화하기 위한 부품. 코드베이스를 개별적으로 개발 가능하고 테스트 가능한 작은 유닛으로 나누게 해줌.
1. 모듈의 필요성
- 구조적 관리 가능, 코드 재사용, 은닉성, 종속성 관리
2. JS와 Node.js의 모듈 시스템
- Node.js는 브라우저가 아닌 환경에서 JS 모듈 시스템을 제공할 수 있도록 고안된 CommonJS의 명세를 구현하게 되었다.
- 2015년에 ECMAScript Modules를 위한 공식적인 제안이 나오게 되었다. Node.js는 버전 13.2부터 ESM에 대한 안정적인 지원을 한다.
3. 모듈 시스템과 패턴
- JS는 네임스페이스가 없다. 내부 애플리케이션 코드나 종속성 라이브러리가 기능을 노출시키는 동시에 스코프를 오염시킬 수 있다. 이런 문제를 해결하기 위한 보편적인 기법이 노출식 모듈 패턴이다.
4. CommonJS 모듈
- require는 로컬 파일 시스템으로부터 모듈 임포트 가능하게 해줌
- exports와 module.exports는 현재 모듈에서 공개될 기능들을 내보내기 위해서 사용된다.
- 자세한 내용은 책 참고. 한번 따로 정리해 보는것도 좋을 듯 하다.
5. 모듈 정의 패턴
- API 디자인과 관련된 문제들의 경우 고려해야 할 주요 요소는 private 함수와 public 함수간의 균형이다.
6. ESM - ECMAScript 모듈
- CommonJS와 가장 큰 차이점 - static이다.
- 제어 구문 내에 포함될 수 없다.
- 자세한 내용은 책 참고. 한번 따로 더 정리하자!
추가 정리 필요한 부분
- CommonJS 모듈 동작 방식, ESM 동작 방식
'JavaScript > Node.js' 카테고리의 다른 글
[책] 디자인 패턴 바이블 정리 - 3 (0) | 2021.07.04 |
---|---|
[책] 디자인 패턴 바이블 정리 - 1 (0) | 2021.06.22 |
process.EventEmitter()가 동작 하지 않는다. (0) | 2018.05.08 |