티스토리 뷰

출처 : http://www.buggymind.com/

이전 글에서 "2014년에 배우고 싶은 프로그래밍 언어는?"이라는 제목의 설문조사를 실시했었습니다. 예상했었습니다만, JavaScript가 압도적(?) 1위를 차지했는데요. 웹 세상에서 JavaScript라는 언어가 차지하는 비중이 얼마만큼인지를 잘 보여주는 결과였던 것 같습니다.


http://ayudawordpress.com/insertar-javascript-en-wordpress/



SEE ALSO: 2014년을 함께할 프로그래밍 언어는?


그래서 이번 글에서는 알아두면 생산성을 높일 수 있는 JavaScript 프로젝트들을 소개하려고 합니다. (jQuery같은 정말 보편적으로 사용되는 프로젝트는 뺐습니다.) 이중에는 라이브러리도 있고, 완전한 프레임워크(framework)도 있습니다. 일별하신 다음에 용도에 맞게 가려 쓰시면 좋을 것 같구요. 제 취향에 따라 고른거라 공신력은 없습니다. 더 공신력 있는 자료를 원하시면 이 페이지 마지막에 있는 링크를 참고하세요.


사실 "JavaScript를 배워야하는 다섯 가지 이유들"이라는 글을 쓰려고 준비하면서 이런 저런 자료들을 찾아 봤었는데, 인상적인 문구 하나를 발견하고 나서는 포기했습니다. 이런 글이었죠.


"어쨌든 결국에는 배워야 할 언어니까 배워야 한다."


1. Angular.js


최근 가장 주목받고 있는 MVC 프레임워크죠. angularjs.org 가 웹사이트 주소입니다. 웹 사이트 대문부터가 코드들로 가득한 것이 심상치 않은데요. 일단 이 프레임워크를 사용하면 HTML과 Application 로직을 바인딩하기 위한 코드의 양이 엄청나게 줄어듭니다. View-Model 간 interaction을 처리하기 위해 우리는 그동안 정말 많은 삽질을 해야 했는데요. 그런 수고를 줄여주는 것이죠.


다만 Angular.js를 사용하려면 HTML 코드에 HTML이 아닌 코드들이 뒤섞이게 되는 문제가 있는데요. Presentation이 Model과 완전히 분리되어야 한다는 원칙이 좀 손해를 보게 되는 것이죠. HTML 문서와 응용 로직 사이의 결합도가 증가하기 때문인데요. 저는 개인적으로 이런 식의 프로그래밍을 싫어합니다만 HTML 디자인을 담당하는 개발자나 도구가 Angular.js를 수용하게 되면 개선될 수도 있겠습니다.


2. Underscore.js


JavaScript 개발시 생산성을 높여주는 다양한 API를 포괄하는 라이브러리입니다. Python과 유사한 Functional Programming을 할 수 있도록 도와줍니다. 그 이외에도 기능들이 많습니다. 웹사이트는 underscorejs.org 입니다.


3. D3.js


SVG를 활용한 이 엄청난 시각화 도구는 다양한 형태의 인포그래픽을 JSON 형태의 데이터를 사용해 실시간으로 렌더링할 수 있도록 해 줍니다. 그야말로 시각화의 끝판왕. 데이터를 보다 효과적으로 렌더링하는 목적을 달성하기 위해서는 반드시 배워야 하는 도구 중 하나. 웹사이트는 d3js.org


4. Node.js


Node.js는 JavaScript라는 언어의 적용범위를 Front-end에서 Backend 서버 개발로까지 확장시켰습니다. 이 프로젝트 덕분에 JavaScript는 범용적 언어라는 지위를 획득하게 되었다고 봐도 과언이 아닌데요. 이 플랫폼을 사용하면 웹 서버를 비롯한 다양한 형태의 서버를 아주 쉽게 만들 수 있을 뿐 아니라, 과거 독립적인 응용 프로그램에서나 가능했던 일들을 JavaScript로도 할 수 있게 됩니다. 웹사이트는 nodejs.org


5. two.js


SVG, Canvas, WebGL을 사용해 2차원의 이미지를 그릴 수 있도록 해 줍니다. 현재는 도형만 그릴 수 있습니다만 (텍스트나 이미지는 지원하지 않습니다.) 추후 더 확장될 것으로 예상됩니다만, 어쨌든 현재로는 그렇습니다. 웹 사이트를 가 보면 굉장히 다양한 (그리고 흥미진진한) 예제들을 발견할 수 있는데요. 어떤 것은 D3.js의 영역과 겹치고, 어떤 것은 아닙니다. 용도를 잘 구별해서 사용하는 것이 좋을 듯. 웹사이트 주소는 http://jonobr1.github.io/two.js/ 입니다.


6. Zebra


데스크탑 응용 프로그램에서 흔히 발견할 수 있는 그리드, 탭, 메뉴, 폼 등등의 요소를 포함하는 응용을 JavaScript로도 작성할 수 있도록 해 줍니다. 웹사이트는 https://github.com/barmalei/zebra 입니다.


7. Formula.js


엑셀이나 구글 스프레드시트에서 사용 가능한 함수들을 JavaScript에서도 사용할 수 있도록 해 주는데요. 이 웹 사이트에 가보면, 이 라이브러리에 포함되어 있는 함수가 여러분의 브라우저에서도 지원되는지 자동으로 테스트 해 주기 때문에 개발에 활용하기가 편합니다. 엑셀 매니아라면 환영할 만한 라이브러리. 웹사이트는 http://stoic.com/formula/ 입니다.


8. Chart.js


JavaScript로 차트를 그려야 한다면 피해갈 수 없는 라이브러리. 차트를 그리고 싶은 욕구가 샘솟도록 만드는 예쁜 차트들을 제공함. 웹사이트는 http://www.chartjs.org/


9. Parallel.js


JavaScript로 멀티코어 프로그래밍을 할 수 있도록 해 주는 라이브러리. 단 여러분의 브라우저가 WebWorker를 지원해야 함. 이 라이브러리를 사용하면 Map-Reduce 같은 프로그래밍 모델을 JavaScript 안에서 사용할 수 있게 됩니다. 단 물리적으로 분리된 시스템이 아니라, 여러 코어 상에서죠. 웹 사이트는 http://adambom.github.io/parallel.js/


10. Meteor


웹-앱을 손쉽게 만들 수 있도록 도와주는 오픈 소스 프레임워크. 웹-앱 개발자라면 반드시 검토해봐야 할 프레임워크 가운데 하나. https://www.meteor.com/


11. jQuery mobile


모바일 기기가 대세인 작금의 상황에 이 라이브러리를 빼먹고 넘어가면 섭섭할 듯. 터치에 최적화된 웹 프레임워크. jQuery == JavaScript 라고 생각하는 사람도 많은 상황이라, 현재 JavaScript 시장의 대세는 역시 jQuery. 모바일에서도 무시할 수 없기 때문에 jQuery 이야기는 안하려고 했으나 어쩔 수 없이 (Orz) 웹사이트는 http://jquerymobile.com/


12. Grunt


JavaScript를 사용한 개발과정을 자동화하고 싶다면? 프로젝트 관리를 자동화 하고 싶다면? JavaScript 프로젝트에도 빌드 도구를 도입하고 싶다면? 그렇다면 현재 대안은 딱 하나 뿐입니다. Grunt 상에서 실행되는 어마어마한 양의 플러그인 수가 Grunt의 인기를 반증합니다. 웹사이트는 http://gruntjs.com/


이 이외에도 많사오니 아래의 링크를 참고하세요. 지금 GitHub에서 가장 인기있는 JavaScript 프로젝트 100개의 리스트를 확인할 수 있습니다. (2013년 말 기준) 1위는 Grunt.


http://www.takipiblog.com/wp-content/uploads/2013/11/Javascript.jpg


http://www.takipiblog.com/2013/11/20/we-analyzed-30000-github-projects-here-are-the-top-100-libraries-in-java-js-and-ruby/

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함