헬린코린이

API vs Library vs Framework 본문

Programming/알고리즘 & 자료구조

API vs Library vs Framework

HCD 2022. 12. 27. 22:09

API(Application Programming Interface) 

- 응용 프로그램에서 운영 체제나 프로그래밍 언어가 

  제공하는 기능을 제어할 수 있게 만든 인터페이스입니다.

- API는 소프트웨어를 조종하는 리모컨이다.

 

특징 

- 구현과 독립적으로 사양만 정의되어 있습니다.

- API에 따라 접근 권한이 필요할 수 있습니다.

- 다른 프로그램과 연결해주는 다리 역할을 합니다.

- 구현이 아닌 제어를 담당합니다.

- API를 조합해 원하는 프로그램을 만들 수도 있습니다.

 

- Java API, 여러 기업들의 오픈 API

 

Library

- 응용 프로그램 개발을 위해 필요한 기능(함수)을 모아 놓은 소프트웨어

- 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임 -> 기능 모임

- 시스템에 기본적으로 설치되어 있는 기본 라이브러리와 

   제조사나 외부 메이커에 의해서 만들어지는 확장 라이브러리로 나뉜다.

 

특징

- 독립성을 가진다.

- 개발하는데 필요한 것들을 모아둔 일종의 저장소

- 필요할 때 호출해서 사용합니다.

- 흐름을 제어합니다.

- 응용 프로그램이 능동적으로 라이브러리를 사용합니다.

- ex) Apache Commons, Guava, Lombak, jQuery

 

FrameWork

- 응용 프로그램이나 소프트웨어의 설루션 개발을 수월하게 하기 위해

   제공된 소프트웨어 환경

- 추상 클래스나 인터페이스를 정의하고 인스턴스 사이의 상호작용을 통해 시스템 전체

   혹은 일부를 구현해 놓은 재사용 가능한 설계

- 개발할 때에 빈번히 쓰이는 범용 기능을 한꺼번에 제공해 개발 효율의 향상을 목표하는 소프트웨어 환경

 

특징

- 상호협력하는 클래스와 인터페이스의 집합입니다.

- 공통적인 개발환경을 제공합니다. (개발 편의성)

- 개발할 수 있는 범위가 정해져 있습니다.

- 제어의 역전이 발생합니다.

- 응용 프로그램이 수동적으로 프레임워크에 의해 사용됩니다.

- ex) Spring Framework, Junit, Ruby on Rails

 

Library와 API의 차이점은 구현 로직의 유무이다.

Library와 Framework의 차이점은

응용 프로그램의 흐름 주도권을 누가 가지고 있느냐 이다.

Comments