[백업][가리사니] svelte 적용 6개월 후 svelte, vue, react 비교
javascript, svelte, typescript, vue.js
이 문서는 가리사니 개발자 포럼에 올렸던 글의 백업 파일입니다. 오래된 문서가 많아 현재 상황과 맞지 않을 수 있습니다.
필자는 프론트 개발자가 아니라서 프론트에 대한 생각이 프론트 개발자와 다를 수 있습니다. 낮은 진입 장벽, 쉬운 사용, 유지보수 관점에서만 살펴봅니다.
이전글에서 이어지는글 입니다.
가리사니의 FE는 시간이 지남에 따라 바닐라 -> 라온(직접만든 템플릿엔진) -> React -> Vue.js -> Svelte 로 작성되었습니다. Svelte 에서 한동안 정착할 줄 알았는데 6개월만에 다시 Vue.js로 다시 만들었습니다.
다시 Vue.js 로 만든 이유.
- 가리사니는 SPA를 가정하고 만든 사이트지만 Svelte는 SPA를 전혀 염두하지 않았다.
- 사용자가 만든 SPA플러그인이 여러 개 존재하지만 4~5개를 6개월간 써본결과 쓸 수 없을 정도로 버그가 많다.
- 버그는 주로 페이지 이동시 이벤트가 불리지 않거나, 페이지가 바뀌지 않거나 이벤트가 소멸되지 않는 등 조금 큰 버그들이며 심지어 소멸되지 않은 이벤트가 무한호출되는 경우도 존재했다.
- 사실 패치를 기다리고 있었지만 공식 지원이 아닌 사용자들이 만든 플러그인어여서 그런지 6개월이 지나도록 나아지질 않았다.
Svelte, Vue.js, React 를 다 써보고 느낀 장단점, 추천/비추천 유형.
Vue.js
- 진입장벽 : 하
- 장점
- 쉽다.
- 렌더링 부분과 코드부분이 뒤섞여 있지 않고 분리되어 있어서 가독성이 뛰어나며, 이 둘 이 섞인 이상한 코드가 만들어질 확률이 현저히 낮다.
- 단점
- 컴포지션 API로 조금 나아졌지만 코드가 조금 비대한 편이다.
- 반복문에서 key지정이 귀찮다.
- vue 3.0에서 문법적으로 변경된 점이 있는 편이다.
- 이건 가볍게 보면 안된다 (앵귤러가 버전마다 문법을 바꾼게 망한 결정적 이유라고 생각하기 때문에.)
- 때문에 플러그인(컴포넌트)이 호환되지 않는다.
- 추천
- 전문적인 프론트엔드 개발자가 상주하지 않는 경우.
- 진입장벽이 낮은 만큼 프론트엔드 개발자가 없더라도 금방 이해 시킬 수 있다.
- 규모가 큰 프로젝트
- 렌더링 (HTML/CSS), 데이터-처리영역, 스토어 영역이 쓰기 쉽게 나누어져 있어서, 프로젝트가 커졌을 때에도 비교적 가독성이 높다.
- SI / 은행권처럼 아직도 서버스크립트위에 제이쿼리를 올려 작업하는 경우.
- 이 3개의 엔진 중 프론트엔드 프로젝트를 만들지 않고 사용할 수 있는 유일한 엔진이다.
- 전문적인 프론트엔드 개발자가 상주하지 않는 경우.
- 비추천
- 프로젝트 맴버가 대부분/전원 초보들로 구성된 경우.
- 뷰의 장점이 이것저것 자동으로 다 해주는 만큼, 자바스크립트를 거의 모르는 사람이 쓰면 의도와 원리를 모르고 이상하게 쓸 가능성이 높음. (이 현상은 제이쿼리에서도 나타난다.. 참신한(?) 코드들을 볼 수 있다….)
- 프로젝트 맴버가 대부분/전원 초보들로 구성된 경우.
Svelte
- 진입장벽 : 하
- 장점
- 간결하다는 vue도 씹어먹을 정도의 간결함을 보여준다.
- 완성된 파일의 용량이 매우 작고 가볍다.
- #if 같은 문법이 눈에 띄기 때문에 html 코드 사이에서 가독성이 좋다.
- 단점
- SPA 미지원
- $: 의 사용이 까다로움.
- 기능이 매우 적다.
- 추천
- 사이트의 구조가 단순한 경우.
- 더 작은 js파일 크기를 원하는 경우.
- 비추천
- SPA를 사용할 프로젝트 (비추천을 넘어서 사용 유의)
- 대형 프로젝트나 주요 프로젝트
- 아직까지 사용된 프로젝트가 적어서 정보를 찾기 어려울 수 있다.
React
- 진입장벽 : 중
- 장점
- React, Vue, Svelte 에서 사용자 수 사용된 사이트 수가 압도적으로 많다.
- 이 3가지 중에서 가장 오래되었다.
- 위 두가지 장점으로 문제 발생시 가장 빠르게 해결책을 찾을 수 있으며, 플러그인도 그만큼 많다.
- 어느정도 자바스크립트에 대한 이해가 있어야 사용할 수 있다는 것은 반대로 말하면 이 3개의 엔진 중 사용자의 평균 프론트엔트 실력이 가장 높을 수 있다.
- 단점
- 뷰와 코드가 혼합된 스타일이다.
- 이 3가지 중에서 진입장벽이 높지만 그만한 장점이 없다.
- 국내의 베타적인 커뮤니티
- 추천
- 프론트 엔드 개발자
- 취업을 생각하면 필수이다.
- 프론트 엔드 개발자면 사실 이 3가지를 다 할 줄 알아야 한다.
- 단점만 적어 둔 거 같지만 아직 까지도 국내외에서 가장 많이 사용되는 엔진이다.
- 프론트 엔드 개발자
- 비추천
- 신규 프로젝트