API 쉽게 이해하기
API란?
API(Application Programming Interface)
이론적인 정의 : 프로그램들이 서로 상호작용하는 것을 도와주는 매개체
손님(프로그램)이 주문할 수 있게 메뉴(명령 목록)를 정리하고, 주문(명령)을 받으면 요리사(프로그램)와 상호작용하여 요청된 메뉴(명령에 대한 값)를 전달합니다.


https://blog.wishket.com/api란-쉽게-설명-그린클라이언트/
💡 예시로써 일상생활에 대입했을 때 모든 서비스와 편의시설 등이 API에 예시로써 설명할 수 있다고 생각합니다.
정말 단순하게 이해하고자 한다면.. 이러한 서비스와 편의 시설이 컴퓨터에서(프로그래밍) 구현된다고 생각했을 때, 그걸 API로 이해가 가능하기 때문입니다 ( API가 상당히 포괄적인 개념이기 때문입니다 )
사용되는 곳
여러 문서나 자료들을 읽어보면 API가 상당히 자주 사용됩니다.
예를들어 JS에서 사용되는 배열 API들로 filter() , slice() , map() 등이 있습니다.
- filter() → 특정 배열에 조건을 조건을 만족하는 값들로만 따로 배열로 생성해줌
- slice() → 배열 인덱스(위치)를 넣어주면 해당하는 범위의 값들로만 따로 생성해줌
이러한 API들이 없다면 반복문으로 하나하나 배열값을 수정, 삭제, 삽입해야 하며 만약 데이터가 많아 배열이 크다면 효율적인 알고리즘까지 고민해야하는 순간이 될 수 있지만 위 레스토랑 종업원에 예시처럼 단순히
조금 더 들어가본다면 데이터베이스의 select query문도 큰 개념으로 본다면 API로 이해 가능하다고 생각합니다. 하지만 이런 것들은 중요한 건 아니고 이러한 것들도 API라고 정의할 수 있구나라고 생각해볼 수 있다고 생각합니다.
위 API는 API의 큰 범주에 있을 뿐 저희가 이해해보려는 API의 의미와는 조금 다릅니다.
저희가 실제로 사용해보려고 하는 API 정의는 다른 기업이나 개발자, 기관이 만든 외부 프로그램들의 기능을 내가 만든 어플리케이션에 사용할 수 있게끔 도와주는 중간 매개체(예시로써 지도API , 결제 API, 서버 API)라고 할 수 있습니다.
API는 데이터를 기반으로 한 비즈니스를 운영하는데 필수적입니다. API를 통해 비즈니스 사용자와 IT부서는 소프트웨어와 어플리케이션을 활용하여 생산성을 높이고 수익을 개선할 수 있습니다. 혁신적인 고객 지원 접근 방식에 이르기까지 API를 활용하면 편리합니다 https://brunch.co.kr/@operator/65
주로 데이터에 대한 처리로 생각하며 이러한 데이터를 활용한 프로그램들을 제공하는 Open API들이 있습니다. ( 지도, 결제시스템 등등 )
Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com
실제로 사용하기 위한 API
프로그램 ↔ 프로그램
그 중에서도 우리의 웹 어플리케이션을 생각해보면 클라이언트 서버 구조 + ( 데이터베이스 )
→ 클라이언트 ↔ 서버 ↔ ( 데이터베이스 )
클라이언트에서 데이터를 요청 혹은 처리(서버에서 만든 기능이 필요함) → 서버 API → 서버에서 작업
이 데이터들이 API로써의 기능을 하려면 2가지가 필요합니다
- API의 문서화 (array filter라는 기능이 있어도 그것을 어떻게 사용하는지 제공하지 않는다면 못 쓴다) → private , public , protected
- 보통 기업에서 public으로 제공 될 때는 API 문서 사이트가 따로 정의되어 있다.
- private하게 사용하기 위해 API를 따로 문서화하거나 쉽게 문서 자동화해주는 Tool이 있다
- swagger
- 연결하여 통신하는 방식(형식)
- 규격화 → 표준
- REST의 원리를 따르는 API
- REST API