Routing을 하기 위한 핵심 라이브러리
기본적으로 웹페이지 접속은 사용자 대역과 Server 대역간의 데이터 송수신, 즉 Routing을 통해 이루어진다.
이때 송수신되는 데이터는 node.js 에서 하나의 객체, 인스턴스로 다루어지며 이 인스턴스는 Express Prototype을 참조한다.
즉 Routing 시 Express 모듈을 사용하여 서로 전달되는 데이터의 직관성(프로그래밍 관점)을 높일 수 있다.
또한 그만큼 로직을 간결하게 구성할 수 있고, 가독성이 높아지는 효과를 얻는다.
Express 기능의 핵심 원리 및 기술
사용자와 Server간 데이터 송수신이 이루어지는 과정에서 해당 데이터에 대한 직접적인 접근은 불가능하고, 한번의 가공과정을 거쳐야 한다.
사용자의 request 및 Server의 response는 req.body, res.body 형식으로 접근이 가능하고, 이 body는 bodyparsing(정제된 데이터)임을 의미한다.
쉽게 말하면 node.js에서 다루어지는 데이터(객체)는 한번 raw data가 아닌 한번 정제된 데이터이며, 이렇게 한번의 정제과정을 거치는 개념을 MiddleWare라 한다.
Application Programming Interface
운영체제와 Application간 이루어지는 인터페이스이다.
사용자와 운영체제의 인터페이스가 cmd환경이라면, 운영체제와 Application간 인터페이스는 서로가 이해할 수 있는 언어로 보면 된다.
node.js에서 API는 웹페이지와 리눅스 운영체제 혹은 localhost간 명령어들의 집합이라 보면 될 것이다.
API에 포함되는 개념 중 하나가 Express 이다.
REpresentational State Transfer API
서버의 자원과 주소를 정의하는 체계 내에서 네트워킹, 데이터 흐름을 제어하는 명령어의 집합으로 이해하면 좋을 것 같다.
Server가 운영되기 위해선 기본적으로 통신규약을 지켜야 하며, 이 통신규약에는 대표적으로 HTTP, HTTPS 등이 있다.
이 통신규약과 이에 대한 자원 및 주소를 정의하는 체계(=node.js 및 Server 운영체제 등)를 따르는 범위에서 데이터를 제어하는(express, middleware 등) 언어, 혹은 그 과정을 의미한다.
node.js나 Spring 등 웹프레임워크에서 가장 대표적으로 사용되는 REST API는
POST
GET
등이 있고, 이 API형태는 보통 JSON DATA 형태로 전달된다.
이러한 체계가 잘 지켜지는 환경을 RESTful한 환경이라 일컫는다.
node.js 체계에 맞게 웹페이지 서버를 운영하는 것
API 서버를 운영한다는 것은, 말 그대로 해당 체계에 맞게 서버를 운영하고 로직을 구성하는 것을 의미한다.
node.js 등 각 웹프레임워크나 Server환경(Server/Serverless/Container 등)에 따라 그 체계 등이 상이할 수 있으므로, 적절하게 활용하는 것이 필요하다.
https://velog.io/@gyrbs22/node.js-3%EA%B0%95expressmiddleware
https://ing-yeo.net/2020/02/study-nodejs-create-simple-restful-api-server/
https://www.redhat.com/ko/topics/api/what-is-a-rest-api