RESTful API 알아보기 - 기본

sebinnnnn·2023년 5월 8일
0
post-thumbnail

1️⃣ RESTful API이란?

👉🏻 API는 무엇인가?
API(Application Programming Interface)는 다른 소프트웨어 시스템과 통신하기 위해서 따라야 하는 일종의 규칙이자 약속이다.
쉽게 말해서 API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체라고도 할 수 있다.
모든 정보, 데이터는 데이터베이스라는 공간에 저장이 되는데, 민감한 데이터의 경우 아무나 데이터베이스에 접근해서는 안 되기 때문에 이를 방지하기 위해서 API가 출입구 역할을 하는 것이다. 즉, 서버와 데이터베이스에 대한 출입구 역할을 하면서 허용된 사람들만 해당 데이터베이스에 접근할 수 있는 접근성을 부여해 준다.

RESTful API를 우선 쉽게 한 문장으로 표현하자면 REST한 방식으로 프로그램 간의 정보 교환 등의 상호작용을 가능하게 하는 것이다.
즉, RESTful이란 REST를 잘 지킨 것을 의미하고 REST API는 REST 형식으로 설계된 API를 의미한다.

쉽게 한 문장으로 표현은 했지만 그 한 문장에 익숙하지 않은 개념들이 있어서 사실상, 이해하기가 쉽지는 않을 것 같다.

따라서, RESTful API를 이해하기 위해서는 우선 REST와 REST API를 살펴봐야 한다.

🔗 REST와 REST API?

REST는 Representational State Transfer의 약자 자원을 이름으로 구분하여 해당 자원의 정보를 주고받는 것이며 WWW와 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식이라고도 볼 수 있다.
쉽게 말해서, 서버와 클라이언트 간의 통신 방식 중 하나라고 할 수 있다.
REST는 기본적으로 웹 기존 기술과 함께 HTTP 프로토콜 방식을 그대로 사용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.

구체적으로 풀어 설명하자면, HTTP URI를 통해서 자원을 명시하게 되고 HTTP method(get, post 등...)를 통해서 해당 자원에 대한 CRUD Operation를 적용하는 것을 의미한다.

이러한 REST의 경우 기존 HTTP 프로토콜의 인프라를 그대로 사용하기 때문에 REST API를 사용하기 위한 별도의 인프라 구축이 따로 필요가 없다.

REST API는 말 그대로 REST를 기반으로 해서 API를 구현한 것을 말한다.

REST API는 기본적인 설계 규칙이 존재하는데, 예를 들어 URI로 자원을 표현할 때 자원을 명사 형태로 소문자를 사용해야 한다거나 URI에 method가 들어가면 안 된다는 등의 규칙이 있다.
이러한 기본 규칙들은 따로 문서를 통해 살펴보면 좋을 것 같다.

📍 참고하면 좋을 사이트 / https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

🔗 RESTful API

앞서 살펴본 REST와 REST API를 통해 RESTful이 무엇인지 살펴보면, RESTful은 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용하는 용어다.
즉, REST API를 제공하는 웹 서비스를 RESTful하다고 말할 수 있다.

따라서, RESTful API잘 지킨 REST 형식을 통해서 설계된 API라고 할 수 있다.


2️⃣ RESTful API를 사용하는 이유

RESTful API는 다양한 이점이 있는데, 크게 3가지로 정리할 수 있다.

첫 번째는 확장성으로, REST API를 구현하는 시스템의 경우 REST가 클라이언트와 서버 간의 상호작용을 최적화하기 때문에 효율적으로 크기를 조정할 수 있게 된다. 더불어, REST 특징 중 하나인 무상태를 통해서 서버가 과거 클라이언트 요청 정보를 굳이 유지하지 할 필요가 없어 서버 로드를 제거할 수 있다. 이러한 점들로 성능을 저하시키는 통신 병목 현상을 일으키지 않으면서 동시에 확장성을 지원한다는 장점을 가지고 있다.

두 번째는 유연성으로, RESTful 웹 서비스는 완전한 클라이언트와 서버 분리를 지원한다. 각 부분들이 독립적으로 발전할 수 있도록 다양한 서버 구성 요소를 단순화하고 분리하기 때문에 서버 애플리케이션의 플랫폼이나 기술 변경은 클라이언트 애플리케이션에 영향을 주지 않게 된다. 즉, 이러한 부분들이 유연성을 더욱 향상시키게 되는 것이다.

마지막으로 세 번째는 독립성이다. REST API는 사용되는 기술과는 독립적인 관계를 가지기 때문에 API 설계에 영향을 주지 않고 다양한 프로그래밍 언어로 클라이언트 및 서버 애플리케이션을 모두 작성할 수 있다는 장점이 있다.

이처럼 RESTful API는 위에서 언급한 다양한 이점 그리고 언급하지 못한 다른 이점들도 지니고 있기 때문에, RESTful API를 많이 사용하고 있다.


참고 사이트

https://aws.amazon.com/ko/what-is/restful-api/

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

https://thalals.tistory.com/284

https://jinsangjin.tistory.com/75

profile
🏠 블로그 이전 중 → https://medium.com/@sebinndev

0개의 댓글