API

김재현·2022년 8월 29일
0

프로그래밍 개념

목록 보기
1/6

API

API란?

  • 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 매커니즘.
  • API. Application Programming Interface.
    API 맥락에서 애플리케이션이라는 단어는 고유한 기능을 갖은 모든 소프트웨어를 나타내며, 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있다.
    이 계약은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의한다.
  • API 문서에는 개발자가 이러한 요청과 응답을 구성하는 방법에 대한 정보가 들어있다.

API의 작동

  • API 아키텍처는 일반적으로 클라이언트-서버 측면에서 설명됨.
    요청을 보내는 애플리케이션 : 클라이언트
    요청에 대한 응답을 보내는 애플리케이션 : 서버

SOAP API

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

RPC API

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

Websocket API

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

REST API

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

웹 API란?

  • 웹 API 또는 웹 서비스 API는 웹 서버-브라우저 간의 애플리케이션 처리 인터페이스.
    모든 웹 서비스는 API이지만, 모든 API가 웹 서비스는 아니다.
    REST API는 위 설명처럼 표준 아키텍쳐 스타일을 사용하는 특수한 유형의 웹 API.
  • API는 월드 와이드 웹 전에 만들어졌기 때문에 Java API, 서비스 API 등 API에 대한 다양한 용어가 존재하며, 최신 웹 API는 REST API. 용어는 서로 바꿔 사용할 수 있다.

API 통합?

  • API 통합은 클라이언트-서버 간의 데이터를 자동으로 업데이트하는 소프트웨어 구성 요소.
    예시) 휴대폰 이미지 갤러리에서 클라우드로 데이터 자동 동기화 또는 다른 시간대 여행 시 노트북의 시간 및 날짜 자동 동기화 등..

API의 다른 유형?

  • API는 아키텍처와 사용 범위에 따라 분류.

프라이빗 API

  • 프라이빗 API는 기업 내부에 있으며 비즈니스 내에 시스템과 데이터를 연결하는 데만 사용됨.

퍼블릭 API

  • 일반에 공개되며 누구나 사용할 수 있다.

파트너 API

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

복합 API

  • 두개 이상의 서로 다른 API를 결합, 복잡한 시스템 요구 사항이나 동작으 처리한다.

API 엔드포인트는 무엇일까?

  • API 엔드포인트는 API 통신 시스템의 최종 접점. 여기에서 서버 URL, 서비스 및 시스템 간에 정보가 송수신되는 기타 특정 디지털 위치가 포함.

1. 보안

  • API 엔드포인트는 시스템을 공격에 취약하게 만듦. API 모니터링은 오용을 방지하는데 중요.

2. 성능

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

API의 생성

1. API 계획

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

2. API 빌드

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

3. API 테스트

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

4. API 문서화

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

5. API 마케팅

API 테스트

다른 소프트웨어 방법론과 유사. 서버 응답 검증에 주로 초점을 두며 API 테스트에는 다음이 포함됨.

  • 성능 테스트를 위해 API 엔드포인트에 요청을 여러번 함.
  • 비즈니스 로직 및 기능적 정확성 확인을 위한 단위 테스트 작성.
  • 시스템 공격을 시뮬레이션 하여 보안 테스트.

API 문서 작성법

포괄적인 API 문서 작성은 API 관리 프로세스의 일부.

  • 간단하고 읽기 쉬운 영어로 설명 작성. 도구로 생성된 문서는 장황하며 편집이 필요할 수 있다.
  • 코드 샘플을 사용해 기능 설명.
  • 문서를 정확하고 최신 상태로 유지하기.
  • 초심자를 위한, 쉬운 작문 스타일을 목표로 하기.
  • API가 사용자를 위해 해결할 수 있는 모든 문제를 다룬다.

API 사용하기

  1. API 키를 받는다. API 공급 업체의 확인을 받은 계정을 생성하면 됨.
  2. HTTP API 클라이언트를 설정하기. 이 도구를 사용하면 수신된 API 키를 사용하여 API 요청을 쉽게 구성할 수 있음.
  3. API 클라이언트가 없는 경우 설명서를 참조하여 브라우저에서 직접 구성할 수 있음.
  4. 새 API 구문에 익숙해지면 코드에서 사용 가능.

RESR API

  • REST. Representational State Transfer.
    클라이언트가 서버 데이터에 엑세스하는데 사용할 수 있는 GET, PUT, DELETE 등의 함수 집합을 정의함. 클라이언트와 서버는 HTTP를 사용하여 데이터를 교환.
  • 주된 특징은 무상태.
    무상태 : 서버가 요청 간에 클라이언트 데이터를 저장하지 않음. 서버에 대한 클라이언트 요청은 웹 사이트를 방문하기 위해 브라우저에 입력하는 URL과 유사하다. 서버의 응답은 웹 페이지의 일반적인 그래픽 랜더링이 없는 일반 데이터이다.

REST API의 장점

1. 통합

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

2. 혁신

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

3. 확장

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

4. 유지 관리의 용이성

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

REST API를 보호하기

  • 모든 API는 적절한 인증 및 모니터링을 통해 보호되어야 함.

1. 인증 토큰

  • 사용자에게 API 호출을 수행할 수 있는 권한을 부여하는데 사용. 인증 토큰은 사용자가 자신이 누구인지 확인하고 해당 특정 API 호출에 대한 액세스 권한이 있는지 확인함.

2. API 키

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

0개의 댓글