API를 본격적으로 알아보기 전에, 비유를 들어 쉽게 설명을 도와드리겠습니다. 여러분이 멋진 레스토랑에 있다고 가정해봅시다. 점원이 가져다준 메뉴판을 보면서 먹음직스러운 스테이크를 고르면, 점원이 주문을 받아 요리사에 요청을 할 텐데요. 그러면 요리사는 정성껏 스테이크를 만들어 점원에게 주고, 여러분은 점원이 가져다준 맛있는 음식을 먹을 수 있게 됩니다.
여기서 점원의 역할을 한 번 살펴보겠습니다. 점원은 손님에게 메뉴를 알려주고, 주방에 주문받은 요리를 요청합니다. 그다음 주방에서 완성된 요리를 손님께 다시 전달하지요. API는 점원과 같은 역할을 합니다. API는 손님(프로그램)이 주문할 수 있게 메뉴(명령 목록)를 정리하고, 주문(명령)을 받으면 요리사(응용프로그램)와 상호작용하여 요청된 메뉴(명령에 대한 값)를 전달합니다. 쉽게 말해, API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체로 볼 수 있습니다.
private API는 내부 API로, 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행합니다. 따라서 제 3자에게 노출되지 않습니다.
public API는 개방형 API로, 모두에게 공개됩니다. 누구나 제한 없이 API를 사용할 수 있는 게 특징입니다.
partner API는 기업이 데이터 공유에 동의하는 특정인들만 사용할 수 있습니다. 비즈니스 관계에서 사용되는 편이며, 종종 파트너 회사 간에 소프트웨어를 통합하기 위해 사용됩니다.
API를 사용하면 많은 이점들이 있는데요. Private API를 이용할 경우, 개발자들이 애플리케이션 코드를 작성하는 방법을 표준화함으로써, 간소화되고 빠른 프로세스 처리를 가능하게 합니다. 또한, 소프트 웨어를 통합하고자 할 때는 개발자들 간의 협업을 용이하게 만들어줄 수 있죠.
public API와 partner API 를 사용하면, 기업은 타사 데이터를 활용하여 브랜드 인지도를 높일 수 있습니다. 뿐만 아니라 고객 데이터베이스를 확장하여 전환율까지 높일 수 있지요.
SOAP REST 차이, 두 방식의 가장 큰 차이점은?
서로 다른 하드웨어 부품마다 개발자가 일일이 프로그래밍을 작성하기보단, HAL(Hardware Abstraction Layer)라는 하드웨어 추상화 계층을 통해 한 번만 display라는 함수를 이용하면 각기 다른 모니터에 출력하거나 각기 다른 하드웨어 부품에 작성하는 일들을 쉽게 해주는 것이 생김
각각의 OS(Operating Systems)에서 동작하는 어플리케이션을 만들기 위해서,
운영체제에서 제공하는 API를 이용해야 함
Mac OS - Cocoa API / Windods OS - Windows API
다양한 기기들이 인터넷으로 커뮤니케이션하는 시기. 유저들의 다양한 기기에서 서버에 있는 데이터를 읽고 쓰기 위해서 서버에서 제공하는 Web APIs를 이용해야 함. (서버에서 제공하는 Web API를 통해서 서버에 있는 데이터를 읽어오거나 업데이트할 수 있음)
→ CRUD라고 줄여서 부르기도 함
클라이언트로부터 GET을 이용해서 사용자에 대한 정보를 Request(요청)하면
서버로부터 사용자에 대한 data를 Response(응답)받을 수 있는데,
이 때 데이터는 Json이라는 포맷을 통해 받아올 수 있다.
1) Frameworks나 Libraries에서의 API
Frameworks나 Libraries에서 우리가 이용할 수 있는 클래스나 함수들을 API라고 부름
(ex. fileAPIs, DOMAPIs, LocationAPIs, contextAPIs 등)
2) 프로젝트 내부에서의 API
프로젝트 내부에서 쓰여지고 있는 클래스나 모듈이 있다면 Module Calculator에서 제공하는
두 가지의 함수(add, multiply)를 이용해서(=두 가지의 인터페이스를 이용해서 = 두 가지의 API를 이용해서 import/export) 사용하면 된다고 말할 수 있음
→ 다양한 부분에서 사용되나 보통 "내부의 구현 사항을 잘 숨겨둔 채로 외부에서 사용하는 개발자가 필요한 것만 노출해 둔 것을 인터페이스", 즉 API라고 부름
3) OPEN API (공개 API) Public API (공공 API)
출처
http://blog.wishket.com/api%EB%9E%80-%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85-%EA%B7%B8%EB%A6%B0%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8/
https://blog.naver.com/cookr3/222283563523