Application Programming Interface
API = 서로 다른 소프트웨어 시스템들이 상호 작용할 수 있게 하는 인터페이스.
즉, 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한다.
쉽게 생각하면 은행 창구라고 볼 수 있다.
- 고객(클라이언트)이 은행(서버)에 은행 업무를 보러 들린다.
- 은행 창구로 가서 고객은 원하는 업무를 말하고 필요한 서비스를 받는다.
- 직원은 고객이 요청한 업무를 처리하고 결과를 알린다.
(이 과정에서 고객은 직원이 어떤 시스템으로 일을 하는지 전혀 알 필요가 없다.)- 직원은 고객이 요청한 업무에 필요한 정보(개인정보)를 확인하고 요청을 처리한다.
Representational State Transfer
REST = API 작동 방식에 대한 조건을 부과하는 SW 아키텍처.
클라이언트-서버 구조에서 데이터를 전송하는 방식으로 특히 웹에서 리소스를 관리하고 조직하는데 많이 쓰임.
REST 아키텍처 스타일을 따르는 API
API가 다음 기준을 만족하면 REST API로 분류된다.
1. Client, Server, Resource로 구성되며 요청이 HTTP를 통해 관리된다.
2. Client - Server 커뮤니케이션이 Stateless 하다.
3. Cacheable : Client - Server 작용을 간소화하는 캐시 가능 데이터
4. 요청된 정보를 검색하는데 관련된 서버의 각 유형을 클라이언트가 볼 수 없는 계층 구조로 이뤄져 있다.