코딩공부&일상기록 블로그

매일매일 조금씩

codingStudy

REST API란

김으엉 2024. 10. 20. 17:29

.
오늘은 REST API에 대한 개념을 정리해보겠습니다.
 

REST API(RESTful API 또는 RESTful 웹 API라고도 함)

REST(Representational State Transfer) 아키텍처 스타일의 설계 원칙을 준수하는
API(애플리케이션프로그래밍 인터페이스)입니다.

REST API는 애플리케이션을 통합하고 마이크로서비스 아키텍처의 구성 요소를 연결하는 유연하고 가벼운 방법을 제공합니다.


라고 IBM 게시글에서 정리해주고 있는데요..(https://www.ibm.com/kr-ko/topics/rest-apis)
당최 무슨 말인지.. 더 쉽게 한 번 정리해보도록 하겠습니다!
우선 REST가 무엇인지부터 알아보죠
 
 

REST



Represantational State Transfer은 직역하자면 "대표성상태 이동"이 되며
자원을 이름으로 구분해서 해당 자원의 상태를 주고받는 모든 것입니다.

제가 이해하기론 이름으로 자원에 대표성을 부여하고(ex. /movies)
해당 자원에 생성(ex. /movies/avengers), 조회, 수정, 삭제와 같은 상태의 변화를 적용하는 것인 것 같습니다.


1. HTTP URI(Unifrom Resorce Identifier)를 통해 자원(Resource)을 명시하고,
2. HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해
3.해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다

CRUD Operation이란
대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(조회), Update(갱신), Delete(삭제)를 묶어서 일컫는 말로
REST에서의 CRUD Operation 동작 예시는 다음과 같습니다.
Create : 데이터 생성(POST)
Read : 데이터 조회(GET)
Update : 데이터 수정(PUT, PATCH)
Delete : 데이터 삭제(DELETE)


REST 구성요소



REST는 다음과 같은 3가지로 구성 되어있습니다.

  1. 자원(Resource) : HTTP URI (명시된 자원 ex. movies)
  2. 자원에 대한 행위(Verb) : HTTP Method (ex. POST movies/avengers, DELETE movies/ironman  GET movies?release_date=2024)
  3. 자원에 대한 행위의 내용(Representations) : HTTP Message Pay Load


REST의 특징

  • Server-Clinet(서버-클라이언트 구조)
  • Stateless(무상태)
  • Cacheable(캐시 처리 가능)
  • Layered System(계층화)
  • Uniform Interface(인터페이스 일관성)

REST의 장단점



장점

  • HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구출할 필요가 없다.
  • HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해 준다.
  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
  • Hypermedia API의 기본을 충실히 지키면서 범용성을 보장한다.
  • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
  • 여러 가지 서비스 디자인에서 생길 수 있는 문제를 최소화한다.
  • 서버와 클라이언트의 역할을 명확하게 분리한다.


단점

  • 표준이 자체가 존재하지 않아 정의가 필요하다.
  • HTTP Method 형태가 제한적이다.
  • 브라우저를 통해 테스트할 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다 Header 정보의 값을 처리해야 하므로 전문성이 요구된다.
  • 구형 브라우저에서 호환이 되지 않아 지원해주지 못하는 동작이 많다.(익스폴로어)


REST API란?

REST의 원리를 따르는 API를 의미합니다.
하지만 REST API를 올바르게 성계하기 위해서는 지켜야 할 몇 가지 규칙이 있기 때문에 해당 규칙을 정리해보겠습니다.

REST API 설계 예

1. URI는 동사보다는 명사를 이용하며, 소문자를 이용한다.

Bad Example
http://moviejoa.com/showmovies


Good Example
http://moviejoa.com/movies

2. 마지막에 슬래시(/)를 사용하지 않는다

Bad Example
http://moviejoa.com/movies
/

Good Example
http://moviejoa.com/movies

3. 언더바 대신 하이픈을 사용한다.

Bad Example
http://moviejoa.com/movies/spider_man

Good Example
http://moviejoa.com/movies/spider-man

4. 파일확장자는 URI에 포함하지 않는다.

Bad Example
http://moviejoa.com/movies/avengers/photo.jpg

Good Example
http://moviejoa.com/movies/avengers/photo

5. 행위를 포함하지 않는다.

Bad Example
http://moviejoa.com/movies/avengers/delete-post/1


Good Example
http://moviejoa.com/movies/avengers/post/1



RESTful 이란?



RESTful이란 REST의 원리를 따르는 시스템을 의미합니다.
하지만 REST를 사용했다고해서 모두 RESTful 한 것은 아닙니다.
REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다 말할 수 있으며

모든 CRUD 기능을 POST로 처리하는 API, URI규칙을 올바르게 지키지 않는 API
REST API를 사용하였지만 RESTful 하지 못한 시스템이라고 할 수 있습니다.


이 글의 90% 이상을 참고사이트에서 정리해주신 내용을 공부하려는 목적으로 기록했습니다. 아직 이해하지 못한 부분에 대해서는 저 같은 쌩초보가 이해하는 데 도움이 될 만한 방식으로 보강해 업데이트 해보겠습니다. 글로 정리해도 100%이해한지는 모르겠네요 ㅠ 원글작성자 히진쓰님께 무한히 감사드립니다.
 
참고사이트 : https://www.elancer.co.kr/blog/view?seq=214
https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80

[네트워크] REST API란? REST, RESTful이란?

REST API란 REST를 기반으로 만들어진 API를 의미합니다. REST API를 알기 위해 REST부터 알아보도록 하겠습니다. REST란? REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상

khj93.tistory.com

 

'codingStudy' 카테고리의 다른 글

SSR 이란?  (1) 2024.10.04
SPA 란?  (2) 2024.10.02
헷갈리지 않는 JS 용어정리  (0) 2024.01.29
API란?  (0) 2024.01.28