REST(Representational State Transfer:자원의 상태 전달) - 네트워크 아키텍쳐
1. Clint, Server:클라이언트와 서버가 서로 독립적으로 분리 되어 있어야 한다.
2. Stateless:요청에 대해서 클라이언트의 상태를 서버에 저장하지 않는다.
3. Cache:클라이언트는 서버의 응답을 Cache 할 수 있어야 한다. 클라이언트가 Cache를 통해서 응답을 재사용할 수 있어야 하며, 이를 통해서 서버의 부하를 낮춘다.
4. 계층화:서버와 클라이언트 사이에, 방화벽, 게이트웨이. Proxy 등 다양한 계층 형태로 구성이 가능해야 하며, 이를 확장 할 수 있어야 함
5. 인터페이스 일관성:인터페이스의 이로간성을 지키고, 아키텍처를 단순화시쳐 작은 단위로 분리하여, 클라이언트,서버가 독립적으로 개선 될 수 있어야 함
6. Code on Demand(Optional):자바 애플릿, 자바스크립트, 플래시 등 특정한 기능을 서버로 부터 클라이언트가 전달받아 코드를 실행 할 수 있어야 함
인터페이스 일관성이 잘 지켜졌는지에 따라, REST를 잘 사용했는지 판단을 할 수 있음
1. 자원의 식별
웹 기반의 REST에서는 리소스 접근을 할 때 URL를 사용
2. 메시지를 통한 리소스 조작
web에서는 다양한 방식으로 데이터를 전달 할 수 있다
그중에서 가장 많이 사용하는 방식은 HTML,XML,JSON,TEXT등 이 있다. 이중에서 어떠한 타입의 데이터인지를 알려주기 위해서 HTTP Header 부분에 content-type을 통해서 데이터의 타입을 지정해 줄 수 있다.
또한 리소스 조작을 위해서 데이터 전체를 전달 하지 않고, 이를 메시지로 전달 함
3. 자기 서술적 메시지
요청 하는 데이터가 어떻게 처리 되어져야 하는지 충분한 데이터를 포함 할 수 있어야 한다.
4. 애플리케이션 상태에 대한 엔진으로써 하이퍼미디어
REST API를 개발할 때 단순히 Client 요청에 대한 데이터만 응답 해주는 것이 아닌 관련된 리소스에 대한 Link 정보까지 같이 포함 되어져야 함
'개발 관련' 카테고리의 다른 글
| 정보처리기사 실기 단답형 예상문제 모음 (0) | 2021.10.07 |
|---|---|
| 정보처리기사 실기 용어 정리 (0) | 2021.10.07 |
| 정보처리기사 디자인 패턴 정리 (0) | 2021.10.07 |
| 실제 재직중인 개발자가 공유하는 실질적인 툴 (0) | 2021.08.20 |
| 개발자로 취준(취업준비) 할 때 참고하면 좋은 정보들 (0) | 2021.07.31 |