<aside> 💡 API(application programming interface, 응용 프로그램 프로그래밍 인터페이스)는 컴퓨터나 컴퓨터 프로그램 사이의 연결이다. 일종의 소프트웨어 인터페이스이며, 다른 종류의 소프트웨어에 서비스를 제공한다
</aside>
단어의 정의를 보면 잘 모르겠다. 간단히 살펴보자.
https://blog.wishket.com/api란-쉽게-설명-그린클라이언트/
비유를 간단하게 생각하면 점원이라고 생각하면 된다.
쉽게 말해, API는 프로그램들이 서로 상호 작용하는 것을 도와주는 매개체로 볼 수 있다.
AWS의 설명을 다시 보자.
<aside> 💡 API는 Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말입니다. API의 맥락에서 애플리케이션이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 나타냅니다. **인터페이스는 두 애플리케이션 간의 서비스 계약(약속)**이라고 할 수 있습니다. 이 계약(약속)은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의합니다. API 문서에는 개발자가 이러한 요청과 응답을 구성하는 방법에 대한 정보가 들어 있습니다.
</aside>
그렇다면 왜 API는 만들어졌을까?? 서버(데이터베이스)와 클라이언트를 바로 연결하면 되지 않을까?
API의 필요성은 Web의 진화와 밀접한 연관이 있으니 잠깐 살펴보면, 모놀리틱 아키텍처(Monolithic Architecture)가 주도적이었던 Web 1.0 시대에서는 (하지만 현재에도 사실 많이 쓰이고 있는 것이 사실!) 서버와 클라이언트가 분리되지 않고 모두 서버에서 동시에 처리하기 때문에 API 필요성이 그다지 절실하지 않았다.
그러나 2000년경부터 시작된 Web2.0의 “개방, 참여, 공유”의 정신을 바탕으로 정보가 쌍방향으로 소통하고 “사용자가 생성한 데이터”를 위주로 웹 앱의 붐, 그리고 2010년대 들어서 클라우드(Cloud) 기반 인프라와 MSA(Microservices Architecture)의 사용이 확산되면서 API 확산이 가속화되었고 이제 API에서 가장 흔한 구조인 REST 또는 RESTful API가 점차 새로운 웹 생태계의 기반으로 주목된 것이다.
이걸 봤을 때, 우리가 API를 작성하는 것을 보면, 대체적으로 DB에 접근하여 필요한 정보를 가공한 후, 클라이언트에게 넘기는 것을 많이 한다.