REST 소개
그렇다면 웹의 구조적 스타일이란 무엇인가?
웹 구조적 스타일 6가지
1. 클라이언트 / 서버
핵심은 관심사의 분리다. 즉 시스템에서 클라이언트와 서버의 역활은 분명하게 나뉜다. 웹의 일관 된 인터페이스를 따른다는 전제하에, 클라이언트와 서버는 각자의 언어 및 기술을 사용하여 독립적으로 구현되고 배포될 수 있다.
2. 균일한 인터페이스
웹을 구성하는 클라이언트, 서버, 네트워크 드으이 매체 간 인터페이스는 각 인터페이스의 일관성에 기반한다. 이러한 웹 컴포넌트들 중 하나라도 기존에 구축된 표준에 벗어나면, 웹 커뮤니케아션 체계는 붕괴된다.
웹 컴포넌트들은 네가지 인터페이스 제약조건에 따라 운영됨
1. 리소스 식별
고유 식별 URI
2. 표현을 통한 리로스 처리
리소스는 ( 예를 들어 api 에서 콜했을 때 리턴으로 받는 json ) 상호작용하는 방법에 차이가 있을 뿐이다. 즉 서비스를 이용하는 html 에 따라 다르게 표현 될 수 있지만 리소스는 동일하다.
3. 자기 서술적 메시지
리소스의 요청 상태는 클라이언트의 요청 메세지로 표현된다. 리소스의 현재 상태는 그 요청에 응답하는 서버의 응답 메시지로 표현되어, 클라이언트에 전달된다.
클라이언트의 요청을 받아들일 것인가 여부는 전적으로 서버에 달려 있다.
HTTP 메시지는 일정한 형태로 여러 종류의 메타데이터 정보를 넣을 수 있는 헤더를 제공한다.
4. 애플리케이션 상태 엔진으로서의 하이퍼미디어
? 의미를 잘 모르겠음..
3. 계층 시스템
계층시스템은 흔히 마이크로 서비스의 게이트웨이 or 프록시 서버를 지칭한다.
웹의 일관된 인터페이스를 사용하면 중간매체를 클라이언트와 서버 사이에 마치 없는 것처럼 배치할 수 있다.
일반적으로 네트워크 기반의 중간매체는 특별한 목적을 위해 클라이언트와 서버간 통시늘 가로챌 수 있다. 주로 보안을 강화하거나 캐싱 또는 로드밸런싱 오토스케일링 등의 용도로 사용된다.
4. 캐시
캐시는 웹 구조의 중요 제약조건 중 하나다. 캐시라는 제약조건에 의해 웹 서버가 응답 데이터마다 캐시 여부를 선언한다.
5. 상태없음 ( stateless )
상태 없음은 웹 서버가 클라이언트의 상태를 관리할 필요가 없다는 의미다. 따라서 각 클라이언트는 웹 서버와 상호작용하는 관련 상황 정보를 직접 관리해야 한다.
클라이언트는 웹 서버와 상호작용하는 관련 상황 정보를 직접 관리해야 한다.
웹 서버는 웹 애플리케이션과의 복잡한 커뮤니케이션을 위해 필요한 상태 관리를 클라이언트에 맡김으로 더 많은 클라이언트에 서비스할 수 있다.
6. 주문형 코드
웹 표준
REST
REST API
REST API 설계
- URI 경로 세그먼트는 언제 복수로 써야 하는가?
- 리소스의 상태를 업데이트 하려면, 어떤 메서드를 사용해야 하는가
- CRUD가 아닌 연산을 어떻게 URL에 매핑하는가
- 특정한 시나리오에 가장 적합한 HTTP 응답은 무엇인가
- 리소스 상태 표현의 버전은 어떻게 관리할 수 있는가
- JSON에 포함된 하이퍼링크는 어떻게 구조화하는가
'개발 > 기타개발' 카테고리의 다른 글
JPA java8 localDate 변환구현 ( 컨버터 ) (0) | 2019.02.28 |
---|---|
SSL 인증방식 그리고 handshake (0) | 2019.02.27 |
자바 ORM 표준 JPA 소개 (0) | 2019.01.06 |
정규화 이론 결합종속성 (0) | 2019.01.06 |
마이크로 서비스란 무엇인가 (0) | 2018.12.12 |
댓글