API 정의

API: Application Programming Interface

컴퓨터간 소통을 쉽고 빠르게 만들어주는 중계 계층
아래와 같은 요소들이 정의되어 있다.

  • Protocol: 어떤 protocol로 통신할 것인지
  • Method: get, post, ... 등 메소드
  • Data type: JSON, XML 등 데이터 교환 형식

다양한 것을 가리키지만 보통은 WEB API를 중심으로 설명한다.

interface

서로 다른 두 개의 시스템(장치) 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계

인터페이스 덕분에 컴퓨터 내부 서버가 어떻게 구현되어 있는지와 상관없이 통신이 가능하다.
ex) 네이버 웹툰 : 네이버의 DB나 서버가 어떻게 구현되어 있는지는 모르지만, 클릭 몇 번만으로 우리는 원하는 웹툰을 볼 수 있다.

GPT4 답변

요약

다른 소프트웨어가 상호작용 할 수 있도록 노출시킨 메서드나 데이터 구조. 예시로 getCurrentTemperature(location) 라는 메서드를 노출시켜서 간단하게 location만 입력하면 현재 온도를 받아보게 할 수 있다.

장점

  1. 서비스의 중요한 부분(DB설계 구조, 테이블 정보, 서버 상수값)을 드러내지 않을 수 있다.
    • 그럼 굳이 API를 제공하면서 일부 정보라도 보여주는 이유는 무엇일까?
      ⇒ API로 데이터를 받아와서 보여주는 연습만 하다보니 생각이 짧았다. 내가 생각하는 API는 일부일 뿐.

  2. 사용자는 해당 서비스가 어떻게 구현되는지 알 필요 없이 필요한 정보를 받을 수 있다.

  3. OPEN API를 통해 앱 개발 프로세스를 단순화, 시간과 비용을 절약할 수 있다.
    • ex)네이버 로그인 서비스(네이버 아이디로 로그인)

  4. 내부 프로세스가 수정되었을 때, API 수정이 안 되게 만들 수 있다. 내부 로직이 변경되어도 사용자가 매번 앱을 업데이트 하는 일을 줄일 수 있다.
    • 어떤 방식으로 구현되는지 아직은 잘 모르겠다.

  5. 제공자는 데이터를 한 곳에 모을 수 있다.
    • 서로 다른 두 페이지에서 오는 이벤트를 하나의 API를 통해 일어나게 한다. (확인필요)

단점

  • 외부 API(third-party API)를 사용할 경우, 그 API가 지원을 종료하거나 업데이트를 하면 내 APP을 전면 수정해야 할 수도 있다.

종류

  • Private
    내부적으로 사용된다. 주로 해시(HASH)키를 하드 코딩 해놓고 이를 기반으로 서버간 통신한다.
  • Public
    모든 사람이 사용할 수 있다. 많은 트래픽 방지를 위해 요청수 제한을 걸어놓기도 한다.
    ex.네이버 OPEN API

마무리

최근 OPEN AI의 GPT4 API 승인을 받아놓은 터라 API에 관심이 많았는데, 마침 간단하게 설명해놓은 영상이 있어서 좋았다. 결국 API키를 받아서 내 application에 적용하면 사용자의 컴퓨터와 - OPENAI가 서로 소통하기 쉬워진다는 의미인 것 같다.

참고: 큰돌의터전 유튜브
단점:

profile
always be fresh

0개의 댓글