[Frontend 기술 면접 대비] 시리즈는 Frontend 개발자로 취업하기 위해 내 프로젝트 경험과 지식들을 정리한 내용이다.
Vue.js : 사용자 인터페이스를 만들기 위한 프로그레시브 프레임워크
React : 사용자 인터페이스를 만들기 위한 JavaScript 라이브러리
Vue와 React의 가장 큰 차이점은 프레임워크와 라이브러리라는 점이다. 그렇다면 이 둘은 뭐가 다른걸까?
프레임워크 Framework
라이브러리 Library
React
는 전역 상태 관리, 라우팅, 빌드 시스템 등을 지원하지 않는다. Redux, Recoil, React-router-dom 등의 별도의 라이브러리를 사용해야 한다.React
는 파일별로 컴포넌트를 분리할 수 있으며 props 형태로 전달하거나 재사용하기 용이하다. Vue
는 새로운 컴포넌트를 만들기 위해 새로운 파일을 하나 만들고, template, script, style을 모두 다시 작성해야 한다.React
는 jsx 형태로 코드를 작성한다. 즉, JavaScript를 사용한다. Vue
는 HTML, CSS, JS 코드 영역을 분리해서 사용한다. 이 때문에 Vue
가 코드 가독성이 더 좋을 수 있다.React
이기 때문에 진입 장벽이 Vue
에 비해 더 높다. 라이브러리와 상태 관리, 그리고 관련 미들웨어 등 알아야 할 것이 많다.React
는 TypeScript와의 호환이 Vue
에 비해 쉽고 자유롭다.React
는 Vue
에 비해 월등히 사용량이 높고 변화에 빠르게 대응한다.React
는 Vue
에 비해 Plain JavaScript에 더 가깝다.함께 보면 좋은 글
프로젝트에서 Vue와 React를 사용했던 경험을 정리한다.
Vue를 사용한 프로젝트를 진행하고 나서, 이후 다른 프로젝트에선 React를 사용했다. 상태 관리와 컴포넌트 구성에 대한 개념이 덜 잡힌 상태에서는 Vue도 사용하기 쉽지 않았다. 하지만 Vue의 프레임워크 틀을 따라서 차근차근 프로젝트를 진행했다. 이후 프로젝트에서 React를 사용했는데, Vue가 React에 비해 쉽다는 말에 공감을 했다. 컴포넌트들을 재사용, props로 보내기 위해 전체적인 구조를 스스로 설계해야 했고, 필요한 라이브러리들을 직접 가져와서 사용하는 점이 Vue와 달랐다. Vue에 비해 많은 개발자들이 React를 사용하기에 래퍼런스와 업데이트가 많은 부분들은 React 개발에 도움이 되었다. 이후 프로젝트에선 TypeScript와 React Native 등 조금씩 범위를 확장해 여러 기술들을 사용할 수 있었다.