애플리케이션을 개발하는데 필요한 구조와 구성을 제공
프레임워크만으로 애플리케이션이 동작하지는 않음
애플리케이션 개발에 필요한 내용을 미리 구현하고 모아 놓은 것
필요할 때 호출하여 사용하며 언제든지 재사용이 가능
프레임워크
개발자가 아닌, 프레임워크 스스로의 흐름(규약)이 존재
해당 규약에 맞춰 코드를 작성해야 함
라이브러리
애플리케이션의 주도권(제어권)이 개발자에게 있음
필요한 부분, 혹은 필요한 순간에 직접 개발자가 해당 라이브러리를 사용할 수 있음
정해진 규약이 있어, 애플리케이션을 체계적으로 관리 가능
기본적인 설계와 필요한 라이브러리를 제공해 생산성 향상
코드의 재사용성이 높고, 확장성이 높음
해당 프레임워크에 대한 학습이 필요함 (러닝 커브)
자유롭고 유연한 개발이 불가능