1. 라이브러리와 프레임워크
1) 라이브러리(Library)
- 특정 기능에 대한 도구 또는 함수들의 집합
- 프로그램 기능 수행을 위해 활용 가능한 도구의 집합
- 개발자가 만든 클래스에서 호출하여 사용함
2) 프레임워크(Framework)
- 뼈대, 기반구조
- 소프트웨어의 특정 문제를 해결하기 위해 상호 협력하는 클래스와 인터페이스의 집합
- 완성된 제품 X
- 완성된 제품을 만들기 위해 개발자를 도와주거나 기반이 되는 역할
3) 라이브러리와 프레임워크의 차이점
- 제어의 주체(제어의 흐름을 쥐고 있는 것)는 누구인가?
① 라이브러리 : 개발자, 코드에서 라이브러리 함수를 호출함
② 프레임워크 : 프레임워크, 프레임워크에서 개발자의 코드를 호출함 (제어의 역전)
※ 제어의 역전(Inversion of Control, IoC)
- 프로그램의 제어 흐름 구조가 바뀌는 것
- 일반적인 프로그램 흐름 구조 : 사용하는 쪽(개발자)에서 메서드(라이브러리) 호출
- 역전된 프로그램 흐름 구조 : 기반이 되는 쪽(프레임워크)에서 사용하는 쪽의 메서드 호출
- 즉, 어떠한 일을 하도록 프레임워크에 제어의 권한을 넘김으로써 개발자가 신경써야 할 것을 줄이는 전략
- 프레임워크는 기본적인 골격을 잡아놓았기 때문에 개발자는 제어의 흐름에 맞게 코드를 작성해두면 프레임워크에서 적절히 호출함
- 프레임워크에 정의된 인터페이스, 추상타입을 개발자가 구현함으로써 객체를 프레임워크에 주입함(Dependency Injection, DI)
4) 프레임워크의 장점
- 애플리케이션 구조 및 코드의 상당 부분을 제공
- 개발자는 프레임워크가 짜놓은 틀에 맞춰 코드를 작성하면 됨
- 애플리케이션의 핵심 로직에만 집중할 수 있음
- 높은 생산성을 제공함
- 코드 품질을 보장함
'공부 > Spring' 카테고리의 다른 글
[Spring-02] Spring이란? (0) | 2021.05.17 |
---|