API

Ryu Honggyu·2024년 8월 6일
1

컴퓨터 사이언스

목록 보기
6/6
post-thumbnail

API의 정의와 분류

API 란?

  • 정의: Application Programming Interface. 프로그램과 어플리케이션이 상호작용할 수 있도록 하는 매개체.
  • 용도: 다양한 애플리케이션이나 서비스를 통합하고 기능을 공유하여 개발의 효율성을 높임.
  • 작동원리: API는 요청 request과 응답 response의 형태로 작동. 클라이언트가 특정 기능을 요청하면 서버가 그 요청을 처리하고 결과를 응답함. 이를 통해 두 애플리케이션 간의 데이터나 기능을 교환할 수 있음.

API 서버

  • 정의: 클라이언트의 API 요청을 처리하고 응답을 반환하는 서버임. 주로 데이터베이스와 연동되어 데이터를 조회하거나 수정하는 역할을 함.
  • 역할: 클라이언트와 데이터베이스 사이의 중간자. 클라이언트의 요청을 받아 적절한 로직을 수행하고 데이터를 반환. 보안, 인증, 권한 부여 등의 기능도 수행함.
  • 예시: Open API 서버 > Open API

API 생성시기에 따른 분류

  • SOAP API: XML을 사용하여 메시지를 교환함.
  • RPC API: 원격 프로시저 호출로 기능을 실행함.
  • Websocket API: 실시간 양방향 통신을 제공함.
  • REST API: Representational State Transfer. 현대에 제일 자주 사용되는 API. HTTP를 통해 리소스를 관리함.

RESTAPI

  • 정의: RESTful 아키텍처를 따르는 API로, HTTP 프로토콜을 사용하여 클라이언트와 서버 간에 데이터를 교환함.
  • 특징:
    • 균일한 인터페이스: 동일한 리소스에 대한 모든 API 요청은 출처와 상관 없이 동일하게 표시되어야 함.
    • 클라이언트-서버 분리: 클라이언트와 서버 애플리케이션은 서로 완전히 독립적이어야 함.
    • 무상태: 각 요청에는 처리에 필요한 모든 정보가 포함되어야 함.
    • 캐시 가능성: 리소스를 캐시할 수 있어야 하며, 서버 응답에 캐싱 정보가 포함되어야 함.
    • 계층화된 시스템 아키텍처: 호출과 응답은 서로 다른 계층을 거칠 수 있음.
    • 코드 온디맨드(선택 사항): 경우에 따라 응답에 실행 코드가 포함될 수 있음.
  • 장점:
    • 통합: 다양한 시스템과 쉽게 통합할 수 있음.
    • 혁신: 신기술 도입이 용이함.
    • 확장: 기능 확장이 쉬움.
    • 유지관리: API는 두 시스템 간의 게이트웨이 역할만 하고, 시스템이 API에 영향을 끼치지는 않기에 유지보수가 간편함.
  • 보호방법:
    • 인증 토큰: 사용자 인증을 위해 토큰을 사용함.
    • API 키: API 의 일부. API 접근을 제어하기 위해 키를 사용함.

WEB API

  • 정의: 웹에서 HTTP 프로토콜을 통해 사용할 수 있는 API로, 웹 애플리케이션과 서버 간의 상호작용을 가능하게 함.
  • 특징: RESTful 아키텍처를 따르는 경우가 많으며, 다양한 데이터를 JSON 또는 XML 형식으로 주고받음.
  • 용도: 웹 애플리케이션에서 서버의 데이터를 가져오거나 서버에 데이터를 전송하는 데 사용됨.
  • 예시: 구글 맵 API, 트위터 API, 페이스북 그래프 API 등.

아키텍처와 사용 범위에 따른 분류

  • 프라이빗 API: 내부 시스템에서만 사용함.
  • 퍼블릭 API: 외부 개발자나 사용자에게 공개됨.
  • 파트너 API: 특정 파트너와 공유됨.
  • 복합 API: 두 가지 이상의 API 기능을 결합함.

API 생성과 사용

API 생성

  • 계획: OpenAPI와 같은 사양을 사용하여 API 설계의 블루프린트를 제공하고, 다양한 사용 사례와 표준 준수를 고려함.
  • 빌드: API 디자이너는 상용 코드를 사용하여 프로토타입을 생성하고, 개발자는 이를 내부 사양에 맞게 사용자 지정함.
  • 테스트: 버그와 결함을 방지하기 위한 테스트.
  • 문서화: 사용 편의성을 높이기 위한 API 문서 작성.
  • 마케팅: API 마켓플레이스에 API를 나열하여 개발자가 다른 API를 사고 팔고, 이를 통해 수익을 창출함.

API 사용 예시

  • OpenAI의 GPT API 를 써서 텍스트 생성을 요청하는 예시

    import openai
    
    openai.api_key = 'my-api-key'
    
    response = openai.Completion.create(
        engine="gpt4o",
        prompt="A strange game. The only winning move is not to play. How about a nice game of chess?",
        max_tokens=50
    )
    
    print(response.choices[0].text.strip())
    

profile
알고리즘 & 웹 & CS & AI

0개의 댓글