API = 키보드
- 프로그램들 간의 소통 방법
API 역할
- API는 서버와 DB의 출입구 역할
- 데이터베이스에는 소중한 정보들이 저장되고, 누구나 DB에 속하는것을 막아야 함.
- API는 이를 방지하기 위해 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해줍니다.
- API는 애플리케이션과 기기가 원할하게 통신할 수 있게 해 준다.
- 여기서 애플리케이션이란 우리가 흔히 알고 있는 스마트폰 어플이나 프로그램을 말합니다. API는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할을 합니다.
- API는 모든 접속을 표준화한다.
- API는 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있습니다. 쉽게 말해, API는 범용 플러그처럼 작동한다고 볼 수 있습니다.
API 유형은 어떤게 있을까?
- private API
- private API는 내부 API로, 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행합니다. 따라서 제 3자에게 노출되지 않습니다.
- public API
- public API는 개방형 API로, 모두에게 공개됩니다. 누구나 제한 없이 API를 사용할 수 있는 게 특징입니다.
- partner API
- partner API는 기업이 데이터 공유에 동의하는 특정인들만 사용할 수 있습니다. 비즈니스 관계에서 사용되는 편이며, 종종 파트너 회사 간에 소프트웨어를 통합하기 위해 사용됩니다.
API 동작 원리
- 사용자로부터 요청을 하면 결과값을 받아 parsing
- REST 방식이 사용이 간단하므로 REST를 많이 사용
- 요청방법은 REST, SOAP, XML-RPC 의 규칙에 맞게 만들어진 API
API는 어떻게 작동하나요?
- API 아키텍처는 일반적으로 클라이언트와 서버 측면에서 설명됩니다. 요청을 보내는 애플리케이션을 클라이언트라고 하고 응답을 보내는 애플리케이션을 서버라고 합니다. 따라서 날씨 예에서 기상청의 날씨 데이터베이스는 서버이고 모바일 앱은 클라이언트입니다.
- API가 생성된 시기와 이유에 따라 API는 네 가지 방식으로 작동할 수 있습니다.
- SOAP API
- 이 API는 단순 객체 접근 프로토콜을 사용합니다. 클라이언트와 서버는 XML을 사용하여 메시지를 교환합니다. 과거에 더 많이 사용되었으며 유연성이 떨어지는 API입니다.
- RPC API
- 이 API를 원격 프로시저 호출이라고 합니다. 클라이언트가 서버에서 함수나 프로시저를 완료하면 서버가 출력을 클라이언트로 다시 전송합니다.
- Websocket API
- Websocket API는 JSON 객체를 사용하여 데이터를 전달하는 또 다른 최신 웹 API 개발입니다. WebSocket API는 클라이언트 앱과 서버 간의 양방향 통신을 지원합니다. 서버가 연결된 클라이언트에 콜백 메시지를 전송할 수 있어 REST API보다 효율적입니다.
- REST API
- 오늘날 웹에서 볼 수 있는 가장 많이 사용되고 유연한 API입니다. 클라이언트가 서버에 요청을 데이터로 전송합니다. 서버가 이 클라이언트 입력을 사용하여 내부 함수를 시작하고 출력 데이터를 다시 클라이언트에 반환합니다. 아래에서 REST API에 대해 더 자세히 살펴보겠습니다.
- REST는 Representational State Transfer의 줄임말입니다. REST는 클라이언트가 서버 데이터에 액세스하는 데 사용할 수 있는 GET, PUT, DELETE 등의 함수 집합을 정의합니다. 클라이언트와 서버는 HTTP를 사용하여 데이터를 교환합니다.
- REST API의 주된 특징은 무상태입니다. 무상태는 서버가 요청 간에 클라이언트 데이터를 저장하지 않음을 의미합니다. 서버에 대한 클라이언트 요청은 웹 사이트를 방문하기 위해 브라우저에 입력하는 URL과 유사합니다. 서버의 응답은 웹 페이지의 일반적인 그래픽 렌더링이 없는 일반 데이터입니다.
- SOAP API
'Engineering WIKI > Docs' 카테고리의 다른 글
알고리즘 기본정렬 (0) | 2022.04.07 |
---|---|
orphanRemoval 이란? (0) | 2022.04.02 |
Spring JPA CascadeType 종류 (0) | 2022.04.02 |
동시성 vs 병렬성 (헷갈리는 개념 뿌시기) (0) | 2022.02.28 |
객체지향 (LID) (0) | 2021.01.17 |
객체지향 (S: SRP / O : OCP) (0) | 2021.01.17 |
Socket 통신 (Http 통신과의 차이점) (0) | 2021.01.17 |
SSL, SSH, HTTPS vs HTTP (0) | 2020.11.29 |