일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 마이크로소프트
- CoffeeScript
- callback function
- AngularJS
- Javascript
- NoSQL
- Microsoft
- npm
- non-blocking
- 마소
- 오픈소스
- 빅데이터
- 인턴
- JQuery
- Ajax
- node.js
- 자바스크립트
- 크로스브라우징
- 750R
- 콜백 함수
- 개발환경
- Python
- 제이쿼리
- github
- 웹디자인
- 테스트
- git
- MongoDB
- CSS
- Today
- Total
Inspired World
CoffeeScript로 즐거운 JavaScript 코딩하기 본문
CoffeeScript(커피스크립트)는 Verbose한 JavaScript문법의 단점을 보완하고
사람들이 헷갈리거나 실수를 할 수 있는 부분을 많이 가린 언어입니다.
Python이나 Ruby를 하시는 분들이라면 문법이나 특징 등 비슷한 점이 많이 있습니다.
예) Indentation으로 code block을 인식
먼저 설치는
npm을 통해 하실 수 있구요
npm이 없다면 Node.js 패키지를 설치하면 npm이 설치 되므로 먼저 Node.js 를 설치하시면 됩니다.
설치 방법은 Node.js 공식 사이트에 가셔서
DOWNLOAD 버튼을 눌러 해당하는 OS에 알맞는 패키지를 설치합니다
설치 후에
sudo npm install -g coffee-script
를 쉘에서 입력하여 CoffeeScript를 설치하실 수 있습니다.
Node.js 같은 경우에도 직접 coffee 를 runtime으로 사용해서 실행할 수도 있구요.
또 CoffeeScript 컴파일러를 통해서 JS파일로 컴파일 후 사용하실 수도 있습니다.
굳이 단점을 꼽자면 디버깅을 들 수가 있는데요.
JS파일로 컴파일 이후에 에러 나는 line을 찾아서 해야하는 번거로움이 있지만
코드의 간결성, 편리함, 익숙해졌을 때의 가독성은 매우 좋기 때문에 가치가 있다고 봅니다.
저도 한번 해봐야지 하다가 지금은 매력에 빠져 전부 CoffeeScript로 하고 있는데요.
(Node.js 같은 경우에는 All CoffeeScript에다가 runtime도 coffee로 하고 있습니다)
간단한 예로 비교하자면
JavaScript:
var example = function (a, b, c) {
if(!a || a==null) a = 3;
if(!b || b==null) b = 4;
if(!c || c==null) c = 5;
return a + b + c;
};
var sw = true;
if(!sw) alert('It is false');
CoffeeScript:
example = (a = 3, b = 4, c = 5) ->
a + b + c
sw = true
alert 'it is false' if not sw
보시는 봐와 같이 이렇게 좀더 직관적이고 verbose 한 부분을 많이 줄여줄 수 있구요.
저는 CoffeeScript를 접한지 2~3달 정도 되었는데요.
이제는 오히려 순수 JavaScript로 하는게 꺼려지고
CoffeeScript로 코딩하는 것이 즐겁습니다 ^^
본인한테 맞는지 또 어떠한지 한번 체험해보세요
사이트 상단 메뉴에 TRY COFFEESCRIPT 를 클릭하시면
CoffeeScript란에 코드를 쓰면 JavaScript로 변환해주고
JavaScript란에 코드를 쓰면 CoffeeScript로 바꿔주는 변환기가 탑재 되어 있으니
간단한 예제를 한번 테스트해보세요.
'JavaScript' 카테고리의 다른 글
AngularJS의 Model이 바뀌었는데 UI가 바뀌지 않을 때 (0) | 2014.04.22 |
---|---|
구글의 AngularJS 프레임워크 (3) | 2014.04.10 |
JavaScript 비동기 프로그래밍 소개 및 setTimeout 최소값 (0) | 2012.03.21 |
JavaScript 에서 객체지향 프로그래밍(OOP) 하기 (0) | 2012.03.09 |
JavaScript 콜백 함수의 활용 (4) | 2012.02.12 |