프레임워크와 라이브러리 정리

MINIBAIK·2021년 9월 11일
5

Web Technology

목록 보기
15/18

프레임워크와 라이브러리는 개발 시 필수적으로 사용되는 것들이라 볼 수 있다. 우리는 이미 사용을 하고 있으며, 이미 수십개의 라이브러리를 사용을 해왔다. 하지만 막상 라이브러리가 무엇인지, 프레임워크가 무엇인지에 대한 질문이 들어오면 대충은 알고 있지만 완벽하게 정리가 안되어 두루뭉실하게 얘기할 수 있다. 프레임워크와 라이브러리에 대해서 간단하게 정리를 해보자.



프레임워크(Framework)란 ?


프레임워크(Framework) 는 말 그대로 work 하기 위한 frame 이다. 이 말을 풀면, 개발을 하기 위한 틀, 뼈대, 기반 구조라고 할 수 있다. 소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합' 이라 할 수 있으며, 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야한다고 한다.

개발자는 이 프레임워크가 제공해주는 방식대로, 우리는 이 틀 위에서 원하는 방식으로 원하는 프로그래밍을 하면 된다.



라이브러리(library)란 ?


라이브러리(Library) 는 프로그래머가 완성을 시켜야 하는 프레임워크와는 다르게 이미 완성되어 있다. 라이브러리는 단순 활용가능한 도구들의 집합을 말하고, 개발자가 만든 클래스에서 호출하여 사용, 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식을 취하고 있다. 도서관에서 책을 꺼내서 참고하듯이, 라이브러리 사용자는 라이브러리의 개발자가 어떠한 개발을 하기 위해 미리 만들어놓은 클래스 및 함수, 컴포넌트들을 다운 받아 사용하는 것이다.



결론


이 둘의 큰 차이점은 제어의 주도권이라고 한다. 프레임워크(Framework) 는 사용자가 프레임워크 안에 들어가 개발을 한다는 느낌으로, 전체적인 제어 흐름, flow는 프레임워크가 주도한다. 개발자가 구현한 것들은 프레임워크에 의해 호출되고 제어되며, 이를 '제어의 역전(Inversion of Control)'이라고 한다.
라이브러리(Library) 는 자신이 원하는 기능을 제공하는 라이브러리를 필요에 따라 가져다 쓰는 느낌으로 전체적인 흐름의 주도성은 사용자가 가지고 있다.



reference: https://webclub.tistory.com/458

profile
Organize theories during development.

0개의 댓글