본문 바로가기

CS/네트워크 기초

RSET API 와 RESTful 이란?

 

REST

  • Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처 디자인 제약이 모음
  • 자원을 정의(자원의 표현)하고 자원에 상태 (정보)를 주고 받는 모든 것을 의미
  • REST는 기존 웹 기술과 HTTP프로토콜을 그대로 활용하기 땜ㄴ에 웹이 장점을 최대한 활용할 수 있는 아키텍처 형식이다.

REST의 제한조건

  • 인터페이스 일관성
    • 일관적인 인터페이스로 분리되어야 한다.
  • 무상태성(stateless)
    • HTTP의 특성을 으로 무상태성을 가진다. 
    • 서버에서 어떤 작업을 위해 상태정보를 기억할 필요가 없고 요청에 대해 처리만 하기 때문에 구현이 쉽고 단순하다.
  • 캐시 처리 가능(Cacheable)
    • 기존 HTTP 라는 웹 표준을 사용하는 REST의 특징 덕분에 기본 웹에서 사용하는 인프라를 사용 가능하다.
    • 캐시 사용을 통해 REST Server트랜잭션이 발생하지 않기 때문에 전체 응답시간, 성능, 서버의 자원 이용률을 향상 시킬 수 있다.
  • 계층화(Layerd System)
    • 클라이언트가 대상 서버에 직접 연결되어있는지 혹은 중간 서버를 통해 연결되어있는지 알 수 없다. 서버는 로드 밸런싱 기능이나 공유 캐시 등을 제공함으로 시스템 규모를 향상시키는데 유용하다
  • 클라이언트/서버 구조
    • 아키텍처를 단순화시키고 작은단위로 분리하여 클라이언트-서버 간 파트의 의존성을 줄여 독립적으로 개선될 수 있게 한다.
      • REST Server : API를 제공하고 비지니스 로직 처리 및 저장을 책임진다.
      • Client : 사용자 인증이나 context (세션, 로그인 정보)등을 직접 관리하고 책임진다

RESTful

REST API의 설계 의도를 명확하게 지킴으로써, 각 구성 요소들의 역할이 확실하게 분리 되어 있어서, URI만 보더라도 리소스를 명확하게 인식하게 할 수 있도록 표현 한 설계방식을 의미하고 각 리소스에 대한 기능을 HTTP메소드(POST, GET, PUT, DELETE 등)을 이용하여 일관되게 정의할 수 있어야한다.

 

 

RESTful 하게 api 만들기

  • 객체명이 URI에 포함된다면 가급적 복수를 사용하는 것이 좋다.
  • URI의 명확한 정의를 통해 실무에서 API사용에 원할한 소통이 가능해야한다.
  • URI를 표시할 때 계층들의 관계는 '/'를 통해서 구분해야한다.
  • 명사로 URI를 구성한다.
  • 파일 확장자는 URI에 포함하지 않는다.

'CS > 네트워크 기초' 카테고리의 다른 글

렌더링 엔진의 종류와 특지  (0) 2021.02.03
웹 브라우저의 구성 요소와 요소별 특징  (0) 2021.02.01
네트워크 통신 과정  (0) 2021.02.01
TCP 패킷 분석  (0) 2021.01.28
DNS 패킷 분석  (0) 2021.01.28