Framework VS Library

dogit·2021년 7월 13일
0

CS knowledge

목록 보기
6/8
post-thumbnail

Framework

프레임워크는 뼈대나 기반구조를 뜻한다.
개발을 진행할 때 필수적인 코드, 알고리즘등과 같은 구조를 제공해주기 때문에 프레임워크를 사용하는 프로그래머는 이 뼈대 위에서 코드를 작성하여 프로그램을 개발하면 된다.

좀더 깊게 설명하자면 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합' 이라고 할 수 있며, 완성된 어플리케이션이 아니라 프로그래머가 완성시키는 작업을 해야하는 뼈대 라고 할 수 있다.

즉 프레임워크는 완성된 제품이 아니라 완성된 제품을 만들기 위해 개발자를 도와주는 역할을 한다고 볼 수 있다.

Library

라이브러리는 특정 기능에 대한 도구 또는 함수들의 집합이다.
프로그래머가 어떠한 기능을 수행하기 위해서 도움을 주는 또는 필요한 것을 제공해주는 역할을 한다.

프레임워크와 라이브러리의 차이점

라이브러리와 프레임워크의 차이는 '제어 흐름에 대한 주도성이 누구에게, 어디에 있느냐' 이다.
프레임워크는 전체적인 흐름을 스스로가 자체적으로 가지고 있으며 사용자(프로그래머)는 그 안에서 필요한 코드를 작성한다.
반면에 라이브러리는 사용자(프로그래머)가 전체적인 흐름을 가지고 있고 자신이 원하는 기능을 구현하고 싶을 때 라이브러리를 가져다 쓰는 것이라고 할 수 있다.

여기서 프레임워크가 자체적으로 흐름을 가지고 있는 것을 한문장으로 정리해서 '제어의 역전(Inversion Of Control)'이 적용되었다고 한다.

제어의 역전

제어의 역전이란 어떤한 일을 하도록 만들어진 프레임워크에 제어의 권한을 넘김으로써 클라이언트 코드가 신경써야 할 것을 줄이는 전략.
일반적으로 Main 함수에서 프로그램의 흐름을 정하는 것은 프로그래머의 몫으로 우리가 어떠한 순서를 부여하느냐에 따라 흐름을 제어하는것이 일반적인 사고이나, 프레임워크는 일반적인 사고와 달리 실행의 흐름을 프레임 워크 자체가 가지고 있어서 프로그래머의 코드를 프레임워크 안에 넣어서 진행한다.
일반적으로 프로그래머가 가지고 있어야 하는 제어의 권한을 프레임워크에게 주었기 때문에 우리는 이를 제어의 역전이라 부른다.

클라이언트 코드

클라인언트 = 호출, 서버 = 응답 이것을 클래스와 코드 단위로 가져왔다고 생각하고 여기서 호출되는 코드를 서버코드라고 한다면,
이 코드를 호출하는 모든 코드(객체, 클래스)가 클라이언트 코드이다.

참조 : https://webclub.tistory.com/458, https://juyeop.tistory.com/23, https://mangkyu.tistory.com/4

profile
느리더라도 꾸준하게

0개의 댓글