on
Angular vs Vue vs React 2019
Angular vs Vue vs React 2019
개발 기술 스택 선정 시 여러 선택지가 있다. 백엔드의 경우 python django, java spring, php laravel, javascript express, ruby ruby on rails 등이 있다. 각각 언어가 있고 그에 맞는 프레임워크가 있다. 그렇다면 웹 프론트엔드의 경우 어떨까? 대표적으로 angular, vue, react 3가지가 있다. 그리고 vue의 경우 nuxt라는 프레임워크가 또 있다.(앵귤러는 잘 모르겠고 next가 프레임워크인지 여부는 잘 모르겠다.) 다행히 웹 프레임워크는 모두 javascript 기반이다. 이 또한 내가 javascript를 좋아하는 이유이다.
https://www.codeinwp.com/blog/angular-vs-vue-vs-react/
오늘은 위 링크에 있는 angular vs vue vs react의 2019년 상황에 대해 글을 써보고자 한다. 주의할 점은 이글은 위 링크를 번역한게 아니다. 영어문서를 읽고 대충 이해할 수준은 되지만 번역은 아직 벅차다. 위 링크에 대한 현황 요약 + 내 생각을 보탠 글이라고 생각하면 좋을 것 같다.
1. 히스토리(History)
Angular
앵귤러는 2010년 Google이 첫 버전을 선보였다. Typescript 기반의 프레임워크이고 2016년에 Angular2를 공개했다. 이때부터 AngularJS라고 하지 않고 Angular라고 부른다. 이글 작성 시간을 기준으로 가장 최신버전은 2018년 10월에 발표된 Angular7이다.
Vue
Vue는 전 구글 개발자였던 Evan you가 혼자서 개발했다. 어떤 기업이 주도해서 개발된게 아니다. 내가 아는 바에 따르면 Evan You 개인이 풀타임으로 기여해서 만들어진 오픈소스 프로젝트이다. 중간중간 크라우드펀딩으로 지원금도 모아서 1만 6천 달러에 육박한다고 한다. 현재 최신 버전은 2.17이고 얼마전 Vue3.0 베타를 선보였다. 이런 뷰야말로 가장 완전한 오픈소스이고 앞으로 오픈소스가 지향해야 할 방향이라고 생각한다. 이런 점이 내가 Vue를 좋아하는 이유 중 하나이다.
React
리액트는 페이스북 주도 하에 2013년 첫 버전을 선보였고, 최신 버전은 16.x 버전이다. 리액트도 좋고 훌륭하다. 이미 많은 기업에서 사용중이고 페이스북의 탄탄한 지원도 있다.
출처: https://www.codeinwp.com/blog/angular-vs-vue-vs-react/
2. 인기도( Popularity)
Github 프로젝트의 star 갯수
react랑 angular는 흔한 단어라서 구글 트렌드보단 github 프로젝트의 star 갯수를 그래프로 나타낸 것이다. react와 vue가 제일 활발하다. 놀라운건 vue가 현재 1위라는 점이다. 그만큼 커뮤니티와 인기도가 높다는 증거가 아닐까?
취업 시장 규모
아쉽지만 react와 angular를 요구하는 직업이 상당히 많다. 아쉽지만 vue가 많이 약세인 상황이다. 원티드나 로켓펀치만 봐도 React를 요구하는 기업이 상당히 많다. 근데 1년 전과 비교했을 때 vue도 간간히 보이는게 놀랍다. 난 앞으로 vue를 요구하는 기업이 점점 늘어갈 것이라 믿는다.
3. 커뮤니티(Community)
vue가 watchers와 stars가 가장 높지만, 오픈소스 기여자 수는 가장 낮다. vue는 오픈소스 커뮤니티가 주도해서 개발하고, react와 angular는 페이스북, 구글의 개발자들이 주도한다고 해석했다. 전술했지만 어떤 소속도 없이 커뮤니티에 의해 주도되는게 맘에 든다. 이러한게 올바른 오픈소스의 방향이라고 생각한다.
4. 러닝 커브(Learning curve)
Angular
앵귤러를 하려면 기본적으로 MVC와 Typescript를 알고 있어야 한다. 이는 이만큼 높은 러닝 커브를 요구한다. 상당한 시간을 들여서 공부를 해야 할 것이다. 아쉽지만 앵귤러에 대해선 잘 몰라서 설명할게 많지 않다.
Vue
뷰는 러닝 커브가 가장 낮다. ES6 문법을 모르고 그냥 사용해도 무방하다.(나는 당연히 es6를 추천한다.) 문서화도 잘 되어있고, 한국어로 번역되어 있는 문서도 있다. 그리고 Nuxt라는 vue 프레임워크가 검색 엔진 최적화와 서버 사이드 렌더링 등을 지원해서 더욱 쾌적하고 쉬운개발 환경을 구축할 수 있다. 내 경우 vue 기본 문법을 파악하는데 몇주가 걸리지 않았다.(물론 깊게 팔수록 어렵다). vvue-cli같은 좋은 시작 도구도 있어서 개발이 편리했다. 그리고 html 템플릿을 그대로 사용할 수 있어서 Jquery 등에서 마이그레이션도 하기 쉬울거라고 생각한다. 그리고 앵귤러와 리액트에서 차용한 개념들(디렉티브, 가상돔 등)이 있어서 이미 다른 두 프레임워크에 익숙하다면 더욱 배우기 쉽다. 가상돔의 경우 vue는 어느정도 최적화를 자동적으로 해준다.
React
리액트는 ES6 문법을 기본적으로 숙지해야 한다. ES6에 추가된 class나 block-scope 등을 사용하기 때문이다. 대신 Javascript를 잘 하면 러닝 커브가 상대적으로 낮고 리액트를 하면 Javascript 실력도 함께 키울 수 있다고 생각한다. JSX문법도 처음엔 난해하다고 생각할 순 있지만 개인적으로는 마음에 든다. vue에서도 JSX를 써보면 좋겠다는 생각을 했다.
5. 승자는?(Who wins?)
승자를 정하는건 무의미하다. 애초에 기술 발전 속도가 빠르고 단점을 개선해나간다. 그리고 프레임워크는 도구라고 생각한다. 장인은 도구를 가리지 않는다. react를 잘하는 사람이 angular를 못할까? 당장은 못하겠지만 빠르게 지식 습득이 가능할 것이다. 회사 상황과 프로젝트의 요구조건을 잘 따져봐가면서 3가지 중에 마음에 드는 것을 선택하면 된다.
나같은 경우엔 vue를 가장 좋아하고 셋 중 제일 잘 한다. 눈치챘을지도 모르겠지만 이 글에는 vue에 대한 내용이 가장 많다. 앵귤러는 별로고 추후에 공부한다면 react 정도를 공부해볼 생각이다.
from http://ashnamuh.tistory.com/9 by ccl(S) rewrite - 2021-01-05 13:25:43