항상 기업에 이력서를 넣다보면 rest api을 활용할 수 있는 인재를 원하는 경우가 많다. 나 또한 사이드 프로젝트를 진행할 때 rest api를 사용해왔다. 하지만 명확하게 어떠한 것이 rest 다운 rest api일까를 정리해보고자 이 글을 포스팅해본다.
[ 참고 블로그 ]
[네트워크] REST API란? REST, RESTful이란?
REST API란 REST를 기반으로 만들어진 API를 의미합니다. REST API를 알기 위해 REST부터 알아보도록 하겠습니다. REST란? REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상
khj93.tistory.com
1. rest 란 ?
rest api를 알기 전 rest란 무엇인가에 대해서 먼저 알아보도록 하자.
Rest(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다.
조금 더 분류해서 설명하자면
(1) HTTP URI에 자원을 명시
(2) HTTP Method (GET, POST, PUT, PATCH, DELETE)를 상황에 맞게 사용
(3) 해당 URI에 대한 CRUD를 적용
요약하자면
HTTP URI에 자원을 명시하며, 해당 URI을 통신 할 때 사용하는 Method로 어떠한 CRUD를 적용할 지 선택하는 것이다
2. rest의 특징
(1) 서버 클라이언트 구조
자원이 있는 쪽이 서버, 요청하는 쪽이 클라이언트로 서버는 api 제공 및 로직 처리, 저장을 책임 지며, 클라이언트는 사용자 인증, 세션, 로그인 정보를 관리하고 책임진다
(2) Stateless(무상태)
rest 는 무상태성을 가지며, 클라이언트에 세션, 로그인 정보를 서버에 저장하지 않는다.
서버는 각각의 요청을 별개의 요청으로 인식하고 처리한다.
(3) 캐시 처리 가능
HTTP 프로토콜을 그대로 사용하기에 HTTP가 가진 특징 중 하나 인 캐싱 기능 적용이 가능하다.
대량의 요청을 효율적으로 처리하기 위해 캐시가 요구되며, 캐시를 사용함으로써 응답시간이 빨라지고, 트랜잭션이 발생하지 않아서 응답시간, 성능, 자원 이용률이 향상 된다.
(4) 계층화
클라이언트는 rest api 서버만 호출하며, 해당 서버는 다중 계층화로 구성이 가능하다.
(5) 인터페이스 일관성
URI로 지정한 자원에 대한 조작을 통일되고 한정적인 인터페이스로 수행한다
HTTP 표준을 따르는 모든 플랫폼에서 사용할 수 있다.
3. rest api 란 ?
그렇다면 rest api란 무엇일까 ?
rest api란 rest 방식을 따르는 api라고 할 수 있다.
URI에 자원을 명시하며 HTTP Method로 어떤 작업을 수행할지를 알 수 있는 api 라고 이해하면 편하다
* api란? 데이터와 기능의 집합을 제공하여, 컴퓨터 프로그램 간 상호작용을 촉진하여, 서로 정보를 교환 가능하도록 하는 것
4. rest api 기본 규칙
(1) URI는 정보의 자원을 표현해야 한다
동사보다는 명사를, 대문자보다는 소문자를 사용해야하며, 단 건은 단수 명사를, 리스트와 같은 복수는 복수 명사를 사용해야한다.
(2) 자원에 대한 행위는 HTTP Method으로 표현한다
GET : Read
POST : Create
PUT, PATCH : Update
(PUT은 전체 수정, PATCH는 단건 수정을 의미)
DELETE : Delete
(3) 슬래시는 계층 관계를 나타내는 곳에 사용하며, 마지막에는 슬래시를 포함하지 않는다
(4) 언더바가 아닌, 하이푼( - )을 사용하며, 경로가 길어진다면 하이푼으로 분리해서 가독성을 높인다
(5) 파일 확장자는 URI에 포함하지 않는다
5. restful 이란 ?
그렇다면 RESTful 이란 무엇인가 ?
RESTful 이란, rest 방식으로 구현하는 웹 서비스를 의미한다.
간단하게 말하자면 rest api를 사용하여 만들어진 웹 서비스를 RESTful하다고 할 수 있다.
즉, rest api로 만들어진 웹 서비스이지만, CRUD를 전부 POST로 처리하거나, URI에 행위가 들어가는 등, rest 방식을 지키지 못한 api는 RESTful 하지 못한 서비스라고 할 수 있다.
6. 결론
rest api를 만드는 것은 개발하는 웹 개발자라면 대부분 사용하고 있는 방식일 것이다.
하지만 자신이 rest 한 api를 만들고 있다고 생각했지만, 조금 지켜지지 않았을 수도 있다는 생각이 들었다.
이번 기회로 깔끔하게 정리되어서 좋은 포스팅이였다고 생각한다
'CS' 카테고리의 다른 글
RDBMS, NoSql이란 무엇일까? (0) | 2024.01.14 |
---|---|
프로세스와 쓰레드란? (0) | 2023.12.07 |
프로세스와 스케줄링에 대해서 (0) | 2023.12.07 |
쿠키와 세션, 캐시의 차이란 무엇일까? (1) | 2023.11.30 |