SHUSTORY

API 본문

CS

API

어서오시우 2024. 11. 2. 20:13
728x90

🫨 API (Application Programming Interface)

지난번 interface에 대해 조사할 때 잠깐 언급된 API !
기억을 되짚어보자면, 개발 시 어떤 시스템 간 상호 작용을 위한 인터페이스.. 정도의 개념으로 이해하고 넘어갔다.
이번 시간에는 아직 추상적으로 개념이 잡혀 있는 API에 대해 명확하게 알아보는 시간을 갖겠다.

 

🍏 API의 정의

  • 하나의 프로그램에서 다른 프로그램으로 데이터를 주고받기 위한 방법으로,
    애플리케이션에서 데이터를 읽거나 쓰기 위해서 사용하는 인터페이스를 의미한다.
    • 🤔 이 방법이라는 게 뭔데?
      쉽게 말하자면 그냥 코드이다.
      구체적으로는, 통신하는 시스템 간 데이터를 교환하고 요청 및 응답을 처리할 수 있도록 해주는 코드들인 셈이다.
  • 즉, 사용자 UI를 사용하여 애플리케이션과 소통하고, 애플리케이션 API를 사용하여 다른 애플리케이션 또는 시스템과 소통한다.

출처 : 코딩애플 youtube

  • API는 서버 역할을 하는 프로그램이 나눠준 메뉴판이라고 볼 수 있다.
    이 메뉴판에는 요청을 보내는 쪽, 즉 클라이언트들이 보낼 수 있는 요청들이 메뉴처럼 나열되어 있다.
    또한 클라이언트의 요청에 대응되는 서버 측의 응답 또한 정의되어 있다.
  • API는 특정 데이터를 조회하는 것 뿐만 아니라 데이터를 새로 생성하거나 수정, 삭제하는 용도로도 사용된다.
  • API는 무엇을 보내고 무엇을 받아오는가에 대한 것이기 때문에 언어나 프레임워크에 구애받지 않으며,
    어떤 프로그래밍 언어나 기술을 사용해서든 해당 API에 명시된 바에 따라 SW를 만들면 되는 것이다.

 

🍏 실제 웹 서비스와 함께 이해하는 API

  • 예를 들어, 우리동네 날씨 정보를 보여주는 앱을 만들고자 하는 상황을 가정해보자.
    이 앱을 만들기 위해서 기상청의 날씨 정보를 요청해서 응답을 받은 후, 화면에 날씨 정보를 보여주면 된다.
    • 이 때, 날씨 정보 데이터를 가져올 수 있도록 기상청에서 API를 제공한다.

출처 : 짐코딩 youtube

  • 위와 같이 기상청에서 API를 제공해주면, 앱에서는 요청을 통해 응답을 받아 사용자에게 보여줄 UI를 개발하면 된다.
    • 기상청에서는 날씨 정보를 DB 서버에 보관한다.
      기상청에서는 DB에 보관된 날씨 정보를 다른 애플리케이션에서 가져갈 수 있도록 다양한 API를 개발한다.

 

  • 우리는 안드로이드 앱, ios 앱 등을 통해 유튜브를 볼 수 있다.
    이 때, 휴대폰 안에 설치된 유튜브 앱 내부에 모든 유튜브 영상들이 들어 있을까?
    🙂‍↔️ 그렇지 않다.
    • 이 영상들은 '서버'에 저장되어 있다.
      각 기기들은 이 서버로부터 영상들과 관련된 데이터를 받아와서 재생하는 것이다.
      1. 사용자의 휴대폰에서 유튜브 앱에 접속한다.
      2. 유튜브 앱은 (유튜브 데이터 API)서버에 최신 컨텐츠의 목록을 보내달라는 요청을 보낸다.
      3. 이에 대한 응답으로 서버에서는 영상들의 정보를 보내준다.
        그 외에도 좋아요 누르기, 댓글 달기, 영상 올리기 등 다양한 작업들이 이 SW들 간의 소통을 통해 이루어진다.
    • 즉, API는 SW들이 대화할 때 사용되는 수단이며,
      우리가 유튜브를 볼 수 있는 것은 이 SW들이 원만하게 대화를 나누고 있기 때문이다.

 

 API에 대해 더 알아보자

  • public API
    • 누구나 사용 가능한 공개 API
    • Open API라고도 한다.
      • 일반적으로 Open API라는 용어를 사용할 때는 HTTP API를 말한다.
  • private API
    • 회사 자체 서비스를 만들기 위해 사내에서 개발하고 사용하는 API
    • 제 3자에게 공개되지 않는다.
  • partner API
    • 미리 정해둔 놈(서로에게 공유를 동의하는 특정인)만 쓰는 API
    • 주로 특정 비즈니스 파트너 간의 데이터 공유를 위한 API

 

🫨 추가적으로 알아보는 API

🌳 아마존에서 API에 대해 굉장히 상세히 기술해두었길래 추가적으로 API에 대해 조사 및 정리하고자 한다.
참고 : 
https://aws.amazon.com/ko/what-is/api/

 

API란 무엇인가요? - 애플리케이션 프로그래밍 인터페이스 설명 - AWS

GraphQL은 API용으로 특별히 개발된 쿼리 언어로서, 클라이언트에게 요청한 데이터만 제공하는 것을 우선으로 합니다. 또한 API를 빠르고 유연하며 개발자 친화적으로 만들도록 설계되었습니다. RES

aws.amazon.com

  • API는 두 애플리케이션(고유한 기능을 가진 모든 SW) 간의 서비스 계약이라고 할 수 있다.
    즉, 요청과 응답으로 구성되어 서로 통신하는 방법을 정의한다.

 

🌳API가 생성된 시기와 이유에 따라 네 가지 방식으로 작동할 수 있다.
이에 대해서는 간단하게만 알아보겠다..

  • SOAP API
    웹 서비스 통신 프로토콜 중 하나로, XML을 기반으로 데이터를 교환한다.
    • 높은 보안과 복잡한 트랜잭션 처리를 제공하지만, XML 기반의 복잡한 구조로 인해 오버헤드가 크고 유지보수가 어렵다.
      이로 인해 현대 웹 서비스에서는 RESTful API로 대체되는 경향이 있다. 
      • 트랜잭션
        DB 시스템이나 컴퓨팅 환경에서 여러 작업이 하나의 단위로 묶여서 처리되는 것으로,
        이 과정은 데이터의 일관성과 무결성을 보장하는 중요한 개념이다.
      • 높은 오버헤드
        XML은 태그로 감싸진 구조화된 데이터를 사용하기 때문에 사람이 읽기 쉽고 기계가 처리할 수 있지만,
        각 데이터 항목에 대한 태그가 추가되므로 데이터 크기가 커지는 경향이 있다.
        JSON 같은 경량 포멧에 비해 더 많은 데이터가 전송됨
  • RPC API
    • 클라이언트-서버 모델에서 사용되는 기술로, 클라이언트가 서버에서 원격으로 함수를 호출,
       네트워크를 통해 다른 컴퓨터(서버)에 있는 함수를 실행하여 작업을 수행하는 방법을 제공한다.
      RPC는 기본적으로 네트워크를 통해 다른 컴퓨터에서 함수나 메소드를 실행할 수 있게 해준다.
  • Websocket API
    • JSON 객체를 사용하여 데이터를 전달하는 웹 API 개발로, 클라이언트 앱과 서버 간의 양방향 통신을 지원한다.
      서버가 연결된 클라이언트에 콜백 메시지를 전송할 수 있다.
  • REST API
    • 오늘날 웹에서 가장 많이 사용되는 유연한 API로, 클라이언트가 서버에 요청을 데이터로 전송한다.
      클라이언트가 서버에 데이터를 요청하면, 서버가 그에 맞는 데이터를 처리한 후 응답을 반환하는 방식이다.
    • REST는 클라이언트가 서버 데이터에 액세스하는 데 사용할 수 있는 GET, PUT, DELETE 등의 함수 집합을 정의하며,
      클라이언트와 서버는 HTTP를 사용하여 데이터를 교환한다.

 

🌳 API 엔드포인트

출처 : https://learn.microsoft.com/ko-kr/azure/machine-learning/concept-endpoints?view=azureml-api-2

  • API 엔드포인트는 API를 통해 서버와 클라이언트 간에 데이터를 주고받는 특정 URL이나 URI로ㅡ
    API 통신 시스템에서 클라이언트가 요청을 보낼 때 대상이 되는 최종 지점을 나타낸다.
GET httpsGET https://example.com/api/products?category=electronics&minPrice=100&maxPrice=500
  • API 엔드포인트 구성 요소
    • 서버 URL
      API 요청이 전달되는 서버의 주소로, 해당 URL로 클라이언트가 해당 서버와 통신하게 된다.
    • 경로(Path)
      서버 URL 뒤에 붙는 경로로, 특정 리소스나 서비스를 지정한다.
    • 쿼리 매개변수(Query Parameters)
      경로 뒤에 붙는 추가 매개변수로, 요청에 대한 세부 조건(특정 사용자에 대한 정보를 요청하는 등)을 지정한다.
      • 일반적으로 ?로 시작하며, 여러 매개변수를 사용할 경우 &로 구분된다.
    • HTTP 메소드
      GET, POST, PUT, DELETE 등 요청의 목적을 나타낸다.

 

https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

🧐 실제 API 명세서가 어떻게 쓰이는지에 대해서는 위와 같이 공개된 API DOCS에서 쉽게 볼 수 있으므로 참고하면 될 듯하다.

'CS' 카테고리의 다른 글

JSON, XML, YAML  (2) 2024.11.04
Frontend / Backend  (5) 2024.11.01
MPA / SPA  (2) 2024.10.30
CSR / SSR  (6) 2024.10.23
Interface  (1) 2024.10.18