본문 바로가기

공부 정리

Framework vs Library vs API

반응형

<Library>

라이브러리는 다양한 함수를 제공하는 코드들을 의미한다. 반복적인 작업을 처리하기 위해서 자신만의 코드를 호출할 수 있다.

 

예를 들어, math 라이브러리는 삼각법이나 로그 함수같은 반복적인 수학적 기능을 제공한다. 프로그래밍 언어들(java, c , python)은 데이터 가공, 그래프 조작, 문자열 파싱 등의 작업을 위한 라이브러리들을 가지고 있다. 라이브러리가 있다면, 모든 복잡한 기능을 스스로 만들어야 하는 문제를 해결해 줄 수 있다.

 

<API>

Application Programming Interface의 축약어이다. Interface는 상호작용, 중개라는 사전적 해석처럼 서로 다른 응용프로그램에서 사용할 수 있도록 제어할 수 있도록 만들어진 것이다. 프로그래머가 쉽게 접근할 수 있으며 라이브러리의 "표면", "얼굴"을 의미한다. 외부로 공개 된 특정 객체, 메소드 등 사용할 수 있는 라이브러리의 표면적인 부분을 아우른다. 라이브러리에 무엇이 담겨 있는지 알려주는 논리적 표현이며 프로그래머가 데이터를 어떻게 공유하고 요청하며 제공받는지 규격도 포함한다. 라이브러리는 코드 그 자체를 의미하고 반면에 API는 인터페이스를 의미한다. 우리가 웹사이트에서 사용하는 API들이 많다. Google API, Facebook Messenger API 등이 있다.

 

<Framework>

특정한 소프트웨어가 구현될 수 있는 뼈대 설계를 제공하는 구조이다. 추상화의 장점은 반복적인 디자인 패턴을 쉽게 재활용을 할 수 있으면서 필요에 따라 디테일은 개발자가 개발 할 수 있다는 것이다. 공통의 디자인 패턴을 재사용한다는 의미는 비슷한 문제들을 해결하는데 일반적인 구조를 가진다는 것이다.

 

예를 들어, Java Swing Framkework는 Java GUI 프로그래밍을 위한 기능과 구조를 제공한다; 개발자가 필요한 GUI 프로그래밍 어디에서도 사용할 수 있다. 또다른 예는 Spring MVC이다. 하나의 웹 어플리케이션을 3개의 주요 부분으로 나눈 것이다.(Model-View-Controller) Java Swing에서 run()과 같은 메소드를 필요로 하는 함수와 클래스로써 사용될 수 있다. 대신 개발자는 framework가 가지는 디자인 패턴 규칙을 준수해야 한다. 다시 말해서 특정한 메소드와 특성들을 정의하고 구현해야 한다.

 

< 단점 >

- 원하는 모든 기능들이 있는 것이 아니다. 오히려 Framework 때문에 추가적인 처리를 해야 할 수도 있다.

 

- 때때로 필요하지 않은 기능들이 있기 때문에 과도한 크기를 가지고 있다.

 

- 중요한 프레임워크의 업데이트는 상황에 따라 많은 비용이 필요하다. 때로는 오래된 프레임워크 버전에 결합되어 있어서 업데이트를 하지 않는 편이 나을 수도 있다. 

 

 

 

그림을 보면 이해가 빠르다.

 

 

Framework : 어떻게 작동하는지 정의, 통제

your code : 원하는 행위 정의

library : 유용한 기능 정의

 

 

Library vs Framework

 

Library -> your code, your code -> Frame work

 

Library는 우리가 코딩을 할 때, 필요하면 호출해서 사용한다. 따라서 왼쪽 그림은 우리가 원하는 블록인 Library 1, Library2를 가져다가 끼는 형식이다. 하지만 Framework는 반대이다. 우리의 코드를 Framework가 원하는 모양으로 만들어서 끼워야 한다. 즉 누가 통제의 주인인가의 차이이다.

 

호출된 Library는 우리의 코드에 연결하고, 우리의 코드는 다시 Framework에 연결된다.

 

Library : Call us to get the job done. (복잡한 일을 쉽게 처리하고 싶다면 Library를 호출하세요!)

Framework: You don’t call us, we’ll call you. (Framework를 신경쓰지 마세요, 우리가 처리할거에요!)

 

 

*출처

 

medium.com/@shashvatshukla/framework-vs-library-vs-platform-vs-api-vs-sdk-vs-toolkits-vs-ide-50a9473999db

 

Framework vs Library vs Platform vs API vs SDK vs Toolkits vs IDE

Get this down.

medium.com

 

dev.to/sup/framework-vs-libraries-vs-api-3ede

 

Please ELI5: Frameworks vs Libraries vs API

Can anyone explain me, what are frameworks,libraries and api's. What are the difference between them...

dev.to

 

medium.com/better-programming/libraries-vs-frameworks-whats-the-difference-5f28c53dcffe

 

Libraries vs. Frameworks — What’s the Difference?

What category does React fall into?

medium.com

 

반응형

'공부 정리' 카테고리의 다른 글

Git vs GitHub 차이점  (0) 2021.03.22
MVC vs MVP vs MVVM  (0) 2020.11.02
static vs non-static  (0) 2020.09.21
URI vs URL vs URN  (0) 2020.09.06
TreeMap vs HashMap vs LinkedHashMap  (0) 2020.08.25