CS

API

leejiwoo21 2024. 3. 29. 14:22

https://aws.amazon.com/ko/what-is/api/

 

API란
(애플리케이션 프로그래밍 인터페이스)
: 요청과 응답을 통한 두 어플리케이션 간의 통신 계약

 


API의 작동 방법
: api 아키텍처는 일반적으로 클라이언트와 서버측에서 설명된다. 요청을 보내는 애플리케이션을 클라이언트라 하고, 응답을 보내는 애플리케이션을 서버라고 한다.

 


API의 네 가지 방식

SOAP API
: 단순 객체 접근 프로토콜을 사용한다. 클라이언트와 서버는 XML을 사용하여 메시지를 교환한다. 과거에 많이 사용됐던 유연성이 떨어지는 API.

RPC API
: 원격 프로시저 호출라고 한다. 클라이언트가 서버에서 함수나 프로시저를 완료하면 서버가 출력을 클라이언트로 다시 전송한다.

Websocket API
: JSON 객체를 사용하여 데이터를 전달하는 또 다른 최신 웹 API. Websocket api는 클라이언트 앱과 서버 간의 양방향성 통신을 지원한다.  서버가 연결된 클라이언트에 콜백 메시지를 전송할 수 있어 REST API보다 효율적이다.

REST API
: 오늘날 웹에서 볼 수 있는 가장 많이 사용되고 유연한 API이다. 클라이언트는 요청을 데이터로 전송하고, 서버가 클라이언트 입력을 사용하여 사용하여 내부 함수를 시작하고 출력 데이터를 다시 클라이언트에 반환한다.

REST는 클라이언트가 서버 데이터에 액세스하는 데 사용할 수 있는 GET, PUT, DELETE 등의 함수 집합을 정의한다. 클라이언트와 서버는 HTTP를 사용하여 데이터를 교환한다.

REST API의 주된 특징은 무상태이다. 무상태는 서버가 요청 간에 클라이언트 데이터를 저장하지 않음을 의미한다. 서버에 대한 클라이언트의 요청은 웹 사이트를 방문하기 위해 브라우저에 입력하는 URL과 유사하다. 서버의 응답은 웹 페이지의 일반적인 그래픽 렌더링이 없는 일반적인 데이터이다.

 


웹 API란?
웹 서버와 웹 브라우저 간의 애플리케이션 처리 인터페이스이다. 모든 웹 서비스는 API이지만 모든 API가 웹 서비스는 아니다. REST API는 웹 API의 한 종류이다.

 

 

API통합이란?
API 통합은 클라이언트와 서버 간의 데이터를 자동으로 업데이트하는 소프트웨어 구성 요소이다. API 통합의 몇 가지 예로 휴대폰 이미지 갤러리에서 클라우드로 데이터 자동 동기화 또는 다른 시간대 여행 시 노트북에서 시간 및 날짜 자동 동기화가 있다. 기업은 또한 API통합을 사용하여 많은 시스템 함수를 효율적으로 자동화 할 수 있다

 


REST API의 장점

1. 통합

API는 새로운 애플리케이션을 기존 소프트웨어 시스템과 통합하는 데 사용한다. 그러먼 각 기능을 처음부터 작성핳 필요가 없기 때문에 개발 속도가 빨라진다. API를 사용하여 기존 코드를 활용할 수 있기 때문.

2. 혁신

새로운 앱의 등장으로 전체 산업이 바뀔 수 있다. 기업은 신속하게 대응하고 혁신적인 서비스의 신속하누배포를 지원해야 한다. 전체 코드를 다시 작성할 필요 없이 API 수준에서 변경하여 이를 수행할 수 있다.

3. 확장

API는 기업이 다양한 플랫폼에서 고객의 요구 사항을 충족할 수 있는 고유한 기회를 제공한다. 예를 들어 지도 API를 사용하면 웹 사이트, Android, iOS 등을 통해 지도 정보를 통합할 수 있다. 어느 기업이나 무료 또는 유료 API를 사용하여 내부 데이터베이스에 유사한 엑세스 권한을 부여할 수 있다.

4. 유지 관리의 용이성

API는 두 시스템 간의 게이트웨어 역할을 한다. API가 영향을 받지 않도록 각 시스템은 내부적으로 변경해야 한다. 이렇게 하면 한 시스템의 햔후 코드 변경이 다른 시스템에 영향을 미치지 않는다.


API의 다른 유형은 무엇이 있는지?
: API는 아키텍처와 사용 범위에 따라 분류된다. API 아키텍처의 주요 유형은 위의 4가지이고, 사용 범위에 따라 나누어 보겠다.

프라이빗 API
: 프라이빗 API는 기업 내부에 있으며 비즈니스 내에서 시스템과 데이터룰 연결하는 데만 사용된다.

퍼블릭 API
: 퍼블릭 API는 일반에 공개되며 누구나 사용할 수 있다. 이러한 유형의 API와 관련된 권한 부여와 비용이 있을 수도 있고 없을 수도 있다.

파트너 API
: B2B 파트너십을 지원하기 위히 권한이 부여된 외부 개발자만 액시스할 수 있다.

복합 API
: 두 개 이상의 서로 자른 API를 결합하녀 복잡한 시스템 요규 사항이나 동작을 처리한다.

 


API 엔드포인트는 무엇이며 왜 중요한가?
: API 엔드포인트는 API 통신 시스템의 최종 접점(api 사용을 위한 입구? 통로?)이다. 여기에는 서버 URL, 서비스 및 시스템 간의 정보가 송신되는 기타 특정 디지털 위치가 포함된다. API 엔드포인트는 두 가지 주요 이유로 기업에 중요하다.

1. 보안
: API 앤드포인트는 시스템 공격에 취약하게 만든다. API 모니터링은 오용을 방지하는데 중요하다.

2. 성능
API 엔드포인트, 특히 트래픽이 많은 엔드포인트는 병목 현상을 일으키고 시스템 성능에 영향을 줄 수 있다.

엔드포인트는 URL에서도 HTTP 메소드(GET, POST 등)에 따라 반환받는 값이 달라지는 특징도 포함한다.

 

 

REST API를 보호하려면?

모든 API가 적절한 인증 및 모니터링을 통해 보호되어야 한다. REST API를 보호하는 두 가지 주요 방법이 있다.

 

1. 인증 토큰

인증 토큰은 사용자에게 API 호출을 수행할 수 있는 권한을 부여하는데 사용된다. 인증 토큰은 사용자가 자신이 누구인지 확인하고 해당 특정 API 호출에 대한 액세스 권한이 있는지 확인한다. 예를 들어, 이메일 서버에 로그인하면 이메일 클라이언트는 보안 액세스를 위해 인증 토큰을 사용한다.

(유저에게 접근 권한이 있는가)

 

2. API 키 

API 키는 API를 호출하는 프로그램 또는 애플리케이션을 확인한다. 즉, 애플리케이션을 식별하고 애플리케이션에 특정 API호출을 수행하는 데 필요한 액세스 권한이 있는지 확인한다. API 키는 토큰만큼 안전하지 않지만 사용량에 대해 데이터를 수집하기 위해 API  모니터링을 허용합니다. 다른 웹 사이트를 방문할 때 브라우저 URL에서 긴 문자열과 숫자를 본적이 있을 것입니다. 이 문자열은 

(프로그램에게 접근 권한이 있는가)

 

 

API 구축 방법

 

고품질 API 설계에는 다음 5개의 단계가 필요하다.

 

1. API 계획

: OpenAPI와 같은 API 사양은 API설계를 위한 블루프린트를 제공합니다. 다양한 사용 사례를 미리 생각하고 API가 현재 API 개발 표준을 준수하는지 확인하는 것이 좋습니다.

 

2. API 빌드

: API 디자이너는 상용 코드를 사용하여 API 프로토타입을 생성합니다. 프로토타입이 테스트되면 개발자는 내부 사양에 맞게 이를 사용자 지정할 수 있다.

>사용자 지정은 권한을 부여한다는 것인지?

 

3. API 테스트

API 테스트는 소프트웨어 테스트와 동일하며 버그 및 결함을 방지하기 위해 수행되어야 합니다. API 테스트 도구로 사이버 공격에 대비하여 API를 강화할 수 있습니다.

 

* API 테스트란?

API 테스트 전략은 다른 소프트웨어 테스트 방법론과 유사합니다. 서버 응답 검증을 주로 초점을 둡니다. API 테스트에는 다음이 포함됩니다.

 

1) 성능 테스트를 위해 API 엔드포인트에 요청을 여러 번 합니다.

2) 비즈니스 로직 및 기능적 정확성을 확인하기 위해 단위 테스트 작성

3) 시스템 공격을 시뮬레이션하여 보안 테스트

 

 

4. API 문서화

API는 그 자체로 설명이 필요 없지만 API 문서는 사용 편의성을 높이는 가이드 역할을 합니다. 다양한 기능과 사용 사례를 제공하는 잘 문서화된 API는 서비스 지향 아키텍처에서는 더 많이 사용되는 경향이 있습니다.

 

* API 문서는 어떻게 작성하나요?

포괄적인 API 문서 작성은 API 관리 프로세스의 일부입니다. APi 문서는 도구를 사용하여 자동 생성하거나 수동으로 작성할 수 있습니다. 몇 가지 모범 사례는 다음과 같습니다.

 

1) 간단하고 읽기 쉬운 영어로 설명을 작성합니다. 도구로 생성된 문서는 장황하며 편집이 필요할 수 있습니다.

2) 코드 샘플을 사용하여 기능을 설명합니다.

3) 문서를 정확하고 최신 상태로 유지합니다.

4) 초심자를 위한 작문 스타일을 목표로 합니다.

5) API가 사용자를 위해 해결할 수 있는 모든 문제를 다룹니다.

 

 

5. API 마케팅

Amazon이 소매용 온라인 마켓플레이스인 것처럼 API 마켓플레이스는 개발자가 다른 API를 사고 팔기 위해 존재합니다. API를 나열하여 수익을 창출할 수 있습니다.

 

 

API는 어떻게 사용하나요?

새 API를 구현하는 단계는 다음과 같습니다.

1. API 키를 받습니다. API 공급 업체의 확인을 받은 계정을 생성하면 됩니다.

2. HTTP API 클라이언트를 설정합니다. 이 도구를 사용하면 수신된 API 키를 사용하여 API 요청을 쉽게 구성할 수 있습니다.

3. API 클라이언트가 없는 경우 API 설명서를 참조하여 브라우저에서 요청을 직접 구성할 수 있습니다.

4. 새 API 구문에 익숙해지면 코드에서 이를 사용하기 시작할 수 있습니다.

 

 

어디에서 새 API를 찾을 수 있나요?

새로운 웹 API는 API 마켓플레이스 및 API 디렉터리에서 찾을수 있습니다. API 마켓플레이스는 누구나 판매용 API를 나열할 수 있는 개방형 플랫폼입니다. API 디렉터리는 디렉터리 소유자가 규제하는 제어된 리포지토리입니다. 전문 API 디자이너는 새 API를 디렉터리에 추가하기 전에 평가하고 테스트할 수 있습니다.

 

인기 있는 몇몇 API 웹 사이트는 다음과 같습니다.

 

1. RapidAPI - 10,000여 개의 퍼블릭 API와 현장에서 활동 중인 1백만 명의 개발자를 만날 수 있는 최대 규모의 글로벌 API 시장입니다. RapidAPI를 통해 사용자는 구매를 결정하기 전에 플랫폼에서 직접 API를 테스트할 수 있습니다.

 

2. Public APIs - 이 플랫폼은 요구 사항에 맞는 API를 쉽게 탐색하고 찾을 수 있도록 원격 API를 40개의 틈새 범주로 그룹화합니다.

 

3. APIForThat 및 APIList - 이 두 웹 사이트에는 사용 방법에 대한 심층 정보와 함께 500여 개의 웹 API 목록이 있습니다.

 

 

API 게이트웨이란?

APi 게이트웨이는 광범위한 벡엔드 서비스를 사용하는 기업 클라이언트를 위한 API 관리 도구입니다. API 게이트웨이는 일반적으로 모든 API 호출에 적용할 수 있는 사용자 인증, 통계 및 속도 관리와 같은 일반적인 태스크를 지원합니다.

 

Amazon API Gateway는 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안 유지할 수 있도록 하는 완전관리형 서비스입니다. API Gateway는 트래픽 관리, CORS 지원, 권한 부여 및 액세스 제어, 제한, 모니터링 및 API 버전 관리 등 수천 개의 동시 API 호출을 수신 및 처리하는 데 관계된 모든 태스크를 처리합니다.

 

 

GraphQL이란?

GraphQL은 API용으로 특별히 개발된 쿼리 언어로서, 클라이언트에게 요청한 데이터만 제공하는 것을 우선으로 합니다. 또한 APi를 빠르고 유연하며 개발자 친화적으로 만들도록 설계되었습니다. REST의 대안으로서 GraphQL은 프런트엔드 개발자에게 단일 GraphQL 엔드포인트로 여러 데이터베이스, 마이크로 서비스 및 API를 쿼리할 수 있는 기능을 제공합니다. 조직은 애플리케이션을 더 빠르게 개발하는 데 도움이 되기 때문에 GraphQL을 사용하여 API를 빌드하기로 선택합니다.

 

반응형