Hungry Developer

REST API란 무엇일까? 본문

Web

REST API란 무엇일까?

HungryBurger 2023. 1. 23. 16:16

REST API 란 무엇일까? REST API에 대해서 여러 포스팅을 참고해 간단 명료하게 정리해보려 합니다.

REST API란 

REST API에서 REST는 Representational State Transfer의 약자로 소프트웨어 프로그램 아키텍처의 한 형식입니다.

즉, 자원 이름(Representation)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미합니다.

 

쉽게 풀어쓰면,

REST Method를 통한 행위를 명시하고,

URI를 통해 자원을 명시해서 자원의 상태를 주고 받기 위한 소프트웨어 프로그램 아키텍처입니다.

REST API의 구성

- 자원(Resource) - URI(Uniform Resource Identifier)

- 행위(Verb) - HTTP METHOD(GET, POST, PUT, DELETE)

- 자원의 이름 or 표현(Representation of Resource)

 

일단 여기서 URI와 URL에 대해서 햇갈릴 수 있기 때문에 두 가지에 대해서 이해가 안된다면 맨 하단에 설명을 적어놨습니다.

 

REST의 구체적인 개념

- 웹의 모든 자원에 고유한 HTTP URI를 부여합니다.

- HTTP URI를 통해 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Opertation을 적용하는 것을 의미합니다.

 

HTTP METHOD(GET, POST, PUT, DELETE)

GET :

자원을 받아오기만 할 때 사용되며, 어떤 방식으로도 자원의 상태를 변경시키지 않습니다. 

그래서 GET API는 멱등성을 가진다고 얘기할 수 있는데, 이는 동일한 API를 여러 번 호출하더라도 동일한 결과를 얻을 수 있음을 의미합니다.

 

POST :

새로운 자원을 추가할 때 사용된다.

이는 서버의 상태를 변경시키며, 때문에 비멱등성 성질을 가집니다.

응답 코드로 201(Created)를 받아야 정상적으로 서버에 추가 되었음을 확인할 수 있습니다.

PUT :

PUT은 리소스를 수정시 사용되며, 멱등성을 가집니다.

PUT은 리소스의 위치를 명확히 알고 요청을 할 경우 사용을 합니다.

그렇기 때문에, PUT은 새 리소스를 생성하고, 동일한 내용으로 PUT을 리소스에 요청을 해도 결과는 같게 됩니다.

PUT 메소드의 의미는 서버가 요청의 본문을 가지고 요청 URL의 이름대로 새 자료를 만들거나, 이미 URL이 존재한다면, 본문을 사용해서 교체하는 것입니다.

 

PATCH :

PUT과 비슷하게, 리소스 수정 시 사용된다. 반면 리소스를 부분 수정시 사용된다는 것이 개념적인 차이점입니다.

PUT은 문서 자체의 교체만을 허용하며, 만약 전체가 아닌, 일부만 전달할 경우, 전달한 필드외 모드 null이나 초기값으로 처리됩니다.

반면, PATCH는 자원의 부분 교체가 가능하며, 수정할 JSON일부를 보낸다고 할 때, 해당 필드만 수정됩니다.

 

DELETE : 

원격지 웹 서버에 파일을 삭제하기 위해 사용되며, 멱등성을 가지고 있습니다.

서버에게 요청 URL로 지정한 리소스를 삭제할 것을 요청하더라도 클라이언트는 삭제가 수행되는 것을 보장 못합니다.

이유는 HTTP 명세에는 서버가 클라이언트에게 알리지 않고 요청을 무시하는 것을 허용하지 않기 때문입니다.

 

보통 대부분의 경우 멱등성을 가지고 있다면 Safe한데, DELETE는 멱등하지만 리소스를 변경하므로 Safe 하지 않습니다.

 

<URI  vs URL vs URN>

URI와 그 하위 개념 (URL, URN)

Reference :&amp;nbsp;https://hanamon.kr/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B8%B0%EB%B3%B8-url-uri-urn-%EC%B0%A8%EC%9D%B4%EC%A0%90/

URI(Uniform Resource Identifier)

URI는 특정 리소스를 식별하는 통합 자원 식별자(Uniform Resource Identifier)를 의미합니다. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스입니다.

URL(Uniform Resource Locator)

URL은 흔히 웹 주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약이다. URI의 서브셋입니다.

URN(Uniform Resource Name)

URN은 URI의 표준 포맷 중 하나로, 이름으로 리소스를 특정하는 URI입니다.

글을 마치며,

이제껏 개발을 하면서 가장 많이 사용해온 개념임에도 불구하고 깊게 다뤄보지 못했지만, 이번 기회에서 깊게 찾아보고 확인해보면서 어렴풋이 이해하고 있던 부분들도 확실히 이해할 수 있었습니다. 

 

잘못된 내용이 있거나 부족한 내용이 있다면 댓글 부탁드립니다.

긴 글 읽어주셔서 감사합니다.

 

Reference : https://www.charlezz.com/?p=44767

 

URI랑 URL 차이점이 뭔데? | 찰스의 안드로이드

URI 그리고 URL을 혼용해서 사용하는 경우가 있다. 대부분의 경우 문제가 없지만 정확하게 이 둘의 차이점이 존재한다. 그러므로 각 용어의 정의와 용도에 대해서 알아본다. URI URI는 특정 리소스

www.charlezz.com

 

Reference : https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

 

[Network] REST란? REST API란? RESTful이란? - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

Reference : https://velog.io/@somday/RESTful-API-%EC%9D%B4%EB%9E%80

 

RESTful API 이란

REST API 에서 REST는 Representational State Transfer 의 약자로 소프트웨어 프로그램 아키텍처의 한 형식 입니다.즉, 자원을 이름 (자원의 표현) 으로 구분하여 해당 자원의 상태 (정보)를 주고 받는 모든

velog.io

Reference : https://velog.io/@ellyheetov/REST-API

 

REST API란, HTTP Method

REST란? 웹에 존재하는 모든 자원(이미지, 동영상, DB)에 고유한 URL을 부여하여 활용하는 것을 의미한다. 자원을 정의하고 자원에 대한 주소를 지정하는 방법론이다. 자원의 이름(자원의 표

velog.io

Reference : https://hanamon.kr/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B8%B0%EB%B3%B8-url-uri-urn-%EC%B0%A8%EC%9D%B4%EC%A0%90/

 

[네트워크/기본] URI, URL 및 URN의 차이점 - 하나몬

수정 보완 중에 있습니다… 🙏 그래도 의견 있으시면 주세요. ⚡️ URI과 그 하위 개념 URL, URN 개념 이해하기 ❗️URI 이란? URI는 Uniform Resource Identifier, 통합 자원 식별자의 줄임말이다. 브라우저

hanamon.kr

 

'Web' 카테고리의 다른 글

SPA(Vue, React) 웹 호스팅 & 배포 자동화  (0) 2023.01.20
Apach와 Tomcat에 대해서  (0) 2020.04.01
Comments