Vue vs React

Outclass·2022년 3월 18일
0

뷰대리 : Vue vs React

목록 보기
1/5
post-thumbnail

이번에 일하게 된 회사에서 Vue를 사용하고 있어서, 새롭게 학습을 시작했다.

이전까지는 React만을 사용해보았기 때문에, 프론트엔드의 양대산맥(?)중 하나인 Vue를 새롭게 학습하게 되었다는 점에서 매우 흥미로웠다.

그러나 React를 사용하다가 Vue를 사용하게 되다보니, 두 언어간에 비교가 되는 것은 어쩔 수 없는 일. 그래서 개인적으로 사용하면서 느낀점들을 바탕으로 서로간의 차이와 특징을 정리해보았다.

이후에는 Vue중심으로 여러 핵심 기능에 대해 정리해보고, 간단히 React구현과 비교해보고자 한다. 다만 현재 학습하는 언어가 Vue이기 때문에 Vue중심의 소개가 될 것같다.

※ 아직 학습한지 얼마 되지 않다보니 내용에 다소 오류가 있을 수 있음을 감안해주시면 좋겠습니다!

  1. Vue는 프레임워크이고, React는 라이브러리이다.
    - 여기에서부터 많은 차이가 발생하는 것같다.
    - React는 구현하는데 자유도가 있는 편이고
    - Vue의 경우 정해진 문법 구조를 충실히 따라야 하는 편이다.
    - 따라서 React는 Javascript에 대한 숙련도가 충분하다면, 개발자가 주도권을 가지고 자유롭게 구현할 수 있다.
    - 이런 측면에서 Vue는 비교적 융통성이 떨어진다. React를 사용하다 Vue를 처음 접했을 때 다소 갑갑하게 느껴졌다.
    - 다만 이와 같은 특징 때문에 React의 경우 팀 프로젝트를 한다면, 코드 컨벤션을 충분히 통일해야 소통 오류나 충돌을 방지할 수 있다(커뮤니케이션 비용이 많이 들 수 있다). 단점이라면 단점인 셈

  2. 사용자수, 커뮤니티의 규모의 차이가 분명히 있다.
    - 사용자 편의성에서의 차이가 다소 있다.
    - 혁신의 속도에서도 차이가 있는 것으로 보인다. 사용자가 많은 만큼, React의 혁신 속도가 조금 더 빠른 듯하다.
    - 라이브러리 지원이나 익스텐션의 지원이라는 측면에서 React가 다소 나은 점이 있다.
    - 검색시 나오는 자료의 양도 체감적으로는 React가 더 많은 것 같다.
    - 타입스크립트의 적용에 React가 조금 더 최적화 되어있는 것으로 보인다.

  3. 구현방식, 구현형태에서 오는 차이가 있다.
    - React는 함수형 프로그래밍 형태로 방향을 완전히 잡은 듯하고, Vue는 아직 객체지향 프로그래밍 패턴의 흔적이 남아있다.(Vue도 함수형 컴포넌트를 만들 수 있는 것 같은데... 연구가 더 필요하다)
    - 예를 들면, script내에서 this를 쓴다던지...
    - script태그의 문법 구조도 사실은 React의 이전 문법인 class component시절의 구조와 비슷하다.
    - (함수형 프로그래밍 형태로 구현되는) React최신 문법이 가독성 측면에서는 비교적 나아보인다.

  4. 각자 강점을 갖는 hooks나 Sytactic Sugar들이 있다. 문법을 서로 참조하는 부분도 있는 듯하다.
    - 라이프사이클 hooks 측면에서 react는 useEffect 하나로 이것저것 다 할 수 있다. 처음 접근하긴 어렵지만 익히고 나면 간편하다.
    - vue의 경우 mounted와 created라는 hooks가 주로 쓰이는듯 한데... 다소 헷갈린다. (아직 숙지가 덜 되었다)
    - vue의 v-model같은 directive는 아주 간편하게 양방향 바인딩을 할 수 있어서, 매우 편리하게 다가왔다.
    - 누가누가 더 편한 문법 만들 수 있나 내기하는 중인 느낌으로 기능 업데이트마다 유용한 기능들이 추가되고 있어서, 둘다 노력을 많이 하고 있다는 느낌을 받는다. 다만, 혁신의 속도는 React가 조금 더 빠른 것 같다.(지속적인 버전 업데이트)

  5. Vue가 더 쉽다?
    - Vue가 더 쉽다는 의견에는, ‘정해진 대로 하면 된다’는 의미가 내포되어 있다고 본다. 그런 면에서 가이드대로 하면 되는 Vue가 다소 자유도가 높은 React에 비해 쉽게 다가올 수도 있다.
    - 그러나 코드의 가독성 측면, 어느 것이 더 직관적인가?라는 측면에서 볼 때 함수형 프로그래밍 컨셉으로 구현 가능한 React가 오히려 더 나은 면이 있다고 본다. 개인적으로는 React의 코드가 훨씬 눈에 더 잘들어오는 것 같다.
    - 따라서 사용자의 Javascript에 대한 이해도라던지, 어떤 각도로 보느냐에 따라 ‘어떤 언어가 더 쉬운가?’는 전혀 다르게 다가올 문제라고 생각된다.
    - 개인적으로는 오히려 React가 더 ‘손에 잘 붙는다’라고 생각한다. ‘무엇이 더 쉬운가’에는 다소 빗나간 대답일 수 있겠지만....

  6. 상태관리 라이브러리 Vuex vs Redux
    - Redux는 세팅과 구현이 복잡하다. 요즘 다른 라이브러리나 React Context를 사용하는 경우들이 많이 생겨나는 이유이기도 하다.(Redux Out!)
    - Redux보다는 Vuex로 구현하는 것이 확실히 더 편리하다. (이거 하나는 확실히 맘에 들었다)

  7. (지극히 개인적인) 종합평가
    • 종합적으로 평가할 때 React의 근소우위라고 본다. 만약 지금 신규로 프로젝트를 시작한다면 개인적으로는 React를 사용할 것을 권하고 싶다. 다만, 한쪽이 압도적으로 좋다는 것은 아니며, 직접 사용해볼 때의 체감이나 개인차가 있을 수 있기 때문에 직접 사용해보고 결정하는 것이 가장 현명할 것 같다. (Vue도 충분히 훌륭하다!)
profile
When you stop having big dreams that’s when you’ve died, despite not being buried yet.

0개의 댓글