필자는 React와 Vue에 대해 깊은 지식을 갖고 있지 않습니다.
다만 둘 다 사용해본 입장에서, 차이점에 대해 이야기해볼까 합니다.
- React는 자바스크립트 중심적이다
- Vue는 템플릿 중심적이다.
핵심 차이점은 이 2가지로부터 비롯된다고 느꼈습니다.
무엇이 더 성능이 좋은가?
Vue. 각종 벤치마크에서 Vue가 렌더링 성능을 앞서고 있음을 보여줍니다.
하지만 유의미한 차이는 아니라고 생각하는게, 어차피 인간의 눈은 60fps면 부드럽다고 느낍니다.
그래서 React 팀에서도 성능에 큰 관심을 갖지 않겠다고 공표했죠. 그냥 눈으로 보기에 부드러워 보이면 된다는겁니다.
무엇이 더 작성하기 편한가?
Vue. Vue는 React와 Angular 이후에 출시되었는데, 그래서 더욱 편리한 기능들을 많이 제공합니다.
자바스크립트에 대해 깊게 알지 않아도 되고, 단지 Vue에서 정한 직관적인 문법들만 따르면 됩니다.
그래서 러닝커브 자체는 Vue가 더 적습니다.
훌륭하게 추상화된 기능들을 제공하기 때문입니다.
어떤 아키텍처 패턴을 따르는가?
Vue - MVVM
React - View 그 자체. 딱히 따르는 아키텍처 패턴이 있다고 보기 어려움
MVVM은 굉장히 명확하며, 아래와 같이 동작합니다.
view - viewmodel- model을 명확히 분리하고, view(ui)에서 이벤트가 발생할 시 viewmodel을 통해 model(data)을 수정합니다.
특히, 이를 이루기 위해 Vue.js에서는 Proxy 패턴을 사용했습니다. 값을 set할때, render 함수를 호출하는 방식으로요.
무엇이 더 가벼운가?
라이브러리의 용량 크기를 말하는 것이라면, Vue가 더 가볍습니다.
필자는 무엇을 더 선호하는가?
그럼에도 불구하고 저는 React를 선호합니다.
이유는 다음과 같습니다.
1. React의 커뮤니티가 더욱 방대하다 - 레퍼런스가 많다.
2. 자바스크립트의 문법을 잘 알아야 쓸 수 있다 - 기본에 충실할 것은 반강제한다.
배울 레퍼런스가 많고, 논의가 활발하다는 것은 다양한 활용사례를 보고 효율적인 코드를 학습하기에 좋다는 뜻입니다.
또한 버그도 금방 발견할 수 있어서, 안정성에도 긍정적인 영향이 있다고 보고 있습니다. (절대적인건 아니라고 생각합니다)
하지만 무엇보다도 저는 2번 때문에 React를 선호합니다.
결국 라이브러리도 언젠가 사라질 수 있습니다. 그렇기에 기본(Core)를 절대 등한시해서는 안됩니다.
프론트엔드 개발자는 HTML, CSS, JS에 대해 잘 이해하는게 중요합니다.
Vanila Extract, Tailwind보다도 (S)CSS가 우선이고,
React, Vue보다도 JavaScript가 우선이라고 생각합니다.
React로 고도화해서 개발하다보면 결국 JS를 잘 사용해야 React도 잘 사용할 수 있다는 것을 깨닫습니다.
더 많은 활용과 응용을 위해서는 튼튼한 기본기는 필수라고 생각합니다.