티스토리 뷰
소개
항상 바뀌는 자바스크립트. 새로운 라이브러리, 새로운 프레임워크, 새로운 언어… 즐거운 부분도 있지만 압도적인 양을 어떻게 받아들일까?
그것이 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.
결론
참고문헌
'거인의 어깨위에 서려는 > 트렌디한 개발자를 위한' 카테고리의 다른 글
ZSH 설정 팁 (for Mac) (1) | 2020.06.26 |
---|---|
Angular8 : 새로운 기능 요약 (0) | 2019.06.08 |
저는 React Native가 처음인데요 - 2 (0) | 2019.01.26 |
저는 React Native가 처음인데요 (0) | 2019.01.13 |
StateOfJS: 자바스크립트의 트렌드가 궁금하다면? (0) | 2018.10.28 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 그리고 상상력
- 이미지 여백주기
- git ssh 연동
- gradle
- 시간 관리
- retrofit
- 이미지 일괄 변경
- multiDex issue
- release build issue
- React Native
- go
- iterms
- 좋은 습관이란
- 소프트웨어 공학
- 쉽게 말하는법
- 공존이 필요해요
- 소름돋는필력
- 최은영작가님
- 스크럼
- Android
- 아키텍처
- MVP
- egghead
- node.js
- patch-packages
- 창의성을 지휘하라
- 안드로이드
- 애드 캣멀
- 구독료 계산기
- git 실수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함