티스토리 뷰


다음 글의 번역입니다. 문제시 삭제하겠습니다.

[The Languages And Frameworks You Should Learn In 2016]

If writer does not want this article, please contact me.(han41858@gmail.com)


- 원글의 작성시점은 2015년 12월 11일입니다. 문장의 시점에 유의하세요~



 2015년 소프트웨어 개발 환경에는 큰 변화가 일어났다. 새롭게 발표되어 인기를 끈 언어가 있었고, 중요 프레임워크나 툴이 새로운 버전이 발표되기도 했다. 아래 글에 그 중 우리가 생각하는 가장 중요한 것들을 살펴보고 어떤 것이 2016년에 공부할 가치가 가장 높다고 생각하는지 적어본다.


* 트렌드

- 백엔드에서 프론트엔드로 전환

 최근 몇년간, 웹앱의 업무 로직이 백엔드에서 프론트엔드로 이동하는 경향이 있으며, 백엔드는 단순한 API 를 위한 용도로 전환되고 있다. 이로써, 프론트엔드 프레임워크가 좀 더 중요해진다.


- 빠른 브라우저 릴리즈

 2015년 웹 플랫폼에 대한 또다른 주목할만한 발전은 Edge 웹 브라우저의 발표다. Internet Explorer 를 더 나은 인터페이스와 빠른 성능으로 개선한 버전이다. Edge 는 IE 와는 다르게 Firefox 와 Chrome 과 같이 빠른 릴리즈 일정을 도입했다. JavaScript 생태계는 빠른 업데이트를 통해 JavaScript 와 Web 표준을 몇 년이 아니라 몇 주 안에 도입하는 환경으로 가고 있다.

 

- Flash 의 죽음

 드디어 이루어졌다! YouTube 는 올해(2015년) Flash player 를 버리고 HTML 로 전환했다. Firefox 는 Flash 플러그인을 초기세팅에서 막기 시작했다. 강력한 Adobe Flash creation suite 가 이름을 Adobe Animate 로 바꾸고 HTML5 export 를 지원함에도 불구하고 말이다. 이제 웹 플랫폼은 더 밝은 길로 가는 문을 활짝 열게 되었다.

 


* 언어와 플랫폼

 Python 3.5 가 올해 발표되었고 Asyncio 와 같은 다양한 기능들이 추가되었다. Asyncio 는 node.js 와 비슷한 이벤트 루프와 type hint 를 제공한다. Python 3 는 점점 인기를 얻고 있고, 우리는 이전 버전의 Python 2 보다 Python 3 를 강력하게 추천한다. 거의 모든 라이브러리가 Python 3 에서 동작 가능하며 기존 코드를 업그레이드할 좋은 기회는 바로 지금이다.

 

 PHP7 의 새 버전이 발표되었으며, 이 버전에서 많은 이슈를 해결하고 새로운 기능을 도입하면서 속도도 향상되었다(참고). PHP7 는 PHP 5.6 와 비교하여 두 배 정도 빠르고 WordPress 와 Drupal 과 같은 대규모 코드베이스 시스템(역주 : 코드 관리 시스템)과 CMS(역주 : Contents Management System)에 큰 영향을 줄 것이다. 우리는 업데이트된 버전의 PHP 7 를 지금 당장 사용하기를 권한다. 그리고 좀 더 나은 속도를 원한다면 다른 언어로 바꿀 생각을 하지 말고 HHVM 을 확인해보라. Facebook 에서는 운영/개발 하는 데에 HHVM 을 사용하고 있다.


 JavaScript 는 ES2015 (ES6 라고도 부르는) 로 업데이트 되었다. 이 버전에서 상당히 새로운 기능 추가가 있었다. 훌륭한 ES2015 를 빠른 배포 일정으로 브라우저들이 도입하는 데에 감사하며, Babel.js 과 같이 이전 브라우저를 지원하는 툴이 도움이 될 것이다.


 Node.js 는 올해(2015) Node.js 와 io.js 로 나눠졌던 커뮤니티가 다시 통합되면서 많은 변화가 있었다. 통합의 결과로, 크게 두 개의 버전의 Node 를 사용할 수 있게 되었다. 대규모 회사나 현재 운영되는 프로젝트에 안정적으로 지원하는 LTS (long term support) 버전이 있으며, JavaScript  기능을 빠르게 도입하는 non-lts 버전이 있다.


 Swift 2 가 올해(2015) 초 릴리즈되었다. Apple 의 모던 프로그래밍에 대한 비전이며 iOS 와 OS X 앱의 개발을 돕는다. 몇주 후, Swift 는 오픈소스가 되었으며 Linux 에 포팅되었다. 이로써 백엔드 서버측의 개발이 Swift 로 가능해졌다.


 Go 1.5 버전이 몇 달 전 발표되어 아키텍처의 중대한 변화를 이끌고 있다. 올해 인기를 끌기 시작하여 빠른 스타트업과 오픈 소스 프로젝트에 도입되고 있다. 이 언어는 상대적으로 간단하고, 배우는 데에 한 주면 충분할 것이다.


 TypeScript 는 정적으로 작성되어 JavaScript 로 컴파일되는 언어이다. Microsoft 에 의해 만들어졌고 Visual Studio 와 오픈 소스인 Visual Studio Code 에디터와 완벽하게 호환된다. Angular 2 또한 이 언어로 작성되면서 큰 인기를 끌 것이다. 정적 타이핑은 대규모 팀과 대규모 코드베이스 시스템에 적합하며, 이들 중 하나를 도입하려 한다면, 의심하지 말고 TypeScrypt 를 시도해보는 것이 좋다.


 좀 더 모험을 하기 원한다면, Haskell Clojure 와 같은 함수형 언어에 도전해볼 수도 있다. 또한, RustElixir 와 같은 고성능 언어도 있다. 프로그래머를 직업으로 원한다면 "career language" 라고 할 수 있는, 8번째 버전에서 멋진 기능이 추가된 Java 나, 크로스 플랫폼을 가능하게 하는 Visual Studio Code 와 .net 코어에게 감사하고 싶은 C# 를 공부하는 것도 도움이 될 것이다.


하나 이상 해보기 : Python 3, Go, PHP 7, ES2015, Node.js, Switft, TypeScript



*  JavaScript 프레임워크

 JavaScript 는 웹 개발 스택에서 아주 중요한 위치를 차지한다. 그래서 우리는 별개의 섹션으로 분리하여 설명한다. 올해(2015) 두 개의 새로운 표준이 있었다. Service WorkersWeb Assembly 는 어떻게 웹 앱을 구성하고 개발할 지에 대한 가이드를 제공한다. 또한 2016년에 주의 깊게 봐야할 많은 프레임워크들이 존재한다.


 Angular.js 는 대기업에서 도입할 수준의 JavaScript 를 선도하는 프레임워크가 되었다. 다음 메이저 버전이 곧 출시될 것이라 알려졌고 올해(2015) 초 Angular 2 라는 이름으로 발표되었다. Angular 1 의 코드가 전체적으로 재작성되었고 상당한 성능 향상을 이끌어냈다. Angular 2 는 엔터프라이즈급 프레임워크가 될 것이 확실하고, Angular 2 에 대한 경험은 당신의 경력에 큰 도움이 될 것이다. 우리는 몇 달만 기다려서 Angular 2 의 최종 버전이 나오면 도입하기를 권하지만, 스타트 가이드는 지금 확인 가능하다.


 React 는 2015년에 내내 상승세를 이어오고 있고 새 버전이 발표될 것으로 보이며 새로 시작하는 프로젝트들에서도 React 를 선택하고 있다. React 는 새로운 개발툴을 몇달 전에 발표했다. Facebook 은 또한 안드로이드와 iOS 모바일 앱을 작성할 수 있는 React Native 를 발표했고 native 프론트엔드와 백그라운드 JavaScript 스레드를 React 로 통합할 수 있게 되었다. 올해 우리가 작성한 React 의 가이드를 참고하라.


 Polymer 1.0 이 5월에 발표되었다. 이 버전은 첫번째 안정화 버전이며 프로젝트에 도입 가능한 버전이다. Polymer 는 HTML 과 JS, CSS 를 독립적인 위젯의 형태로 만들어 앱에 적용할 수 있는 단위인, Web Components 를 기반으로 한다. Web Components 는 현재 Chrome 과 Opera 에만 지원되지만, Polymer 는 모든 브라우저를 지원한다.


 Ember.js 의 새 버전이 나왔다. Ember 2 는 모듈화를 도입하고 사라진(deprecated) 기능을 정리하면서 코드를 최적화시켰다. Ember 는 프레임워크를 업데이트하기 쉬운 방향에 초점을 맞추며 의미있는(semantic) 버저닝과 관리 정책을 사용하고 있다. 안정성있는 프레임워크와 쉬운 마이그레이션을 원한다면 Ember 를 시도해보라.


 Vue.js 는 유저 인터페이스를 구성하는 데에 반응형(reactive) 컴포넌트를 제공하는 새로운 라이브러리이다. 이 프레임워크는 데이터 바인딩, 모듈 구성과 조합을 제공한다. 이는 React 와 비슷하지만 virtual DOM 을 사용하지 않고 오로지 브라우저에서만 동작한다. 단기간에 Vue 커뮤니티는 크게 활성화되었고 웹 인터페이스를 구성하는 실용적인 툴로써 자리잡았다.


하나 해보기 : Angular 2, React, Ember.js, Vue.js, Polymer, Web Components, Service Workers




* 프론트엔드

 Bootstrap 은 작년(2014) 에 더욱 인기를 끌었고 웹 개발의 표준이 되다시피 했다. Bootstrap 4 버전이 몇 달 안에 나올 예정이며 flex 박스 모델과 SASS 를 도입한다. 버전 2와 3에서 몇년간 봤던 것과 비교하여 더 부드러운 트랜지션 효과를 지원하며, 버전 4 를 더 쉽게 배울 수 있을 것이다.


 Foundation 은 Bootstrap 을 대체할만한 또 다른 프레임워크이다. 올해(2015) 초에 모듈화에 초점을 맞춘 버전 6가 발표되었으며, 빠른 로딩 타임을 위해 필요한 모듈만을 로드할 수 있게 되었다.


 MDL (역주: Material Design Lite) 는 머티리얼 디자인을 웹 앱에 적용할 수 있는 구글의 공식 프레임워크이다. 올해(2015) 초 발표되었으며 Polymer와 같이 구글의 다른 프레임워크들과 비슷한 목표를 가지지만 훨씬 사용하기 쉽다. 우리는 이전에 MDL 과 Bootstrap 을 비교하는 멋진 글을 작성했다.


 CSS 프리프로세서가 계속 발전하고 있다. LessSASS 가 현재 가장 인기있으며, 비교해볼만한 가치가 있다. 하지만 Bootstrap 4 에서 SASS 를 도입하면서 2016년에는 SASS 가 Less 보다 좀 더 우위에 있는 것 같다. 또한, PostCSS 툴의 새 버전이 나왔고 사람들에게 알려지고 있지만, 우리는 개발 목적 이외에는 경험해본 프리프로세서에 대한 것에 더 집중하기를 권장한다.


하나 이상 해보기 : Bootstrap, MDL, Foundation, SASS, LESS, PostCSS



* 백엔드

 지난 몇년간 웹 개발 트렌드는 명확하다. 더 많은 앱 로직이 프론트엔드로 이동하고 있고 백엔드는 API 를 다루는 데에 집중하고 있다. 그러나, 아직 전통적인 HTML 기반의 웹 앱의 영역은 남아있기에, 전통적인 풀스택 프레임웍을 공부하는 것도 중요하다.


 당신이 어떤 언어를 선호하는지에 따라서, 다양한 선택이 존재한다. PHP 유저를 위해서는 Symfony, Zend, Laravel (API 를 위한 경량화 버전인 Lumen), Slim 등이 있다. Python 유저를 위해서는 DjangoFlask 가 있고, Ruby 유저를 위해서는 RailsSinatra 가 있다. Java 유저를 위해서는 Play 와 Spark 가 있으며 Node.js 유저를 위해서는 ExpressHapi, Sails.js 를 사용할 만 하다. 마지막으로 Go 유저는 Revel 을 권장한다.


 AWS Lambda 가 작년(2014) 발표되었지만, 컨셉이 이제야 정립되었고 이제 솔루션에 도입할 준비가 되었다. AWS Lambda 는 백엔드 서버를 온전히 대체하며 무한히 확장 가능한 서비스이다. 구체적인 조건이나 API 를 정의하는 것으로 함수의 정의가 가능하다. 이로써, 그동안 생각하지 못했던 서버없는 백엔드의 구성이 가능하다.


 또다른 트렌드는 JekyllOctopress 와 같은 정적 사이트 생성기이다. (전체 목록은 이곳을 참조) 이 툴들은 수많은 텍스트와 이미지와 같은 소스 파일들을 렌더링된 HTML 페이지로 구성된 웹사이트로 만들어준다. 이전에 관리자 도구와 DB를 이용하여 WordPress 블로그를 만들었던 개발자라면, 앞으로 HTML 페이지를 생성하여 정적 버전으로 업로드하는 것을 선호할 것이다. 이 방식은 해킹을 방어할 백엔드가 없고 관리할 DB가 없기 때문에 보안 측면에서 이점이 있으며, 환상적인 성능을 자랑한다. MaxCDN 이나 CloudFlare 와 같은 CDN 을 이용하면, 사용자가 웹사이트를 요청하고 받는 데에  지연시간을 상당히 줄일 수 있을 것이다.


하나 해보기 : 풀스택 백엔드 프레임워크, AWS, Lambda, 정적 사이트 생성기




* CMS (역주 : Contents Management System)

 우리는 이제 두 개의 가장 유명한 CMS 시스템을 다룬다. 두 개 모두 PHP 로 작성되었으며, 도입하고 배포하기 편리하다. PHP 7 의 발표와 함께 더욱 혜택을 보게 되었다.


 최근 몇 년간 WordPress 는 단순한 블로깅 플랫폼 이상이 되었다. WordPress 는 플러그인들과 함께 어떤 형태의 웹사이트던지 구성할 수 있는 CMS 프레임웍으로 발전했다. 고품질의 WordPress 테마는 큰 시장을 이루었고, 많은 프리랜서들이 WordPress 개발로 생활을 할 정도가 되었다. WordPress 를 REST API 백엔드로 사용할 수 있도록 하는 WP-API 와 같은 프로젝트도 있다.


 Drupal 8 이 올해(2015) 발표되었다. 현대적인 개발 케이스에 맞게 온전히 재작성하는 것에 초점을 맞췄으며, Symfony 2 컴포넌트와 Composer 패키지, Twig 템플릿 엔진을 사용한다. 수백만개의 웹사이트가 Drupal 로 동작하며 다량의 컨텐츠를 다루는 무거운 포털에 좋은 선택이 될 것이다.




* 데이터베이스

 올해(2015)들어 웹 개발자 커뮤니티에서는 NoSQL DB 에 대한 열정을 잃고 Postgres 나 MySQL 과 같은 관계형 DB로 회귀하고 있다. 주목할만한 트렌드는 RethinkDBRedis 이며, 2016년에 사용해볼 것을 추천한다.


 Postgres 는 가장 유명한 관계형 DB 엔진이며, 많은 커뮤니티 활동과 함께 지속적인 새로운 기능을 선보이고 있다. 9.5 버전이 곧 나올 예정이다. 이 버전에서 스키마없는(schema-less) 데이터 형식인 JSONB 를 지원하여 NoSQL DB 에 대한 어떠한 요구도 충족시킬 수 있게 되었고, INSERT 나 UPDATE 와 같은 쿼리를 단순화하는 긴 지연 upsert 를 지원한다. 2016년에 더 자세한 내용이 발표될 예정이다.


 MySQL 은 오픈 소스 DB 시스템 중 가장 유명하며, 호스팅 업체에서 제공하는 가장 많은 DB 이다. MySQL 5.7 버전에서도 스키마없는 데이터를 저장하는 JSON 칼럼을 지원한다. 백엔드 개발에 지금 당장 써보고 싶다면, 호스팅 업체를 확인해보라. 이미 지원하고 있을 것이다. 이전 버전이 동작하고 있다면, JSON 타입은 사용할 수 없다. MySQL 은 XAMPP 나 MAMP 와 같은 인기있는 패키지에 포함되어 도입을 간편하게 하고 있다.


하나 해보기 : Redis, RethinDB, MySQL/MariaDB, PostgreSQL




* 모바일 앱

 모바일 플랫폼은 언제나 진화하고 있고 스마트폰 하드웨어는 이제 낮은 등급의 랩탑 성능과 비슷해졌다. 이 말은, 웹 기술을 이용하여 좀 더 부드럽고 native 와 같은 동작을 제공하는 의미에서 하이브리드 모바일 프레임워크가 중요해졌다는 것이다.


 우리는 이미 하이브리드 모바일 프레임워크에 대한 훌륭한 글을 작성했으며, 확인해볼 것을 권한다. 모바일 앱 개발에 적합한 프레임웍으로 이미 있기있는 Ionic 프레임워크와 최근 1.0 버전을 발표한 Meteor 가 있다. Facebook 은 React 컴포넌트를 백그라운드 JavaScript 스레드로 돌리면서 native UI 를 갱신하는 방식의 React Native 를 발표했고, iOS 와 안드로이드에 거의 동일한 코드로 이것을 사용할 수 있을 것이다.


하나 해보기 : Ionic, React Native, Meteor



* 에디터와 도구

 Atom 에디터는 올해(2015) 1.0 버전에 도달했다. Atom 은 웹 기술을 이용해 만들어진 무료이면서도 강력한 코드 에디터이다. 적용 가능한 많은 패키지가 이미 있으며 대규모 커뮤니티가 활성화되고 있다. Atom 은 효과적인 자동완성 기술을 제공하며 코드 리팩토링이나 코드 스타일 가이드에 대한 플러그인도 지원한다. 언급할 것도 없을 정도로 다양한 테마들이 존재하며 CoffeeScript 와 CSS 를 이용하여 커스터마이징 할수도 있다. Facebook 은 이 확장성을 이용하여 Nuclide 에디터를 출시했다.


 Microsoft 는 올해 초 Visual Studio Code 에디터를 출시하여 모두를 놀라게 했다. 이것은 많은 언어를 지원하는 경량 IDE 이며 윈도우, 리눅스, OS X 에서 동작한다. 또한, 강력한 IntelliSense 코드 자동완성과 ASP.NET, Node.js 를 위한 디버거를 내장하고 있다.


 Node.js 를 위한 패키지 매니저인 NPM 은 프론트엔드 개발자들과 node 개발자들에게 폭발적인 인기를 끌면서, 표준 패키징 툴이 되었다. NPM 은 JavaScript 의존성을 관리하는 가장 쉬운 방법이며 시작하는 방법도 간단하다.


 개인 개발자에게도 Git 은 필수가 되었다. Git 은 서버없는 모델이며 어떠한 폴더도 버전 관리 저장소로 만들 수 있고, Bitbucket 과 Github, 유선 연결된 어떠한 컴퓨터에도 push 할 수 있다. 아직 Git 을 사용하지 않았다면, 2016년에 당신이 공부할 목록에 Git 을 넣기를 권장한다.


하나 해보기 : Atom, Visual Studio Code, NPM, Git



* Things 만들기

 라즈베리파이 재단은 올해(2015) 이른 크리스마스 선물로, 충분히 빠르고 효율적이면서 $5 인 Raspberry PI Zero 를 발표했다. 리눅스로 동작하기 때문에 서버로 사용할수도 있고, 스마트 거울과 같은 홈 자동화 장치를 만드는 데에도 사용할 수 있으며, 단순한 장비에 장착하여 당신이 꿈꾸기만 했던 "인터넷 가능한 커피 머신"을 만들수도 있다. 2016년은 라즈베리를 사용해볼 때다.



* 놀라운 2016 년에 함께하세요!

 우리는 놀라운 2015년을 보냈지만 2016년은 더욱 놀라울 것으로 보인다. 당신이 2016년에 배우고자 하는 목록은 어떤 것이 있는가?

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
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
글 보관함