본문으로 바로가기

API / Library/FrameWork/SDK/Component

category 기타 2020. 3. 24. 23:17

API(Application Programming Interface)


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

 

“ 운영체제나 프로그래밍 언어가 제공하는 기능 ”을 SK의 날씨정보, Daum의 지도정보, 카카오페이로 두고 “응용 프로그램”을 우리가 만든 서비스라고 생각하면 이해가 편합니다.

[출처]https://medium.com/@dydrlaks/api-%EB%9E%80-c0fd6222d34c:

 

  • 응용프로그램 프로그래밍 인터페이스
  • 프로그래밍 언어에서 라이브러리를 사용할 수 있도록 소스 코드 수준에서 인터페이스를 노출시킨 것이 바로 Application Programming Interface(API)이다
  • 프로그래밍에서, 프로그램을 작성하기 위한 일련의 부 프로그램, 프로토콜 등을 정의하여 상호 작용을 하기 위한 인터페이스 사양을 말한다
  • API 자체는 어디까지나 사양(Specification)만을 정의하기 때문에 구현(Implementation)과는 독립적이다.
  • 한마디로, API는 소스 코드 수준에서 정의되는 인터페이스다.

 

예를 들어 명령어 창에 "Hello, World!" 라는 문자열을 출력하는 프로그램을 C언어로 작성한다고 하자. 당연히 텍스트로 출력하는 printf API를 사용하여 printf("Hello, World!\n"); 라고 작성하게 될 것이며, 이는 윈도우, 리눅스, 유닉스, OS X 모두에서 동일하게 동작하도록 C언어 API가 보장해준다. 프로그래머는 보다 저수준에서 어떠한 일이 일어나는지 알지 못해도, 이미 정의된 printf를 사용하기만 하면 편리하게 텍스트를 출력할 수 있다. 즉 잘 설계된 인터페이스를 사용하면 환경(플랫폼)이 달라져도 동일한 코드가 동일한 결과를 수행하며, 보다 편리하게 프로그래밍을 할 수 있다.

[출처]나무위키 : https://namu.wiki/w/API

 

 

Library


  • 공통으로 사용될 수 있는 특정한 기능(들)을 모듈화한 것이다
    (특정 기능에 대한 도구 또는 함수들을 모은 집합)
  • 대상 환경(플랫폼)에서 바로 실행될 수 있는 형태로 제공되며, 실제 실행되어 기능을 수행하는 단편화된 프로그램이라는 점이 API와 다르다. 
  • 따라서 라이브러리는 동작하는 완전한 프로그램이 아닌, 특정한 부분 기능만을 수행하도록 제작된, 컴파일되어 기계어의 형태로 (또는 대상 플랫폼에 따라서는 바이트코드로) 존재하는 프로그램이다.

[출처]나무위키 : https://namu.wiki/w/%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC

 

 

FrameWork


  • 프레임워크는 명확하게 정의된 라이브러리가 존재한다는 점에서 API와 비슷하다. 하지만 일반적인 API는 전체 제어 구조를 호출하는 쪽에서 원하는대로 진행할 수 있지만, 프레임워크에서는 그럴 수 없는 경우가 많다는 점이 다르다.
  • 라이브러리와 프레임워크를 헷갈리는 경우도 있는데, 보통 프레임워크라고 하면 클래스 라이브러리가 합쳐진 형태라고 볼 수 있다.

    메소드  클래스화, 즉 모듈화를 하는 이유 중 하나가 재사용성인데, 프레임워크는 이 재사용성을 큰 그룹 단위로 묶어주었다고 보면 된다. 재사용 가능한 수많은 클래스들과 라이브러리들을 융합한 채로 처음부터 제공해 주기 때문에, 여러 개의 표준을 만들지 않아도 돼서 개발자의 피곤함을 덜어준다.
  • 예 : Spring: Java 웹 프레임워크
    Apache 시리즈 (Sling, Structs 2, Wicket 등)
    프론트엔드의
    SPA용 프레임워크 (AngularJS, Angular, Vue.js 등)
    안드로이드: 안드로이드 애플리케이션용 프레임워크

 

[출처]나무위키 : https://namu.wiki/w/%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC

 

Library 와 FrameWork의 차이점


https://mangkyu.tistory.com/4

 

 

SDK(Software Development Kit)


  • API가 실제 기능 구현체인 라이브러리와 함께 제공되는 경우도 있으며, 이 경우를 SDK(Software Development Kit)라고 한다. SDK는 일반적으로 API, 라이브러리와 함께 프로그램을 개발하는데 필요한 여러 보조 프로그램을 포함한다.

 

Component


컴포넌트는 특정 기능이나 관련된 기능들의 조합을 의미하며, 재사용이 가능한 최소 단위를 말한다

(Function, Method, Operation으로 불리는 그것이다)