[네트워크] REST API

CJY·2023년 8월 24일
0

네트워크

목록 보기
11/11

REST API

REST(Representational State Transfer)는 웹 아키텍처 스타일 중 하나로, 분산 시스템에서 리소스를 관리하고 상호 작용하기 위한 원칙과 규칙을 제공합니다. RESTful API는 이러한 원칙을 따라 설계된 웹 서비스 API를 의미하며, 클라이언트와 서버 간의 통신을 위한 효율적인 방법을 제공합니다.

특징

  • 리소스 중심 (Resource-Centric)
    RESTful API는 리소스를 중심으로 설계됩니다. 각각의 리소스는 고유한 식별자(URI)를 가지고 있으며, 클라이언트는 이를 통해 리소스를 식별하고 조작할 수 있습니다.

  • HTTP 메서드 활용
    HTTP 메서드(GET, POST, PUT, DELETE 등)를 활용하여 리소스에 대한 작업을 정의합니다. 예를 들어, GET은 리소스를 조회하고, POST는 리소스를 생성하며, PUT은 리소스를 수정하고, DELETE는 리소스를 삭제하는 역할을 수행합니다.

제약 조건

  • 클라이언트-서버 분리 (Client-Server Separation)

    • 클라이언트와 서버는 독립적으로 개발되어야 합니다.
    • 서버는 데이터 저장 및 관리, 클라이언트는 사용자 인터페이스와 상호 작용을 처리합니다.
    • 이로 인해 확장성이 향상되고 각 역할의 변경이 다른 역할에 영향을 미치지 않습니다.
  • 무상태성 (Statelessness)

    • 서버는 클라이언트의 상태 정보를 저장하지 않습니다.
    • 모든 요청은 클라이언트로부터 필요한 정보를 포함하여 전송되어야 합니다.
    • 서버의 확장성과 클라이언트와 서버 간의 결합도를 줄입니다.
  • 캐싱 (Caching)

    • 클라이언트는 서버의 응답을 캐시하여 동일한 요청에 대한 반복적인 네트워크 요청을 줄입니다.
    • 서버는 응답에 캐싱 정책을 지정하여 클라이언트 측에서 관리할 수 있습니다.
  • 계층화 (Layered System)

    • 중간 서버(로드 밸런서, 캐시 서버 등)가 클라이언트와 서버 사이에 존재할 수 있습니다.
    • 중간 서버는 보안, 로드 분산, 캐싱 등을 처리하여 아키텍처의 유연성과 확장성을 높입니다.
  • 유니폼 인터페이스 (Uniform Interface)

    • 리소스에 대한 일관된 인터페이스를 제공해야 합니다.
    • HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 리소스를 조작하고, 리소스는 고유한 식별자(URI)로 식별됩니다.
    • 이로써 클라이언트와 서버 간의 통신이 단순하고 일관성 있게 이루어집니다.
  • 코드 온 디맨드 (Code on Demand, Optional)

    • 서버는 클라이언트에게 코드 또는 스크립트를 전송하여 실행할 수 있는 옵션을 제공할 수 있습니다.
    • 클라이언트에게 서버에서 제공되는 로직을 실행할 수 있는 유연성을 줄 수 있습니다.

RESTful API는 다양한 언어와 플랫폼에서 사용 가능하며, 인터넷 상의 다양한 서비스에서 적용되고 있습니다. 이는 웹 서비스 간의 통신과 데이터 교환을 효율적이고 일관성 있게 만들어주는 중요한 웹 개발 개념입니다.

URI, URL, URN

URL(Uniform Resource Locator), URI(Uniform Resource Identifier), URN(Uniform Resource Name)은 웹에서 리소스를 식별하기 위한 용어입니다. 이들은 각각 다음과 같은 의미와 차이점을 가지고 있습니다:

URI (Uniform Resource Identifier)

  • URI는 인터넷 상의 모든 리소스를 고유하게 식별하기 위한 일반적인 개념입니다.
  • URL과 URN을 모두 포함하는 상위 개념입니다.
  • URI는 해당 리소스의 위치를 나타내거나, 리소스의 이름을 나타낼 수 있습니다.

URL (Uniform Resource Locator)

  • URL은 리소스의 위치를 지정하는 식별자입니다.
  • 리소스의 위치(주소)를 포함하며, 특정한 프로토콜(예: HTTP, FTP)을 사용하여 리소스에 접근하는 방법을 제공합니다.
  • 예시: https://velog.io/@cjy

URN (Uniform Resource Name)

  • URN은 리소스의 이름을 지정하는 식별자입니다.
  • 리소스의 위치를 나타내지 않고, 리소스의 이름만을 나타냅니다.
  • 주로 특정한 이름 공간(namespace) 아래에서 리소스를 식별합니다.
  • 예시: urn:isbn:0451450523 (책의 ISBN 번호를 식별하는 URN)

요약하면, URI는 인터넷 상의 모든 리소스를 식별하는 개념이며, URL은 리소스의 위치를 지정하는 식별자입니다. URN은 리소스의 이름을 지정하는 식별자로, 위치와 관계 없이 리소스를 고유하게 식별합니다. URI는 URL과 URN을 모두 포함하는 개념이지만, 실제로는 URL이 가장 많이 사용되고, URN은 덜 일반적으로 사용됩니다.

profile
열심히 성장 중인 백엔드

0개의 댓글