JS Module History

Creator
Creator
Seonglae ChoSeonglae Cho
Created
Created
2020 Aug 21 2:47
Editor
Edited
Edited
2024 Mar 1 14:15
  • ajax(xhr), jquery이후 2005 부터 2009 사이 js 개발자들 scalable한 코드 관리 욕심 생김
  • <script/> 너무 많아지고 관리 안댐
    • 스코프 문제
    • 의존성 관리 문제 (로드 순서)
    • 로드시간 문제 (defer)
  • 여러 차례 http request 날리는 것이 문제 http 1.1이라
  • 2009년 1월, 모라 엔지니어 Kevin Dangoor를 중심으로 JS 모듈화 표준을 만들고자 하는 commonJS 그룹이 결성
  • 3개월 뒤 commonJS API 0.1을 발표 (JS 모듈화의 0년)
  • 2009년 nodeJS 등장하고 cjs 차용
  • 서버사이드의 서버사이드 모듈화 표준이 목적이어서 브라우저 문제 해결 못해줌
  • CJS 너무 오래 걸림 모듈 로드 동기적 blocking
    CJS
  • event loop 덕분에 async하게 돌아갈 수 있는 v8 2008 나온걸 이용해서 AMD 등장
    • amd에 기반한 모듈로더
      RequireJS
    • CJS 의 동기적 모듈 로딩 방식을 비동기로 한건 좋았지만
    • AMD 모듈화 기법이 대세를 거슬러서 개발자들이 서버사이드용 코드, 브라우저용 코드를 따로 작성해나가고 있다는 점이 문제
    • CJS 스타일 기반의 nodeJS로 자바스크립트기반 서버를 개발하고, npm으로 패키지를 모듈로 장착하고 싶었던 개발자들에게 AMD는 계륵
  • 2010년 즈음, npm이 등장
  • 개발자들 모듈 올리며 이들은 대부분 CJS 형식으로 만들어서 . CJS 스타일로 만든 코드를 AMD 스타일로 변환해야할 상황이 많아짐
  • 이 문제를 해결하기 위해 등장한 것이 모듈 번들러, Browserify
 
 
 

Recommendations