본문 바로가기

Node.js

Node.js로 Restful API Server 만들기(1)

Node.js로 Restful api서버를 만드는 방법을 소개합니다. node.js에서 기본으로 제공하는 http패캐지가 있지만 작업이 복잡하고 여러 요건사항들을 직접 고려하고 구현해야 하는 불편함이 있습니다. 때문에 open community에서 제공하는 Framework를 많이 사용하여 시작합니다.

 

Node.js Resful API Frameworks

Node.js에서 RESTful API를 생성하기 위한 몇 가지 인기 있는 프레임워크가 있습니다.

Express: Express는 웹 및 모바일 애플리케이션을 위한 강력한 기능 세트를 제공하는 Node.js용 미니멀리스트 웹 프레임워크입니다. RESTful API를 구축하는 데 널리 사용되며 간단하고 빠른 API를 생성하는 데 탁월한 선택입니다.

Fastify: Fastify는 Node.js를 위한 빠르고 낮은 오버헤드 웹 프레임워크입니다. 단순하고 효율적이며 유연하게 설계되어 RESTful API를 구축하는 데 적합합니다.

Hapi: Hapi는 Node.js에서 애플리케이션 및 서비스를 구축하기 위한 풍부한 프레임워크입니다. RESTful API를 구축하기 위한 다양한 도구와 플러그인을 제공하며 크고 복잡한 애플리케이션을 구축하는 데 자주 사용됩니다.

Nest.js: Nest.js는 확장 가능하고 효율적인 서버 측 애플리케이션을 구축하기 위한 프레임워크입니다. RESTful API를 구축하기 위한 견고한 기반을 제공하고 코드를 쉽게 구성하고 구조화할 수 있습니다.

Koa: Koa는 Node.js에서 웹 애플리케이션 및 API를 구축하기 위한 최소한의 프레임워크입니다. RESTful API를 구축하기 위한 일련의 도구 및 미들웨어를 제공하며 단순하고 우아하며 유연하게 설계되었습니다.

 

Performance

Framework별로 성능차이가 존재합니다.

 

Express: Express는 단순성과 사용 용이성으로 유명하지만 많은 양의 데이터를 처리할 때 다른 프레임워크에 비해 성능이 떨어질 수 있습니다.

Fastify: Fastify는 성능과 효율성을 위해 설계되었으며 빠른 요청 처리와 낮은 오버헤드로 유명합니다.

Hapi: Hapi는 RESTful API를 구축하기 위한 다양한 도구와 플러그인을 제공하는 기능이 풍부한 프레임워크입니다. 성능은 애플리케이션의 크기와 복잡성에 영향을 받을 수 있지만 일반적으로 빠르고 효율적인 것으로 간주됩니다.

Nest.js: Nest.js는 Express를 기반으로 구축되었으며 확장 가능하고 효율적인 서버 측 애플리케이션을 구축하기 위한 견고한 기반을 제공합니다. 일반적으로 빠르고 효율적인 것으로 간주되지만 성능은 애플리케이션의 크기와 복잡성에 따라 달라집니다.

Koa: Koa는 RESTful API를 구축하기 위한 도구 및 미들웨어 세트를 제공하는 최소한의 프레임워크입니다. 그 성능은 일반적으로 빠르고 효율적인 것으로 간주되지만 설치 공간이 작기 때문에 크고 복잡한 응용 프로그램에는 적합하지 않을 수 있습니다.

 

Express는 가장 많이 사용됩니다. 다른 Framework에 비해 성능이 다소 떨어지지만 사용의 편이성과 지원되는 다양한 플러그인으로 인해 구현이 가장 간단합니다.  시스템 설계시 저사양의 시스템에서 높은 성능이 필요하다면 다른 프레임워크나 Java Spring, C++등의 다른 플랫폼을 고려하는게 좋습니다.

 

Express 설치

NPM으로 express package를 설치후에 수동으로 코드를 작성하는 방법이 있지만 저는 express-generator를 사용하여 기본  템플릿을 만들어서 시작하는 것을 선호합니다. (Windows환경일 경우 Node.js가 설치된 위치가 Program Files이면 Command Shell을 관리자 권한으로 실행해야 합니다.)

// express-generator를 설치합니다.
npm install -g express-generator

// 현재 디렉토리에 myapp디렉토를 생성하고 기본 코드들을 자동으로 생성
express --no-view myapp

// myapp디렉토리로 이동후 기본 패키지들을 설치
$ cd myapp
$ npm install

 

myapp 디렉토리를 Visual Studio Code로 Open한것입니다. 위 처럼 기본 템플릿코드가 자동으로 생성됩니다. 이제 아래 명령으로 실행합니다.

 

node bin/www

 

브라우져에서 접속 테스트합니다. 아래 그림처럼 기본 문구가 표시되면 성공입니다.

http://localhost:3000

 

 

restful api를 개발하기위한 사전 절차는 끝입니다. 이제 path를 등록하고 Router만 생성해주면 됩니다.

 

다음 게시물에서 계속됩니다.