React VS Vue.js 근황
Tags: korean, react, vue
Published: 2019-10-14 03:06:18

먼저, 필자는 Vue.js 를 실 프로젝트에 투입 중이다. 따라서 약간의 Vue 편향성 글이 보일 수 있으니 React 개발자의 양해 바란다.

요즘 중국이 시끄럽다. 왜 시끄러운지는 검색만 해봐도 아니 정치 얘기 해봐야 글로벌 특성 상 좋을 거 없으니 여기까지 하겠다.

왜 굳이 중국 얘기를 하냐면...

먼저 한 가지 사례가 있어서 소개한다.

웹 기반의 데스크탑 앱 프레임워크라고 한다면 누구나 먼저 생각나는 프레임워크가 바로 Electron일 것이다. 당연하다. 이정도로 Github 네임벨류가 장난 아니라는 반증이기도 하지.
하지만 그 Electron을 개발자도 중국인이다.
그럼 nw.js 를 아는가? Electron을 깊이 파보지 않은 사람이라면 잘 모를 프레임워크지만, Electron 이전에 생겨났고, 게임 쪽에서 적극 활용 중인 프레임워크다. 웹 개발자에게는 어쩌면 생소할 수도.

더 재밌는 것은, nw.js 와 Electron 모두 중국인 손에 탄생한 프로젝트이다. 그리고 nw.js 는 인텔이, Electron은 Github이라는 기업이 관리하고 있다. (물론 Github은 MS 소유긴 하지만)

더 흥미로운 사실은, Electron을 탄생시킨 개발자 Cheng Zhao가 nw.js 프로젝트에 큰 기여를 했다는 사실이다. 하지만 인텔과 nw.js 개발자 Roger Wang은 이를 인정하지 않는 듯 하다. 그래서 처음에 Electron의 전신 Atom-shell 은 nw.js 의 전신 node-webkit 의 Fork 로 시작했고, 당연히 Cheng Zhao 은 Fork 하자마자 이를 차별화하여 독립할 생각으로 분리 작업을 시작하여 탄생한 게 바로 우리가 아는 Electron 프레임워크다.

여담으로 나는 nw.js 를 선택하여 Electron을 선택한 동료에 비해 뜨지 못했지만... 아쉽다고 생각하지는 않는다. 차라리 나는 떠도는 나그네 김삿갓 타입이 나을 수도 있거든.

자, 이제 본론으로 들어가겠다.

Vue 시작한 사람들이라면 알겠지만 Vue를 탄생시킨 사람이 중국인이다.
하지만 그는 구글에서 Angular 프로젝트에 참여하고 인텔에도 끼어 있는 굵직한 경력이 있는 보통내기 개발자는 아니라는 것이다.
Vue의 철학을 봤을 때, Angular나 React에 비해 이런 사상이 담겨 있을 수 있다.
물론 개인적인 생각이지만,

- Independent: 앵귤러는 구글, 리액트는 페이스북이란 기업이 관리하지만, Vue는 없다, 물론 스폰서가 있기는 하지만, 기업이 직접적으로 관여하지 않는 셋 중 유일한 프론트엔드 프레임워크다. 솔칙히 필자는 이게 마음에 들어 선택한 프레임워크다.
- We are the one: Vue는 컴포넌트의 정의를 모두 하나의 바구니에 담으려는 구조를 가지고 있다. 물론 이게 문제거리는 아니다. 유용한 측면도 있다. 이건 좀 메불메다. 완전히 구조화된 환경을 좋아하는 개발자도 있고, 한 곳에 뭉쳐있는 걸 좋아하는 개발자도 있으니. 물론 나는 후자라서 Vue를 택했지만. 앵귤러도 이에 가깝긴 하지만 각 역할별로 분리되어 있고, React는 특성 상 이런 구조와는 거리가 멀다. 반대라고 생각하면 쉽다.

사실 React가 괜히 대규모 서비스에 어울리는 프레임워크가 아니다. React는 애초부터 역할군을 분리하여 개발하기 때문에, 이런 점에서 설계자, 디자이너와 프론트의 역할이 아주 확실히 구분되어 있는 점에서 회사 입장에서는 매력적인 철학이다. 미국에서 리액트를 익혀야 하는 이유는 회사에서 주어진 업무에 집중하여 성과를 내는 철학에서 출발하는 페이스북 등의 서양 업체에 부합하다라 하겠다.
Vue는 반대로 구분 없이 컴포넌트 정의 안에서 뷰와 모델, 그리고 디자인이 하나의 확장자 Vue로 뭉쳐져 있다. React 처럼 작정한다면 분리할 수는 있지만 그러기엔 각 역할의 난이도가 오히려 올라간다. 즉, 개발자는 디자이너와 프론트, 백엔드인데 프론트엔드가 더 중요하거나, 아니면 풀스택의 역할이 더욱 커진다. 이는 개발군이 애매한 포지션에 있는 한국을 비롯한 중국, 일본 회사에게는 오히려 플러스 요소인 거고, 개발자들이 이를 더 잘 알기 때문에 접근이 쉬운 Vue가 한국에서는 리액트에 비해 더욱 핫할 수밖에.

내 입장에서는 지금 지랄같은 SI/SM 시장에서 가장 어울리는 프론트엔드 프레임워크를 택하라고 한다면, 나는 주저없이 Vue를 선택할 것이다.
왜냐면, 지금 한국에서 개발하는 꼬라지가 중국과 하등 다를 게 없기 때문이다.
중국에서 개발했던 경험이 있다면 공감할 것이다. 일본도 마찬가지.
물론 미국물 먹거나 영국물 먹은 개발자라면 좀 이해가 안 갈수도 있다. 그건 이해한다.
엔터프라이즈급 프레임워크인 자바의 스프링을 한국에서는 10%조차 재대로 활용 못하는데 말이다. 그러면서 느리다고 지랄. 이럴거면 스프링 뭐하러 쓰냐.
하긴, 프레임워크라고 주장하지만 공통 컴포넌트 빼면 정작 Scaffold 주제인 병신같은 정부표준 덕분에.

어쨌든, 결론은 아시아에서는 현재 핫한 프레임워크가 Vue고, 서양은 React 편을 들고 있다.

구글 트랜드만 봐도 알 수 있다. [링크를 클릭하시라](https://trends.google.com/trends/explore?q=Vue.js,reactjs).

![지역별 Vue 검색량](https://thepracticaldev.s3.amazonaws.com/i/iocq0yu268inyihg90l6.png)

먼저 Vue 검색 트랜드를 보면, 생각보다 대한민국의 검색량에서 Vue가 압도적이고, 중국과 일본 또한 Vue 검색이 많다. 그 외에 유럽에서도 슬금슬금 비율이 오르고 있지만 여전히 React가 앞서며, 미국과 캐나다는 반대로 React가 압도적으로 앞서고 있다.

물론 여기서 결론 내린다면야 서양 갈 땐 React 쓰라고 하면 된다. ㅋㅋ

![지역별 검색량 추이](https://thepracticaldev.s3.amazonaws.com/i/vlylcgju1mplqrwwcinw.png)

다음은 Vue와 React 의 검색량 비율 차이인데, 일단 중국은 인구수로 색상을 찐~하게 넣어버렸다. 하지만 이건 중요하지 않다, 중요한 건 바로 검색 비율인데,

2019년 10월 14일 기준 검색 관심도
- 중국: Vue 100%, React 72%
- 한국: Vue 42%, React 17%
- 일본: Vue 15%, React 2%
- 미국: Vue 3%, React 11%
- 러시아: Vue 5%, React 5% (독일 또한 이 비율)
- 영국: Vue 3%, React 8%
- 프랑스: Vue 4%, React 9%

마지막으로, 비록 국가별로는 이렇지만, 여전히 React가 인기 검색어임은 확실하다는 점.

![전 세계 검색 추이](https://thepracticaldev.s3.amazonaws.com/i/y3uopdhlmy2psej3cix2.png)

그러하다.

결론을 내리자면, React는 패키지 특화, Vue는 서비스 특화된 프레임워크라고 개인적으로 결론을 짓긴 했는데... 이러니 저러니 해봐야 현실은 위 프론트엔드 프로젝트 수도 많지 않고, 결국 jQuery를 쓰게 된다는 좆같은 현실.

시발. 끗.