1. REST API
REST API란?

-
Representational State Transfer
-
자원을 이름으로 구분하고 자원의 상태 정보를 주고 받음
-
웹의 장점을 활용할 수 있는 아키텍처 스타일
-
Application Programming Interface
-
시스템 간 상호작용을 위한 인터페이스
-
요청과 응답을 규정하는 프로토콜같은 개념
➜ API와 프로토콜 API, Protocol
<aside>
💡 HTTP 프로토콜에 기반하여 “REST 아키텍쳐를 따르는 API”
</aside>


특징
- Client-Server 구조: 사용자 인터페이스와 데이터 스토리지의 분리
- 무상태(Stateless): 각 요청은독립적, 서버에 상태 정보 유지 X
- 캐시 처리 가능(Cacheable): 응답은 캐싱 가능해야함
- 계층화 시스템(Layered System): 클라이언트는 서버를 직접 호출하지 않음(보안, 로드밸런싱). 여기서 말하는 클라이언트는 사용자를 의미한다. (사용자 → 클라이언트 → 서버 → 클라이언트 → 사용자)
- 인터페이스 일관성(Uniform Interface): 효율적인 아키텍처를 위한 일관된 인터페이스
- 코드 온 디멘드(Code-On-Demand): 실행 가능 코드 형태로 기능을 전송할 수 있음
구성요소
자원(Resources) - URI
- Uiform Resource Identifier = 자원 식별자
- 모든 자원에 고유한 ID가 존재
- URI에는 URL(위치로 표현)과 URN(이름으로 표현)이 존재하는데, 보통 URL의 의미로 URI를 사용한다.