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 |