본문 바로가기

프로그래밍/프로그래밍 전반

REST

REST의 특성

(출처 : 스프링 부트로 배우는 자바 웹개발)

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

 

'프로그래밍 > 프로그래밍 전반' 카테고리의 다른 글

KCD 2019 후기  (0) 2019.02.24
벨몽의 티스토리 블로그 오픈했습니다  (0) 2012.03.19