REST API

참새·2023년 3월 27일
0

REST(Representational State Transfer) API

  • 사람이 읽을 수 있는 API.
  • 웹 서비스를 위한 아키텍처 스타일 중 하나로 HTTP 프로토콜을 사용하여 클라이언트와 서버 간에 통신하는 방식.
  • 간결하고 가볍고 확장성이 뛰어나며, HTTP를 지원하는 모든 플랫폼에서 쉽게 구현 가능.
  • REST API를 사용하기 위해서는 프로젝트의 요구사항과 목표, 기술적인 환경 등을 고려하여 적절한 설계와 개발이 필요.

특징

  • 자원(Resource)

    URI(Uniform Resource Identifier)로 표현되는 자원에 대한 행위를 HTTP 메서드(GET, POST, PUT, DELETE 등)로 나타냄. 예를 들어, /users URI는 사용자 자원을 나타내며, GET 메서드를 사용하여 사용자 목록을 가져올 수 있음.

  • 표현(Representation)

    자원의 상태를 XML, JSON, HTML 등의 형식으로 전송하며 이를 통해 클라이언트는 서버가 제공하는 자원의 상태를 이해하고 처리할 수 있음.

  • 상태(Stateless)

    클라이언트의 상태를 서버에서 유지하지 않음. 이를 통해 서버는 클라이언트의 요청을 독립적으로 처리할 수 있음.

  • 캐시(Cacheable)

    HTTP 프로토콜의 캐싱 기능을 사용하여 응답 결과를 캐시할 수 있음. 이를 통해 서버의 부하를 줄이고, 응답 시간 단축 가능.

  • 계층 구조(Layered System)

    서버와 클라이언트 사이에 중간 계층(로드 밸런서, 캐시 등)을 둘 수 있음. 이를 통해 시스템을 확장하고, 보안성을 높일 수 있음.

단점

  • RESTful 한 것에 대한 명확한 표준이 존재하지 않음.
  • RESTful을 완전히 만족하는 API를 만들기는 까다로움.
  • REST API가 분산환경에 적합하지 않음.

REST API 사용한 이유

  • 클라이언트와 서버의 분리

    REST API를 사용하면 클라이언트와 서버 간의 역할을 분리하여 클라이언트와 서버 간에 독립적으로 개발하고, 유지보수가 가능.
  • 다양한 클라이언트 지원

    REST API는 HTTP 프로토콜을 사용하기 때문에, 모든 클라이언트(웹 브라우저, 모바일 앱, 데스크톱 앱 등)에서 사용할 수 있어 서비스의 가용성과 확장성을 높일 수 있음.
  • 캐싱

    REST API는 HTTP 프로토콜의 캐싱 기능을 사용할 수 있습니다. 이를 통해 클라이언트와 서버 간의 트래픽을 줄이고, 성능 향상이 가능.
  • 보안성

    REST API는 SSL(Secure Sockets Layer)과 같은 보안 기술을 사용할 수 있어 데이터의 보안성을 보장함.

비교대상

  • SOAP(Simple Object Access Protocol) API

    XML을 사용하여 데이터를 교환하며, HTTP, SMTP, FTP 등의 프로토콜을 사용하고 메시지의 크기가 크고 복잡하여 처리 속도가 느리다는 단점이 있지만, 보안성과 신뢰성이 높은 것이 특징.
    또한, WSDL(Web Services Description Language)이라는 문서를 제공하여 API의 기능과 사용법을 상세하게 설명이 가능.

  • GraphQL API

    REST API와는 다르게 클라이언트가 필요한 데이터만 요청하고, 서버는 그에 대한 응답만 제공하여 불필요한 데이터 전송을 줄이고, 빠른 응답 시간과 유연한 데이터 요청이 가능.
    하지만, 서버 측에서는 쿼리를 해석하고 처리하는 추가적인 작업이 필요하다는 단점이 있음.

profile
응애 나 아기 개발자

0개의 댓글