
API는 application programing interface의 약자로 둘 이상의 장치 간의 중계 계층을 의미한다 둘 이상의 장치의 프로토콜(HTTP HTTPS 등), 메소드(get post 등), 데이터 타입(JSON XML 등) 등이 정의 된다
인터페이스는 번역하면 경계 면이란 뜻으로 둘 이상의 장치의 정보나 신호를 주고받는 경계 면이다 이를 통해 내부의 서버가 어떻게 구현되었는지 와 상관없이 인터페이스를 통해 이용 가능하다
API의 작동 방식은 브라우저를 통해 요청을 하면 바로 서버나 데이터베이스에 접근할 수 있게 하는 방식이 아닌 API를 통해서 데이터 등을 요청하게 되어 직접 접근을 할 수 없게 한다
서버의 데이터를 교환하기 위한 방법이라고 볼 수도 있고, 검사하는 방법이라고 볼 수도 있다.
일종의 식당에서의 메뉴판이라고 생각하면 이해가 쉽다
장점
- 제공자는 서비스의 중요 부분을 혹은 드러내고싶지않은부분을 드러내지 않을 수 있다
- 사용자는 복잡한 구조나 어떻게 구현되었는지 몰라도 사용하여 필요한 정보 만을 받을 수 있다
- openAPI를 쓰면 앱개발 시 프로세스를 단순화 시키고 시간과 비용을 아낄 수 있다
- 내부 프로세스가 바뀌었을때 매번 API를 수정하게 하지 않아도 된다 매번 업데이트를 하지 않고 너무 자주 업데이트를 하지 않아도 된다
- 제공자는 API를 사용하는 사용자들의 데이터를 한곳에 모을 수 있다
단점
- API가 변경될 경우 호환성 문제 발생 가능성
- 제공되는 API의 기능이 제한적인 경우 제한적인 기능만 사용
- API를 사용하기 위해 문서를 이해하고 구현 해야 하는 높은 기술적 요구 사항
- 보안 이슈 존재 가능성
- API 사용 시 데이터 소유권 문제 발생 가능성
종류
- private 내부적으로 사용되고 주로 해시키를 하드코딩해놓고 이를 기반으로 서버와 서버간 통신합니다 같이 사용하고자 하는 비즈니스파트너가 있는경우 비밀스럽게 해시키를 공유하여 사용 가능
- public 모든사람이 사용할 수 있지만 많은 트래픽을 방지하기 위해 요청수 제한 등 제한을 건