반응형
라이브러리와 프레임워크의 차이는 제어 흐름에 대한 주도성이 누구에게/어디에 있는가이다.
라이브러리는 라이브러리를 가져다가 사용하고 호출하는 측에 전적으로 주도성이 있다.
반면, 프레임워크는 그 틀안에 이미 제어 흐름에 대한 주도성이 내재한다.
프레임워크는 가져다가 사용한다기보다는 거기에 들어가서 사용한다는 느낌/관점이다.
[인용] 거꾸로 배우는 소프트웨어 개발
즉, 어플리케이션의 Flow를 누가 쥐고 있느냐다.
프레임워크는 전체적인 흐름을 스스로가 쥐고 있으며 사용자는 그 안에서
필요한 코드를 짜 넣는다.
반면 라이브러리는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는 것이다.
[출처] 프레임워크와 라이브러리
프레임워크도 제어의 역전 개념이 적용된 대표적인 기술이다. 프레임워크는 라이브러리의 다른 이름이 아니다.
프레임워크는 단지 미리 만들어 둔 반제품이나, 확장해서 사용할 수 있도록 준비된 추상 라이브러리의 집합이 아니다.
프레임워크가 어떤 것인지 이해하려면 라이브러리와 프레임워크가 어떻게 다른지 알아야 한다.
라이브러리를 사용하는 애플리케이션 코드는 애플리케이션 흐름을 직접 제어한다.
단지 동작하는 중에 필요한 기능이 있을 때 능동적으로 라이브러리를 사용할 뿐이다.
반면에 프레임워크는 거꾸로 애플리케이션 코드가 프레임워크에 의해 사용된다.
보통 프레임워크 위에 개발한 클래스를 등록해두고, 프레임워크가 흐름을 주도하는 중에 개발자가 만든 애플리케이션 코드를 사용하도록 만드는 방식이다.
최근에는 툴킨, 엔진, 라이브러리 등도 유행을 따라서 무작정 프레임워크라고 부르기도 하는데 이는 잘못된 것이다.
프레임워크에는 분명한 제어의 역전 개념이 적용되어 있어야 한다.
애플리케이션 코드는 프레임워크가 짜놓은 틀에서 수동적으로 동작해야 한다.
[출처] 토비의 스프링3 p.95 (1장.오브젝트와 의존관계)
[출처] http://ohgyun.com/288
+)
w3school 에서는 jQuery를 가장 유명한 자바스크립트 프레임워크로 소개하고 있다.
심지어 자바스크립트 라이브러리와 프레임워크를 비슷한 대상으로 엮어서 설명하고 있다.
하지만 jQuery 공식 홈페이지에서도 알 수 있듯이 제이쿼리는 자바스크립트 라이브러리다.
반응형
'개발일지 > 2015' 카테고리의 다른 글
[jQuery] getScript() Method (0) | 2015.03.04 |
---|---|
[웹브라우저] 레이아웃 엔진 / 렌더링 엔진 (0) | 2015.02.26 |
[티스토리] Syntaxhighlighter 옵션 값 (0) | 2015.02.25 |
[CSS] Why do browsers match CSS selectors from right to left? (0) | 2015.02.23 |
[N-MET] CSS Sprites Generator (0) | 2015.02.23 |