안드로이드 개발 질문/답변
(글 수 45,052)
뜬금없는 질문이지만,
갑자기 궁금하여 이렇게 질문을 올립니다.
라이브러리와 API의 차이점은 무엇일까요?
둘다 공통점은
프로그램에서 자주 사용되는 부분 모아 놓은 것. 언제든지 자유롭게 이용할 수 있도록 구성되어 있다.
라고 생각합니다.
각각의 의미를 찾아보니
API는 운영체제나 응용프로그램에서 제공하는 어플리케이션을 프로그래밍하기 위한 인터페이스
라이브러리는 컴파일러가 소스 파일을 컴파일할 때 참조되는 프로그램 모듈.
두 개의 차이점은 컴파일 할때 참조 되고 안되고의 차이인가요?
프로그래을 하다가보면 원래의 뜻을 모르고 할때가 많은거 같습니다.
요즘은 여유가 좀 있는편이라 이론을 알고갈려구 노력중인데..
허접한 질문이지만 답변 부탁드립니다^-^
갑자기 궁금하여 이렇게 질문을 올립니다.
라이브러리와 API의 차이점은 무엇일까요?
둘다 공통점은
프로그램에서 자주 사용되는 부분 모아 놓은 것. 언제든지 자유롭게 이용할 수 있도록 구성되어 있다.
라고 생각합니다.
각각의 의미를 찾아보니
API는 운영체제나 응용프로그램에서 제공하는 어플리케이션을 프로그래밍하기 위한 인터페이스
라이브러리는 컴파일러가 소스 파일을 컴파일할 때 참조되는 프로그램 모듈.
두 개의 차이점은 컴파일 할때 참조 되고 안되고의 차이인가요?
프로그래을 하다가보면 원래의 뜻을 모르고 할때가 많은거 같습니다.
요즘은 여유가 좀 있는편이라 이론을 알고갈려구 노력중인데..
허접한 질문이지만 답변 부탁드립니다^-^
2011.01.10 22:51:00
그냥 쓰기 나름인거같은데요.
함수들의 묶음을 주로 라이브러리라고 하고,
api는 어떠한 기능을 호출하는 방법 (interface)인거고, 즉 그 api를 통해 라이브러리의 기능(함수)를 이용하는거니깐.
단어는 다르지만...말장난인거고(의미가 다르긴 다르지만) 결국 같은 의미로 쓰게 되죠 ㅎㅎ
2011.01.10 23:18:41
제가 이해하고 있는 것은요.(정답인지는 모르겠네요 ^^)
라이브러리는 윗분이 말씀하신 것과 같이 자주 사용하거나 특정 목적을 위해 별도로 제공되는 바이너리 데이터입니다.
라이브러리에는 외부에 노출되는 인터페이스 역할을 하는 함수도 있고, 이런 인터페이스 역할을 하는 함수들에 의해 호출은 되지만(또는 안되더라도) 외부에는 노출되지 않는 함수들도 있지요.
외부에 노출되는 인터페이스 역할을 하는 함수들을 API라고 부르고 그 함수들의 실체(binary)와 호출되지 않는 함수의 실체까지 포함하는 바이너리 데이터를 라이브러리라고 합니다.
그럼 API는 라이브러리 안에 포함되느냐? 라고 질문하시면 전 아닌것 같다고 생각하는데요. API는 라이브러리의 노출된 함수들의 모습, 모양을 말하고 라이브러리 내부에서 제공하는 것은 ABI (Application Binary Interface)라고 봐야 하지 않나 싶습니다.(http://en.wikipedia.org/wiki/Application_binary_interface)
<meta http-equiv="content-type" content="text/html; charset=utf-8">라고 전 생각합니다 ^^;
틀리면 지적 부탁드려요.



