레스트풀 API(RESTful API)는
REST 아키텍처의 제약 조건을 준수하는 API를 말하는데
REST는 Representational State Transfer의 약자가 되겠다
여기서 REST 아키텍처가 되려면 다음의 6 조건을 만족해야 하는데
Client-Server
클라이언트와 서버 간 어떤 종속성도 있으면 안됨
클라이언트는 서버 호출하는 방법만 알면 됨
Stateless
클라이언트에서 서버로 보낸 내용을 서버가 저장해서는 안됨
Cacheable
클라이언트는 서버가 보낸 응답 데이터(Response)를
로컬 캐시에 저장하여 재활용 가능
Uniform Interface
서버와 클라이언트를 일관적인 인터페이스로 분리
Layered System
계층화된 시스템 아키텍처를 사용해야 함
(서버를 여러개로 나누고 배포, 저장, 요청 인증등의 기능을 수행)
여기서 클라이언트는 서버와 통신 시
어느 서버로 붙는지 알 수 없어야 한다
Code On Demand(Optional)
이건 넣어도 되고 빼도 되는 부분인데
서버가 클라이언트가 실행할 수 있는 로직을 전송해서
클라이언트가 사용할 수 있는 기능을 확장할 수 있도록 한다
위 조건들을 모두 만족하거나
Code On Demand를 제외하고 만족하는 API를
RESTful API라고 쳐주게 되는데
천천히 생각해보면
요즘 저런거 안되는 API가 어딨다고
굳이 RESTful을 붙이나 싶을거다
하지만 RESTful API가 정확히 2000년에
나온 개념이라는 것을 생각해보면 이해가 될거다
마지막으로 RESTful API는 면접에서도 자주 나오는 문제인데
딱 보면 감이 올거다
1. RESTful API란?
> REST 아키텍처의 제약 조건을 준수하는 API
2. REST 아키텍처란?
위의 6 조건을 만족하는 아키텍처를 말한다
3. API란?
> Application Programming Interface
클라이언트에서 파라미터를 넣어 요청을 해서 서버로 보내면
서버에서 처리한 뒤 결과를 보내주는 것들을 API라고 한다
예를 들면 네이버 지도 API라던가, 카카오 로그인 API라던가..
'기타 개념정리' 카테고리의 다른 글
Message Queue(MQ) 개념정리 (0) | 2021.01.15 |
---|---|
쿼리를 대문자로만 쓰는 이유 (0) | 2021.01.15 |
이클립스에서 JRE만으로도 코딩이 가능한 이유 (0) | 2020.11.10 |
ASIS TOBE 개념정리 (0) | 2020.11.06 |
콜백함수 사용이유부터 예제 정리 (0) | 2020.10.14 |
댓글