의견.png

"API"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
(활용)
22번째 줄: 22번째 줄:
 
API 라는 용어 는 1968 년에 출판된 원격 컴퓨터 그래픽을 위한 데이터 구조 및 기술인 Ira W. Cotton의 기사에서 처음 등장했다. 
 
API 라는 용어 는 1968 년에 출판된 원격 컴퓨터 그래픽을 위한 데이터 구조 및 기술인 Ira W. Cotton의 기사에서 처음 등장했다. 
 
==활용==
 
==활용==
*회사 홈페이지에서 네이버 지도 API를 이용해 회사 약도 넣기
+
===라이브러리 및 프레임 워크===
*기상청 날씨 API를 내 쇼핑몰에 넣어 날씨에 따라 제품 추천하기
+
API는 일반적으로 소프트웨어 라이브러리 와 관련이 있습니다 . 라이브러리는이 규칙 세트의 "실제 구현"인 반면 API는 "예상 된 동작"(사양)을 설명하고 규정합니다.
*네이버 가격비교 API를 이용해 내 쇼핑몰에서 가격 비교하기
+
단일 API는 동일한 프로그래밍 인터페이스를 공유하는 서로 다른 라이브러리 형태로 여러 구현 (또는 추상이 아님)을 가질 수 있습니다.
*우편번호 API를 내 쇼핑몰에 넣어 배송지 입력하기
+
API를 구현에서 분리하면 한 언어로 작성된 프로그램이 다른 언어로 작성된 라이브러리를 사용할 수 있습니다. 예를 들어 Scala 및 Java 는 호환 가능한 bytecode로 컴파일 되므로 Scala 개발자는 모든 Java API를 활용할 수 있습니다. [2]
 +
API 사용은 관련된 프로그래밍 언어의 유형에 따라 달라질 수 있습니다. Lua 와 같은 절차 적 언어 용 API는 기본적으로 코드 실행, 데이터 조작 또는 오류 처리를위한 기본 루틴으로 구성 될 수 있지만 Java와 같은 객체 지향 언어 용 API 는 클래스 및 클래스 메소드 의 스펙을 제공 합니다 . [3] [4]
 +
언어 바인딩 도 API입니다. 한 언어의 기능을 다른 언어로 구현 된 인터페이스에 매핑하면 언어 바인딩을 통해 한 언어로 작성된 라이브러리 나 서비스를 다른 언어로 개발할 때 사용할 수 있습니다. [5] Fortran -to- Python 인터페이스 생성기 인 SWIG 및 F2PY 와 같은 도구 는 이러한 인터페이스를 쉽게 만들 수 있습니다. [6]
 +
API는 또한 소프트웨어 프레임 워크 와 관련 될 수 있습니다. 프레임 워크는 여러 API를 구현하는 여러 라이브러리를 기반으로 할 수 있지만 일반적인 API 사용과 달리 프레임 워크에 내장 된 동작에 대한 액세스는 컨텐츠를 새로운 클래스로 확장하여 조정됩니다 프레임 워크 자체에 연결했습니다.
 +
더욱이, 제어의 전체 프로그램 흐름은 제어의 역전 또는 유사한 메커니즘에 의해 호출자의 제어 및 프레임 워크의 손에서 벗어날 수있다 . [7] [8]
 +
===운영 체제===
 +
API는 응용 프로그램과 운영 체제 사이의 인터페이스를 지정할 수 있습니다 . [9] POSIX는 , 예를 들면,하기 POSIX 준수 운영체제 작성된 응용 프로그램 활성화하고자 공통 API 세트를 지정 컴파일 다른 POSIX 준수 운영체제한다.
 +
Linux 및 Berkeley Software Distribution 은 POSIX API를 구현하는 운영 체제의 예입니다. [10]
 +
Microsoft 는 특히 Windows API (Win32) 라이브러리 내에서 이전 버전과 호환되는 API에 대한 강력한 의지를 보였으 므로 이전 응용 프로그램은 "호환성 모드"라는 실행 파일 별 설정을 사용하여 최신 버전의 Windows에서 실행될 수 있습니다. [11]
 +
API는 소스 코드 기반이고 ABI는 이진 기반 이라는 점에서 API는 ABI ( Application Binary Interface) 와 다릅니다 . 예를 들어 POSIX 는 API를 제공하고 Linux Standard Base 는 ABI를 제공합니다. [12] [13]
 +
===원격 API===
 +
원격 API를 통해 개발자 는 언어 또는 플랫폼에 관계없이 서로 다른 기술이 함께 작동 할 수 있도록 특정 통신 표준 인 프로토콜을 통해 원격 리소스를 조작 할 수 있습니다. 예를 들어, Java Database Connectivity API를 사용하면 개발자 는 동일한 기능 세트로 여러 유형의 데이터베이스 를 조회 할 수 있으며 Java 원격 메소드 호출 API는 Java 원격 메소드 프로토콜 을 사용하여 원격 으로 작동하지만 로컬로 표시되는 함수의 호출 을 허용 합니다. 개발자. [14] [15]
 +
 
 +
따라서 원격 API는 객체 지향 프로그래밍 에서 객체 추상화를 유지하는 데 유용합니다 . 프록시 객체에서 로컬로 실행되는 메소드 호출은 원격 프로토콜을 사용하여 원격 객체에서 해당 메소드를 호출하고 결과를 로컬로 반환 값으로 사용합니다.
 +
 
 +
프록시 개체를 수정하면 원격 개체도 해당 수정됩니다. [16]
 +
 
 +
===웹 API===
 +
주요 기사 : 웹 API
 +
웹 API는 기능 제공자를 지정하고 API 사용자의 서비스 경로 또는 URL을 공개하기위한 SLA (Service Level Agreement) 인 자산을 사용하는 엔터프라이즈와 애플리케이션간에 상호 작용이 발생하도록 정의 된 인터페이스입니다. API 접근 방식은 여러 유형의 소비자에게 서비스를 제공하는 다른 응용 프로그램에 일련의 서비스에 대한 프로그램 인터페이스를 제공하는 것을 중심으로하는 아키텍처 접근 방식입니다. [17]
 +
 
 +
웹 개발 의 맥락에서 사용될 때 API는 일반적으로 HTTP ( Hypertext Transfer Protocol ) 요청 메시지 와 같은 일련의 사양으로 정의되며 , 일반적으로 XML (Extensible Markup Language)로 응답 메시지 구조의 정의와 함께 정의됩니다. ) 또는 JavaScript 객체 표기법 ( JSON ) 형식입니다. 예를 들어, 전자 상거래 중심의 웹 사이트에 추가하여 운송 서비스 주문을 용이하게하고 사이트 개발자가 운송 업체의 요금표를 웹 데이터베이스에 입력하지 않고도 현재 운송비를 자동으로 포함 할 수있는 운송 회사 API를 예로들 수 있습니다. "웹 API"는 역사적으로 사실상 웹 서비스 와 동의어 였지만 최근 트렌드 ( 웹 2.0))는 SOAP (Simple Object Access Protocol ) 기반 웹 서비스 및 SOA ( Service-Oriented Architecture )에서 REST ( Representational Stateal State Transfer ) 스타일 웹 자원 및 ROA ( Resource-Oriented Architecture )로 이동하고 있습니다. [18] 이 추세의 일부는 웹 기반 온톨로지 엔지니어링 기술 을 장려하는 개념 인 RDF ( Resource Description Framework)를 향한 시맨틱 웹 이동 과 관련이있다 . 웹 API를 사용하면 여러 API를 매시업 이라고하는 새로운 응용 프로그램으로 결합 할 수 있습니다. [19] 소셜 미디어 공간에서 웹 API는 웹 커뮤니티가 커뮤니티와 애플리케이션간에 컨텐츠 및 데이터 공유를 용이하게합니다. 이러한 방식으로 한 곳에서 동적으로 생성 된 콘텐츠를 웹의 여러 위치에 게시하고 업데이트 할 수 있습니다. [20] 예를 들어, 트위터의 REST API는 개발자가 핵심 트위터 데이터에 액세스 할 수 있습니다와 개발자가 트위터 검색 및 동향 데이터와 상호 작용하는 검색 API는 방법을 제공합니다.
  
 
==전망==
 
==전망==

2019년 8월 20일 (화) 09:48 판

API(에이피아이)란 Application Programming Interface의 약자로서, 하나의 응용 프로그램이 다른 응용 프로그램에 요청을 보내고 응답을 받을 수 있도록 운영체제프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스(I/F)를 말한다. 응용 프로그램 인터페이스라고 한다.

개요

응용 프로그램을 빌드 할 때 API는 기본 구현을 추상화하고 개발자에게 필요한 개체 나 작업 만 노출하여 프로그래밍을 단순화한다. 전자 메일 클라이언트의 그래픽 인터페이스는 사용자에게 새 전자 메일을 가져오고 강조 표시하는 모든 단계를 수행하는 버튼을 제공할 수 있지만 파일 입력 / 출력용 API는 개발자에게 파일을 한 위치에서 다른 위치로 복사하지 않고 파일을 복사하는 기능을 제공할 수 있다. 개발자가 이면에서 발생하는 파일 시스템 작업을 이해하도록 요구한다.

등장배경

  • 프로그램을 하면 더 복잡한 함수를 코딩해야하는 문제에 맞닥뜨릴수 있다.
  • 프로그래밍 함수를 사용하면 복잡한 코딩을 줄일 수 있으나. 반복해서 사용할경우에 불편한 경우가 있다.
  • 똑같은 함수를 다시 만들 필요 없이 원하는 기능의 라이브러리 함수를 사용함으로써 보다 편하고 효율적인 프로그래밍이가능하다.
  • 이러한 필수적인 라이브러리에 접근하기 위해서 API가 필요하다.

특징(장,단점)

  • 운영체계가 제공하는 다양한 기능을 사용하게 해준다.
  • 라이브러리에서 필요한 함수를 골라서 사용하게 해준다.
  • OS를 제공하고 있는 메이커가 표준화한 API를 소프트하우스 등에 공개하면 주변 기기와의 인터페이스에 특히 주의하지 않아도 프로그램을 개발할 수 있고 애플리케이션 프로그램의 개발이 용이해진다.
  • 처음 접해봤을 땐 어렵다.

종류

  • 오픈 API(open API) : 누구나 사용할 수 있도록 공개된 API를 말한다. 구글이나 네이버의 지도 서비스 등이 있다.
  • 윈도우API(win API) : 마이크로소프트 윈도 운영체제들이 사용하는 API다. C/C++ 프로그램에서 직접 운영 체제와 상호 작용할 수 있도록 만들어졌으며, 그보다 더 낮은 수준의 제어는 Ntdll.dll을 사용한 낮은 수준의 DLL로 가능하다.
  • 자바API(java API) : 자바를 사용하여 쉽게 구현가능한 클래스계층구조로 된 라이브러리의 집합이다.
  • 프라이빗 API(private API) : 같은 기관 내부에서 근무하는 사람 또는 제한적으로 허용된 외부인이 사용할 수 있는 API를 말한다.
  • 신디케이션 API(syndication API) : 콘텐츠를 보유하고 있는 웹사이트네이버검색엔진 사이에 동기화 규약을 정하는 API이다. 특정 웹사이트에서 신디케이션 API를 사용할 경우 문서의 생성, 수정, 삭제 현황을 검색엔진에 즉시 알려줄 수 있다. 이에 따라 검색엔진 로봇이 해당 웹사이트에 방문할 때까지 기다리지 않고 신속하게 콘텐츠 변경 현황을 검색 포털 사이트에 반영할 수 있다. 웹 개방성을 위한 핵심 기술의 하나이다.

연혁

API 라는 용어 는 1968 년에 출판된 원격 컴퓨터 그래픽을 위한 데이터 구조 및 기술인 Ira W. Cotton의 기사에서 처음 등장했다. 

활용

라이브러리 및 프레임 워크

API는 일반적으로 소프트웨어 라이브러리 와 관련이 있습니다 . 라이브러리는이 규칙 세트의 "실제 구현"인 반면 API는 "예상 된 동작"(사양)을 설명하고 규정합니다. 단일 API는 동일한 프로그래밍 인터페이스를 공유하는 서로 다른 라이브러리 형태로 여러 구현 (또는 추상이 아님)을 가질 수 있습니다. API를 구현에서 분리하면 한 언어로 작성된 프로그램이 다른 언어로 작성된 라이브러리를 사용할 수 있습니다. 예를 들어 Scala 및 Java 는 호환 가능한 bytecode로 컴파일 되므로 Scala 개발자는 모든 Java API를 활용할 수 있습니다. [2] API 사용은 관련된 프로그래밍 언어의 유형에 따라 달라질 수 있습니다. Lua 와 같은 절차 적 언어 용 API는 기본적으로 코드 실행, 데이터 조작 또는 오류 처리를위한 기본 루틴으로 구성 될 수 있지만 Java와 같은 객체 지향 언어 용 API 는 클래스 및 클래스 메소드 의 스펙을 제공 합니다 . [3] [4] 언어 바인딩 도 API입니다. 한 언어의 기능을 다른 언어로 구현 된 인터페이스에 매핑하면 언어 바인딩을 통해 한 언어로 작성된 라이브러리 나 서비스를 다른 언어로 개발할 때 사용할 수 있습니다. [5] Fortran -to- Python 인터페이스 생성기 인 SWIG 및 F2PY 와 같은 도구 는 이러한 인터페이스를 쉽게 만들 수 있습니다. [6] API는 또한 소프트웨어 프레임 워크 와 관련 될 수 있습니다. 프레임 워크는 여러 API를 구현하는 여러 라이브러리를 기반으로 할 수 있지만 일반적인 API 사용과 달리 프레임 워크에 내장 된 동작에 대한 액세스는 컨텐츠를 새로운 클래스로 확장하여 조정됩니다 프레임 워크 자체에 연결했습니다. 더욱이, 제어의 전체 프로그램 흐름은 제어의 역전 또는 유사한 메커니즘에 의해 호출자의 제어 및 프레임 워크의 손에서 벗어날 수있다 . [7] [8]

운영 체제

API는 응용 프로그램과 운영 체제 사이의 인터페이스를 지정할 수 있습니다 . [9] POSIX는 , 예를 들면,하기 POSIX 준수 운영체제 작성된 응용 프로그램 활성화하고자 공통 API 세트를 지정 컴파일 다른 POSIX 준수 운영체제한다. Linux 및 Berkeley Software Distribution 은 POSIX API를 구현하는 운영 체제의 예입니다. [10] Microsoft 는 특히 Windows API (Win32) 라이브러리 내에서 이전 버전과 호환되는 API에 대한 강력한 의지를 보였으 므로 이전 응용 프로그램은 "호환성 모드"라는 실행 파일 별 설정을 사용하여 최신 버전의 Windows에서 실행될 수 있습니다. [11] API는 소스 코드 기반이고 ABI는 이진 기반 이라는 점에서 API는 ABI ( Application Binary Interface) 와 다릅니다 . 예를 들어 POSIX 는 API를 제공하고 Linux Standard Base 는 ABI를 제공합니다. [12] [13]

원격 API

원격 API를 통해 개발자 는 언어 또는 플랫폼에 관계없이 서로 다른 기술이 함께 작동 할 수 있도록 특정 통신 표준 인 프로토콜을 통해 원격 리소스를 조작 할 수 있습니다. 예를 들어, Java Database Connectivity API를 사용하면 개발자 는 동일한 기능 세트로 여러 유형의 데이터베이스 를 조회 할 수 있으며 Java 원격 메소드 호출 API는 Java 원격 메소드 프로토콜 을 사용하여 원격 으로 작동하지만 로컬로 표시되는 함수의 호출 을 허용 합니다. 개발자. [14] [15]

따라서 원격 API는 객체 지향 프로그래밍 에서 객체 추상화를 유지하는 데 유용합니다 . 프록시 객체에서 로컬로 실행되는 메소드 호출은 원격 프로토콜을 사용하여 원격 객체에서 해당 메소드를 호출하고 결과를 로컬로 반환 값으로 사용합니다.

프록시 개체를 수정하면 원격 개체도 해당 수정됩니다. [16]

웹 API

주요 기사 : 웹 API 웹 API는 기능 제공자를 지정하고 API 사용자의 서비스 경로 또는 URL을 공개하기위한 SLA (Service Level Agreement) 인 자산을 사용하는 엔터프라이즈와 애플리케이션간에 상호 작용이 발생하도록 정의 된 인터페이스입니다. API 접근 방식은 여러 유형의 소비자에게 서비스를 제공하는 다른 응용 프로그램에 일련의 서비스에 대한 프로그램 인터페이스를 제공하는 것을 중심으로하는 아키텍처 접근 방식입니다. [17]

웹 개발 의 맥락에서 사용될 때 API는 일반적으로 HTTP ( Hypertext Transfer Protocol ) 요청 메시지 와 같은 일련의 사양으로 정의되며 , 일반적으로 XML (Extensible Markup Language)로 응답 메시지 구조의 정의와 함께 정의됩니다. ) 또는 JavaScript 객체 표기법 ( JSON ) 형식입니다. 예를 들어, 전자 상거래 중심의 웹 사이트에 추가하여 운송 서비스 주문을 용이하게하고 사이트 개발자가 운송 업체의 요금표를 웹 데이터베이스에 입력하지 않고도 현재 운송비를 자동으로 포함 할 수있는 운송 회사 API를 예로들 수 있습니다. "웹 API"는 역사적으로 사실상 웹 서비스 와 동의어 였지만 최근 트렌드 ( 웹 2.0))는 SOAP (Simple Object Access Protocol ) 기반 웹 서비스 및 SOA ( Service-Oriented Architecture )에서 REST ( Representational Stateal State Transfer ) 스타일 웹 자원 및 ROA ( Resource-Oriented Architecture )로 이동하고 있습니다. [18] 이 추세의 일부는 웹 기반 온톨로지 엔지니어링 기술 을 장려하는 개념 인 RDF ( Resource Description Framework)를 향한 시맨틱 웹 이동 과 관련이있다 . 웹 API를 사용하면 여러 API를 매시업 이라고하는 새로운 응용 프로그램으로 결합 할 수 있습니다. [19] 소셜 미디어 공간에서 웹 API는 웹 커뮤니티가 커뮤니티와 애플리케이션간에 컨텐츠 및 데이터 공유를 용이하게합니다. 이러한 방식으로 한 곳에서 동적으로 생성 된 콘텐츠를 웹의 여러 위치에 게시하고 업데이트 할 수 있습니다. [20] 예를 들어, 트위터의 REST API는 개발자가 핵심 트위터 데이터에 액세스 할 수 있습니다와 개발자가 트위터 검색 및 동향 데이터와 상호 작용하는 검색 API는 방법을 제공합니다.

전망

  • 통신·방송·인터넷이 하나의 통합된 전달망을 기반으로 이들간 상호 융합된 서비스들을 제공할 수 있는 광대역 통합망으로 발전할 것이다. [1]
  • 금융감독원 기업공시국은 DART의 오픈API 정보제공 범위를 현재 기업개황 및 공시 목록에서 세부 공시 내용까지 확대해 21종을 추가 제공해서 공시 이용자가 DART 홈페이지에 방문하지 않아도 원하는 공시서류 원본파일을 다운로드할 수 있고, 사업보고서 및 분·반기보고서 상에서 공시 이용자들이 관심을 가질 정보를 활용할 수 있게 될 전망이다. [2]

각주

  1. 고안해 내는 재능,〈Open API (Application Program Interface)〉, 《ZUM》,2007-09-05
  2. 한수연 기자, 〈공시 보기 편해진다…DART, 오픈API 제공 확대〉, 《아이뉴스 24》,2009-06-11

참고자료

같이 보기


  의견.png 이 API 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.