
어제는 모의면접이 진행되었다.
CS 질문을 많이 받았는데 RESTful API에 대한 질문이 기억에 남는다.
아는 질문이었지만 답변에는 허점이 많았다.
확실하게 내가 알고있는지 점검해보며 TIL를 작성해보자잉

먼저 키워드를 REST와 API로 쪼개보자.
- 애플리케이션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과
통신하기 위해 따라야 하는규칙을 정의- 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성
API를 이용해서 클라이언트는 서버와 리소스를 공유할 수 있다.
그렇다면 REST는 무엇인가?
Representational State Transfer(REST)는 API 작동 방식에 대한
조건을 부과하는소프트웨어 아키텍처
- REST 아키텍처의 스타일을 따르는 API가 바로
REST API
REST 아키텍처에는 몇가지 스타일 원칙있다.
자원(resource)의 표현(representation)에 의한 상태 전달을 의미한다.
REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용한다.
-> 웹의 장점을 최대한 활용할 수 있는 아키텍처!
고유ID 존재 (자원은 서버에 존재)HTTP URIURI를 이용해 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청균일한 인터페이스는 모든 RESTful 웹 서비스 디자인의 기본이다. 이는 서버가 표준 형식으로 정보를 전송함을 나타냅니다. 형식이 지정된 리소스를 REST에서 표현이라고 부릅니다. 이 형식은 서버 애플리케이션에 있는 리소스의 내부 표현과 다를 수 있습니다. 예를 들어, 서버는 데이터를 텍스트로 저장하되, HTML 표현 형식으로 전송할 수 있습니다.
원칙을 바탕으로 REST API를 뜯어보자.
즉, REST API와 RESTful API 사이의 주된 차이는 REST 아키텍처 원칙들의 준수 정도에 있다. 모든 RESTful API는 REST API이지만, 모든 REST API가 엄격한 의미에서 RESTful하다고 볼 수는 없다. RESTful API는 REST의 원칙들을 엄격하게 준수하는 반면, REST API는 이러한 원칙들을 기반으로 하되, 모두를 완전히 준수하지 않을 수 있는 보다 넓은 범주의 API를 포함한다.