키베이루's diary

라이브러리 vs API vs 프레임워크 본문

Computer Science/상식

라이브러리 vs API vs 프레임워크

키베이루 2022. 12. 16. 13:32

 

라이브러리(Library) = 모듈(Module)

어떠한 기능을 구현할 때 도움이 되는 기술, 함수의 모음집 = 일종의 도구

프로그래머가 어떠한 기능을 수행하기 위해 도움을 주는 것을 제공해주는 역할을 한다.

기존에 만들어진 함수들을 재활용하여 시간과 노력을 줄일 수 있다.

ex)

Python pip로 설치한 패키지/ 모듈

C++의 표준 템플릿 라이브러리(STL)

HTML의 클라이언트 사이드 조작을 단순화하는 JQuery

웹에서 사용자 인터페이스 개발에 사용되는 React.js

 

API (Application Programming Interface)

운영체제나 프로그래밍 언어가 제공하는 기능 을 제어할수 있게 만드는 인터페이스를 말하는데 ,응용프로그램 사이에서 데이터를 주고 받는 방법을 말한다. -> 필요한 부분을 요청하여 응답을 받는 서비스간의 다리역할

ex) KaKao Map API, java API

 

프레임워크(Framework)

개발을 수월하게 하기위해 소프트웨어의 특정기능에 해당하는 부분의 설계와 구현을 재사용 가능하도록 협업화된 형태를 제공하하는 소프트웨어 환경을 말한다. 보통 클래스와 라이브러리가 합쳐진 구조이다.

프레임워크에 의존하여 개발해야하고 프레임워크가 정의한 규칙을 준수해야한다. -> 프레임워크 뼈대 위에서 코드를 작성하여 프로그램을 개발해야한다.

ex)

Java 서버 개발에 사용되는Spring

Python 서버 개발에 사용되는 Django

웹 개발에 사용되는 Node.js

 

API vs 라이브러리 -> 구현 로직의 유무

라이브러리 : 컴포넌트 그 자체

API : 컴포넌트를 사용하기위한 규약, 호출을 위한 수단으로 구현로직이 없다.

 

라이브러리 vs 프레임워크 -> 응용프로그램의 흐름 주도권을 누가 가지고 있는가

라이브러리 : 자신이 코드를 컨트롤한다-> 자신의 공간에서 라이브러리를 호출해서 사용한다는 느낌

프레임워크 : 프레임 워크의 규칙을 따라 코딩한다. (프레임워크가 짜놓은 틀에서 수동적으로 동작) -> 프레임 워크라는 특정 공간에서 사용한다는 느낌 

 

제어의 역전 (IoC, Inversion of Control)

어떠한 일을 하도록 만들어진 Framwork에 Contorl 권한을 위임하는 것을 의미하는데, 간단히 말해 프로그램의 제어 흐름 구조가 뒤바뀐 것을 말한다.

라이브러리의 경우 애플리케이션의 흐름을 사용자가 직접 제어해야 하지만 프레임워크의 경우 코드를 연결할 수 있는 위치를 제공하고 필요에 따라 사용자가 연결한 코드를 호출하는 제어 흐름 권한을 가지고 있다.

'Computer Science > 상식' 카테고리의 다른 글

GC (Garbage Collection)  (0) 2022.12.21
부동 소수점 오류  (0) 2022.12.20
[C++] STL 이란?  (1) 2022.12.20
값 타입(Value type) vs 참조 타입(Reference type)  (0) 2022.12.19
Comments