API

위키百科, 우리 모두의 百科事典.

NASA 가 開發한 웹 API 文書 스크린샷

API ( application programming interface 애플리케이션 프로그래밍 인터페이스 [ * ] , 應用 프로그램 프로그래밍 인터페이스)는 컴퓨터 컴퓨터 프로그램 사이의 連結이다. 一種의 소프트웨어 인터페이스 이며 다른 種類의 소프트웨어 에 서비스를 提供한다. [1] 이러한 連結이나 인터페이스를 빌드하거나 使用하는 方法을 記述하는 文書나 標準은 API 規格 (辭讓)으로 부른다. 이 標準을 充足하는 컴퓨터 시스템은 API가 具現(implement)되었다거나 露出(expose)되었다고 말한다. API라는 用語는 斜陽이나 具現體를 의미할 수 있다.

컴퓨터와 人間을 連結시키는 使用者 인터페이스 와 反對로, API는 컴퓨터나 소프트웨어를 서로 連結한다. 直接 사람( 最終 使用者 )에 依해 使用되도록 考案된 것이 아니며, 代身 소프트웨어에 이를 統合하고자 하는 컴퓨터 프로그래머 가 使用하도록 考案되었다. API는 各其 다른 部分으로 構成되기도 하며 프로그래머가 使用할 수 있는 道具나 서비스의 役割을 한다. 이러한 部分들 中 하나를 使用하는 프로그램이나 프로그래머는 API의 該當 部分을 呼出(call)한다고 말한다. API를 構成하는 呼出들은 서브루틴 , 메소드(method), 要請, 通信 엔드포인트 라고도 부른다. API 規格은 이 呼出들을 定義하며, 다시 말해 이들을 어떻게 使用하거나 具現하는지를 說明한다.

API의 한 가지 目的은 시스템이 動作하는 方式에 關한 內部의 細細한 部分을 숨기는 것으로, 內部의 細細한 部分이 나중에 變更되더라도 프로그래머가 有用하게 使用할 수 있고 일정하게 管理할 수 있는 部分들만 露出시킨다. API는 特定 시스템用으로 커스텀하게 빌드될 수도 있고, 아니면 수많은 시스템 間 相互運用性 을 許容하는, 共有가 되는 標準日 수도 있다.

API라는 用語는 웹 API 를 의미하기도 하며, [2] 이는 인터넷 에 依해 倂合된 컴퓨터들 間 通信을 許容한다. 프로그래밍 言語 , 소프트웨어 라이브러리 , 컴퓨터 運營 體制 , 컴퓨터 하드웨어 를 위한 API도 存在한다. API는 1940年代에 祈願하였으나 이 用語는 1960年代, 70年代 들어서야 모습을 드러냈다.

利用 [ 編輯 ]

API는 應用 프로그램 李瑱 인터페이스 (ABI)와는 區別한다. API는 소스 코드 基盤인 反面 ABI는 李瑱 인터페이스이다. 이를테면 POSIX는 API인 反面, 리눅스 基本 規格 은 ABI를 提供한다. [3] [4]

節次的 言語에서의 API [ 編輯 ]

大部分의 節次的 言語에서 API는 특정한 作業을 遂行할 函數 들의 集合을 規定하며, 特定 소프트웨어 構成 要素와 相互 作用할 수 있게 한다.

유닉스 命令語 man 3 sqrt sqrt 函數의 시그너處 를 代表한다.

SYNOPSIS

            #include
 <math.h>

            double
 sqrt
(
double
 X
);

            float
  sqrtf
(
float
 X
);

DESCRIPTION

       sqrt
 computes
 the
 positive
 square
 root
 of
 the
 argument
.
 ...

RETURNS

       On
 success
,
 the
 square
 root
 is
 returned
.
 If
 X
 is
 real
 and
 positive
...

이와 비슷하게, 다른 言語들은 節次的 라이브러리를 갖고 있다. 이를테면 에는 內部 文書化 機能을 利用할 수 있는 同一한 數式 作業을 위한 專用 API들이 있으며, perldoc 유틸리티를 利用하여 接近할 수 있다.

$
 perldoc
 -
f
 sqrt

       sqrt
 EXPR

       sqrt
    #Return the square root of EXPR.  If EXPR is omitted, returns

               #square root of $_.  Only works on non-negative operands, unless

               #you've loaded the standard Math::Complex module.

API의 예 [ 編輯 ]

웹 API [ 編輯 ]

웹 API는 웹 애플리케이션 開發에서 다른 서비스에 要請을 보내고 應答을 받기 위해 定義된 明細를 일컫는다. 例를 들어 블로그 API를 利用하면 블로그 에 接續하지 않고도 다른 方法으로 글을 올릴 수 있다. 그 外에 郵遞局의 郵便番號 API, 구글과 네이버의 地圖 API等 有用한 API들이 많으므로, 요즘은 홈페이지 構築이나 追加改編 時 따로 追加로 開發하지 않고 이런 오픈 API를 가져와 使用하는 趨勢다.

文書化 [ 編輯 ]

API 文書는 API가 提供하는 서비스와 該當 서비스를 使用하는 方法을 說明하며, 實際 目的으로 클라이언트가 알아야 할 모든 것을 다루는 것을 目標로 한다.

API를 使用하는 애플리케이션을 開發하고 維持 管理하려면 文書化가 重要하다. API 文書는 傳統的으로 文書 파일에서 찾을 수 있지만 블로그, 포럼, Q&A 웹사이트 等 소셜 미디어에서도 찾을 수 있다.

旣存 文書 파일은 一貫된 模樣과 構造를 가진 Javadoc 또는 Pydoc과 같은 文書 시스템을 통해 標示되는 境遇가 많다. 그러나 文書에 包含된 콘텐츠 類型은 API마다 다르다.

明確性을 期하기 위해 API 文書에는 "一般的인 使用 시나리오, 코드 조각, 設計 根據, 性能 討論 및 契約"뿐만 아니라 API의 클래스 및 메서드에 對한 說明이 包含될 수 있다. 그러나 API 서비스 自體의 具現 細部 事項은 一般的으로 省略.

REST API에 對한 參照 文書는 OpenAPI 仕樣에 定義된 規定된 形式과 構文을 使用하는 機械 判讀 可能한 텍스트 파일인 OpenAPI 文書에서 自動으로 生成될 수 있다. OpenAPI 文書는 API 이름 및 說明과 같은 基本 情報는 勿論 API가 액세스할 수 있는 作業에 對한 說明도 定義한다.

API 文書는 자바의 語盧테이션과 같은 메타데이터 情報로 强化될 수 있다. 이 메타데이터는 컴파일러, 道具 및 런타임 環境에서 使用者 定義 動作 또는 使用者 定義 處理를 具現하는 데 使用될 수 있다.

같이 보기 [ 編輯 ]

各州 [ 編輯 ]

  1. Reddy, Martin (2011). 《API Design for C++》 . Elsevier Science. 1쪽. ISBN   9780123850041 .  
  2. Lane, Kin (2019年 10月 10日). “Intro to APIs: History of APIs” . 《Postman》 . 2020年 9月 18日에 確認함 . When you hear the acronym “API” or its expanded version “Application Programming Interface,” it is almost always in reference to our modern approach, in that we use HTTP to provide access to machine readable data in a JSON or XML format, often simply referred to as “web APIs.” APIs have been around almost as long as computing, but modern web APIs began taking shape in the early 2000s.  
  3. “LSB Introduction” . Linux Foundation. 2012年 6月 21日. 2015年 4月 2日에 原本 文書 에서 保存된 文書 . 2015年 3月 27日에 確認함 .  
  4. Stoughton, Nick (April 2005). “Update on Standards” (PDF) . USENIX . 2009年 6月 4日에 確認함 .