Application Programming interface
는
프로그래밍에서, 프로그램을 작성하기 위한 일련의 부 프로그램, 프로토콜 등을 정의하여 상호 작용을 하기 위한 인터페이스 사양이다.
API
는 각기 다른 부분으로 구성되기도 하며 프로그래머가 사용할 수 있는 도구나 서비스의 역할을 한다. 이러한 부분들 중 하나를 사용하는 프로그램이나 프로그래머는 API
의 해당 부분을 호출한다고 말한다.
API
는 어디까지나 사양만을 정의하기 때문에 구현과는 독립적이며 , API
를 실제로 구현한 것은 라이브러리 이다.
alert('Hello World');
위와 같은 코드를 실행하게 되면 경고창으로 ‘Hello World’ 가 출력 될 것이다.
이 때 이 경고창의 규격(크기,닫기 버튼,위치 선정 등)은 브라우저에서 제공 해준 것이고 우리는 내용만 지정했을뿐이다.
우리는 위와 같은 코드를 작성하고 실행하게 되면서 이미 웹 API를 쓰고 있는중이였다.
조금만 생각해보면 우리가 작성하는 함수들 대부분이 API라고 해도 과언이 아닐것이다.
저러한 API
들이 없더라면 우리는 기계어로 직접 코딩해야 할 것이고 그러한 사람은 많지 않을것이다..
개발자가 프로그램을 만드는데 필요한 어떤 기능을 직접 구현하지 않고 API 제공자들이 제공하는 데이터와 모듈 등을 갖다쓸 수 있게 해주는게 API
이고
API
들의 사용법을 알 수 있는것이 API문서
이다.
만약API문서
가 없다면 우리는 사용법을 몰라 해당 API
를 사용하지 못할 것 이다.
내부 API
으로써 외부에게 노출 되지 않는 API
이다.
개방형 API
으로써 모두에게 공개된다. Public API
중에서도 접속하는 대상에 대한 제약이 없는 경우를 OpenAPI
라고 한다.
특정 비즈니스 파트너 간의 데이터 공유이고 서로간 동의하는 특정인들만 사용할 수 있다.
현대의 API
방식을 얘기한다면 대표적으로 두 가지를 뽑을 수 있겠다.
SOAP API
, REST API
를 흔히 말한다.
SOAP
는 프로토콜이며 REST
는 아키텍처 스타일이다.
이 두가지 방식은 서로 다르게 구성되며 서로 다른 기능을 갖고 다른 상황에서 사용되어진다.
이 외에도 여러가지 방식의 API
는 여러가지 존재하며 구현하고자 하는 서비스에 특정 기능과 상황을 고려하여 선택하게 될 것이다.