티스토리 뷰

소개

항상 바뀌는 자바스크립트. 새로운 라이브러리, 새로운 프레임워크, 새로운 언어… 즐거운 부분도 있지만 압도적인 양을 어떻게 받아들일까?

그것이 State of JS의 출현이었다. 올해도 마찬가지로 2만명 이상의 개발자가 참여한 결과 과연 작년에 비해 얼마나 바뀌었을까?


자바스크립트 취향

ES6 사용자가 86.3%로 독보적이다. 다음은 Typescript 46.7%가 사용한다고 응답했다. ES6는 주로 Babel을 사용해 실행한다. 예전에는 CoffeScript가 오랫동안 고독히 자리를 차지하고 있었지만 이제는 ES6가 그 자리를 차지하고 Typscript, Flow 등 다양한 언어로 코드를 작성해서 JavaScript로 컴파일한다는 인식이 명백히 잡혔다.

ES6 > TypeScript > Flow > Elm > Reason


프론트엔드 프레임워크

프론트엔드쪽은 주요 논쟁지역이었는데 이제 점점 명확해지고 있다고 한다. React가 64.8%로 강력하고 Vue.js (28.8%)가 Angular (23.9%)를 넘어섰다.

Vue.js는 2년전 27% 응답자가 한번도 들어보진 라이브러리였는데 현재 1.3%로 그 수치가 떨어졌다. Angular는 사용량이 많은 것에 비해 만족도가 가장 낮은데 많은 사람들이 그 원인을 이전버전과 현재 버전간의 차이로 인한 혼동으로 보았다. 그 말은 내년에는 또 어떻게 될지 모른다는 이야기다.

React > Vue.js > Angular


데이터 레이어

데이터 레이어는 데이터를 관리하고 전송하는데 사용되는 기술들을 묶은 것이다. Redux가 가장 많이 보급된 도구인 것은 의심할 여지가 없지만 2년사이 5%에서 20%로 증가한 GraphQL와 GraphQL의 클라이언트를 위한 Apollo 의 성장을 지켜봐야 할 것 같다.

Redux > GraphQL > Apollo


백엔드 프레임워크

자바스크립트 백엔드는 최근 큰 발전이 없었다. 하지만 나머지 에코 시스템의 열광적 페이스에 비춰봤을 때 저주라기보다 축복이라고 말할 수 있겠다. 매년 새로운 프레임워크가 많이 나옴에도 Express와 대적해 충분한 모멘텀을 넘기지 못한다고 한다. Next.js는 완전한 기능을 갖춘 Express와 비교할 순 없지만 리액트 앱의 서버사이드 렌더링 문제를 해결해준다는 부분에 있어서 최근 관심을 꽤 받고 있다.

Express > Next.js > Koa > Meteor


테스팅

테스팅 쪽은 지배적인 솔루션 없이 많은 도구들이 파이를 나눠갖고 있다. 그럼에도 개발자들은 자신의 테스팅 솔루션에 대체적으로 만족하고 있다. Mocha가 여전히 가장 많이 사용되고 있고, Jest는 가깝게 따라잡고 있다.


모바일 & 데스크톱

Electron과 React Native가 각각 데스크톱과 모바일 앱 빌딩을 위한 리딩 솔루션이 되고 있다. 이 둘은 비슷한 만족도를 보인다. 최근 Airbnb가 React Native를 다음 제품에서 빼기로 결정한 글이 있다. React Native를 사용하지 않고 크로스 플랫폼 앱을 React 패턴을 사용하지 않고 자바스크립트로 작성하길 원한다면 Weex (Vue.js 에코시스템을 사용하는)를 확인해보라고 한다.

Electron > React Native > Native Apps > Cordova > Ionic


다른 도구

브라우저 API

Service Workers >= PWA > Web Components > WebGL, Web Animation API

빌드 도구

Webpack >> Gulp > Grunt

유틸리티 라이브러리

lodash >= moment >> jQuery >> underscore

텍스트 에디터

VS Code > Sublime Text = Vim = WebStorm > Atom


수상

가장 만족도가 높은 라이브러리는 Jest 다. 그 다음이 Express = GraphQL.

가장 관심을 많이 가지는 기술은 GraphQL

놀랍게도 올해 가장 많이 사용된 라이브러리는 React 였다. 그 다음이 Express.


결론

전반적으로 작년에 관찰한 트렌드의 연속이었고, 프론트 쪽은 고요한데 반해 데이터베이스에서 데이터를 어떻게 클라이언트로 가져올지는 아직 정착되기 멀었다. GraphQL이 앞으로 큰 영향을 미치지 않을까 한다. 그리고 GraphQL에 이은 솔루션들도 백엔드와 상태관리 레이어쪽에서 나오지 않을지 전망하고 있다.


참고문헌

https://2018.stateofjs.com/



댓글