API (Application Programming Interface)

박영준·2023년 4월 4일
0

IT 지식

목록 보기
2/28

1. 정의

  • 점원 = API

  • 사용자마다 다양한 방식으로 요청을 할 때, API 가 중간에 끼어들어 대화 규칙을 정해주는 메뉴얼 역할을 하게 됨

  • 다른 기업/개발자/기관이 만든 외부 프로그램들의 기능을
    내가 만든 어플리케이션에 사용할 수 있도록 도와주는 중간 매개체(=API)
    (중간 매개체 예시 : 지도 API, 결재 API, 서버 API ...)

  • 어떤 응용 프로그램에서 데이터를 주고 받기 위한 방법

  • 어떤 특정 사이트에서 특정 데이터를 공유할 경우, 어떠한 방식으로 정보를 요청해야 하는지, 어떠한 데이터를 제공 받을 수 있을지에 대한 규격들

  • 응용 프로그램에서 사용할 수 있도록
    운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

  • 결국 API 또한 인터페이스

2. 종류

접근 방식에 따라 3가지로 구분한다.

1) Private API

  • 내부 API

  • 기업이나 연구 단체 등에서 자체 제품과 운영 개선을 위해 단체 내부에서만 사용

  • 제3자에게 노출되지 않는다.

2) Public API

  • 개방형 API

  • 모두에게 공개된다.

  • OpenAPI (Open Application Programming Interface)

    • 누구나 사용할 수 있도록 공개된 API
    • Public API 중에서도 접속하는 대상에 대한 제약이 없는 경우

3) Partner API

  • 특정 비즈니스 파트너 간의 데이터 공유

  • 동의하는 특정인들만 사용 가능

3. API 제공 이유

기상청 오픈 API (기상청에서 수집하고 있는 정보들) 를 사용자에게 쉽게 제공하기 위한 목적으로 기상청 오픈 API 제공 사이트를 만들었다.
이렇게 대형 플랫폼들이 오픈 API 를 제공하는 이유는?

대형 플랫폼(페이스북, 네이버, 카카오톡 ...)에서는 대부분 간편 로그인 API 정보를 제공한다.
우리는 이런 대형 플랫폼의 가입 정보가 또 다른 사이트들에도 공유가 되어, 간편 회원가입이 가능해진다.

만약, 대형 플랫폼(페이스북, 네이버, 카카오톡 ...)에서 탈퇴를 하고자 할 경우
해당 대형 플랫폼에 가입한 정보를 바탕으로 가입한 다른 모든 사이트들 또한 포기해야하는 상황이 발생하게 된다.

즉, 간편 로그인 기능을 제공함으로써 플랫폼 이탈율을 현저히 줄일 수 있기 때문에 대형 플랫폼들은 간편 로그인 기능을 제공하고 있다는 것이다.

4. 장단점

장점

  1. 데이터 접속의 표준화와 편의성
    1) API 는 모든 접속을 표준화하므로, 디바이스/운영체제 등... 과 상관없이 조건만 맞다면 누구나 동일한 액세스가 가능하다.

    2) 조직(기업)에서 어플리케이션 개발 시에 기능적 API 를 사용할 경우,
    필요한 기본 기능들(인증, 통신, 지불 처리 등...)을 매번 개발/업데이트 할 필요없이 이용 가능하다.

  2. 자동화와 확장성
    1) API 를 통한 CRUD 처리에 따라, 관련 데이터와 콘텐츠가 자동 생성
    2) 사용자의 환경에 맞춰서 정보가 전달되어 개발 워크 플로우가 간소화되고, 애플리케이션 확장이 다소 용이

  3. 적용력
    1) 변화 예측에도 API 가 도움이 되기 때문에, API를 통해 데이터를 수집하고 전달하는 데 있어 유연한 서비스 환경을 구축
    2) 소프트웨어를 통합하고자 할 때, 그리고 개발자들 간의 협업이 필요할 때 더욱 용이하다.

단점

  1. 보안성과 HTTP 방식의 제한
    평범한 HTTP 메서드를 사용하여 액세스 할 수 있다는 점은 API 게이트 웨이(API의 단일 진입점)가 해커의 타겟 대상이 될 수 있다는 것을 뜻한다.
    → 보안성 ↓

  2. 표준의 부재와 개발 비용
    1) REST API의 설계에는 공식화된 표준이 없다.

    • 관리가 어렵다.
    • 개발 시간, 지속적인 유지 관리 요구 사항 및 지원 제공 측면에서 비용 多

    2) 기존 API의 기능을 확장하려고 할 때, 광범위한 프로그래밍 지식이 필요


참고: [IT용어] API란 무엇인가?
참고: API란? API의 정의와 종류 그리고 장단점
참고: 문과생도 쉽게 이해하는 API와 REST API

profile
개발자로 거듭나기!

0개의 댓글