개발 공부를 하면서 많이 접하는 API, Library그리고 Framework. 공부를 하면서 활용하다보면 개념이 애매모호 할 때가 많은 것 같아 정리 해 두려고 한다.

다만, 해당 정보는 블로그와 위키백과를 토대로 작성한 개인의 생각을 정리한 내용으로 광범위한 프로그래밍 개념을 명확하게 진술해주는 내용은 아님을 밝힙니다.

참고는 위키백과와 정리가 잘되어 있는 블로그를 참고했다.

Libarary


소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다. 비휘발성 자원이란 전원이 차단되어도 데이터를 유지하는 컴퓨터 메모리를 말한다. 라이브러리에는 미리 작성된 코드, 서브루틴(함수) 크래스, 값, 자료형 등을 포함한다.

라이브러리 (컴퓨팅) - 위키백과, 우리 모두의 백과사전

누군가 잘 만들어 버그가 없고 활용도가 높은 함수들이 정의된 클래스를 생성했다고 가정하였을 때, 남들이 사용할 수 있도록 하되, 소스코드는 공개하고 싶지 않다면, 해당 클래스와 관련된 변수와 함수들을 선언한 헤더파일과, 함수 정의부분을 컴파일한 목적파일을 만들고 사용방법, 동작원리 등의 설명이 들어간 문서를 공유하면 된다.

즉, 작성된 헤더파일, 목적파일과 사용방법 등이 명시된 문서가 라이브러리가 되며, 특정 클래스의 인자, 리턴 값 등 클래스 사용을 위한 프로토타입 메소드가 해당 라이브러리의 API가 된다.

<aside> 💡 헤더파일 : 라이브러리 안에 제공하고자 하는 코드가 존재하고 헤더 파일에는 형시 선언되어 있다. 즉 사용하는 예시가 적혀있다라고 생각하면 편하다. 목적파일 : 소스코드(프로그래밍 언어)를 컴파일(컴퓨터가 이해할 수 있는 언어로 변환)하여 생성하는 파일이다.

</aside>

API (Application Programming Interface)


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

API - 위키백과, 우리 모두의 백과사전

의미를 쉽게 파악하기에 개념이 다소 어렵다.