Framework와 Library
프레임워크(Framework)
- 프레임워크는 뼈대나 기반구조를 뜻함
- 제어의 역전 개념(IoC)가 적용된 대표적인 기술
- 소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해 상호 협력하는 클래스와 인터페이스의 집합'으로, 완성된 어플리케이션이 아닌 프로그래머가 완성을 해야함
- 객제 지향 개발을 하며 통합성과 일관성의 부족 발생하는 문제를 해결하는 방법 중 하나
특징
- 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성
- 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법 정의
- 컴포넌트들은 재사용 가능
- 패턴들 조직화 가능
대표적인 프레임워크
- Spring/ django/ Node.js/ Angular 등
라이브러리(Library)
- 라이브러리는 특정 기능에 대한 도구 또는 함수들의 집합
- 프로그래머가 어떤 기능을 수행하기 위해 도움을 주거나 필요헌 것을 제공하는 역할
차이점
- 제어의 흐름을 소유하고 있는 주체의 차이
- 프레임워크는 전체적인 흐름을 자체적으로 가지고 있으며, 프로그래머는 그 안에서 필요한 코드를 작성
- 라이브러리는 프로그래머가 전체적인 흐름을 갖고 있어서 라이브러리를 기능 구현하고 싶을 때만 사용
- 즉, 프레임워크는 제어반전이 일어나며 IoC가 발생
참조
프레임워크와 라이브러리: https://juyeop.tistory.com/23