제 블로그의 모든 글은 IMHO로 쓴 것입니다. 잘못된 부분이 있으면 덧글을 통해서 소통을 하면 더 좋은 글로 발전이 될 수 있을 것 같습니다. 그렇지만 소통을 할 때 서로의 감정을 존중하는 선에서 해주셨으면 좋겠습니다. 감사합니다:)
—
이글이 들어가기 전
예전에 개인프로젝트는 약간 목숨걸고
https://www.youtube.com/watch?v=RP_f5dMoHFc 에서 지적한 것 처럼 목숨걸고, 헤이티오스와 셀프디스크립트등을 지켜서 서버와 클라이언트의 독립적 진화를 하려고 시도하던 시절도 있었다.
근데 공개된 rest api의 모습은 거의 비슷하며 공통적으로 사람들이 잘 지키지 않는 것은 다 그만한 이유가 있다.
그래서 개인적으로 나는 원작자의 의도는 알고 있으되 너무 집착하지 않는 것이 좋은 것 같다.
rest란
정보들을 주고 받는 데에 있어서 개발자들 사이에 널리 쓰이는 일종의 “형식” optional인 것 포함 6가지 규칙이 있다.
- Client-server architecture
- client-server model
- Statelessness
- stateless Protocol
- Cache ability
- Layered system
- Layered System
- proxy and load balancer, security policies
- Layered System
- Code on demand (optional)
- JavaScript
- Uniform interface
http만 쓰면 기본적으로 다 지켜진다. 저것들을 다 잘 지키면 restful한 system이라고 한다.
Client-Server
데이터 저장은 Server에서, UI는 Client에서 즉 하는 일이 다 따로하는것
stateless
Server는 각각의 요청을 완전히 별개의 것으로 인식하고 처리한다. 각 API 서버는 Client의 요청만을 단순 처리한다. 즉, 이전 요청이 다음 요청의 처리에 연관되어서는 안된다.
code on demand
- 클라이언트가 창이 로드 될 때가 아닌 특정 상황에 서버의 특정 리소스를 요청하는 것 인 것 같다(!)
- Java applets, Adobe’s ActionScript language for the Flash player, and JavaScript
- 프로그램 코드는 사용자 (클라이언트)가 클라이언트의 웹 브라우저를 사용하여 코드에 대한 링크가 포함 된 웹 페이지를 요청할 때까지 웹 서버에서 비활성화됩니다.
- 이 요청에 따라 웹 페이지와 프로그램은 HTTP를 사용하여 사용자 컴퓨터로 전송됩니다.
- 페이지가 표시되면 브라우저에서 코드가 시작되고 중지 될 때까지 사용자 컴퓨터 내부에서 코드가 실행됩니다
- 서버로부터 스크립트를 받아서 client에서 실행하는 걸 말합니다.
API란
소프트웨어가 다른 소프트웨어에게 지정된 형식으로 요청, 명령을 받을 수 있는 수단
RESTFUL API란
REST 아키텍처 제약 조건을 준수하는 웹 서비스 API를 RESTful API라고합니다. HTTP 기반 RESTful API는 다음 구성으로 정의됩니다.
- 자원 : URI
- 행위: HTTP METHODS(get, post, put, delete)
- 표현: media type (json, xml등)
참고자료
전반적으로 모두 참고한 곳 https://speakerdeck.com/leewin12/rest-api-seolgye https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html https://www.youtube.com/watch?v=OpoVuwxGRDI