CS 관련 지식 - 네트워크 _ REST, RESTful?

링딩·2023년 3월 13일
0

Computer Science

목록 보기
4/49

REST

정의

  • 어떤 자원에 대해 CRUD(생성,읽기,수정,삭제) 연산을 수행하기 위하여 URI(Resource)로 GET,POST 등을 이용하여 요청을 보내고, 요청에 의한 자원은 특정한 형태로 표현.

🤷‍♀️URI와 URL의 차이

  • URI : 인터넷 상 자원의 위치
  • URL : 인터넷 상의 자원을 식별하기 위한 문자열 구성
    => URI는 _ URL을 포함한다.

+) REST API는 REST의 특징을 지닌 서비스 API를 구현한 것.


REST 특징

1. 서버- 클라이언트 구조

  • 자원을 제공하는 쪽 Server
  • 자원을 요청하는 쪽 Client
    비즈니스 로직 처리 및 저장을 '서버'가 맡고, 사용자 인증, context(세션, 로그인 정보) 등을 직접 '클라이언트'가 관리 등 분업.
  • 이로 인해 서로 간의 의존성이 내려감.

2. Stateless (무상태)

  • HTTP 프로토콜도 무상태, REST 또한 무상태성을 가짐.
  • 서버는 각각의 요청을 완전히 별개라고 인식하여 처리.
  • 클라이언트는 (세션,쿠키)와 같은 context를 서버에 저장하지 않는다.

3. Cacheable(캐시 처리 가능)

  • 캐싱 기능을 적용하여 응답시간이 빨라지고 REST Server 트랜잭션이 발생하지 않게 됨
    => 전체 응답시간/성능/서버의 자원 이용률이 향상

4. Layered System(계층화)

  • REST Server는 다중 계층으로 구성이 가능하다.
    -> 보안, 로드밸런싱, 암호화, 사용자 인증 등을 추가하여 구조상 유연성을 줄 수 있음
    -> 로드밸런싱, 공유 캐시 등으로 확장성과 보안성 또한 향상시킬 수 있다.

5. Code-On-Demand

  • 반드시 충족할 필요는 없음.
  • 서버로부터 스크립트를 받아 클라이언트에서 실행.

6. 인터페이스의 일관성

  • URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행해야 한다.
  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
    -> 특정 언어나 기술에 종속되지 x




RESTful 이란?

REST의 설계 규칙을 잘 지켜 설계된 API를 RESTful한 API라고 한다.

📣 즉, 'RESTful'은 위의 REST 원리(특징)를 따르는 시스템을 지칭한다.

RESTful의 목적

  • 이해하기 쉽고 사용하기 쉬운 REST API를 제작을 목표
    -> 일관적인 컨벤션을 통하여 API의 이해와 호환성을 높이는게 주 목표이다.

🤦‍♂️ RESTful 하지 못한 경우,,?

ex) CRUD 기능을 전부 POST로 처리한 API 등





출처

99C0RN 의 블로그를 참조하였습니다.

profile
초짜 백엔드 개린이

0개의 댓글