2. REST, REST API, REST full 이란?

Yeppi's 개발 일기·2022년 5월 10일
0

Web

목록 보기
2/7
post-custom-banner

REST (Representational State Transfer)

  • 자원의 상태 전달

  • 네트워크 아키텍처


REST full

🧐REST가 잘 지켜졌는 지에 대한 기준🧐

1. Client, Server

클라이언트-서버가 서로 독립적으로 분리

2. Stateless

요청에 대해서 클라이언트의 상태를 서버에 저장하지 않음

3. Cache

클라이언트의 서버의 응답을 Cache(임시저장), 재사용하여 서버 부하를 낮춤

4. 계층화

클라이언트-서버 사이에 다양한 계층 형태로 구성 가능 및 확장

5. 인터페이스 일관성

인터페이스의 일관성 지키고 + 아키텍처 단순화시켜서 작은 단위로 분리하여 클라이언트-서버가 독립적으로 개선

6. Code on Demand(Optional)

자바스크립트 등 특정 기능을 서버로부터 클라이언트가 전달받아 코드를 실행



인터페이스 일관성

🧐REST 잘 사용했는 지 판단🧐

1. 자원의 식별

웹 기반의 REST에서는 리소스 접근할 때 URI를 사용

2. 메시지를 통한 리소스 조작

  • 가장 많이 사용하는 데이터 전달 방식 : HTML, XML, JSON, TEXT 등

  • 어떤 타입의 데이터인지 알려주기 위해 HTTP Header 부분에 content-type을 통해서 데이터 타입을 지정

  • 리소스 조작을 위해 데이터 전체를 전달 하지 않고, 메시지로 전달

  • 별도의 메시지 형태로 데이터를 주고 받으며, 클라이언트-서버가 독립적으로 확장 가능하도록 함

  • GET POST PUT DELETE

3. 자기 서술적 메시지

요청하는 데이터가 어떻게 처리 되어져야 하는 지 충분한 데이터를 포함할 수 있어야 함

HTTP 기반 → HTTP Method, Header 정보, URI 포함 정보

4. 애플리케이션 상태에 대한 엔진으로써 하이퍼미디어

  • REAT API를 개발할 때, 단순히 클라이언트 요청에 대한 데이터만 응답 해주는 것이 아닌
    관련된 리소스에 대한 Link 정보까지 같이 포함
  • 협업에서 실제로 사용 잘 안함


⇒ ❗ 위 4가지 조건을 잘 갖춘 경우 ❗ = REST Full 하다 = REST API

규약이기 때문에 무조건적으로 꼭 지켜야하는 것은 아님

profile
imaginative and free developer. 백엔드 / UX / DATA / 기획에 관심있지만 고양이는 없는 예비 개발자👋
post-custom-banner

0개의 댓글