Server

[Web 서버 기초] Web API는 어떻게 동작하는가? (Feat. CRUD)

dev-ohdam 2024. 5. 29. 23:39

 

Web API 복습

 지난 시간에는 Web API의 개념과 등장 배경에 관해 학습했다.

Web API는 모놀리틱(Monolithic) 아키텍처의 단점을 해결하기 위해 등장한 개념으로, 그 정의는 Web을 통해 원격으로 호출할 수 있는 (서버 위에서 동작하는) 함수들의 집합이다.

 

그리고 그 목적은 크게 두 가지였다.

  • 기능 공유
  • 데이터 공유

여기서 덧붙이자면, 공유하고자 하는 기능들도 결과적으로는 어떤 데이터를 공유하기 위한 함수들이라고

볼 수 있다.

Web API는 어떻게 동작하는가?

 

 


 오늘은 Web API가 동작하는 방식에 관해 설명하기 위한 그림 자료이다. 해당 그림은 Web API의 가장

최소화된 형태라고 볼 수 있다.

 

빨강-초록-파랑 순서대로 설명을 진행하겠다.

 

CRUD

우리가 사용하고자 하는 가치있는 데이터들은 보통 저장소에 존재할 것이다. 

그리고 이런 데이터들을 여러 사용자들에게 공유하기 위해선,  Web API의 형태로 구현되어야 한다.

 

 우리는 어떤 저장소에 있는 정보를 접근하고 관리하기 위해서 CRUD 기능을 사용해야한다.

그렇다면 CRUD는 무엇일까? CRUD는 소프트웨어가 가지는 기본적인 데이터 처리 기능을 말하며, Create, Read, Update, Delete의 앞자리를 따온 것이다.

 

 데이터베이스의 SQL 기본 명령어(insert, update...)RESTful API의 HTTPS 메소드(get, post, put, delete ..)들 또한 이를 기반으로 하여 만들어진 것이다.

 

실제로 키워드를 잘 살펴보면 대응되는 것이 많다. 

키워드 기능 SQL HTTPS METHOD
CREATE 생성 CREATE/INSERT POST
READ 조회 SELECT GET
UPDATE 갱신 UPDATE PUT/PATCH
DELETE 삭제 DELETE DELETE

 

Routing

 

 라우팅은 우리가 네트워크와 관련된 이론을 배울 때 자주 등장하는 개념이다.  우리가 어떤 통신을 진행할 때 최적의 경로를 탐색하는 행위를 말한다.

 

 여기서도 비슷한 의미로 사용된다. 사용자의 요청이 발생했을 때, 해당 요청에 맞게 경로를 설정해야 우리가 원하는 서비스를 제공 받을 수 있다.. (Create 하라고 요청을 보냈는데, Read를 수행하면 안되니까...)

 

라우팅은 우리가 보낸 요청에 해당하는 엔드 포인트까지 경로를 설정해주는 것이라고 볼 수 있다.

 

여기서 엔드 포인트는 말 그대로 끝 지점이라는 뜻이다. 즉, 서비스를 제공할 수 있는 가장 말단 부분이라고 볼 수 있다. 엔드 포인트는 보통 URL 형태로 표현된다.

 

우리가 Web API 프레임워크을 사용해 구현하는 주요 기능들이 바로, 엔드 포인트의 기능들을 구현하는

것이다.

 

Request, Response

 

 사용자의 요청을 엔드 포인트까지 라우팅하는 것을 우리는 HTTP Request를 통해 매핑(Mapping) 할 수 있다. 일단 HTTPS 프로토콜과 RESTful API는 추후 다른 게시글을 통해 자세히 다뤄보도록 하겠다.

 

  Request는 HTTP Method(Verb) + URL로 구성되어 있다.

 우리는 앞서 표를 통해, 우리는 HTTP Method(Verb)와 매칭되는 기능이 무엇인지 알고있다. 

그렇기 때문에 사용자의 요청이 어떤 엔드 포인트로 라우팅 될 지 짐작할 수 있다.

 

그리고 사용자는 내가 요청한 서비스에 대한 결과를 Response 형태로 받게 된다.

 

 

마무리

 

 오늘 내가 제시한 것은 가장 최소화된 Web API의 형태이기 때문에, 대략적으로 표현된 내용(엔드 포인트의 구현, 라우팅 방식 등..)이 있을 수 있다. 그런 부분은 우리가 사용할 프레임워크, 혹은 구현 방식에 따라 약간의 변화는 존재할 수 있다.

나는 해당 글의 카테고리에서 알 수 있듯이 ASP.NET Core를 사용할 예정이며, 이 기준에 맞춰 오늘 설명한 내용을 구체화해나갈 예정이다.