소프트웨어 어플리케이션이나 솔루션의 개발을 수월하게 하기 위해 소프트웨어의 구체적 기능들에 해당하는 부분의 설계와 구현을 재사용 가능하도록 협업화된 형태로 제공하는 소프트웨어 환경을 말합니다.
간단하게 말하자면,
개발자에게 가이드를 제공함으로써 프로그램을 체계적으로 관리할 수 있는 뼈대를 제공한다고 할 수 있습니다.
Spring
AngularJS
Django
등이 해당됩니다.
재사용성
이 높으며,확장성
측면에서 용이framework
를 사용하기 위한 별도의 학습 필요주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 집합입니다. 예를 들어 미리 작성된 코드, 함수가 포함될 수 있습니다.
간단하게 말하자면,
개발하는데 필요한 것들을 모아둔 공구함 또는 폴더에 비유할 수 있습니다.
따라서 개발자들이 필요할 때마다 호출하여 사용할 수 있는 방식을 취하고 있습니다.
ReactJS
styled-components
등이 해당됩니다.
공통점 : application
을 개발하는데 있어 쉽고 빠른 생산성을 위해 사용한다는 점입니다.
차이점 : 흐름에 대한 제어 권한 즉 주도권이 누구에게 있느냐의 차이라고 할 수 있습니다.
Framework
: 스스로 흐름을 가지고 있어 사용자로 하여금 코드를 연결할 공간을 강제합니다.Library
: 사용자에게 흐름을 직접 제어하게 합니다.멘토, 멘티에 비유해보면,
Framework(멘토)는 사용자(멘티)에게 무엇을 할지 가이드를 제공해주는 역할을 하며,
반대로 사용자(멘토)는 Library(멘티)가 무엇을 해야 하는지 알려주는 역할을 합니다.