ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데일리 과제 8
    장고 2023. 7. 28. 12:29

    RESTful API는 무엇을 의미합니까?

    REST(Representational State Transfer)

    API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처입니다. REST는 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌습니다. REST 기반 아키텍처를 사용하여 대규모의 고성능 통신을 안정적으로 지원할 수 있습니다. 쉽게 구현하고 수정할 수 있어 모든 API 시스템을 파악하고 여러 플랫폼에서 사용할 수 있습니다.

     

    REST는 다음과 같은 3가지로 구성이 되어 있습니다. 

    1. 자원(Resource) : HTTP URI
      서버는 고유한 리소스 식별자로 각 리소스를 식별합니다. REST 서비스의 경우 서버는 일반적으로 URL(Uniform Resource Locator)을 사용하여 리소스 식별을 수행합니다. URL은 리소스에 대한 경로를 지정합니다. URL은 웹페이지를 방문하기 위해 브라우저에 입력하는 웹 사이트 주소와 유사합니다. URL은 요청 엔드포인트라고도 하며 클라이언트가 요구하는 사항을 서버에 명확하게 지정합니다.
    2. 자원에 대한 행위(Verb) : HTTP Method
      GET POST PUT(PATCH) DELETE
    3. 자원에 대한 행위의 내용 (Representations) : HTTP Header
      요청 헤더는 클라이언트와 서버 간에 교환되는 메타데이터입니다. 예를 들어, 요청 헤더는 요청 및 응답의 형식을 나타내고 요청 상태 등에 대한 정보를 제공합니다.

    즉 REST란 

    1. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
    2. HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해
    3. 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다.

     

    API 개발자는 여러 아키텍처를 사용하여 API를 설계할 수 있습니다. REST 아키텍처 스타일을 따르는 API를 REST API라고 합니다. REST 아키텍처를 구현하는 웹 서비스를 RESTful 웹 서비스라고 합니다. RESTful API라는 용어는 일반적으로 RESTful 웹 API를 나타냅니다. 하지만 REST API와 RESTful API라는 용어는 같은 의미로 사용할 수 있습니다.

     

     

    다음은 REST 아키텍처 스타일의 몇 가지 원칙입니다.

    1. 균일한 인터페이스(Uniform Interface)
    2. 무상태(Statelessness)
    3. 계층화 시스템(Layered System)
    4. 캐시 가능성(Cache Ability)
    5. 온디맨드 코드(Code On Demand)

     

    RESTful API에는 다음과 같은 이점이 있습니다.

    확장성

    REST API를 구현하는 시스템은 REST가 클라이언트-서버 상호 작용을 최적화하기 때문에 효율적으로 크기 조정할 수 있습니다. 무상태는 서버가 과거 클라이언트 요청 정보를 유지할 필요가 없기 때문에 서버 로드를 제거합니다. 잘 관리된 캐싱은 일부 클라이언트-서버 상호 작용을 부분적으로 또는 완전히 제거합니다. 이러한 모든 기능은 성능을 저하시키는 통신 병목 현상을 일으키지 않으면서 확장성을 지원합니다.

    유연성

    RESTful 웹 서비스는 완전한 클라이언트-서버 분리를 지원합니다. 각 부분이 독립적으로 발전할 수 있도록 다양한 서버 구성 요소를 단순화하고 분리합니다. 서버 애플리케이션의 플랫폼 또는 기술 변경은 클라이언트 애플리케이션에 영향을 주지 않습니다. 애플리케이션 함수를 계층화하는 기능은 유연성을 더욱 향상시킵니다. 예를 들어, 개발자는 애플리케이션 로직을 다시 작성하지 않고도 데이터베이스 계층을 변경할 수 있습니다.

    독립성

    REST API는 사용되는 기술과 독립적입니다. API 설계에 영향을 주지 않고 다양한 프로그래밍 언어로 클라이언트 및 서버 애플리케이션을 모두 작성할 수 있습니다. 또한 통신에 영향을 주지 않고 양쪽의 기본 기술을 변경할 수 있습니다.

     

     

    DRF를 사용해 API를 개발할 경우 어떤 장점이 있습니까?

    Django REST framework는 웹 API를 구축하기 위한 강력하고 유연한 도구 모음입니다.

     

    DRF의 장점

    1. Serializaiton
      DRF의 Serializer는 데이터를 직렬화하고 반대로 역직렬화하는 기능을 제공합니다.
      Serializer는 JSON 형태의 텍스트 데이터를 장고 모델 인스턴스로 변환하는 작업을 합니다.
      직렬화된 데이터가 유효한 지 검사하는 유효성 검사를 자동으로 수행합니다.
      반대로 모델 인스턴스를 JSON 형태로 변환하는 역직렬화 작업도 수행합니다.
    2. Simple JWT 같은 플러그인을 이용하여 토큰 기반 인증을 구현할 수 있습니다.
    3. Filtering과 Pagenation을 간단하게 구현할 수 있습니다.

     

     

     

    참고:

    https://aws.amazon.com/ko/what-is/restful-api/

    https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80

    '장고' 카테고리의 다른 글

    데일리 과제 10  (0) 2023.08.01
    데일리 과제 9  (0) 2023.07.31
    데일리 과제 7  (0) 2023.07.27
    데일리 과제 6  (0) 2023.07.26
    데일리 과제 5  (0) 2023.07.25
Designed by Tistory.