Framework vs Library

GilLog·2020년 12월 2일
0

개념

목록 보기
8/19

지금까지 FrameworkLibrary를 사용하면서 둘의 개념에 대해 모호하게 알고 있었다.
사실 잘 몰랐다.

오늘 FrameworkLibrary에 대해 알아보려고 한다.

FrameworkLibrary에 대한 간단한 그림 설명은 아래와 같다.

출처 : 프레임워크와 라이브러리의 차이점[망나니개발자]

Framework

Framework의 정의는 소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합이다.

Framework는 뼈대나 기반구조를 뜻하는데, Application 개발 시 필요한 필수적인 코드, 알고리즘, 데이터베이스 연동 등과 같은 기능들을 위해 뼈대(구조)를 제공해주는 것이다.

그래서 Framework가 제공하는 구조 위에 프로그래머가 코드를 작성하여 Application을 완성시켜야 한다.

Framework는 제어의 역전 개념이 적용된 대표적인 기술이다.

제어의 역전(Inversion Of Control)

제어의 역전(IOC)이란 흐름을 강제하는 프레임워크에 제어의 권한을 넘김으로써 클라이언트 코드가 신경써야 할 것을 줄이는 전략이다.

Framework는 실행의 흐름을 Framework 자체가 가지고 있어서 개발자의 코드를 Framework안에 넣어서 개발해야 한다.

Framework를 사용하면 프로그래머가 가지고 있어야하는 제어의 권한을 Framework에게 주었기 때문에 이를 제어의 역전이라고 말한다.

Framework 특징

특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어 있다.

추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의한다.

컴포넌트들은 재사용이 가능하다.

높은 수준에서 패턴들을 조작화 할 수 있다.

이미 완성 된 것이 아닌 개발자가 직접 완성시켜야 한다.

객체 지향 개발에서, 통합성, 일관성의 부족이 발생되는 문제를 해결하는 방법중 하나이다.


Library

Library의 정의는 단순 활용이 가능한 도구들의 집합이다.

Library는 특정 기능에 대한 도구나 함수들을 모은 집합이다.

즉, 프로그래머가 개발하는데 필요한 함수들을 모아, 개발자가 만든 클래스에서 호출하여 사용, 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식이다.


Framework vs Library

FrameworkLibrary의 차이는 Flow(흐름)에 대한 제어 권한이 어디에 있느냐의 차이다.
Application의 Flow(흐름)를 누가 쥐고 있느냐

Framework는 전체적인 흐름을 자체적으로 제어 하며, 프로그래머가 흐름을 위해 필요한 코드를 작성하는 반면,
Library는 사용자가 흐름에 대해 제어를 하며 필요한 상황에 가져다 쓰는 것이다.

이것이 바로 Framework에서 제어의 역전(Inversion Of Control) 개념이다.
IoC 단순 설명


Library를 사용하는 Application 코드는 Application 흐름을 직접 제어한다.

그저 동작 중에 필요한 기능이 있을 때 능동적으로 Library를 사용할 뿐이다.

반면 Framework Application 코드Framework가 짜놓은 틀에서 수동적으로 사용되는 것이다.

Framework 위에 개발한 클래스를 등록해두고, Framework가 흐름을 주도하는 중에 개발자가 만든 Application 코드를 사용하도록 만드는 방식이다.


🙆‍♂️ 참고사이트 🙇‍♂️

프레임워크와 라이브러리의 차이점[망나니개발자]

프레임워크와 라이브러리의 차이점[WebClub KimJaeHee]

Framework, Library 차이[Dongkyuuuu]

profile
🚀 기록보단 길록을 20.10 ~ 22.02 ⭐ Move To : https://gil-log.github.io/

0개의 댓글