프레임워크는 뼈대나 기반구조를 뜻하고, 제어의 역전 개념이 적용된 기술이다.
"소프트웨어에서 프레임워크는 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합" 이라고 할 수 있다.
라이브러리는 자주 사용되는 로직들의 모음 혹은 묶음이라고 할 수 있다. 자주 쓰는 메소드 및 함수들을 미리 구현해 놓고, 프로그램에 추가해서 사용하는 형태가 된다. 개발자는 미리 만들어 놓은 기능들을 사용하기 편하고 빠르게 개발을 진행할수 있게 된다
프레임워크와 라이브러리는 큰 차이는 점은 제어 흐름의 주도권이 어디에 있는가에 있다.
프레임워크는 전체적인 흐름을 제어하고 있으며 개발자는 그 안에서 필요한 코드를 넣는 반면에 라이브러리는 개발자가 전체적인 흐름을 만들며 라이브러리를 사용하는 것이라 할 수 있다.