CoffeeScript 소개
TECH 2014. 3. 25. 21:28 |오늘 포스팅할 내용은 CoffeeScript 라는 녀석이다.
처음 CoffeeScript 라는 이름을 들었을때는 작명 센스가 대단하다는 느낌과 어떤 스크립트길래 커피라는 이름을
붙혔을까라는 궁금증이 생겼다.
결론적으로 말하자면 CoffeeScript의 정의는 JavaScript로 컴파일 되는 기존 JavaScript를 간결화 시킨 스크립트 이다.
말이 어렵나 ?새로운 스크립트 랭귀지라기 보다는 우리가 기존에 사용중인 자바스크립트의 간소화 버젼?
이라고 생각하면 된다.
괄호나 세미콜론은 과감히 생략하고 함수의 정의조차 간단하게 만들어 버렸다.
자바스크립트를 활용한 OO 프로그래밍을 좀더 명확히 표현할수 있도록 기능을 제공한다.
더 알아보기 쉽고, 빠르게 자바스크립트를 작성할수 있는게 장점이라고 한다. 기존에 자바스크립트를 사용했던 사람이
배우는데 크게 어렵거나 오랜 시간이 걸리지 않기 때문에 도전해보기 바란다.
이제 기존 JavaScript 와 CoffeeScript 간 어떤 차이가 있는지 몇가지 케이스에 따라 살펴보자
* 변수선언
위와 같이 커피 스크립트는 변수를 따로 선언하지 않는다. 또한 세미 콜론도 생략한다.
*함수선언 및 기본값(Default Value) 설정
위 자바스크립트 함수는 message 를 입력받고 해당 메시지가 없으면 기본메시지(Ready for some Coffeee?) 메시지가 뜨고 , 메시지가 있는경우 해당 메시지로 Confirm 창을 띄워서 사용자로부터 답을 입력 받도록 되어 있는 JavaScript 함수이다. 이 함수를 CoffeeScript로 변형한 결과는 다음과 같다.
단 4줄로 변형되었다. 여기서 설명할 부분은 함수의 구현은 = -> 을 이용해서 정의되었고, 괄호는 Indent를 통해서 표현되었다. 또한 문자열 안에서의 값은 #{변수명}으로 나타내었으며, 2번째 라인에서는 파라미터의 Default 값이 선언 되었다. CoffeeScript의 자세한 문법을 설명하려는것은 아니므로 자세한 설명은 생략하겠다.
중요한것은 위처럼 우리가 의식하지 않은채 작성하던 불필요한 표현을 아래와 같이 간결한 문법으로 변형할수 있다라는 것이다.
*JQuery to CoffeeScript
위와 같은 JQuery 가 적용된 자바 스크립트도 CoffeeScript를 활용하여 변환이 가능하다. 변경된 내용은 아래와 같다.
JQuery 에서 사용하는 this 키워드는 @로 대체되었고, 함수의 괄호를 생략하였으며, 문자열 변수는 #{변수명}을 통해서 간결하게 표현되었다.
* Operator
조건문이나 반복문의 경우에는 사용자가 인식하기 편하도록 작성할수 있다. 위와 같이 마치 의미가 있는 말이 되도록 조건문을 작성할수 있다. 이 뿐만 아니라 Chained Coparisons 를 지원해서 if 2< newLevel <5 와 같은 조건문도 작성 가능하다. 또한 Existential Operators 를 제공함으로써 NULL 처리라든지 기본값 설정을 편하게 할수 있게 지원해준다.(Example : value ?= 0)
.
.
.
.
애초에 CoffeeScript의 모든것을 다루려고 한건 아니기 때문에 소개는 이정도로 마치겠다.
이외에도 Loop, Array 객체생성, 클래스 생성등 기존 JavaScript에 비해서 간결하고 알아보기 쉬운 문법들을 지원한다.
이쯤되면 열정이 있는 자바스크립트 개발자라면 배워보고 싶다는 욕구가 샘솟을 것이다.... 아니면 어쩔수 없고...
그 열정을 주체할수 없다면 http://coffeescript.org/ 사이트를 방문해서 그 욕구를 잠재우길 바란다.
CoffeeScript를 활용하면 기존에 작성된 코드를 좀더 간결하게 만들수 있다. 라인수도 줄이고...
여기서 "마냥 좋을까 ?" 라는 질문을 던져 보면 ... 답정남, 방가, 강추, 갠소, 문상 등등 ... 일상 생활에서도 우리는 말들
을 줄여쓴다. 이때, 줄임말을 안배운 사람들은 그 말이 뭔지 모른다... 모르면 늙은이로 무시 당할수도 있다.
표준어(자바스크립트)만 알고 있는 사람에게는 오히려 더 어려운 말(코드)이 될수도 있다.
모든것이 양날의 검 아닌가... 실제로 큰 프로젝트에서 커피 스크립트를 적용해서 진행하긴 힘들겠지만,
개인 프로젝트를 진행할때는 커피스크립트의 간결함이 괜찮을거 같기도 하다.
CoffeeScript를 날로 마실 수는 없다.
어느정도 Learning curve는 각오하자. 그러나 어렵지 않다.
[Reference : http://coffeescript.org/ , https://www.codeschool.com/ ]