티스토리 뷰

learning

CommonJs 에 관하여

눈침침 2010. 5. 30. 17:46
 나에게 JavaScript는 그저 브라우저에서 내부적으로 HTML의 디자인을 바꾼다거나, 사용자의 사용성을 높이는 목적으로 사용되는 제한적인 언어라는 느낌이 강했다. 이런 문제점은, JavaScript가 원래 그런 목적으로 태어났기 때문이다. 하지만, 요즘 JavaScript는 엄청난 발전을 하고 있고, 브라우의 벽을 넘기 위해 많은 노력과 시도들이 있다. CommonJs 역시 그 시도 중 하나이다.

CommonJs 는 JavaScript 생태환경(Ecosystem) 생성을 위해 조직된 그룹이다. 그리고 그들의 목표로 하는 JavaScript 의 모습은, 브라우저 위에서의 JavaScript만이 아닌, Server-Side 프로그램, GUI 프로그램, 명령어 기반의 프로그램 등등 보통의 언어들이 할 수 있는 것들을 해낼 수 있는 언어로 만드는 것이다. 따라서 현재 IO, FileSystem,...  등등의 모듈을 중심으로 토론이 진행 중에 있다.

그리고 CommonJs의 제안에 따라 구현된 프로젝트 중에는 (내가 아는 것만 볼 때,) CouchDB, node.js, requirejs 같은 것들이 존재한다, 여기서 CommonJs의 제안을 따랐다는 의미는 CommonJs에서 정의한 모듈의 구조를 가졌다는 의미일 것이다.

 우선, CommonJs 제안을 따르는 모듈의 모습을 살펴보자.(아래 코드는 해당 홈페이지에서..)

math.js
exports.add = function() {
    var sum = 0, i = 0, args = arguments, l = args.length;
    while (i < l) {
        sum += args[i++];
    }
    return sum;
};


increment.js
var add = require('math').add;
exports.increment = function(val) {
    return add(val, 1);
};


program.js
var inc = require('increment').increment;
var a = 1;
inc(a); // 2
 
module.id == "program";

코드만 살펴봐선, 모듈의 정의는 exports라는 변수를 통해서 외부로 노출하고, 각각의 모듈은 require 명령에 의하여 읽어들이는 방식으로 보인다.

CommonJS는 Dojo관련 개발자의 twitter에서 보고 대략 살펴본 것인데, 아직은 가야 할 길이 많이 있어 보인다. 꼭 목적을 달성할 수 있는 멋진 프로젝트가 되었으면 좋겠다.. 하하하.. 유치한 일기식 마무리~

좀더 자세히 쓰고 싶었지만, 쓰는 도중 http://commonjs.org/ 서버가 멈춰버린 듯 하다. 이런. 나머지는 다음에~
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함