물음표 살인마의 개발블로그

Back-End TIL/네트워크

RESTful API 란 무엇인가?

BEstyle 2023. 3. 15. 20:02

RESTful API란?

RESTful API란 Representational State Transfer(표현 상태 전송)의 약어로, 웹 서비스에서 자주 사용되는 아키텍처 스타일입니다. RESTful API는 클라이언트와 서버 간의 통신에서 HTTP를 사용하며, 리소스의 상태를 표현하고 전송하기 위해 URI(Uniform Resource Identifier)와 HTTP 메서드를 사용합니다. 이러한 RESTful 아키텍처 스타일은 웹 상의 자원을 이름으로 식별하고, 클라이언트와 서버 간의 분리와 상호작용을 강조합니다.

 

RESTful API의 특징

  • 클라이언트-서버 구조: 클라이언트와 서버 간의 역할을 명확하게 구분합니다.
  • 무상태성(stateless): 서버는 각 요청을 별개의 것으로 처리하고, 클라이언트와의 세션 상태를 유지하지 않습니다.
  • 캐시 처리 기능(Cacheable): 클라이언트는 서버의 응답을 캐싱할 수 있습니다.                                                              (정적인 리소스. 이미지, 스타일 등 <-> API 응답)
  • 계층화(Layered System): 클라이언트와 서버 간의 계층 구조를 가질 수 있습니다.
  • 인터페이스 일관성(Uniform Interface): 클라이언트와 서버 간의 인터페이스는 일관성 있게 설계되어야 합니다.

 

RESTful API의 장점

RESTful API는 여러가지 이점이 있습니다. 이 아키텍처 스타일은 시스템 간 상호작용을 단순화하고, 클라이언트와 서버 간의 인터페이스를 분리하여 서버와 클라이언트의 개발을 각각 독립적으로 진행할 수 있도록 합니다. 또한 RESTful API는 무상태성, 캐싱 처리, 계층화된 시스템 등의 RESTful 원칙을 따르기 때문에, 확장성, 유지보수성, 안정성 등의 이점을 제공합니다.

 

RESTful API의 구성 요소

RESTful API는 다음과 같은 구성 요소로 구성됩니다.

  • HTTP 메서드: 클라이언트와 서버 간의 상호작용을 나타내는 HTTP 메서드입니다.
  • 리소스: 클라이언트와 서버 간의 상호작용 대상인 데이터 또는 데이터 컬렉션입니다.
  • URI(Uniform Resource Identifier): 리소스의 위치를 식별하는 문자열 식별자입니다.
  • 표현(Representation): 클라이언트와 서버 간에 교환되는 데이터의 형식입니다.

RESTful API의 HTTP 메서드

  • GET, POST, PUT, DELETE, PATCH 등

 

RESTful API의 URI(Uniform Resource Identifier)

RESTful API에서 URI는 리소스의 위치를 식별하기 위해 사용됩니다. URI는 다음과 같은 구성 요소로 구성됩니다.

  • 스킴(Scheme) : URI의 유형을 나타냅니다. 대표적인 스킴으로는 http, https, ftp, mailto 등이 있습니다.
  • 호스트(host) : 서버의 이름 또는 IP 주소입니다.
  • 포트(Port) : 서버와 통신할 때 사용되는 포트 번호입니다.
  • 경로(Path) : 리소스의 경로입니다. 일반적으로 웹 페이지에서는 파일 이름 및 디렉토리 구조를 나타냅니다.
  • 쿼리(Query) : 추가적인 정보를 제공하기 위해 사용되는 매개변수입니다.
  • 프래그먼트(Fragment) : 문서 내의 특정 부분을 지정하기 위해 사용되는 ID입니다.

 

RESTful API의 보안

RESTful API에서는 HTTPS를 사용한 보안을 유지합니다. HTTPS는 HTTP프로토콜을 보안한 버전으로, 클라이언트와 서버 간의 통신을 암호화하여 데이터 보안을 유지합니다. 또한 RESTful API에서는 OAuth와 같은 인증 및 권한 부여 프레임워크를 사용하여 보안성을 높이기도 합니다.