현재 프론트엔드 개발에 가장 많이 사용 되는 3대 프레임워크 React, Angular, Vue 와 Svelte 의 차이점을 알아보고 스벨트가 리액트를 대체할 수 있을지에 대한 나의 의견을 정리해보았다.

Svelte 와 React, Angular, Vue 의 차이점

React, Angular, Vue (리액트, 앵귤러, 뷰)는 프레임워크 또는 라이브러리 이지만 Svelte (스벨트)는 컴파일러이다.

프레임워크와 컴파일러는 어떤 차이가 있느냐?

Svelte 는 앱 개발이 끝나고 production 으로 빌드를 하면 Svelte 컴파일러가 자동으로 재생되는데 이때 bundle.js 파일에 모든 프로젝트 코드를 담는다. 그리고 런타임에 DOM 이 실행된다. 이때 프레임워크나 라이브러리에 들어간 추가적인 코드가 없기 때문에 전체 소스 코드도 적고 파일 크기도 작아서 가볍고 빠르게 돌아간다.

Svelte, React 와 Angular, Vue 의 차이점

Angular 는 프론트 개발에 필요한 모든 기능을 포함한 전체 프레임워크 세트를 제공하기 때문에 무거운 편이며 Angular 내에서 모든 개발을 할 수 있다. 그 다음으로 Vue 는 Angular 만큼은 아니지만 필요한 주요 기능을 기본으로 제공하며 필요에 따라 라이브러리를 따로 설치하여 사용한다.

반면 React 와 Svelte 는 프론트 개발에 필요한 기본적인 코어 기능들만 제공하며 나머지 추가 기능은 본인이 직접 개발하거나 라이브러리를 사용해야 한다. 위 두 가지 프레임워크에 비해 가볍다는 장점이 있지만 오픈소스 라이브러리들은 보통 개인이 개발하기 때문에 지속적인 업데이트가 되지 않을 수 도 있다는 단점이 있다.

스벨트가 리액트를 대체할까?

리액트는 페이스북, 앵귤러는 구글, 뷰는 오픈소스 팀, 스벨트는 1명이 처음 개발하여 오픈소스로 많은 사람들이 기여했다. 이처럼 스벨트는 큰 기업에서 개발한 것이 아니기 때문에 아직은 신생아 단계이지만 특이한 프론트엔드 개발 컨셉에 가볍고 적은 코드를 제공하는 작성하는 등의 편리함을 제공하기 때문에 많은 개발자들이 관심을 보이고 있는 것 같다. 2020년까지 급부상 했지만 여전히 리액트, 앵귤러, 뷰에 비해서는 사용량이 많이 적고 커뮤니티가 적다. 게다가 엔터프라이즈 수준에서 스벨트를 사용하기에는 위험 부담이 있어 기업에서 채택하고 있지는 않다. 스벨트 하는 사람을 뽑는 기업도 없으니 프론트엔드 개발자로 구직 중이라면 기존의 프레임워크 3개 중에 적어도 하나를 할 줄 알아야 한다. 아직은 견고한 리액트, 앵귤러, 뷰를 넘을 수 없을거 같지만, 개인적인 프로젝트로 스벨트는 사용하면서 EXPLORE 하는 건 추천한다. 내가 생각할 땐 큰 기업이 인수를 해서 유지보수가 되고 지속적으로 기능 업데이트가 된다면, 지금의 리액트 처럼 프론트엔드 스택으로 급부상 할 수도 있겠다싶다.

스벨트 빠르긴 참 빠르다!

스벨트로 개발할 때 엄청 빠르게 페이지 업데이트가 되고 앱도 빠르게 돌아가서 역시 컴파일러의 장점이 크긴 하다고 느낀다. 나는 예전에도 Stencil JS 라는 컴파일러로 프론트 개발을 했었는데 속도가 굉장히 빨랐었다. 그때는 몰랐지만 Stencil JS 에서 React 로 넘어가 보니까 확실히 알겠더라. React 를 처음 접할때 왜 이렇게 느려? 라고 생각했는데, 리액트가 느린게 아니라 Stencil JS 가 엄청 빠른거였다. 컴파일러 였으니까 당연하다. 스벨트도 마찬가지로 정말 빨라서 좋다.

Stencil JS 컴파일러도 좋긴 한데…

개인적으로 Stencil JS 로 개발하는 것도 좋았는데, 아무래도 타입스크립트 베이스여서 사람들이 처음에 접근하기가 어려워 인기가 그닥 없는 것 같다. 그리고 사용 방법도 리액트나 기존의 프레임워크 컨셈과 비슷한 구석이 많아서 신선하지 않기 때문에 굳이 Stencil JS 로 갈아탈 이유가 없고… Virtual DOM, JSX, state, prop 등 기본 컨셉이 비슷하다. 그런데 리액트 처럼 오픈소스 라이브러리가 많지 않고 커뮤니티가 적어서 큰 단점이다. 기존 프레임워크보다 조금 빠르게 돌아가긴 하지만, 그 작은 속도 차이 때문에 굳이…? 이런 느낌. 아이오닉 개발팀에서 만든 컴파일러라 기능적인 면도 꽤 괜찮은데 인기가 없어서 아쉽네.