-
API(Application Programming Interface)CS 2023. 11. 26. 17:51
API(Application Programming Interface)?
두 개의 소프트웨어 구성 요소가 서로 통신할 수 있도록 하는 메커니즘이라고 할 수 있다.
여기서 메커니즘이란 쉽게 말하면 어떠한 일이 돌아가는 원리라고 생각하면 된다.
이전에 설명했던 UI(User Interface)는 사용자와 H/W 또는 S/W를 연결한다면, API는 프로그램 간의 연결을 도와주는 하나의 연결 다리라고 볼 수 있다. 어떻게 보면 데이터 자판기 같은 느낌으로 원하는 데이터를 뽑아낼 수 있는 데이터 창고 같은 느낌이다.
이해를 돕기 위한 쉬운 예를 들자면,
기상청의 소프트웨어 시스템에는 일일 날씨 데이터가 포함되어 있다. 사용자들의 휴대폰의 날씨 앱은 API를 통해 이 시스템과 통신을 하여 날씨 앱에 일일 날씨 업데이트를 표시한다.
즉, API라는 하나의 인터페이스는 두 애플리케이션 간의 요청과 응답을 사용하여 서로 통신하는 방법을 정의한 것이다.
이러한 API에는 API 문서가 존재하는데 여기에는 개발자가 어떠한 요청에 대한 응답을 구성하는 방법에 대한 정보가 포함되어 있다.
API 아키텍처
API 아키텍처는 요청을 보내는 애플리케이션을 클라이언트측, 요청에 대한 응답을 보내는 애플리케이션을 서버측으로 볼 수 있다. 위에서 들었던 예시로 다시 설명해보자면 날씨 앱은 클라이언트이고, 날씨 데이터베이스는 서버라고 할 수 있다.
API 종류
1. 데이터베이스 API: 응용 프로그램과 DBMS 간의 통신을 쉽게 한다.
2. 운영체제 API: windows API나 macOS 및 iOS용 API 같은 운영체제 API이다.
3. 웹 API: 가장 일반적으로 사용되는 API로 웹 서버와 웹 브라우저 간의 통신이 가능하게 해준다.
API 종류는 대표적으로 SOAP와 REST 방식이 존재하는데, REST는 웹에 최적화되어 있는 JSON 데이터 포멧이기에 브라우저 간의 호환성이 좋고 성능과 확장성이 좋다.
SOAP는 그 자체로 프로토콜이며 보안이나 메시지 전송에 있어서 REST보다 더 많은 표준이 정해져있기에 더 복잡하고 SOAP 표준에 있어서 모든 것이 규정되어 있기에 통신 과정에서 신뢰성을 제공한다.
차이 SOAP(Simple Object Access Protocol) REST(Representational State Transfer) 유형 프로토콜 아키텍처 스타일 기능 구조화된 정보 전송 데이터를 위해 리소스 접근 (URL) 데이터 포메팅 xml HTML, XML, JSON 등등 대역폭 많은 리소스와 대역폭 요구 적은 리소스와 가벼운 무게 데이터 캐시 X O 페이로드 처리 엄격한 통신규약 가지고 있어서 메시지 보내기 전에 알려야 함 X 따라서 웹 서비스에서는 개발자들이 REST 방식을 많이 사용하고, 기업용 애플리케이션 같은 경우에는 많은 리소스와 보안, 여러 요구 사항에 대한 만족과 신뢰를 위해 SOAP 방식을 많이 사용한다.
API 유형
- private API: 내부 API로 특정 기업 내의 개발자가 기업 서비스 개선을 위하여 내부적으로 발행하고 조직 내에서만 사용 가능하게 한다.
- public API: 개방형 API로 보통 공공 API나 오픈 API로 모두에게 공개어 누구나 자유롭게 제한없이 사용할 수 있고, 인증키를 가지고 사용할 수 있지만 너무 많이 사용하면 비용을 지불할 수도 있다.
- partner API: 특정 조직 내의 특정 동의 인원들만 사용하는, 비즈니스 관계에서 사용된다.
API 문서
API 사용법과 규격을 제공하는 문서를 말한다.
API는 public과 private, partner API로 나뉘는데 오픈 API 같은 경우에는 public으로 되어 있어서 개발자 등록을 하고 키를 받는다면 해당 API의 자유로운 사용이 가능하지만, private 같은 경우에는 이러한 문서가 제공되지 않는다.
API 문서가 있어야 어떠한 정보를 어떠한 방식으로 요청해야 하는지, 요청에 대한 결과는 무엇인지에 대해 알 수 있기 때문에 실질적으로 이러한 API를 사용하기 위해서는 API 문서가 있어야 사용할 수 있고 그만큼 API 문서에 대한 중요도도 높다. 그렇기 때문에 무엇보다도 명확하면서 간결하게 API 문서를 작성해야 한다.
API 사용 이유
API를 사용하는 가장 큰 이유 편의성과 표준화이다. 하나의 API를 통해, 여러 애플리케이션에서 동일한 데이터를 유동적으로 편리하게 관리할 수 있다는 장점이 있기 때문이다.
DB에서 발급해주는 API를 통해서 DB와 애플리케이션의 접속이 직접적으로 일어나지 않아도 API 토큰을 위하여 쉽게 접근 할 수 있어서 해당 정보를 사용하는 애플리케이션이 무수히 많아져도 관리가 효율적으로 이루어질 수 있다.
'CS' 카테고리의 다른 글
Git과 Github? (0) 2023.11.26 JSON, XML, YAML? (1) 2023.11.26 FE(Frontend)와 BE(Backend) (0) 2023.11.19 MPA(Multi Page Application) vs SPA(Single Page Application) (0) 2023.11.19 CSR과 SSR의 개념 및 동작 방식 (0) 2023.11.17