728x90
Framework(프레임 워크)
- 프레임 워크는 뼈대나 기반 구조를 뜻하고, 제어의 역전 개념이 적용된 대표적인 기술이다.
- '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합'으로 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야한다.
- 객체 지향 개발을 하게 되면서 통합성, 일관성의 부족이 발생되는 문제를 해결할 방법 중 하나다.
🔍 프레임워크의 특징
- 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어 있다.
- 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의한다.
- 컴포넌트들은 재사용이 가능하다.
- 높은 수준에서 패턴을 조직화할 수 있다.
- 라이브러리와 달리 규칙이 정해져있다.
Library(라이브러리)
- 단순 활용 가능한 도구들의 집합.
- 개발자가 만든 클래스에서 호출하여 사용, 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방법이다.
프레임워크 vs 라이브러리
🔍 제어 흐름에 대한 주도성이 누구에/어디에 있는가에 달려있다.
- 프레임워크가 내가 작성한 코드를 제어하고, 대신 실행하면 그것은 프레임워크가 맞다. (JUnit)
- 반면에 내가 작성한 코드가 직접 제어의 흐름을 담당한다면 그것은 프레임워크가 아니라 라이브러리다.
- 간단히 프레임워크는 가져다가 사용한다는 것보다는 프레임워크라는 특정 공간에 들어가서 사용한다는 느낌이 더 강하다고 말할 수 있으며 라이브러리는 라이브러리 자체를 가져가 사용하고 호출하는 용도로 사용된다고 생각하시면 쉽게 이해하실 수 있을 것이다.
👀 참고 자료
https://webclub.tistory.com/458
김영한 스프링 강의 기본편
728x90
'[ Spring ] > Spring 핵심 원리' 카테고리의 다른 글
[Spring] @Configuration (0) | 2022.02.28 |
---|---|
[Spring] 싱글톤(Singleton) (0) | 2022.02.24 |
[Spring] 스프링 컨테이너와 스프링 빈 (0) | 2022.02.23 |
[Spring] IoC, DI (0) | 2022.02.23 |
[Spring] 좋은 객체 지향 설계의 5가지 원칙(SOLID) (0) | 2022.02.18 |