[Spring Boot] REST, URI 설계

REST
- Representational State Transfer : 자원의 상태 전달
- 네트워크 아키텍처
- Client, Server : 서로 독립적으로 분리되어야 한다.
- Stateless : 요청에 대해서 클라이언트의 상태를 서버에 저장하지 않는다.
- Cache : 클라이언트는 서버의 응답을 임시저장(=cache)할 수 있어야 한다. cache를 통해서 응답을 재사용할 수 있어야 하고, 이를 통해 서버의 부하를 낮춘다.
- 계층화 : 서버와 클라이언트 사이에 방화벽, 게이트웨이, 프록시 등 다양한 계층 형태로 구성이 가능해야 하며, 이를 확장 할 수 있어야 한다.
- 인터페이스 일관성 : 인터페이스의 일관성을 지키고 아키텍처를 단순화시켜 작은 단위로 분리하여 클라이언트, 서버가 독립적으로 개선 될 수 있어야 한다.
- Code on Demant : 자바 애플릿, 자바스크립트, 플래시 등 특정한 기능을 서버로부터 클라이언트가 전달받아 코드를 실행할 수 있어야 한다.
URI 설계
- 인터넷에서 특정 자원을 나타내는 주소 값으로 이 값은 유일하다.
- 인터넷 상에서의 자원, 특정 파일이 어디에 위치하는지 식별하는 주소로 URI의 하위 개념이다.