문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 API (문단 편집) == 설명 == API는 흔히 function, method 또는 operation 등으로 다양하게 불리는 '소프트웨어 컴포넌트'의 기능, 입력, 출력, 그리고 이에 사용되는 자료형으로 표현된다. API 자체는 어디까지나 '''사양(specification)'''만을 정의하기 때문에 구현(Implementation)과는 독립적이다. 앞서 언급했다시피 이를 실제로 구현한 것은 '라이브러리(library)'라고 부른다. 잘 설계된 API는 프로그램 개발을 보다 쉽게 해준다. API는 다양한 형태로 존재하며, 유닉스의 POSIX 표준, 윈도우의 [[MFC]]나 Win32, [[C++]]의 [[표준 템플릿 라이브러리]](STL), [[Java]] SE API 등이 이에 해당한다. 예를 들어 그래픽 카드나 디스크 드라이브 등의 하드웨어 또는 데이터베이스를 저레벨에서 직접 조작할 때, API는 작업을 편리하게 해준다. 컴퓨터 운영체제에서 일련의 과정들은 밑바닥에서부터 매우 저수준으로 작업이 수행되는데, API는 이러한 작업들에 대한 기능을 대상이 되는 언어에 맞게 추상화하고 프로그래머가 사용하기 편리하게 해준다. 따라서 프로그래머는 C언어나 어셈블리어 같이 저단계 프로그래밍 언어에서나 할법한 메모리 조작이나 하드웨어 조작 등을 직접할 필요 없이, API만을 가지고도 손쉽게 이를 고레벨 프로그래밍 언어에서도 제어할 수 있다. [[라이브러리]]와 종종 헷갈리곤 하는데 엄밀히 말하면 서로 다르다. API는 소프트웨어 개발에서 호환성을 위해 지켜야 하는 '''추상적인 원칙'''이다. 라이브러리는 이러한 API들을 기반으로 개발자에게 기능을 제공할 수 있도록 실제 구현된 '''구현체'''다. API는 여러 기업과 개발자들이 서로의 프로그램이 호환되도록 합의한 원칙이다. 라이브러리는 실제 이를 바탕으로 구현된 결과물이다. 대개의 경우 독립된 응용 프로그램(Application) 간의 상호작용은 '이미 구현된 코드'의 재사용이기 때문에 라이브러리는 다시 쓰기 위해 미리 짜놓은 코드 뭉치들을 의미하는 것이고, API를 기반으로 구현되었다고 볼 수 있다. [[프레임워크]]는 그것을 기반으로 명확하게 정의된 대량의 라이브러리가 있다는 점에서 API와 비슷하다. 하지만 일반적인 API는 전체 제어 구조를 호출하는 쪽에서 원하는대로 진행할 수 있지만, 프레임워크는 특정 목적을 벗어나면 기능하지 않는다. 프로그램에 플러그인 형태로 설계된 API가 적용되면, 이미 작성되어 컴파일되고 완성된 프로그램의 수정없이 프로그램의 기능을 추가하는 것이 가능하다. [[Internet Explorer]], [[파이어폭스(웹 브라우저)|파이어폭스]], [[크롬(웹 브라우저)|크롬]]과 같은 웹 브라우저 프로그램의 플러그인, 애드온과 같은 것이 바로 이러한 형식의 플러그인 API를 사용해 구현된 것이다. API가 실제 기능 구현체인 [[라이브러리]]와 함께 제공되는 경우도 있으며, 이 경우를 [[SDK]](Software Development Kit)라고 한다. SDK는 일반적으로 API, 라이브러리와 함께 프로그램을 개발하는데 필요한 여러 보조 프로그램을 포함한다. 한마디로, API는 소스 코드 수준에서 정의되는 인터페이스라고 할 수 있다. 이와는 달리 기계어 이진 바이너리 수준에서 정의되는 이러한 인터페이스는 [[ABI]](Application Binary Interface)라고 한다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기