Nodejs로 웹서버를 운영하다보면 하나의 서버에서 다 운영하다보면 프론트 단에서 멈추는 순간이면 서버가 멈칫 할 수가 있다. 서버는 응답만 해주면 되는데, 그래서 웹서버도 서버와 클라이언트로 나누어야 한다. Nodejs RESTful API Server란무엇인지 알아보자
그래서 만들려고 하는건 RESTful API Server
여기서 REST (Representational State Transfer)는 웹 서비스와 애플리케이션 간의 통신을 위한 아키텍처 스타일이다.
REST는 웹에서 사용되는 기본 프로토콜인 HTTP를 기반으로 하며, 자원에 대한 CRUD (Create, Read, Update, Delete) 작업을 수행할 수 있는 일관된 인터페이스를 제공한다.
RESTful 웹 서비스 특징
그래서 RESTful이란 용어는 REST 아키텍처 원칙을 따르는 웹 서비스를 나타내며, RESTful 웹 서비스는 다음과 같은 특징을 가지고 있다
Stateless
각 요청이 독립적이며 서버는 클라이언트의 상태 정보를 저장하지 않음. 클라이언트는 필요한 모든 정보를 요청에 포함시켜 서버에 전달함
Client-Server
클라이언트와 서버는 독립적으로 작동하며, 각각의 역할이 명확하게 분리됨. 이를 통해 클라이언트와 서버는 각각 개발되고 유지보수될 수 있음
Cacheable
클라이언트는 서버에서 전달받은 응답을 캐시할 수 있음. 이를 통해 응답 시간이 단축되고 서버의 부하가 줄어듬
Layered System
REST 아키텍처는 계층화된 시스템을 지원. 이를 통해 각 계층은 독립적으로 작동하고 변경될 수 있으며, 전체 시스템의 유연성이 향상
Code on Demand (optional)
필요에 따라 서버는 클라이언트에게 실행 가능한 코드를 전달할 수 있음. 이 기능은 선택적이며 모든 RESTful 웹 서비스에 적용되지는 않음
Uniform Interface
REST는 일관된 인터페이스를 제공하여, 자원에 대한 CRUD 작업을 표준화된 방식으로 수행할 수 있음
RESTful 웹 서비스는 이러한 원칙들을 따라 구현되며, 다양한 클라이언트와 손쉽게 상호 작용할 수 있는 플랫폼 독립적인 인터페이스를 제공한다.
RESTful 웹 서비스 장점
RESTful 서버를 만드는 이유는 여러 가지인데, RESTful API는 일반적으로 웹 서비스에서 사용되며, 다음과 같은 장점들이 있다.
플랫폼 독립적
RESTful API는 플랫폼에 독립적이므로 다양한 클라이언트와 상호 작용이 가능함. 웹, 모바일, IoT 기기 등에서 API를 호출하여 서버와 데이터를 주고받을 수 있음
확장성
RESTful API는 상태가 없으며 요청 간 상태 정보를 저장하지 않음. 이로 인해 서버의 부하가 줄어들고, 수평 확장이 용이.
다양한 데이터 형식 지원
RESTful API는 JSON, XML, HTML 등 다양한 데이터 형식을 지원. 이를 통해 클라이언트는 필요에 따라 적절한 데이터 형식을 선택하여 사용할 수 있음.
결론적으로,
RESTful 서버는 플랫폼 독립적이고 확장성이 좋으며, 다양한 데이터 형식을 지원하고 일관된 인터페이스를 제공한다.
이러한 이유로 많은 웹 서비스와 애플리케이션에서 RESTful API를 사용하여 클라이언트와 서버 간의 통신을 구현하고 있다.
다음글에서는 실제로 구현해보겠다.
[프로그래밍/Server] - [Nodejs] RESTful API Server 만들기
'Language > Nodejs' 카테고리의 다른 글
[Nodejs] RESTful API Client 만들기 서버와 통신하기 (0) | 2023.04.18 |
---|---|
[Nodejs] RESTful API Server 만들기 (0) | 2023.04.14 |
[Nodejs] CHATGPT API를 활용해서 웹 서비스에 적용하기 (1) | 2023.03.29 |
[node.js] Remote Desktop 일렉트론 설치하기 Nodejs + electron (0) | 2023.03.15 |
[nodejs] 지정된 범위 내에 난수(랜덤 숫자, random number) 출력하기 (0) | 2022.05.17 |