REST의 특성
(출처 : 스프링 부트로 배우는 자바 웹개발)
- 클라이언트/서버
- 클라이언트와 서버가 서로 독립적으로 구분되어야 하고 서버 또는 클라이언트의 증설 시에 서로간의 의존성 때문에 확장에 문제가 되는 일이 없어야 한다.
- 상태 없음
- 클라이언트와 서버 간의 통신 시에 상태가 없어야 한다. 서버는 클라이언트의 상태를 기억할 필요가 없다.
- 레이어드 아키텍처
- 서버와 클라이언트 사이에 게이트웨이, 방화벽, 프록시가 있는 것처럼 다계층 형태로 레이어를 추가하거나 수정하거나 제거할 수 있고 확장성이 있어야 한다.
- 레포지토리/서비스/컨트롤러 처럼 종단 관심사로 나뉠 수도 있고 같은 관심사끼리도 레이어를 다계층 형태로 구성할 수도 있다.
- 서버와 클라이언트 사이에 게이트웨이, 방화벽, 프록시가 있는 것처럼 다계층 형태로 레이어를 추가하거나 수정하거나 제거할 수 있고 확장성이 있어야 한다.
- 캐시
- 서버의 응답들은 캐시를 가지고 있거나 없거나 둘 중 하나인데, 캐시를 가지고 있을 경우에는 클라이언트가 캐시를 통해서 응답을 재사용할 수 있고 이를 통해서 서버의 부하를 낮추어서 서버의 성능이 향상될 수 있다.
- 코드 온 디멘드(Code on demand)
- 요청이 오면 코드를 준다는 의미로 특정 시점에 서버가 특정 기능을 수행하는 스크립트 또는 플러그인을 클라이언트에 전달해서 해당 기능을 동작하도록 하는 것이다.
- 통합 인터페이스
- 서버와 클라이언트 간의 상호 작용은 일관된 인터페이스들 위에서 이뤄져야 한다.
'프로그래밍 > 프로그래밍 전반' 카테고리의 다른 글
| KCD 2019 후기 (0) | 2019.02.24 |
|---|---|
| 벨몽의 티스토리 블로그 오픈했습니다 (0) | 2012.03.19 |