YataNox
프레임워크 vs 라이브러리 본문
개발자가 개발에 용이할 수 있도록 공통으로 사용될 수 있는 특정한 기능을 모듈화한 것들을 의미한다.
개발자가 자주 사용하는 클래스나 메소드를 모듈화 시키고 특정 위치에 불러내어 사용하는 것이 두 형태로 발전 된 것.
라이브러리
라이브러리란 개발자가 만든 클래스들의 나열로, 다른 프로그램들에서 사용할 수 있도록 제공하는 방식.
프레임워크
프레임워크는 뼈대나 기반구조를 뜻하며, 소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합' 이라 할 수 있다.
완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야합니다.
객체 지향 개발을 하게 되면서 통합성, 일관성의 부족이 발생되는 문제를 해결할 방법중 하나라 할 수 있다.
프레임워크의 특징
- 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어 있습니다.
- 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의합니다.
- 컴포넌트들은 재사용이 가능합니다.
- 높은 수준에서 패턴들을 조작화 할 수 있습니다.
라이브러리와 프레임워크
라이브러리와 프레임워크의 차이는 제어 흐름에 대한 주도성이 누구에게/어디에 있는가라고 할 수 있다.
즉, 어플리케이션의 Flow(흐름)를 누가 쥐고 있느냐다.
프레임워크는 전체적인 흐름을 스스로가 쥐고 있으며 큰 틀을 사용자에게 제시한다. 사용자는 그 안에서 필요한 코드를 짜 넣는 방식으로 개발을 진행한다.
반면에 라이브러리는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는 것이라고 할 수 있습니다.
다시 말해, 라이브러리는 구조를 제시하고 사용 흐름을 만든다기 보다는 사용자에 의해 호출 당하고 특정 위치에 사용되는, 호출하는 측에 전적으로 주도성이 있는 것이라 할 수 있다.
요약
라이브러리 : 사용자가 만든 틀의 특정 위치에 호출당함.
프레임워크 : 구조적인 큰 틀을 제시하고 전체적인 실행흐름을 제어하며 필요한 위치에 사용자의 코드를 호출함.
'CS' 카테고리의 다른 글
라이브러리와 프레임워크의 차이 (0) | 2023.09.12 |
---|---|
객체지향의 5원칙 (SOLID) (0) | 2023.09.12 |
단일 장애 지점(Single Point Of Failure) (0) | 2023.09.12 |
Separation of concerns (관심사의 분리) (0) | 2023.09.12 |
객체지향 프로그래밍 패러다임과 함수형 프로그래밍 패러다임 (0) | 2023.09.12 |