API ?
응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있는 인터페이스를 말한다.
- 인터페이스란 ?
- 컴퓨터 시스템끼리 정보를 교환하는 공유 경계를 의미한다. 터치 스크린과 같은 일부 컴퓨터 하드웨어 장치들은 인터페이스를 통해 데이터를 송수신 할 수 있으며, 마우스나 마이크론 폰가 같은 장치들은 오직 시스템에 데이터를 전송만 하는 인터페이스를 제공한다.
즉 , 어떠한 응용 프로그램에서 데이터를 주고 받기 위한 방법을 의미한다.
API 역할
API는 서버와 데이터베이스에 대한 출입구 역할을 한다.
- 데이터베이스에는 소중한 정보들이 있는데 모든 사람들이 데이터베이스에 접근하는 걸 방지하기 위해 API는 소중한 정보들을 막는 출입구 역할을 하고 허용된 사람들에게만 접근성을 제공한다.
API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.
- API는 모든 접속을 표준화한다.
기계/ 운영체제 등과 상관없이 누구나 동일한 엑세스를 얻을 수 있다.
API 유형
private API
- 내부 API로, 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행한다. 제 3자에게 노출이 되지 않는다.
public API
partner API
- 기업이 데이터 공유에 동의하는 특정인들만 사용이 가능하다. 비즈니스 관계에서 사용되는 편이며, 종종 파트너 회사 간에 소프트웨어를 통합하기 위해 사용된다.
API 장점
데이터 접속의 표준화와 편의성
- 디바이스.운영체제 등과 상관없이 조건만 맞다면, 범용 플러그처럼 누구나 동일한 엑세스를 약속한다. 또 조직에서 애플리케이션을 개발할 때 기능적 API를 사용하면, 필요한 기본 기능들을 매번 개발/업데이트할 필요 없이 손쉽게 이용할 수 있다.
자동화와 확장성
- API를 통한 CRUD 처리에 따라 관련 데이터와 콘텐츠가 자동으로 생성되고 사용자의 환경에 맞춰서 정보가 전달 되어 개발 워크플로우가 간소화되고 애플리케이션 확장이 다소 용이하다.
적응력
- 변화 예측에도 큰 도움이 되기 때문에 API를 통해 데이터를 수집하고 전달하는데 있어 유연한 서비스 환경을 구축하고 소프트 웨어를 통합하고자 할 때, 그리고 개발자들 간의 협업이 필요할 때 더욱 용이하다.
API 단점
보안성과 HTTP 방식의 제한
API의 단일 진입적인 API 게이트웨어는 해커의타켓 대상이 될 수 있다는 점이다. 평범한 HTTP 메서드를 사용하여 엑세스 할 수 있다는 점에서 보안성에 관해 큰 단점이 된다.
표준의 부재와 개발 비용
공식화된 표준이 존재하지 않는다는 점이다. 그러므로 관리가 어렵고 실제로 API 기능을 구현하고 제공하려면 개발 시간, 지속적인 유지 관리 요구 사항 및 지원 제공 측면에서 비용이 많이 들 수 있다.