개발 일기

[Computer Science] 라이브러리와 프레임워크 차이 본문

Computer Science

[Computer Science] 라이브러리와 프레임워크 차이

개발 일기장 주인 2024. 9. 5. 02:07

라이브러리(Library)란?

애플리케이션 개발에 필요한 기능인 클래스, 함수 등을 모아놓은 코드의 모음이다.

개발자가 소프트웨어를 만들 때 필요에 따라 원하는 긴으을 구현하기 위해 코드의 모음을 가져다 쓸 수 있는 일종의 도구 역할

 

프레임워크(Framework)란?

소프트웨어 개발을 수월하게 하기 위한 소프트웨어 개발 환경이다. 

Frame + Work의 합성어로 작업을 위한 틀을 제공하는 것이다. 정해진 틀에서 개발해야한다는 단점이 있지만 그 틀을 잘 따른다면 효율을 올릴 수 있다는 장점이 있다.

 

Framework와 Library의 차이 - Inversion Of Control

Framework 와 Library 의 차이는 Flow(흐름)에 대한 제어 권한이 어디에 있느냐 차이이다.

프레임워크는 전체적인 흐름을 자체적으로 가지고 있으며, 프로그래머가 그 안에 필요한 코드를 작성하는 반면에 라이브러리는 사용자가 흐름에 대해 제어를 하며 필요한 상황에 가져다 쓴다. 이 내용을 한 문장으로 정리하자면 프레임워크에는 제어의 역전(Inversion Of Control)이 적용되어 있다는 것이다.

제어의 역전(Inversion Of Control)이란 어떠한 일을 하도록 만들어진 프레임워크에 제어의 권한을 넘김으로써 클라이언트 코드가 신경써야 할 것을 줄이는 전략이다. 일반적으로 우리는 프로젝트를 생성하고 Main함수를 만들어서 시작지점을 형성한다. 그리고 Main 함수에서 프로그램의 흐름을 정하는 것은 프로그래머의 몫으로 우리가 어떠한 순서를 부여하느냐에 따라서 흐름을 제어하는 것이 일반적인 사고이다.
하지만 여기서 프레임워크는 일반적인 사고와 반대되는 모습을 보여주는데 실행의 흐름을 프레임워크 자체가 가지고 있어서 우리의 코드를 프레임워크안에 넣어서 개발을 진행해야 한다.
즉, 프로그래머가 가지고 있어야하는 제어의 권한을 프레임워크에게 주었기 때문에 우리는 이를 제어의 역전이라고 말한다.

https://docfriends.github.io/DevStrory/2021-11-03/FrameworkAndLibrary/