학습용 공간

카테고리 없음 2020.08.29 댓글 개 starmk95

API vs Library vs Framework - 이 세가지는 무엇이고, 뭐가 다를까?

# API (Application Programming Interface)

- 정의 : 응용프로그램에서 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

cf) 인터페이스 : 상호작용하는 공(경계) ex) 스마트폰에서는 터치스크린과 손가락, TV에서는 리모콘과 본체 버튼

 

- 특징 

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

(개발자가 원하는 기능을 만들기 위해서는 제공되는 사양을 통해 코드로 만들어주어야(구현) 한다

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

 

ex) JAVA API, 여러 기업들(구글, 네이버 등)의 API

 

# Library

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

 

- 특징

독립성을 가진다.

(라이브러리는 다른 라이브러리에 의존하지 않는다)

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

(능동적 : 응용 프로그램이 "필요할 때", 라이브러리를 불러와서 사용한다.)

 

ex) Apache Commands, Guava, Lombok, jQuery

 

# Framework

- 정의 : 응용 프로그램이나 소프트웨어의 솔루션 개발을 수월하게 하기 위해 제공된 소프트웨어 환경

 

- 특징 

상호협력하는 클래스와 인터페이스의 집합

응용 프로그램이 수동적으로 프레임워크에 의해 사용됨

(수동적 : 프레임워크에서의 작업 흐름 예시를 들면

[Framework]Client Requset 처리 -> [Framework]Request 처리할 controller mapping -> [개발자 코드 + Framework]개발자가 작성한 controller를 Framework가 호출해서 처리 )

 

ex) Spring Framework, Junit, Ruby on Rails

 

# API vs Library vs Framework

- Library와 API 차이

 : 구현 로직의 유무

 

- Library와 Framework의 차이

: 응용 프로그램의 흐름 주도권을 누가 가지고 있는지 (Library는 개발자, Framework는 Framework)

: 자동차를 만든다고 가정할 때,

자동차의 일부 부품은 Library에서 가져와서 구성

자동차 제작 전에 미리 주어지는 기본적인 자동차 뼈대는 Framework가 제공 (Framework = 뼈대 + 일하다)

 

 

출처 : 우아한Tech 영상 참고

https://www.youtube.com/watch?v=We8JKbNQeLo&t=26s