원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 뼈대를 의미
라이브러리는 단순 활용가능한 도구들의 집합을 의미
-> 특정 기능을 모아둔 코드, 함수들의 집합
프레임워크와 라이브러리의 차이는
흐름(Flow)에 대한 제어 권한이 어디에 있느냐
의 차이
프레임워크는제어의 역전(Inversion Of Control)
이 적용되어있다.
전체적인 프로그램의 흐름을 자체적으로 가지고 있음
프로그래머가 그 안에 필요한 코드를 작성 -> 사용자로부터 하여금 코드를 연결할 공간을 강제함
=> 통제권은 사용자가 아닌 프레임워크에게 있다
사용자가 흐름에 대해 직접 제어 -> 언제, 어디서 호출할지를 사용자가 능동적으로 결정한다
=> 재료의 선택권이나 통제권은 사용자에게 있다
프레임워크에선 개발자가 아닌 프레임워크가 소프트웨어의 흐름을 제어한다
즉, 소프트웨어에 대한 제어권이 개발자에서 프레임워크로 역전 된 것이다