티스토리 뷰

Web

REST API란 무엇인가?

DevReview 2023. 2. 20. 22:35
반응형

REST API란 무엇인가?

REST API란 Representational State Transfer Application Programming Interface의 약자로, 웹 서비스 간에 데이터를 주고받기 위한 표준 인터페이스입니다. REST API는 HTTP 프로토콜을 기반으로 하며, 클라이언트와 서버 간의 통신에 필요한 데이터를 제공합니다.

REST API의 특징

REST API는 다양한 클라이언트와 서버 간에 통신을 가능하게 합니다. 이를 위해 REST API는 클라이언트-서버 아키텍처, 상태없는(stateless) 통신, 캐시 가능성, 계층화된 시스템 등을 지원합니다.

 

클라이언트-서버 아키텍처

REST API는 클라이언트와 서버 간의 역할을 분리하여, 서로간의 독립성을 보장합니다. 클라이언트는 서버에서 데이터를 요청하고, 서버는 해당 데이터를 응답합니다. 이를 통해 클라이언트와 서버 간의 확장성이 높아지며, 각각의 시스템이 독립적으로 변경될 수 있습니다.

 

상태없는(stateless) 통신

REST API는 요청과 응답 사이에 클라이언트나 서버의 상태를 저장하지 않습니다. 각 요청은 독립적으로 처리되며, 클라이언트나 서버는 이전 요청에 대한 정보를 기억하지 않습니다. 이를 통해 시스템의 확장성이 높아지며, 클라이언트와 서버 간의 의존성이 줄어듭니다.

 

캐시 가능성

REST API는 캐시를 이용하여 성능을 향상시킬 수 있습니다. 서버는 응답에 캐시 가능성을 표시하여, 클라이언트는 이전에 받은 응답을 재사용할 수 있습니다. 이를 통해 서버의 부하를 줄이고, 클라이언트와 서버 간의 응답 시간을 단축시킬 수 있습니다.

 

계층화된 시스템

REST API는 다중 계층으로 구성될 수 있습니다. 클라이언트는 중간 서버를 거쳐서 원하는 리소스에 접근할 수 있으며, 서버는 중간 서버를 통해 다른 서버와 통신할 수 있습니다. 이를 통해 시스템의 확장성이 높아지며, 보안성이 강화됩니다.

 

자원 지향적 (resource-oriented) 인터페이스

REST API는 자원을 중심으로 설계됩니다. 자원은 URI(Uniform Resource Identifier)로 표현되며, HTTP 메서드(GET, POST, PUT, DELETE)를 이용하여 자원을 처리합니다. 이를 통해 REST API는 간결하면서도 확장성이 높은 인터페이스를 제공합니다.

 

REST API의 메서드 종류

REST API의 메서드는 HTTP 메서드를 기반으로 합니다. HTTP 메서드는 클라이언트와 서버 간의 요청 및 응답에 사용되는 메서드로, REST API에서는 다음과 같은 네 가지 메서드를 이용합니다.

GET

GET 메서드는 URI에 지정된 리소스의 표시를 요청합니다. 클라이언트는 서버에 요청을 보내면, 서버는 해당 리소스의 내용을 반환합니다. 이 메서드는 주로 데이터를 조회할 때 사용됩니다. 예를 들어, 게시글을 조회하기 위해서는 GET 메서드와 게시글의 URL을 이용하면 됩니다. 게시글을 수정하기 위해서는 PUT 메서드와 게시글의 URL을 이용하면 됩니다.

 

POST

POST 메서드는 새로운 리소스를 생성할 때 사용됩니다. 클라이언트는 서버에 요청을 보내면, 서버는 해당 리소스를 생성하고 그 결과를 반환합니다. 이 메서드는 데이터를 추가하거나 업데이트할 때 사용됩니다.

 

PUT

PUT 메서드는 URI에 지정된 리소스를 수정할 때 사용됩니다. 클라이언트는 서버에 요청을 보내면, 서버는 해당 리소스를 수정하고 그 결과를 반환합니다. 이 메서드는 데이터를 수정할 때 사용됩니다.

 

DELETE

DELETE 메서드는 URI에 지정된 리소스를 삭제할 때 사용됩니다. 클라이언트는 서버에 요청을 보내면, 서버는 해당 리소스를 삭제하고 그 결과를 반환합니다. 이 메서드는 데이터를 삭제할 때 사용됩니다.

 

GET, POST, PUT, DELETE 가 나눠진 이유

HTTP 메서드는 다양한 종류의 요청과 응답에 사용될 수 있으며, REST API에서는 위의 4가지 메서드를 이용하여 다양한 작업을 수행합니다. 각 메서드의 용도를 정해 특정한 메서드에 대한 작업을 할 수 있도록 만들며, 이를 통해 클라이언트와 서버 간의 효율적인 통신이 가능하며, REST API의 기본 구조를 이해하는 데 있어서 중요한 역할을 합니다.


REST API에서 지원하는 데이터 형식

REST API는 다양한 데이터 형식을 지원합니다. 클라이언트와 서버 간의 데이터 전송을 위해 다양한 형식을 사용할 수 있으며, REST API에서는 다음과 같은 형식을 지원합니다.

 

JSON (JavaScript Object Notation)

JSON은 JavaScript에서 사용하는 데이터 형식으로, 가벼우면서도 데이터를 간단하게 표현할 수 있습니다. JSON은 데이터를 Key-Value 형식으로 표현하며, 배열과 객체를 이용하여 다양한 데이터를 표현할 수 있습니다. JSON은 브라우저나 서버 모두에서 쉽게 사용할 수 있으며, REST API에서 가장 많이 사용되는 데이터 형식 중 하나입니다.

 

XML (eXtensible Markup Language)

XML은 태그 형식으로 데이터를 표현하는 데이터 형식입니다. XML은 데이터의 구조를 명확하게 표현할 수 있으며, 다양한 언어에서 지원됩니다. REST API에서는 JSON과 함께 가장 많이 사용되는 데이터 형식 중 하나입니다.

 

Plain Text

Plain Text는 문자열 형태로 데이터를 전송하는 방식입니다. 이 방식은 가장 단순한 형태의 데이터 전송 방식으로, 다른 형식보다는 사용빈도가 적지만, 특정한 경우에 사용될 수 있습니다.

 

HTML

HTML은 웹 페이지를 표시하는 데 사용되는 마크업 언어로, REST API에서도 HTML을 이용하여 데이터를 전송할 수 있습니다. 이 방식은 일반적으로는 사용되지 않지만, 특정한 경우에는 사용될 수 있습니다.

 

REST API에서의 다양한 데이터 형식을 지원하는 이유

REST API에서는 이러한 다양한 데이터 형식을 지원하여, 클라이언트와 서버 간의 데이터 전송을 유연하게 처리할 수 있습니다. 다양한 데이터 형식을 지원하는 이유는 위에 말했듯이 데이터 전송을 유연하게 처리하기 위함이며, 이를 통해 클라이언트와 서버 간의 효율적인 통신이 가능합니다.

 

정리

마지막으로, REST API는 널리 사용되는 표준 인터페이스입니다. 이를 이용하여 다양한 시스템 간의 통신이 가능하며, 다양한 기업에서 이용되고 있습니다.


반응형
댓글