메뉴 건너뛰기

Extra Form
출처 https://streamls.tistory.com/entry/%ED%9...Vue-Svelte

프론트엔드 프레임워크 Angular / React / Vue / Svelte

 

Stackoverflow Ranking에서 여러 프로그래밍 언어 및 프레임워크에 대한 점유율, 선호도 등 자세한 정보는 확인하실 수 있습니다. 해당 정보에 따르면 웹 프레임워크의 점유율은 아래 그래프와 같습니다. 이 중에 프론트엔드 프레임워크만 보면 React가 제일 상단에 있고, jQuery, Angular, Vue 그리고 한참 아래쪽에 Svelte가 있네요

 

< 점유율 >

 

역시 Stackoverflow Ranking에 따르면 이번엔 Svelte가 제일 위에 있고, 그다음 React, Vue이고 Angular가 하위에 있는 모습입니다. Svelte가 가장 신생 프레임워크인데, 선호도 측면에서는 많은 개발자들이 만족하고 있다는 의미네요.

 

< 가장 사랑받는 / 피하고싶은>

 

그럼 각 프레임워크의 특징을 한번 살펴보겠습니다.

1. Angular

Angular는 구글에서 만든 Javascript 프레임워크로 초기 1.0버전에서는 AngularJS, 2.0버전부터는 그냥 Angular라고 칭했습니다. 특이한 것은 1.0은 Javascript, 2.0은 Typescript를 기본 언어로 채택하였습니다. Angular는 필요한 요소들을 모두 포함하고 있는 것이 특징입니다. 그만큼 다른 라이브러리들을 추가로 설치할 필요가 없으며, 대신 학습해야할 양이 많은 것으로 알려져 있습니다. 

양방향 데이터바인딩을 지원하며, 태그이름, 템플릿 파일, CSS파일 정보를 decorator문법을 이용하여 전달하는 선언적 코딩 스타일을 사용한다는 특징을 갖고 있습니다. 

 

 

2. React

React는 페이스북에서 만든 라이브러리입니다. 라이브러리냐 프레임워크냐로 갑론을박이 많이 있었지만, 최근에는 라이브러리다라는 의견이 대체적으로 받아들여지고 있는 모습입니다. React는 Virtual-DOM이라는 개념을 적용하였습니다. DOM은 HTML문서를 제어할 수 있는 API 트리 자료구조인데, 실제 DOM을 사용하여 변경시마다 모든 요소를 Update하기에는 무거우며 속도가 느려지는 한계가 있어 가상 DOM이라는 개념을 적용하고 있습니다. 이는 Vue도 마찬가지입니다. 

또다른 특징으로는 Component에 의한 재사용 가능한 UI 생성을 들 수 있으며, 이를 위해 내부적으로 JSX라는 특별한 문법을 사용합니다. 이는 자바스크립트에 HTML을 내포한듯한 모습을 하고 있습니다. 

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Hello React
        </a>
      </header>
    </div>
  );
}

Component로 각 요소를 구분해가며 전체 페이지를 구축해가는 방식은 개발자들이 쉽게 접근할 수 있도록 도왔던 것으로 보입니다. Props, State 등의 개념을 익히다가 나중에 상태관리자로 Redux라는 개념을 사용할 때즈음 되면 슬슬 멘붕이 오기 시작합니다. 요즘은 Redux toolkit를 써서 쉽게 접근할 수 있도록 했다고는 하지만, 개념이 바뀌는 것은 아니므로  학습곡선이 완전히 낮아졌다고 하기는 힘들어보입니다.

 

3. Vue

Evan You에 의해 시작된 Frontend Framework로 React와 마찬가지로 Virtual-DOM의 개념을 사용합니다. Evan You는 Angular를 이용한 개발을 하던 중 본인이 필요한 기능들만 추려서 만들었다고 하고, 시기적으로도 React보다 1년 뒤에 나온만큼 Angular, React 등으로부터 영향을 받았을 것으로 보입니다. 단방향 데이터 바인딩만 지원하는 React와는 달리 Vue는 양방향 데이터바인딩을 지원합니다. React를 공부하다보면 Redux 상태관리자를 사용하면서 학습난이도가 올라가는데, Vue에서의 상태관리자인 Vuex는 이보다 훨씬 이해하기 쉬운 장점이 있습니다. 아래는 컴포넌트를 정의하는 샘플 Vue 코드인데, 보시면 template, script, style의 세 부분으로 나뉘어져 있습니다. 이런 구분에 대해서는 개발자마다 호불호가 있지만, 처음 접근하는 입장에서 가독성이 좋은 것은 큰 장점 같습니다.

<template>
    <div class="btn">
        <slot></slot> <!--버튼처럼 텍스트를 표시하기위한 속성-->
    </div>
    <h1 @dblclick="$emit('abc')">
		ABC
    </h1>
</template>
    
<script>
export default{
	emits: [
		'abc'
	]    
}
</script>

<style scoped>
.btn{
    display: inline-block;
    margin: 4px;
    padding: 6px 12px;
    border-radius: 4px;
    background-color: gray;
    color: white;
    cursor: pointer;
}
</style>

 

4. Svelte

기존의 Angular/React/Vue에이어 Svelte는 상당히 나중에 진출한 후발주자입니다. 그런데도 Stackoverflow Ranking에서 보면 개발자가 사랑하는 프레레임워크 2위를 차지할 정도로 관심도가 엄청나며(1위는 Phoenix), 다른 프레임워크들을 추격하고 있습니다. 

The State of JS 2021 Web Frontend Framework

svelte 는 라이브러리/프레임워크가 아닌 컴파일러라고 합니다. Svelte코드를 실행시점에서 해석하지 않고 컴파일 단계에서 Vanilla Javascript 번들로 만들기 때문에 다른 라이브러리를 함께 배포할 필요가 없어집니다. 또다른 특징으로는 React나 Vue처럼  Virtual-DOM을 사용하지 않고 실제 DOM을 직접 제어합니다. 성능적으로 작은 번들사이즈와 DOM의 직접제어 덕분에 다른 프레임워크보다 빠른 반응속도를 보여줍니다. 

문법은 개인적인 느낌이 Vue랑 유사하게 생겼습니다. 가시성도 좋고 쉽다고 생각이 듭니다. 화면 Update할 시점을 인식시켜주기 위한 특이한 용법들도 있습니다만 다른 라이브러리들의 학습곡선에 비할 바가 아니라고 생각됩니다. 상태관리에서도 redux, vuex와 같이 외부 라이브러리를 설치할 필요가 없이 내부에 store를 기본으로 내장하고 있습니다. 

<script>
let name = "teo.yu"
</script>

<div>Hello world! {name}</div>

<style>
div { color: red }
</style>

<번들사이즈 비교>

파일사이즈가 작으면 다운로드속도가 올라가서 체감속도가 빨라집니다. 아래 결과를 보면 Svelte가 가장 작은 사이즈를 보이고 있습니다.

 

이런 성능과 러닝커브 등의 잇점으로 최근 svelte의 인기가 올라가고 있는 것으로 보입니다. 하지만 아직까지 시장의 메인은 React, 그리고 최근에는 Vue도 많이 도입하고 있는 것 같습니다. 저도 Vue를 주로 사용하여 개인 프로젝트들을 만들고 있는데 React에서 어려운 개념들을 익히고 나서 접근해서인지, Vue 너무 좋습니다. 성능도 준수하게 뽑아주는 것 같고, Reference도 잘 되어있어서 당분간은 Vue를 활용할 것 같습니다. Svelte는 조금 더 저변이 넓어지면 그때 적용해볼까 합니다. 



  1. JAVA APM Scouter 활용 - 2부 스카우터 기능 활용 및 페이퍼 플...

    1부 APM 선정과 스카우터의 지표소개 2부 스카우터 기능 활용 및 페이퍼 플러그인 3부 스카우터 얼럿 플러그인 커스터마이징 이번 내용에서는 스카우터 클라이언트를 본격적으로 사용하면서 알면 도움이 되는 내용을 주로 다루려고 한다. 수집된 지표를 보기위...
    Date2024.06.26 Reply0 Views506 file
    Read More
  2. JAVA APM Scouter 활용 - 1부 APM 선정과 스카우터의 지표 소개

    JAVA 기반 서비스에서 운영할수 있는 APM Tool 을 선정하는 과정에서 스카우터를 선택하고 구성을 마친 경험을 다루어 보려고 한다. 1부 APM 선정과 스카우터의 지표 소개 2부 스카우터 기능 활용 및 페이퍼 플러그인 3부 스카우터 얼럿 플러그인 커스터마이징...
    Date2024.06.26 Reply0 Views487 file
    Read More
  3. [log분석]AWK, 톰캣 Accesslog 통계 count 추출 (feature awk g...

    AWK AWK(오크; Aho Weinberger Kernighan)는 유닉스에서 처음 개발된 일반 스크립트 언어이다. AWK의 기본 기능은 텍스트 형태로 되어있는 입력 데이터를 행과 단어 별로 처리해 출력하는 것이다. AWK라는 이름은 이 스크립트 언어를 만든 앨프리드 에이호, 피...
    Date2024.06.19 Reply0 Views464
    Read More
  4. 프론트엔드 프레임워크 Angular / React / Vue / Svelte

    프론트엔드 프레임워크 Angular / React / Vue / Svelte Stackoverflow Ranking에서 여러 프로그래밍 언어 및 프레임워크에 대한 점유율, 선호도 등 자세한 정보는 확인하실 수 있습니다. 해당 정보에 따르면 웹 프레임워크의 점유율은 아래 그래프와 같습니다...
    Date2024.05.08 Reply0 Views655 file
    Read More
  5. Microsoft Visual Studio 역대 버전

    Microsoft Visual Studio 역대 버 1. 개요2. 특징3. 시스템 요구 사항4. 역대 버전4.1. Visual Studio 97 (5.0)4.2. Visual Studio 6.04.3. Visual Studio.Net (2002) (7.0)4.4. Visual Studio.Net 2003 (7.1)4.5. Visual Studio 2005 (8.0)4.6. Visual Studio...
    Date2023.03.06 Reply0 Views495 file
    Read More
  6. ‘무능, 순진, 방만, 아집...' 소프트웨어 개발 죄악 7가지

    무능, 순진, 방만, 아집...' 소프트웨어 개발 죄악 7가지 2023.10.10 Peter Wayner | InfoWorld 잘못된 방법론 선택부터 최신 트렌드에 지나치게 집착하는 것까지, 훌륭한 앱 개발팀의 결과물도 때때로 우리 스스로가 되돌릴 수 없는 경향, 유혹, 습관으로 인...
    Date2023.03.06 Reply0 Views425 file
    Read More
  7. No Image

    우리가 알던 프로그래밍의 종말, 개발자의 새 역할은

    우리가 알던 프로그래밍의 종말, 개발자의 새 역할은 인공지능(AI)은 점점 더 많은 소프트웨어 개발 작업을 수행하고 있다. 개발자는 앞으로 코딩 도구보다 교육 모델을 더 많이 사용하게 될 것으로 보인다. 새 시대의 개발자는 AI의 작업을 감독하고, 빈틈을 ...
    Date2023.03.06 Reply0 Views410
    Read More
  8. No Image

    내가 Visual C++ 6.0 아직도 쓰는 이유

    내가 Visual C++ 6.0 아직도 쓰는 이유 “VC++ 6.0을 쓰지 말아야하는 이유(http://minjang.egloos.com/1783328)” 라는 글을 읽고나서도 나는 별로 VC++ 6를 버리고 싶은 생각이 들지 않는다. 난 VC++ 6가 더 손에 착착 붙으니까. 익숙하지 않은 툴을 쓸 때의 ...
    Date2023.03.06 Reply0 Views523
    Read More
  9. No Image

    VC++ 6.0을 쓰지 말아야하는 이유

    원문 : http://minjang.egloos.com/1783328 나는 아직 Visual Studio(이하 VS)6.0과 2005를 함께 이용한다. 학창시절 C언어를 처음 배울때 6.0으로.. 그리고 군 제대후 복학 했을때 2005를 사용하면서 자연스럽게 몸에 익었기 때문에 익숙한 IDE를 계속 사용해...
    Date2023.03.06 Reply1 Views551
    Read More
  10. No Image

    Visual Studio 6.0 Enterprise 설치 - valec.exe 에러

    Q. 'C:\program Files\Microsoft Visual studio\common\tools\VS-Ent98\Vanalyzr\valec.exe"를 등록하기 위한 DCOM 사용자 계정을 만들지 못하였습니다. A. Visual Studio 6.0의 버그 입니다. Visual Studio Analyzer는 엔터프라이즈 에디션에서 필요한 사항 ...
    Date2023.03.06 Reply0 Views441
    Read More
  11. No Image

    [JAVA 프로그래밍.min] 9강.전자정부 표준프레임워크 / 공통컴...

    프롬달 - 전자정부프레임워크 https://www.youtube.com/@user-xk5on6cp4v nsdclipdown||https://www.youtube.com/watch?v=eEpd7N4mf2I [JAVA 프로그래밍.min] 9강.전자정부 표준프레임워크 / 공통컴포넌트 코드 리뷰 / 공통 분류 코드 Part1
    Date2023.04.02 Reply0 Views377
    Read More
  12. egovframework:dev2:svrinstall]] 서버 개발환경 설치가이드

    개발환경 - 3.x 다운로드 https://www.egovframe.go.kr/home/sub.do?menuNo=34 egovframework:dev2:svrinstall]] 서버 개발환경 설치가이드 https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:dev2:svrinstall 개요전자정부 표준프레임워크에서 제...
    Date2023.04.02 Reply0 Views427
    Read More
  13. No Image

    [Spring] 전자정부 프레임워크 시작하기 (3.10)

    [Spring] 전자정부 프레임워크 시작하기 (3.10) 1. 전자정부 프레임워크 시작하기(개발 환경 다운로드 메뉴얼) 개발 환경 다운로드 메뉴얼을 보고 진행하시면 됩니다. 1.1 개발 및 실행을 구현도구 환경 정보OS: Windows 10, 7 이상 JDK: Java SE SDK 7.0 이상...
    Date2023.03.31 Reply0 Views587
    Read More
  14. No Image

    [Spring] 전자정부 프레임워크란

    [Spring] 전자정부 프레임워크란 1. 전자정부프레임워크란 (공식사이트)1.1 개발프레임워크개발프레임워크는 정보시스템 개발을 위해 필요한 기능 및 아키텍처를 미리 만들어 제공함으로써 효율적인 어플리케이션 구축을 지원합니다. 전자정부 프레임워크는 스...
    Date2023.03.31 Reply0 Views515
    Read More
  15. 톰캣 세션 클러스터링(Tomcat Session Clustering)

    톰캣 세션 클러스터링(Tomcat Session Clustering) 2020년 5월 26일 톰캣 세션 클러스터링(Tomcat Session Clustering) ① 1대 서버에서 WEB과 WAS를 같이 사용하는 방법과 ② LB 1대 WEB, WAS 각 2대씩 사용하는 방법에 대해 알아보겠습니다. 톰캣 세션 클러스...
    Date2023.03.16 Reply0 Views690 file
    Read More
  16. No Image

    LENA / TunA : 클라우드 기반, 어플리케이션 성능 관리 솔루션

    LENA / TunA : 클라우드 기반, 어플리케이션 성능 관리 솔루션 TunA 는 엔터프라이즈용 어플리케이션 성능 관리 솔루션으로 상용 솔루션뿐 아니라 다양한 오픈소스에 대한 모니터링을 제공하며 오픈 소스에 대한 지원을 지속적으로 늘여가고 있음.
    Date2023.03.16 Reply0 Views426 file
    Read More
  17. No Image

    LENA WEB/WAS 소개

    LENA WEB/WAS 소개 소개 LENA WEB Open Edition은 웹 어플리케이션을 안정적으로 구동할 수 있는 웹서버로 편리한 관리 기능, 안정성 및 고가용성을 위한 다양한 기능을 제공합니다. 통합관리 콘솔을 제공하여 보다 편리하고, 효율적으로 웹 어 플리케이션을 ...
    Date2023.03.16 Reply0 Views426 file
    Read More
  18. No Image

    Windows 환경에서 Jmeter 설치 및 실행

    Windows 환경에서 Jmeter 설치 및 실행 1. Jmeter 설치 http://jmeter.apache.org/download_jmeter.cgi 링크 클릭(컨트롤 클릭) -> 공식 다운로드 사이트 or 미러 사이트 에서 카프카 압축 파일 다운로드 -> 압축 해제 -> 1.png Jmeter 설치 경로 -> bin -> jm...
    Date2023.03.06 Reply0 Views610
    Read More
  19. No Image

    SPAMOUT - Anti Spam & Mail Auditing 솔루션 (넷엔씨큐)

    SPAMOUT - Anti Spam & Mail Auditing 솔루션 (넷엔씨큐) 2.PNG SPAMOUT은 유입되는 스팸 및 악성코드 메일을 차단하고 이를 통해서 메일서버를 보호하고 네트워크. 트래픽을 적절하게 관리할 수 있습니다.
    Date2023.03.06 Reply0 Views356
    Read More
  20. No Image

    행정정보공동이용시스템

    행정정보공동이용시스템.PNG 행정정보공동이용이란? ○ 행정기관, 공공기관, 금융기관, 교육기관 등이 정보들을 서로 공유하여 업무를 전자적으로 처리함으로써 국민에게는 민원 편의성을, 정부차원에서는 효율적인 행정을 할 수 있는 전자정부의 핵심 서비스 ○...
    Date2023.03.06 Reply0 Views398
    Read More
목록
Board Pagination Prev 1 2 3 4 5 Next
/ 5