WEB/web 지식
Framework vs Library
일상코더
2023. 2. 10. 10:44
프레임워크(Framework)란?
- 프레임워크는 뻐대나 기반구조를 뜻하고, 제어의 역전 개념이 적용된 대표적인 기술이다.
- 소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합
- 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업
- 가져다가 사용한다기 보다는 거기에 들어가서 사용한다는 느낌/관점으로 접근
- 객체 지향 개발을 하게 되면서 통합성, 일관성의 부족이 발생되는 문제를 해결할 방법중 하나
프레임워크의 특징
- 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어 있다.
- 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의한다.
- 컴포넌트들은 재사용이 가능하다.
- 높은 수준에서 패턴들을 조작화 할 수 있다.
라이브러리(Library)란?
- 라이브러리는 단순 활용가능한 도구들의 집합
- 개발자가 만들 클래스에서 호출하여 사용, 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식
프레임워크와 라이브러리의 차이점
- 라이브러리와 프레임워크의 차이는 제어 흐름에 대한 주도성이 누구에게/어디에 있는가에 있다.
- 즉, 어플리케이션의 Flow(흐름)를 누가 쥐고 있느냐에 달려있다.
- 프레임워크는 전체적인 흐름을 스스로가 쥐고 있으며 사용자는 그안에서 필요한 코드를 짜 넣는다.
- 라이브러리는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는것이다.
=> 다시 말하면, 라이브러리는 라이브러리를 가져다가 사용하고 호출하는 측에 전적으로 주도성이 있고 프레임워크는 그 틀안에 이미 제어 흐름에 대한 주도성이 내재(내포)하고 있다.
=> 프레임워크에는 분명한 제어의 역전 개념이 적용되어 있어야 한다.