프론트엔드와 객체지향프로그래밍
프론트엔드에서 OOP를 왜 하지 않는가라고 한다면 아무래도 Javascript가 OOP보다는 함수형프로그래밍을 하기에 좋게 만들어진 것도 있고 Typescript나 class등 언어가 나중에 만들어진 개념이다 보니 관성적으로 작용한 것도 있다고 생각된다.
무엇보다 JS에서 class를 하다 보면 this의 존재가 거슬리고 함수형에 비해서 복잡해진다. React의 경우에도 class형일 경우에는 그렇게 인기가 없었고 나중에 hook이 등장하고 functional이 본격화 되면서 주목을 받기 시작했다. 또한 클래스로 만들게 될 경우 번들링의 크기나, 트리쉐이킹에도 약점이 있다보니 함수형으로 더더욱 진화하고 있다고 생각한다.
프론트엔드를 개발하는 데 있어서 함수형 프로그래밍이나 객체지향 프로그래밍이나 뭔가 정석(?)이 아직 없다 보니 이게 맞나 하는 식의 과도기는 아직도 프론트엔드 진영에는 존재한다고 생각한다.
훨씬 class스럽고 OOP한 방식으로 잘 만들어져있는 앵귤러가 FE진영에서 선택을 받지 못한 것을 보면 js에서 class를 deep하게 다루는 것이 그렇게 쉬운 작업은 아니라고 생각된다.
리액트와 뷰에 대해서 리액트를 더 많이 쓰는가에 대해서는 앵귤러, 리액트 그리고 뷰 3대장인 시절에서 앵귤러는 복잡함과 비대함 그리고 앞서 말한 OOP방식으로 만드는 방식에 대한 거부감을 느끼면서 리액트, 뷰 양강체계가 되다가 결정적으로 Vue3를 만들겠다고 언급하고 난 이후 Vue3가 너무 늦게 시장에 나와버렸다. 이미 Vue3를 선언한 이상 사람들이 생태계 발전이 조금씩 눈치를 보면서 천천히 하게 되는데 리액트는 계속 발전 하는데 뷰가 상대적으로 머무르다보니 서서히 React 위주로 생태계가 재편이 되버렸다.
JSX 방식이 다른 프레임워크에 비해 적은 문법 뿐만 아니라 IDE지원, Typescript, babel, 스토리북, Next등 각종 생태계들이 React를 먼저 지원하게 되면서 React 1강 체계가 만들어졌다.
이후 Vue3가 나왔으나 Vue2에서 마이그레이션도 쉽지 않았고 이제 와서 Vue를? 하는 식으로 하다보니 많이쓰니까 많이 쓰게 되는 React가 되었다고 생각된다. React가 정말 좋은가에 대해서는 의문이 있지만 백엔드에서 Java개발자를 구하기 쉽기에 Java를 쓰게 되는 것 처럼 React 생태계와 개발자 구인이 쉽다보니 React가 더 커지게 되는 것 같다.