프로젝트를 만들고 공부할 때 REST API를 많이 사용하는데 왜 사용하지??장점이 뭘까??라는 생각을 많이 하게 되었다.
그래서 REST API에 대해 찾아보고 정리하는 시간을 가지게 되었다.
REST vs RESTful
- REST : 웹상의 자원을 이름으로 구분하고 해당 자원의 상태를 주고 받는 모든 것을 의미.그래서 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하는 아키텍쳐 스타일
- RESTful : REST를 기반으로 만들어진 API,REST 원칙을 잘 지킨 서비스 API를 의미한다.즉,REST 원리를 잘 따르는 시스템은 RESTful하다고 표현
API
- 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙
장점
- HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구출할 필요가 없음
- HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능
- REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악 가능
- 서버와 클라이언트의 역할을 명확하게 분리
단점
- 표준이 존재하지 않음
- 사용할 수 있는 메소드가 한정적(GET, POST, PUT, DELETE)
- 브라우저를 통해 테스트할 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다 Header 값이 왠지 더 어렵게 느껴짐
- 구형 브라우저가 아직 제대로 지원해주지 못하는 부분이 존재 (PUT, DELETE를 사용하지 못하는 점)
근데 REST를 왜 써??
- 애플리케이션 분리 및 통합
- 다양한 클라이언트의 등장
- 최근 서버 프로그램은 모바일 디바이스에서도 통신을 할 수 있어야 함
- 멀티 플랫폼에 대한 자원을 위해 서비스 자원에 대한 아키텍처를 세우고 이용하는 방법을 모색한 결과, REST에 관심을 가지게 됨
RESTful은 왜??
- 이해하기 쉽고 사용하기 쉬운 REST API를 만들기 위해
- RESTful한 API를 구현하는 근본적인 목적은 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것, 따라서 성능이 중요한 상황이라면 굳이 RESTful한 API를 구현할 필요 X
참고 : https://m.blog.naver.com/codingbarbie/223233477242
참고 : https://velog.io/@99mon/Spring-REST-API%EB%9E%80
참고 : https://jy-beak.tistory.com/122