최고의 JavaScript 프레임 워크 — 프런트 엔드, 백엔드 및 테스트 프레임 워크

신용 : getflywheel

JavaScript는 웹 개발에서 일반적으로 사용되는 프로그래밍 언어입니다. 원래 웹 사이트에 동적 및 상호 작용 요소를 추가하는 수단으로 Netscape에서 개발했습니다. JavaScript는 클라이언트 측 스크립팅 언어로, 소스 코드는 웹 서버가 아닌 클라이언트의 웹 브라우저에서 처리됩니다. JavaScript는 8 년 연속 가장 많이 사용되는 언어로 67.7 %의 사람들이이를 선택하고 있습니다. 즉, JavaScript 함수는 웹 페이지가로드 된 후 서버와 통신하지 않고도 실행할 수 있습니다. 예를 들어, JavaScript 함수는 모든 필수 필드가 채워 졌는지 확인하기 위해 제출하기 전에 웹 양식을 확인할 수 있습니다. JavaScript 코드는 정보가 실제로 서버로 전송되기 전에 오류 메시지를 생성 할 수 있습니다.

다음 몇 가지 사실을 기반으로하는 몇 가지 JavaScript 프레임 워크 :

  • 계속 성장하고 최신 상태로 유지되며 예측 가능한 미래로 유지 될 것입니다.
  • GitHub, 트렌드, Google 트렌드 등과 같은 신뢰할 수있는 사이트를 기반으로 인기있는 것으로 간주되었습니다.
  • 대규모 활동 커뮤니티가 있습니다.
신용 : Hanna Söderström

JavaScript 프레임 워크는 표준 프로그래밍 함수 및 작업에 사용할 수 있도록 바로 사용할 수있는 함수 및 패턴을 미리 작성된 코드가있는 JS 프로그래밍 라이브러리입니다. 웹 사이트 나 웹 애플리케이션을 만드는 프레임 워크입니다. 무료이며 오픈 소스입니다. 생산성이 향상됩니다. 웹 사이트의 일부 구성 요소는 맞춤 제작할 필요가 없으므로 미리 구축 된 구성 요소를 구축하고 확장 할 수 있습니다. 프레임 워크는 웹 사이트 디자인과 대부분의 웹 사이트 개발자에게 더 적합합니다. 최고의 JS 프레임 워크를 살펴 보겠습니다.

1. React.js

신용 : Dhruv Patel

React는 사용자 인터페이스 또는 UI 구성 요소를 구축하기위한 오픈 소스, 프런트 엔드, JavaScript 라이브러리입니다. Facebook과 개별 개발자 및 회사 커뮤니티에서 유지 관리합니다. React는 단일 페이지 또는 모바일 애플리케이션 개발의 기반으로 사용할 수 있습니다. 그러나 React는 상태 관리 및 해당 상태를 DOM에 렌더링하는 데만 관심이 있으므로 React 애플리케이션을 만들려면 일반적으로 라우팅을위한 추가 라이브러리와 완전한 양식 솔루션을 사용해야합니다. React Router와 Formik은 각각 이러한 라이브러리의 예입니다. 현재 AirBNB, PayPal, Netflix 등 많은 거대 기업에서 사용하고 있습니다.

<div id="myReactApp"></div>

<script type="text/babel">
  function Greeter(props) {
    return <h1>{props.greeting}</h1>
  }
  var App = <Greeter greeting="Hello World!" />;
  ReactDOM.render(App, document.getElementById('myReactApp'));
</script>

  • 더 나은 동시성을위한 React Fiber, 더 적은 상용구 코드로 기능적 구성 요소를 관리하는 React hooks, 더 나은 렌더링을위한 React 서스펜스 등을 포함하여 React를위한 새로운 기능이 개발되고 있습니다. 따라서 React는 매우 빠르게 진화하고 있습니다.
  • JavaScript 개발자의 71.7 %는 현재 React를 사용하고있는 반면, State Of JS 2019 설문 조사에 따르면 추가로 12 %가 향후이를 배우고 자하는 관심을 보였습니다. 이는 활성 사용자 수가 64 %를 기록한 전년도보다 거의 8 % 증가한 놀라운 수치입니다.
  • Stack Overflow의 개발자 설문 조사 2020에서 React는 반응 점유율을 꾸준히 잃고있는 jQuery에 이어 35.9 %의 투표로 2 번째로 인기있는 웹 프레임 워크로 선정되었습니다.
신용 : Sergey Migalnikov

Vue.js는 사용자 인터페이스 및 단일 페이지 애플리케이션을 빌드하기위한 오픈 소스 모델보기보기 모델 프런트 엔드 JavaScript 프레임 워크입니다. Evan You가 만들었으며 그와 나머지 활성 핵심 팀 구성원이 유지 관리합니다. Angular에서 영감을 받아 Vue.js 형식으로 간단하고 가볍고 효율적인 대안을 제공 한 Google에서 일하는 개발자입니다. Vue는 대부분의 기능을 React 및 Angular에서 채택했지만 더 좋고 사용하기 쉽고 안전한 프레임 워크를 제공하기 위해 이러한 기능을 크게 개선했습니다. 이 접근 방식의 가장 큰 예는 Vue가 Angular와 React에서 볼 수있는 'Virtual DOM'에서 볼 수있는 양방향 데이터 바인딩을 제공한다는 것입니다.

<template>
  <div id="VueApp">
    <button-clicked v-bind:initial-count="0"></button-clicked>
  </div>
</template>
<script>
Vue.component('button-clicked', {
  props: ['initialCount'],
  data: () => ({
    count: 0,
  }),
  template: '<button v-on:click="onClick">Clicked {{ count }} times</button>',
  computed: {
    countTimesTwo() {
      return this.count * 2;
    }
  },
  watch: {
    count(newValue, oldValue) {
      console.log(`The value of count is changed from ${oldValue} to ${newValue}.`);
    }
  },
  methods: {
    onClick() {
      this.count += 1;
    }
  },
  mounted() {
    this.count = this.initialCount;
  }
});

new Vue({
  el: '#VueApp',
});
</script>

  • AngularJS 및 Virtual DOM과 유사한 양방향 데이터 바인딩 및 React와 유사한 이벤트 소싱을 제공합니다.
  • JavaScript 개발자의 40.5 %는 현재 Vue를 사용하고 있으며 계속 사용하겠다고 약속 한 반면, State Of JS 2019 설문 조사에 따르면 34.5 %는 Svelte 다음으로 두 번째로 높은 %의 향후 사용에 대한 관심을 보였습니다. 이는 전년도 28.8 %에 비해 현재 사용자가 거의 12 % 증가한 놀라운 수치입니다.
  • Stack Overflow의 개발자 설문 조사 2020에서 Vue는 전체적으로 7 번째로 가장 인기있는 웹 프레임 워크로, React와 Angular에 이어 3 번째로 가장 인기있는 프런트 엔드 JavaScript 프레임 워크로 선정되었습니다.
  • JavaScript와 TypeScript를 동일하게 지원합니다.
신용 : goodworklabs

AngularJS는 단일 페이지 애플리케이션을 개발할 때 직면하는 많은 문제를 해결하기 위해 주로 Google과 개인 및 기업 커뮤니티에서 유지 관리하는 JavaScript 기반 오픈 소스 프런트 엔드 웹 프레임 워크입니다. 리치 인터넷 애플리케이션에서 일반적으로 사용되는 구성 요소와 함께 클라이언트 측 MVC 및 MVVM 아키텍처를위한 프레임 워크를 제공하여 이러한 애플리케이션의 개발 및 테스트를 단순화하는 것을 목표로합니다. AngularJS는 MongoDB 데이터베이스, Express.js 웹 애플리케이션 서버 프레임 워크, Angular.js 자체, Node.js 서버 런타임 환경으로 구성된 MEAN 스택의 프런트 엔드로 사용됩니다.

<div ng-app="myApp" ng-controller="myCtrl">
 
First Name: <input type="text" ng-model="firstName"><br>
 Last Name: <input type="text" ng-model="lastName"><br>
<br>
 Full Name: {{firstName + " " + lastName}}
 
</div>

<script>
  var app = angular.module('myApp', []);
app.controller('myCtrl',   function($scope) {
  $scope.firstName= "sanjam";
  $scope.lastName= "singh";
});
</script>

  • 깔끔한 코딩 구조와 코드 일관성으로 고품질 코드 생성이 가능합니다.
  • 훌륭한 문서가 있으며 라이브러리는 개발자에게 막대한 지원을 제공합니다.
  • 설문 조사에 참여한 JavaScript 개발자의 21.9 %는 현재 Angular를 사용하고 있으며 State Of JS 2019 설문 조사에 따르면 9.7 %는 향후 학습 및 사용에 관심을 보였습니다. 이 통계는 Angular가 2018 년 설문 조사와 비교할 때 활성 사용자가 2 % 감소한 왕관을 놓고 React 및 Vue와의 전투에서 패하고 있음을 나타냅니다. 또한 Angular는 React, Vue 및 Svelte보다 훨씬 뒤 떨어진 '미래 사용에 관심'카테고리에서 가장 낮은 9.7 %로 설문 조사를했습니다.
  • Stack Overflow의 2020 년 개발자 설문 조사에서 Angular는 전체적으로 7 번째로 가장 인기있는 웹 프레임 워크로, React 다음으로 2 번째로 인기있는 프런트 엔드 JavaScript 프레임 워크로 선정되었습니다.
신용 : dev.to

웹 개발과 관련하여 JavaScript는 웹을 구동하는 엔진입니다. HTML과 CSS가 페이지에 표시되는 스타일과 데이터를 처리하는 동안 JavaScript는 페이지를 완전히 새로 고치지 않고 새 페이지 콘텐츠를로드 및 다시로드하는 것부터 페이지 요소 애니메이션, 사용자가 웹 양식에 입력 한 내용을 검증하는 것까지 웹 사이트의 스크립트 동작을 제어합니다.

시간이 지남에 따라 JavaScript의 인기로 인해 프레임 워크가 널리 퍼졌습니다. 매주 JavaScript 개발자를위한 새로운 프레임 워크가 제공되는 것 같습니다. 각각은 다음 프레임 워크보다 나아질 것이라고 약속합니다. 수백만 개의 웹 사이트가 타사 JavaScript 라이브러리 및 프레임 워크에 의존하기 때문에 이러한 것에 대한 끊임없는 수요가 있습니다.

1. Express.js

신용 : dev.to

Express.js는 Node.js 용 백엔드 웹 애플리케이션 프레임 워크로 MIT 라이선스에 따라 무료 및 오픈 소스 소프트웨어로 출시되었습니다. 웹 애플리케이션 및 API를 빌드하기 위해 설계되었습니다. Node.js를위한 사실상의 표준 서버 프레임 워크라고 불 렸습니다. TJ Holowaychuk은이를 플러그인으로 사용할 수있는 많은 기능과 함께 상대적으로 최소화 된 Sinatra에서 영감을받은 서버라고 설명했습니다. Express는 MongoDB 데이터베이스 소프트웨어 및 JavaScript 프런트 엔드 프레임 워크 또는 라이브러리와 함께 MEAN, MERN 또는 MEVN 스택과 같은 인기있는 개발 스택의 백엔드 구성 요소입니다.

var express = require('express');  
    var app = express();  
    app.get('/', function (req, res) {  
      res.send('Hello World!!');  
    });  
    var server = app.listen(8000, function () {  
      var host = server.address().address;  
      var port = server.address().port;  
      console.log('Example app listening at http://%s:%s', host, port);  
    });

  • HTTP 요청에 응답하도록 미들웨어를 설정할 수 있습니다.
  • HTTP 방식과 URL을 기반으로 다른 작업을 수행하는 데 사용되는 라우팅 테이블을 정의합니다.
  • 템플릿에 인수를 전달하여 HTML 페이지를 동적으로 렌더링 할 수 있습니다.
  • 여론 조사에 참여한 JavaScript 개발자의 71.6 %는 최고의 백엔드 용 JavaScript 프레임 워크로 Express를 최고의 선택으로 꼽았고, 12 %는 향후이를 사용하는 경향이 있습니다. Express의 인기에 대한 또 다른 증거는 JavaScript 개발자의 4 %만이 Express에 대해 들어 본 적이 없다는 사실입니다.
  • Stack Overflow의 2020 년 개발자 설문 조사에서 Express는 전체적으로 가장 인기있는 웹 프레임 워크 5 위, ASP.NET에 뒤이어 서버 측용 JavaScript 프레임 워크 2 위로 선정되었습니다.
신용 : Mark Colling

Next.js는 서버 측 렌더링 및 React 기반 웹 애플리케이션을위한 정적 웹 사이트 생성과 같은 기능을 지원하는 오픈 소스 React 프런트 엔드 개발 웹 프레임 워크입니다. 개발자가 정적 및 동적 JAMstack 웹 사이트를 신속하게 생성 할 수있는 프로덕션 준비 프레임 워크이며 많은 대기업에서 널리 사용됩니다 .Next.js는 새로운 React 앱을 시작할 때 사용할 수있는 몇 가지 권장 "툴체인"중 하나이며, 모두 제공합니다. 일반적인 작업을 돕기위한 추상화 계층. 기존 React 앱은 클라이언트 측 브라우저에서 모든 콘텐츠를 렌더링합니다. Next.js는이 기능을 확장하여 서버 측에서 렌더링 된 애플리케이션을 포함하는 데 사용됩니다.

export function getServerSideProps() {
  return {
    redirect: {
      destination: 'https://example.com',
      permanent: false
    }
  }
}

  • 설문 조사에 참여한 JavaScript 개발자의 24.7 %가 현재 Next를 사용하고 있습니다. 그러나 더욱 인상적인 것은 개발자의 43 %가 Next를 시도하는 데 관심이 있다는 사실입니다. 이는 모든 백엔드 프레임 워크에 대한 가장 높은 관심 률입니다.
  • 대략. 34k (라이브) 및 100k (라이브 및 히스토리) 웹 사이트에서 Next acc를 사용하고 있습니다. 2020 년 6 월 현재 Wappalyzer 및 BuiltWith 통계에 추가되었습니다.
신용 : Ahmed Besbes

Up Hail의 설립자 인 Avi Wilensky는 다음과 같이 언급했습니다.“Gatsby를 사용하면 페이지를 개발자 로컬 머신에 구축하고 객체 저장소 및 CDN (예 : AWS S3 및 Cloudfront)에 배포 할 수 있으므로 서버가 필요하지 않습니다. 이 아키텍처는 비용과 복잡성을 줄여주고 안전하며 빠른 성능을 보장합니다.”Gatsby는 또한 2,000 개 이상의 플러그인으로 구성된 방대한 라이브러리를 통해 확장 가능합니다. React 및 GraphQI를 기반으로 Gatsby는 서비스가 연결된 (물론 플러그인을 통해) 상당히 정적 인 웹 사이트를 만드는 데 가장 적합합니다. Gatsby는 서버 측 렌더링을 수행하지 않습니다. 이는 Gatsby로 구축 된 사이트를 번개처럼 빠르게 유지하지만 제한적일 수도 있습니다.

module.exports = {
plugins: [
`gatsby-transformer-sharp`,
`gatsby-plugin-sharp`,
{
resolve: `gatsby-source-filesystem`,
options: {
path: `${__dirname}/src/data/`,
},
},
],
}

성능을 향상시키기 위해 GatsbyJS는 중요한 HTML, CSS, JavaScript 및 기타 데이터 만로드합니다. 로드되면 탐색 할 수있는 다른 페이지에 대한 리소스를 미리 가져옵니다. 이렇게하면 사이트가 최대한 빨리로드되고 사용자 상호 작용이 원활하게 느껴집니다.

JavaScript 테스트 프레임 워크

신용 : usersnap

JavaScript는 웹 사이트 또는 웹 응용 프로그램 테스트에도 널리 사용됩니다. 점점 더 많은 조직이 자동화 테스트를 선택함에 따라 단위 테스트, 통합 테스트 및 종단 간 테스트에 JavaScript 테스트 프레임 워크가 점점 더 많이 사용되고 있습니다.

1. 농담

신용 : https://zebrunner.com/

단순성에 초점을 맞춘 Jest JavaScript 휴식 프레임 워크. Jest는 React 프로젝트를 위해 Facebook 엔지니어가 만들었습니다. 단위 테스트는 소프트웨어의 개별 단위 (구성 요소)를 테스트하는 소프트웨어 테스트입니다. 단위 테스트의 목적은 소프트웨어의 각 단위가 설계된대로 작동하는지 확인하는 것입니다. 단위는 모든 소프트웨어에서 테스트 할 수있는 가장 작은 부분이며, 모킹은 코드 부분이 실제 코드를 에뮬레이트하는 더미 구현으로 대체되는 기술입니다. 조롱은 테스트를 격리하는 데 도움이됩니다. 모킹은 주로 단위 테스트에서 사용되며, 테스트에서 값이 특정 조건을 충족하는지 확인합니다. expect()기능은 우리의 수 있습니다 매처 (matcher) 우리는 다음과 같은 여러 가지, 검증하자 toBe(), toBeFalsy()또는를 toEqual().

const { add, mul, sub, div } = require('./jest');

test('2 + 3 = 5', () => {
  expect(add(2, 3)).toBe(5);
});

test('3 * 4 = 12', () => {
  expect(mul(3, 4)).toBe(12);
});

test('5 - 6 = -1', () => {
  expect(sub(5, 6)).toBe(-1);
});

test('8 / 4 = 2', () => {
  expect(div(8, 4)).toBe(2);
});

  • Jest는 오류 발생 가능성이 적은 코드로 강력한 개발자 도구를 제공합니다.
  • 프레임 워크는 스크린 샷을 캡처하여 시각적 회귀 테스트를 수행 할 수도 있습니다. React JS를 사용하여 애플리케이션을 개발할 때이 기능은 실수로 발생하는 UI 버그를 방지하는 데 매우 유용합니다. 렌더링 된 구성 요소의 스크린 샷을 기록하고 나중에 렌더링 된 구성 요소와 비교하여 작동합니다. 새로운 기능이 추가되면 스크린 샷을 쉽게 업데이트 할 수 있습니다.
  • 여론 조사에 참여한 JavaScript 개발자의 61.2 %는 Jest를 JavaScript 자동화 테스트 프레임 워크에 대한 최고의 선택으로 꼽았고, 22.8 %는 향후 배우고 사용할 호기심을 나타 냈습니다. Jest는 2016 년과 2020 년 사이에 사용자 기반이 거의 15 배 증가하는 엄청난 인기 상승을 목격했습니다.
신용 : Yash Panwer

Mocha.js는 Node.js 및 브라우저에서 실행되는 오픈 소스 JavaScript 테스트 프레임 워크입니다. 매우 간단한 인터페이스로 동기 및 비동기 코드를 모두 테스트하도록 설계되었습니다. Mocha.js는 테스트를 연속적으로 실행하여 유연하고 정확한보고를 제공하는 동시에 포착되지 않은 예외를 해당 테스트 케이스에 매핑합니다. Mocha.js는 특정 순서로 실행되는 함수를 제공하고 결과를 터미널 창에 기록합니다. 또한 테스트 케이스가 서로 독립적으로 실행되도록 테스트중인 소프트웨어의 상태를 정리합니다.

var sum = require('../sum.js');
var expect = require('chai').expect;

describe('#sum()', function() {

  context('without arguments', function() {
    it('should return 0', function() {
      expect(sum()).to.equal(0)
    })
  })
  
  context('with number arguments', function() {
    it('should return sum of arguments', function() {
      expect(sum(1, 2, 3, 4, 5)).to.equal(15)
    })
    
    it('should return argument when only one argument is passed', function() {
      expect(sum(5)).to.equal(5)
    })
  })
  
  context('with non-number arguments', function() {
    it('should throw error', function() {
      expect(function() {
        sum(1, 2, '3', [4], 5)
      }).to.throw(TypeError, 'sum() expects only numbers.')
    })
  })
  
})

  • 발전기를 쉽게 지원할 수 있습니다.
  • 오래 되었기 때문에 많은 튜토리얼과 문서가 온라인에서 제공됩니다.
  • 유연한보고로 테스트 케이스를 순차적으로 실행합니다.
  • Mocha는 관련 테스트 케이스에 예외를 쉽게 매핑 할 수 있도록 도와줍니다.
  • 자바 스크립트 개발자의 42 %가 가장 좋아하는 자바 스크립트 테스트 프레임 워크로 Mocha를 선택한 반면, 개발자의 22 %는 이에 대해 들었고 가까운 장래에 배우고 싶어합니다.
신용 : wikipedia

Jasmine은 JavaScript 용 오픈 소스 테스트 프레임 워크입니다. 자바 스크립트가 활성화 된 모든 플랫폼에서 실행하고, 애플리케이션이나 IDE를 방해하지 않으며, 읽기 쉬운 구문을 갖는 것을 목표로합니다. ScrewUnit, JSSpec, JSpec 및 RSpec과 같은 다른 단위 테스트 프레임 워크의 영향을 많이받습니다.

function helloWorld() {
  return 'Hello world!';
}
describe('Hello world', function() {
  it('says hello', function() {
    expect(helloWorld()).toEqual('Hello world!');
  });
});

  • Jasmine 커뮤니티는 규모가 매우 크며 라이브러리, 블로그 게시물 또는 비디오 튜토리얼의 형태로 제공되는 모든 종류의 지원을 받게됩니다.
  • 커뮤니티가 클수록 Jasmine의 학습 곡선은 매우 매끄 럽습니다. 당신도 꽤 인상적인 문서를 얻습니다.
  • 자바 스크립트 개발자의 28.6 %가 가장 좋아하는 자바 스크립트 테스트 프레임 워크로 Jasmine을 선택한 반면, 개발자의 16.7 %는 이에 대해 듣고 가까운 미래에 배우고 싶어합니다.

Suggested posts

닷지 종속성이있는 React 앱 인수

닷지 종속성이있는 React 앱 인수

나는 당신이 선택한 React 코드베이스에서 두 가지 일을 할 것을 감히한다. 나는 게임 데이를 위해이 기초적인 악성 코드를 만들었다. 매월 Okra Solar의 개발 팀원 중 한 명이 문제가 발생할 경우 발생하는 상황에 대비하여 나머지 팀원이 준비 할 수 있도록 연습을 진행합니다.

프런트 엔드 개발자가 성능에 관심을 갖는 이유

프런트 엔드 개발자가 성능에 관심을 갖는 이유

프런트 엔드 개발자는 조기 최적화 함정에 쉽게 빠지게됩니다.하지만 왜… 그리고 그래야합니까? 끊임없이 변화하는 환경, 즉 노드 모듈 내에서 수천 개의 JavaScript 파일이 가려지는 의존성 체인을 지속적으로 롤링하는 진화하는 트렌드의 생태계로 가득 찬 세계입니다. 고려해야 할 사항이 많이 있습니다. DOM의 HTML 리플 로우, 다시 그리기, 캔버스 및 WebGL 변형의 컨텍스트 렌더링 또는 SVG의 벡터 그래픽입니다.