CommonJS

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

CommonJS는 2009년 1월 모질라 엔지니어 Kevin Dangoor에 의해 ServerJS라는 이름으로 시작된 프로젝트로, API의 더 넓은 적용 가능성을 보여주기 위해 CommonJS로 이름이 변경되었다. CommonJS는 웹이 아닌 자바스크립트 구현에 유용하고 상호 운용성을 제공하기 위해 표준화된 패키지 이름을 가진 API 집합을 정의하는 것을 목표로 한다. CommonJS는 Modules, Packages, Promises, System 등의 사양을 정의하며, Node.js, CouchDB, MongoDB 등 다양한 구현체를 가지고 있다. 2013년에는 Node.js의 패키지 관리자 npm의 개발자가 CommonJS가 Node.js에 의해 퇴색되었다고 언급했다.

CommonJS
📚 더 읽어볼만한 페이지
  • 자바스크립트 - HTML
    HTML은 웹 페이지 제작을 위한 표준 마크업 언어로서, 팀 버너스리가 제안하고 구현한 후 인터넷 발전과 함께 널리 사용되며, SGML에 기반하여 하이퍼텍스트 기능으로 다양한 콘텐츠를 표현하고 연결하며, W3C와 WHATWG에서 표준화를 진행하고 최신 버전은 HTML Living Standard이다.
  • 자바스크립트 - 비주얼 스튜디오
    비주얼 스튜디오는 마이크로소프트가 개발한 통합 개발 환경(IDE)으로, 다양한 프로그래밍 언어와 플랫폼을 지원하며 소프트웨어 개발에 필요한 도구와 기능을 제공한다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 브루클린 미술관
    브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 광주지방기상청
    광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.

2. 역사

CommonJS 프로젝트는 2009년 1월 모질라의 엔지니어 케빈 댕고어(Kevin Dangoor)에 의해 ServerJS라는 이름으로 시작되었다. 2009년 8월, API의 더 넓은 적용 가능성을 보여주기 위해 현재의 CommonJS로 이름이 변경되었다. CommonJS 사양은 개방된 프로세스로 만들어져 승인되며, 여러 구현체에 의해 완료된 이후에만 최종(final)으로 간주된다. CommonJS는 ECMA스크립트를 작업하는 Ecma 인터내셔널 그룹 TC39와 직접적인 연관은 없지만, TC39의 일부 구성원들이 이 프로젝트에 참여하고 있다.

2013년 5월, Node.js의 패키지 관리자 npm의 개발자 아이작 Z. 슐루터(Isaac Z. Schlueter)는 CommonJS가 Node.js에 의해 퇴색되었으며 핵심 Node.js 개발자들에 의해 사용이 회피되고 있다고 언급하였다.

2.1. ServerJS에서 CommonJS로

이 프로젝트는 2009년 1월 모질라의 엔지니어 케빈 댕고어(Kevin Dangoor)에 의해 시작되었으며, 처음 이름은 ServerJS였다.

What I’m describing here is not a technical problem. It’s a matter of people getting together and making a decision to step forward and start building up something bigger and cooler together.영어

2009년 8월, 이 프로젝트는 API의 더 넓은 적용 가능성을 보여주기 위해 CommonJS로 이름이 변경되었다. 사양은 개방된 프로세스로 만들어져 승인된다. 사양은 여러 구현체에 의해 완료된 이후에만 최종(final)으로 간주된다. CommonJS는 ECMA스크립트를 작업하는 Ecma 인터내셔널 그룹 TC39와 연계하지 않으나, TC39의 일부 구성원들은 이 프로젝트에 참여하고 있다.

2.2. 표준화 과정

이 프로젝트는 2009년 1월 모질라의 엔지니어 케빈 댕거(Kevin Dangoor)에 의해 시작되었으며, 처음 이름은 ServerJS였다. 2009년 8월, 이 프로젝트의 이름은 API의 더 넓은 적용 가능성을 보여주기 위해 CommonJS로 변경되었다. 사양은 개방된 프로세스로 만들어져 승인된다. 사양은 여러 구현체에 의해 완료된 이후에만 최종(final)으로 간주된다. CommonJS는 ECMA스크립트를 작업하는 Ecma 인터내셔널 그룹 TC39와 연계하지 않고 있으나, TC39의 일부 구성원들은 이 프로젝트에 참여하고 있다.

2013년 5월, Node.js의 패키지 관리자 npm의 개발자 아이작 슐루터(Isaac Z. Schlueter)는 CommonJS가 Node.js에 의해 퇴색되었으며 핵심 Node.js 개발자들에 의해 사용이 회피되고 있다고 언급하였다.

2.3. Node.js와의 관계

2013년 5월, Node.js의 패키지 관리자 npm의 개발자인 아이작 Z. 슐루터(Isaac Z. Schlueter)는 CommonJS가 Node.js에 의해 퇴색되었으며 핵심 Node.js 개발자들에 의해 사용이 회피되고 있다고 언급하였다.

3. 사양

CommonJS에서 정의된 사양으로는 Module과 Promise 등이 있으며, 2015년 ECMAScript 6에서 표준 규격으로 정의되었다.

3.1. 현재 사양

👆
좌우로 밀어서 보기
규격
Modules/1.0 (Modules/1.1에 의해 대체됨)
Modules/1.1
Modules/1.1.1
Packages/1.0
Promises/B
Promises/C
System/1.0


(변경 사항 없음)

3.2. 제안 사양

CommonJS 제안은 모듈보다 훨씬 더 많은 내용을 다룬다. 이들은 웹이 아닌 자바스크립트 구현에 유용하고, 생태계 내에서 상호 운용성을 제공하기 위해 표준화된 패키지 이름을 가진 API 집합을 정의하는 것을 목표로 한다. 이 목표는 때때로 TC39의 목표와 겹치며, Promises와 같은 부분은 실제로 ECMAScript 자체에 포함되었다.

슬래시(/) 뒤의 부분은 버전이다. 제안이 경합 중일 때는 각 개별 제안(동일 저자의 순차적 수정본 포함)에 새로운 문자가 할당된다. 주요 방향이 알려지면 숫자 버전이 할당되기 시작한다.

4. 구현체

👆
좌우로 밀어서 보기
구현체설명
Akshell
커먼 노드 (Common Node)
커먼JS 컴파일러 (CommonJS Compiler)브라우저에서 사용하기에 적합한 커먼 JS 모듈을 만드는 명령줄 도구
PHP용 커먼JS (CommonJS for PHP)PHP 5.3+용 경량 커먼JS 구현
카우치DB
플루스페르트 (Flusspferd)
GPSEE
젯팩
조이언트 스마트 플랫폼 (Joyent Smart Platform)
JS빌드 (JSBuild)
몽고DB
나르왈 (Narwhal) (자바스크립트 플랫폼)
Node.js
퍼시비어 (Persevere)
PINF 자바스크립트 로더 (PINF JavaScript Loader)
링고JS (RingoJS)
실크JS (SilkJS)
SproutCore
티JS (TeaJS)
Wakanda
XULJet
파이썬몽키(PythonMonkey)자바스크립트 또는 파이썬(또는 둘 다)으로 작성된 모듈을 로드할 수 있는 CommonJS Modules/1.1.1 환경을 구현
QUnit