Medium - Express will dominate the coming decade. Here’s why.

Aditya Prakash

Trend 파악을 위한 Medium 기고문 포스팅 - 익스프레스가 앞으로 주력 프레임워크가 될 것입니다. 이유를 말씀해드리죠; 바닥에서 시작했던 익스프레스가 이번달에 7번째 안정된 버전을 내놓으면서 이제는 관록있는 왕에게 도전할 것입니다.

익스프레스는 빠르고 유연하며 Node.js를 위한 가장 작은 웹프레임워크 입니다. 빠르고 견고하며 비동기를 지원합니다. 프레임워크의 초기 릴리즈버전은 10년전 쯤이었고 2010년의 끝에 익스프레스는 처음으로 안정된 빌드를 공개했습니다.

Why use Express?

이것은 너무 간단할 수도 있겠지만 익스프레스는 Node.js에서 CSS와 웹디자인을 하기 위한 부트스트랩입니다. 익스프레스는 Node.js를 위한 가장 유명한 프레임워크 중 하나입니다. 가끔 익스프레스는 NodeJS와 동일하게 취급될 정도 입니다. 왜냐하면 다음과 같습니다.

  • 아주 빠른 I/O : 이것은 노드가 최고의 위치에 오르게 한 포인트 입니다.
  • 비동기화
  • 라우팅을 이해하기 쉽다.

아래의 코드는 익스프레스에서 라우팅을 설정하는 것이 얼마나 쉬운지 보여줍니다. 다른 프레임워크와 비교해본다면 차이점을 알게 되실겁니다.

var express = require('express');
var app = express();
app.get('/', function (req, res) {
  res.send('Hello World!');
});

Performance

익스프레스가 이미 나와있는 프레임워크 중 가장 빠른 것은 아닙니다. 만약 가장 빠른 것을 쓰고 싶다면 fasify를 쓰세요. 다음은 익스프레스와 페스트파이를 비교한 포스트입니다.

그러나 익스프레스는 구현과 이해하는데 있어서 너무나 간단하고 쉽습니다. 우리는 다른 전략을 이용해서 우리의 응용프로그램의 성능을 개선시킬 수 있습니다. 익스프레스의 성능을 향상시키는 베스트 프랙티스는 다음과 같습니다.

  • gzip을 사용하세요
  • 가능하다면 동기화 함수를 사용하는 것을 피하세요
  • 프로미스는 항상 예외처리를 하셔야 합니다.
  • 분산 로드를 하는 아주 좋은 방법이 있습니다. 로드밸런스가 있다면 여러개의 인스턴스를 실행할 수 있습니다. Nginx를 살펴보세요.

위의 내용 말고도 Express4에서는 중대한 변경사항이 있습니다. Express2와 Express3의 앱은 더 이상 동작하지 않을 것입니다. Express 4는 라우팅, 속도, 보안측면에서 엄청나게 많은 개선점을 소개하고 있습니다.

혹자는 더욱 빠른 프레임워크가 사용가능하다면 왜 느린 것을 배워야 하냐고 물을수도 있습니다. 속도라는 측면에서 fastify가 모든 조건에서 express를 능가하는건 아니지 않나요? 파이썬으로 동일한 질문을 하고 싶습니다. 만약 C++이 제일 빠른 언어라면 파이썬이 왜 유명해졌을까요? 이 질문들에 대한 대답은 동일합니다. 익스프레스나 파이썬이나 매우 사용하기 쉽고 개발자 친화적이기 때문입니다. 파이썬에서 “Hello World”는 다음과 같습니다.

print("Hello World!")

이것은 2학년만 되어도 이해할 수 있을 것입니다. 반면에 c++은 다음과 같습니다.

cout<<"Hello World"<<endl;

아마 2학년 친구는 cout이 뭔지, 화살표는 무엇을 위한 것인지 물을 것입니다. 익스프레스도 마찬가지입니다. 가장 빠른 프레임워크는 아니지만 가장 쉬운 것이죠. 익스프레스는 그리고 그렇게 느리지 않습니다. fastify처럼 빠르지는 않겠지만 그래도 매우 빠릅니다. 게다가 익스프레스는 NodeJS와 함께라면 동시에 많은 요청들을 처리할 수 있습니다. 논블로킹 I/O 스트림 덕분이죠.

우리는 클러스터 모듈을 사용해서 자바스크립트가 여러개의 CPU들을 다 활용하는 병렬수행을 하게 할 수 있습니다. CPU가 필요한 작업을 하고 있을 동안 두번째 서버가 메시지 큐나 서버리스 함수, 간단한 API를 수행하게 할 수 있습니다. 익스프레스가 설치되면 많은 개발자들의 가려운 곳을 긁어줄 것입니다. 처음으로 라우트를 선언한 프레임워크이며 과거의 많은 이슈들을 고쳤습니다. 개발자들은 이것들이 그냥 부차적이라고 할 수 있지만 익스프레스는 여전히 할 수 있는 것이 많고 갈길이 멉니다. 결국에 제가 하고싶은말은 로마는 하룻밤에 지어지지 않았다는 것이죠.

Summary

  • 익스프레스의 장점; 가장 빠른 프레임워크는 아니지만 가장 쉬운 프레임워크다
  • python이 c++ 대신에 사용되는 것을 생각해보자.

© 2019. All rights reserved.

Powered by Hydejack v8.1.1