IT 기초지식

[IT기초] REST API 란? REST API 의 정의와 RESTful API

wooye 2025. 3. 11. 16:16

REST API, RESTful API 의 경우

개발자 면접 시 가장 많이 묻는 질문 중 하나로 꼽히기도 하며

실제 현업에서 업무를 수행하면서 사용하기까지 했었다.

 

그러나 인터넷으로 검색 시 무슨 뜻인지 분명 이해를 했으나,

REST API 에 대해 설명하라는 질문을 들었을 때

데이터 삭제를 진행 한 것 처럼 기억에 남지 않았다.

 

그래서 정리하는 포스팅

 


RESTful API 란?

" REST 특징을 기반으로 정의 해 놓은 API "

 

API 란 소프트웨어나 서버끼리 요청과 응답하는 방법을 정의 해 놓은 것

 

REST API 란 ?

클라이언트나 서버가 어떤 방식으로 요청하고 어떤 방식으로 응답할지 정해놓은 다양한 방식중 하나

→  다양한 API 중 하나로

REST 특징을 기반으로 서버끼리 요청과 응답하는 방법을 정의해 놓은 것이라고 할 수 있다.

 

RESTful API 란 ?

RESTful API 란 REST 아키텍처 스타일을 따르는 웹 API,

즉, REST 원칙을 잘 지키며 설계된 API 를 말한다.

 

REST API 와 RESTful API 의 차이

REST       :  웹상의 자원을 이름으로 구분하고, 해당 자원의 상태를 주고받는 모든 것

RESTful   :  REST 를 기반으로 만들어진 API

 

따라서 REST 원리를 잘 따르는 시스템은 RESTful 하다라고 표현 됨

 



계속해서 REST, REST 하는데 

대체 REST 란 무엇일까

 

REST 란 ?

Representational State Transfer 의 약자로 

자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 것을 의미한다

 

Representational : 표현 (대표를 내세움)

State      : 상태

Transfer : 전송

 

 

POST, GET, PUT, PATCH, DELETE

HTTP 프로토콜을 사용해서 URI로 요청을 보냄

 

 

* RESTful 한 요청으로 작업 시 *

 

Create     POST    - https://api.yalcobooks.com/v1/books

Read        GET       - https://api.yalcobooks.com/v1/books/1

                GET       - https://api.yalcobooks.com/v1/books?page=1&size=10

Update     PUT       - https://api.yalcobooks.com/v1/books/20

                PATCH   - https://api.yalcobooks.com/v1/books/128

Delete     DELETE - https://api.yalcobooks.com/v1/books/7

 

 

GET       - https://api.yalcobooks.com/v1/books/1  

버전 1의 책들 중에서 1번의 데이터를 가져오겠다는 뜻

 

PATCH   - https://api.yalcobooks.com/v1/books/128

버전 1의 책들 중에서 128번의 데이터를 수정하겠다는 뜻

 

 

* 주의사항 *

URI는 어떤 자원에 관한 요청인지를 표현하는 것으로

URI에는 CRUD 에 관한 내용은 적지 않는다

무엇을 하는가에 대한 동사는 가능한 적지 않고, 그 부분은 HTTP 메소드에서 표현함

 

URI 는 정보의 자원만 표기하고 ( api.yalcobooks.com/v1/books  )

HTTP 메소드에서 자원의 행위를 표기해야 된다 ( POST, GET, PUT, PATCH, DELETE )

 

 

 

→ REST API의 요청과 응답에는 구조화된 데이터 표현이 가능하면서도 가벼운 JSON이 많이 사용됨

 


 

정리를 하면서 알게된 사실 중 하나는

내가 다녔던 회사의 경우 REST API 를 사용한다고 했었으나

조회와 수정만 GET / POST 를 사용했고

PUT, PATCH, DELETE 등을 사용하지 않아 REST API 를 사용했다고 보기 어렵다는걸 알았다.

 

이전 회사의 주된 업무가 유지보수 업무라

처음 구축 당시 개발자가 작성 해 놓은 것들을 다 뜯어 고칠 수 없어 그렇게 진행을 한 것 같았다.

 

REST 도 편리하게 일하기 위해 만들어진 것으로

무조건 REST API 가 좋고 이것만 옳아 !

이런건 아니지만 

이왕 작업할 거 나중에 내가 작업하는거에는 REST API 로 작성할 수 있게 해야지