컴퓨터공학 지식

API란?

seulhasony 2023. 11. 16. 14:02

1.API(Application Programming interface)

:각 회사에서 자사의 애플리케이션의 데이터와 기능을 공개하면서 여러 서비스와 제품을 서로 통신하고 상호 데이터와 기능을 활용하는 것이 가능하게 함

 

2.API 작동 방식

  • 클라이언트 애플리케이션에서 API호출을 한다. (request)
  • -> 애플리케이션에서 웹 서버로 전달되는 이 요청은 API의 URI(Uniform Resource Identifier)를 사용해 처리함
  • -> 여기서 요청할 때, 동사, 헤더, 본문도 포함됩니다.
  •  API가 유효한 요청을 받으면, 웹 서버에 호출
  • 서버가 API에 응답하면서 요청받은 정보를 보냄
  • 정보를 받은 API가 요청했던 클라이언트에 데이터를 전송

 

3. API의 보안

  • API는 본연의 기능상의 보안을 제공한다. 두 시스템 사이에서 중개자의 역할을 하면서 기능을 추상화하기 때문
  • -> API 앤드포인트가 서비스를 소비하는 클라이언트와 제공하는 서버 인프라를 분리
  • API 호출시 인증 자격 증명이 포함되어 서버 공격 위험을 줄임
  • API 게이트웨이는 access를 제한하여 보안 위험을 최소화
  • 추가적으로, HTTP헤더, 쿠키, 또는 쿼리 문자열 매개변수에 의해 더 강력한 데이터 보안이 이루어짐

 

*api앤드포인트?

:Restful api를 통해 서버에 액세스할 수 있도록 해주는 URL(전체적이고 구체적인 URL)

 

*Restful API?

: REST원칙을 따르는 API, HTTP URI를 통해 자원을 명시하고, HTTP 메소드를 통해 해당 자원에 대한 CURD를 적용하는 API

 

*api게이트웨이?

: API 트래픽 및 요청을 관리. 중요한 데이터를 보호하기 위해 API 호출에 대한 정책, 인증 및 일반 액세스 제어를 적용

 

4. API가 필요한 이유

: 각 회사의 플랫폼과 애플리케이션이 서로 수월하게 통신할 수 있다. 생산성을 높이고 성능을 증진시킨다.

 

5. API의 예

-범용 로그인, 써드파티 결제 처리, 여행 예약비교, 구글 

 

*써드파티 결제처리?

: 클라이언트도 서버도 아닌 제 3자가 결제를 처리하는 것

 

6. API 프로토콜의 유형

  • SOAP(Simple Object Access Protocol) : XML로 구현된 API 프로토콜, 사용자가 SMTP 및 HTTP를 통해 데이터를 보내고 받을 수 있다. 서로 다른 환경에서 실행 중이거나, 서로 다른 언어로 개발된 애플리케이션 간 공유가 수월
  • XML-RPC(프로시저 호출)
  • JSON-RPC(프로시저 호출)
  • REST( Representational State Transfer, 자원의 표현으로 구분하여 자원의 상태를 교환) : REST는 프로토콜이나 표준이 아닌 아키텍처 원칙 세트이다. RESTfulAPI가 되려면 아키텍처와 관련된 특정 제약 조건을 준수해야 한다.

7.SOA(Service-Oriented,서비스 지향 아키텍처)와 MSA(마이크로서비스 아키텍처)

  • SOA는 소프트웨어 설계 스타일. 기능을 분할하여 하나의 네트웨크 내에서 개별 서비스처럼 제공
  • MSA는 애플리케이션을 더 작은 독립적 컴포넌트로 나누는 아키텍처 스타일. 애플리케이션을 개별 서비스의 모음으로 적용하면 더 수월하게 테스트, 유지보수, 확장할 수 있다. -> 하나의 컴포넌트를 나머지 컴포넌트에 독립적으로 다룰 수 있음