본문 바로가기

프로그래밍/node.js

CoffeeScript - 보다 효율적인 자바스크립트 개발을 원한다면

JavaScript는 이미 웹 개발의 표준이 된지 오래입니다. 그래서 JavaScript 언어는 굉장히 중요하게 여겨지고 있습니다. 하지만 문제라면 JavaScript의 문법은 괴랄한 점이 많고, JavaScript는 매우 조심해서 잘 써야 합니다. JavaScript의 전도사 Douglas Crockford씨는 Javascript에는 좋은점과 안좋은 점이 있고, Javascript가 많이 비판받는 이유가 안좋은 점이 있기 때문이라고 합니다. Javascript의 좋은점만 사용하여 제대로 활용하기만 하면 굉장히 좋은 언어라고 말하고 있습니다. 하지만 좋은점만 딱딱 골라 쓰기가 쉬운일인가요......

이런 문제점들 때문에 Javascript를 대신할 언어가 필요해 졌고, 그래서 등장한 것이 Coffeescript입니다. 

Coffeescrpt: http://coffeescript.org/


Coffeescript는 단순히 javascript가 python같은 문법으로 바뀐것이 아닙니다. Coffeescript compiler는 자동으로 최적화된 Javascript로 컴파일 되기 때문에 순수 Javascript로 코딩된 코드보다 속도가 빠를때가 많습니다. 물론 베테랑 Javascript 프로그래머가 코딩을 했다면 차이가 거의 없겠지만, Javascript는 괴랄한점들이 있기 때문에 보통의 사람들은 최적화된 코드를 만들지 못합니다.

성능뿐만 아니라 문법에서도 큰 변화가 있습니다. Coffeescript는 파이썬같은 문법을 택함으로서 Javascript에서 사용되는 수많은 {}, ()들을 제거하였습니다. 특히 Callback이 연쇄적으로 이어지는 코드에서는 {{{{{{{{}}}}}}}}같은 수많은 가로열고 가로 닫기를 보게 되는데, 이런 가로들이 제거됨으로서 코드가 깔끔해지는것을 확인할 수 있습니다. 괄호되신 모든 블럭을 탭으로 구분하게 되는데, 덕분에 특정 코드가 특정 괄호 안에 있는건지 밖에있는건지 헷갈리지 않아도 되었습니다.

하지만 Coffeescript에는 좋은점만 있는것은 아닙니다. 몇가지 나쁜점이 있지요.

읽기 어려운 Coffeescript: http://ceronman.com/2012/09/17/coffeescript-less-typing-bad-readability/

가장 큰 문제는 가독성입니다. 괄호를 모두 삭제하고 최대한 쓸데없는 기호들을 빼고 최대한 간결하고 깔끔하게 만들어진 문법인데 왜 가독성이 문제가 되는 것일까요? 몇가지 이유가 있습니다. 먼저 사람들이 Javascript같은 문법에 너무 익숙해져 있기 때문에 Coffeescript에서 사용되는 개혁적인 문법을 이해하기 어려운 점이 있습니다. 또한 괄호를 너무 빼버려서 코드를 읽기 어려운 경우가 있습니다. 특히 함수를 호출하는 부분에서 인자를 괄호로 둘러싸지 않기 때문에 읽기 어려운 경우가 많습니다.

가독성에 문제가 있긴 하지만 사실 Coffeescript에 익숙해지면 Javascript보다 훨씬 읽기 쉽습니다. 하지만 아직 많은 사람들이 Coffeescript에 익숙하지 않다는 것이 문제이지요. 또한 Coffeescript 코드를 짜는 방법이 한가지가 아니고 여러가지인점도 문제가 됩니다. 자세한 점은 위의 링크를 보세요. 그래서 Coffeescript 개발자는 통일된 코드 스타일을 추구할 필요가 있습니다. 그래서 만들어진것이 Coffeescript Style Guide입니다.

Coffeescript Style Guide: https://github.com/polarmobile/coffeescript-style-guide

위의 Guide를 따라 코드를 짜는 것이 굉장히 현명한 판단입니다. 안그러면 다른사람이 당신의 코드를 읽을때 굉장히 곤혹스러울 스도 있습니다.

마지막으로 Coffeescript를 사용할때 좋은 자료들을 모아둔 블로그를 소개하고자 합니다.

Coffeescript Love: http://www.coffeescriptlove.com/

Coffeescript를 유용하게 사용할 수 있는 많은 자료들이 모여 있습니다. 위의 블로그에 유용한 링크들이 많이 있으니 잘 활용하시기 바랍니다.

Coffeescript이 좋은 언어인지에 대한 논란이 계속되고 있지만, Coffeescript의 사용이 늘어나고 있는것은 사실입니다. 실제로 node.js의 많은 모듈들이 Coffeescript로 만들어 지고 있기도 합니다. 저는 개인적으로 Coffeescript의 사용을 강력하게 추천합니다. 사용하기도 편하고 문법오류가 날 가능성이 현저하게 줄어드니까 말입니다.