본문 바로가기

카테고리 없음

REST API, Express, routing 이 뭘까? 개념정리.

728x90

REST API

REST API를 알아보기 전에, REST에 대해 간단하게 말하고 넘어가자.

 

"REST는 HTTP기반으로 필요한 자원에 접근하는 방식을 정해놓은 아키텍쳐이다."

 

그렇다면 여기서 말하는 자원은 무엇일까?

자원은 저장된 데이터(DBMS)를 포함, 이미지/동영상/문서(pdf 등)와 같은 파일, 서비스(이메일 전송, 푸쉬 메시지 등)를 모두 포함한다.

그리고 REST API는 REST를 통해 서비스 API를 구현한 것을 말한다.

 

우리가 예를 들어서 기상청에서 날씨 데이터를 활용한 서비스를 만들고자 할 때, 기상청 API를 사용하게 될것이다.

 

REST를 활용한다고 가정했을때, 우리는 기상청의 자원에 접근해야 될 것이다.

REST에서는 자원에 접근 할 때 URI(Uniform Resource Identifier)를 사용하게 된다.

 

URI를 알았으면, http 메소드를 활용해 자원을 가져오거나, 지우거나 하는 행위들을 할 수 있다.

그 종류로는 GET, POST, PUT, DELETE가 있다.

 

주의할 점이, 같은 URI라도 http 메소드에 따라 하고자 하는 결과들이 달라질 수 있는데, 이를 endpoint라고 한다. 

쉽게 설명해서 endpoint는 http메소드 + URI 인 셈이다.

 

출처 : https://medium.com/@dydrlaks/rest-api-3e424716bab

 

Express

Express는 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크이다.

 

Express.js라고도 하며 , 쉽게 설명하자면 서버를 쉽게 만들기 위한 프레임워크라고 보면 된다.

 

Routing

라우팅은 Express를 사용하여 REST API를 개발하는 기본 요소이다. 라우팅 은 앱이 특정 API 엔드 포인트에 대한 클라이언트 요청에 응답하는 방법을 정의하는 프로세스를 말한다.

 

예를 들어, 클라이언트는 questions 목록을 검색하기 위해 API  / questions 경로에 GET 요청을 보낼 수 있다 . 이 endpoint를 GET '/ questions'라고 한다.

동일한 서버의 다른 endpoint는 POST '/ questions'일 수 있다.

Express를 통해 각 API 엔드 포인트를 처리  경로 를 설정할 수 있다 . 각 라우트마다 클라이언트가 해당 엔드 포인트에 요청을 보내면 Express가 실행할 콜백 함수를 제공한다.

 

 

 

클라이언트 측 HTML, CSS 및 JavaScript 파일이 서버 측 앱과 어떻게 통합될까?

 

일반적으로 사용되는 MVC 패턴과 같은 몇 가지 웹앱 개발 모델이 있다. 일부 패턴에서는 앱의 백엔드가 서버의 클라이언트 측 파일을 직접 수정하는 서버 측 렌더링을 사용할 수 있습니다. 

이러한 시나리오에서 서버 측 코드는 해당 파일을 클라이언트에 반환 하기 전에 HTML 템플릿에 데이터를 직접 삽입한다 .

이 경우 백엔드로 REST API를 개발 중이므로 서버는 요청시 데이터 를 사용하여 클라이언트에 응답한다 . 따라서 클라이언트 측 파일은 해당 데이터에 대한 요청을 보낸 다음 브라우저 내에서 적절하게 HTML 파일에 데이터를 채 운다.

파일을 수정하지 않고 단순히 리턴하는이 프로세스를 정적 파일 제공(serving static files) 이라고 한다. 

프런트 엔드 용 정적 HTML, CSS 및 JavaScript 파일을 public서버  폴더에 보관하고 브라우저는 파일을 요청할 때 그대로 해당 파일을 그대로 반환한다.