업데이트:

카테고리:

본 글은 API와 라이브러리에 대해 내가 이해한대로 정리한 곳이다. 아무리 생각해도 둘이 구분이 안가서.. 아인스트라세님의 블로그를 참고해서 내 방식대로 재해석해봤다.

API와 라이브러리의 정의


먼저 정의를 봐보자.

API(Application Programming Interface)

API(application programming interface, 응용 프로그램 프로그래밍 인터페이스)는 컴퓨터나 컴퓨터 프로그램 사이의 연결이다. 출처

라이브러리(Library)

라이브러리(영어: library)는 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다. 출처

이 정의들을 보고 한번에 이해를 한다면 진짜 전문가들이거나, 극소수의 천재들이 아닐까 싶다..

난 절대 이해 못했다. 나처럼 이해 못하는 사람들을 위해서 내가 이해한 방식으로 한번 설명해보겠다.

예시를 들어보자.

파이썬을 사용하는 사람들은 다들 한번쯤은 matplotlib, numpy등을 사용해본 경험이 있을 것이다. 우리는 이것들을 import를 해서 불러온다. 그리고 numpy.sum(입력1)나 matplotlib.pyplot.plot(입력2)과 같은 방식으로 사용하게 된다.

우리는 numpy,matplotlib 클래스와 그 아래의 메소드들을 라이브러리라고 알면 된다. 어떤 개발자들이 내부적으로 코드를 작성해서 그 코드를 개방하진 않지만, 많은 사람들이 편리하게 사용할 수 있게 함수나 클래스들을 제공하는 것이 라이브러리이다. 근데 여기서 우리는 numpy.sum(입력1)나 matplotlib.pyplot.plot(입력2)를 사용하기 위해서 입력1,입력2와 같은 것을 넣는다.

한번 상상해보자.

  • sum()함수는 내부적으로 어떻게 될진 모르지만, ndarray 인자들 끼리 더해서 return을 해줄 것이다.
  • plot()함수도 내부적으로 어떻게 될진 모르지만, 다른 함수를 불러오든 어떻게 하든 여차저차해서 그래프를 return 해줄 것이다.

이렇게 알고 한번 sum 페이지, plot 페이지를 들어가보자.

s
sum 페이지
p
plot 페이지

파이썬을 사용해봤다면, 위 사이트처럼 api reference를 들어가본 적이 있을 것이다. 제일 윗줄을 보면, 입력으로 무엇이 들어가는지 return으로 뭐가 나오는지 적혀있고, 예시가 있는 경우가 있고 없는 경우가 있다. 즉, api란 메소드나 클래스에 필요한 입력과 출력 등 여러 요소로 라이브러리들을 사용해 결과를 가져온다고 생각하면 될 것 같다.

간단히 정리하자면, 라이브러리를 활용하는 방법을 api라고 보면 되지 않을까 싶다. 위 페이지들도 API 레퍼런스라고 되어있는 이유가 라이브러리들을 이렇게 해서 사용하세요~ 라고 친절하게 알려주는 것이다.

import하는 것은 라이브러리를 주로 불러오는 것이고, api는 응용 프로그램을 만들기 위해 여러가지 라이브러리들 사용하게 해주는 것이 api인 것이다.

완벽한 정의라고 볼 순 없지만, 워낙 헷갈리는 개념이라 한번 내 방식대로 정리해봤다.

1 분 소요