Javascript

RESTful API: Representational State Transfer

John' 2023. 12. 9. 12:10

인간은 망각의 동물이다. 특정한 행동이나 생각을 자주 하지 않으면 우리 뇌 속에서는 신경의 가지치기 현상이 일어난다고 한다. 우리가 어떤 생각, 기분, 행동을 수행하지 않으면 뇌는 그와 연관된 뉴런들을 발화시키지 않는데, 그 결과 그러한 생각, 기분, 행동이 점점 약해지다가 결국 시들어버리고 잊게 되는 것을 신경 가지치기라고 한다. 그렇기 때문에 우리는 초등학교 시절처럼 리코더를 연주할 수 없는거고, 곡면의 부피를 구하는 적분 공식이나 근의 공식등에 대해 더는 기억하지 못하는 것이다. 쉽건, 어렵건 지금 나는 무조건 많이 생각하고 자꾸 써보고 사용해보는 것 밖에 방도가 없다 생각한다.

 

 

RESTful API를 학습하며 해당 프로토콜의 정의와 사용하는 이유에 대해서 작성 및 적용 방법 등에 대해서 작성 해 보았다.

 

 

 

 

소개
RESTful API(Representational State Transfer API)는 웹 서비스의 설계 및 통신을 위한 아키텍처 스타일 중 하나이다. REST는 웹 상의 자원을 표현하고 상태를 전송하기 위한 형식으로, 네트워크 아키텍처의 규칙 집합으로 이루어져 있다.

이 아키텍처 스타일은 간결하고 확장 가능한 API를 구축하는 데 매우 효과적이며, HTTP 프로토콜을 기반으로 동작한다.

 

 

 


REST의 구성 요소

 

1. 자원 (Resource)
REST는 자원을 기반으로 동작한다. 자원은 어플리케이션에서 관리하고자 하는 모든 엔터티를 나타낸다.

예를 들어, 블로그 서비스의 자원은 게시물, 댓글, 사용자 등이 될 수 있다.

 


2. 행위 (Verb)
자원에 대한 행위는 HTTP 메서드를 통해 정의된다. 주로 사용되는 메서드로는 GET(조회), POST(생성), PUT(수정), DELETE(삭제) 등이 있고, 이러한 메서드들은 각각 자원에 대한 특정한 동작을 나타낸다.

3. 표현 (Representation)
REST는 자원의 상태를 표현하는 방법으로 JSON이나 XML과 같은 형식을 사용한다. 클라이언트가 자원의 상태를 요청하면 서버는 해당 자원의 표현을 제공하는데, 이를 통해 클라이언트와 서버 간의 통신이 이루어진다.

4. 연결 (Stateless)
REST는 상태를 유지하지 않는(stateless) 특성을 갖습니다. 각 요청 간에 클라이언트의 상태가 서버에 저장되지 않으며, 각 요청은 모든 필요한 정보를 포함하여야 한다. 이로써 시스템이 단순해지고, 서비스의 확장성이 향상된다.

 

 

 


RESTful API의 장점


간결성과 가독성: RESTful API는 자원과 행위를 명확하게 정의하고, 각 자원에 대한 표현을 직관적으로 제공하기 때문에 코드의 가독성이 높다.


유연성: REST는 HTTP 프로토콜을 사용하므로 기존의 인프라를 활용할 수 있으며, 다양한 클라이언트와 서버 간의 통신이 가능하다.

확장성: RESTful API는 각 리소스에 대한 독립적인 엔드포인트를 제공하므로 새로운 자원이나 행위를 추가하기가 용이하다.

 

 

 


RESTful API 적용 방법


1. URI 설계
URI(Uniform Resource Identifier)는 각 자원에 대한 고유한 식별자로, RESTful API에서는 명확하고 직관적인 URI 설계가 중요하다. 예를 들어, /posts, /users와 같이 자원을 나타내는 명사형으로 URI를 구성하는 것이 일반적이다.

2. HTTP 메서드 활용
HTTP 메서드는 각 자원에 대한 특정한 동작을 정의한다. GET은 조회, POST는 생성, PUT은 수정, DELETE는 삭제 등의 동작을 나타내는데, 이러한 메서드를 적절하게 활용하여 API의 의도를 명확히 표현해야 한다.

3. 상태 코드 활용
서버는 각 요청에 대한 응답으로 적절한 HTTP 상태 코드를 반환해야 한다.

상태 코드는 클라이언트에게 요청의 성공 여부 및 원인을 전달하는데 사용되며, RESTful API에서는 특히 성공 시 2xx, 실패 시 4xx나 5xx를 반환하는 것이 일반적이다.

 

 

 


결론


RESTful API는 간결하면서도 확장 가능한 웹 서비스를 구축하는 데에 매우 효과적이다.

자원, 행위, 표현, 상태lessness의 원칙을 따르며, URI 설계와 HTTP 메서드 활용을 통해 명확하고 효율적인 API를 만들 수 있다. 이를 통해 클라이언트와 서버 간의 통신이 원활하게 이루어지며, 개발자는 간단하면서도 강력한 웹 서비스를 제공할 수 있다.