Framework(프레임워크)
- 프레임워크는 응용 프로그램이나 소프트웨어의 솔루션 개발을 수월하게 위해 제공된 소프트웨어 환경을 말합니다.
- 프레임워크는 애플리케이션 개발 시 필수적인 코드, 알고리즘, 데이터베이스 연동 등과 같은 기능들을 위해 뼈대(구조)를 제공합니다. 때문에 객체 지향 개발을 하면서 일관성 부족 등의 문제를 해결해 줍니다.
Library(라이브러리)
- 라이브러리는 단순 활용이 가능한 도구들의 집합을 말합니다. 즉, 프로그래머가 개발하는데 필요한 것들을 모아둔 것입니다.
- 라이브러리는 독립성을 특징으로하여, 다른 라이브러리를 의존하지 않습니다.
- React는 사용자 인터페이스를 만들기 위한 JavaScript 라이브러리입니다.
프레임워크와 라이브러리의 차이점
둘의 차이점은 제어 흐름에 대한 주도성이 누구에게/어디에 있는가에 있습니다. 즉, 애플리케이션의 Flow(흐름)을 누가 쥐고 있느냐에 달려있습니다.
- 프레임워크는 전체적인 흐름을 스스로가 쥐고 있으며, 애플리케이션 코드는 프레임워크에 의해서 사용됩니다. 따라서 애플리케이션 코드는 프레임워크가 짜놓은 틀에서 수동적으로 동작합니다.
- 라이브러리를 사용하는 애플리케이션 코드는 애플리케이션 흐름을 직접 제어해야합니다. 단지 동작하는 중에 필요한 기능이 있을 때, 능동적으로 라이브러리를 사용할 뿐입니다.
요약
프레임워크: 개발 설계시 제공되는 인터페이스의 집합
라이브러리: 특정기능에 대한 함수를 모은 집합
차이점: 흐름의 주도성이 어디에 있는가
프레임워크는 그 틀안에 이미 제어 흐름에 대한 주도성을 내재하고 있고,
라이브러리는 라이브러리를 가져다가 사용하고 호출하는 측에 주도성이 있음
참고
프레임워크와 라이브러리의 차이점
[10분 테코톡] 🙆♀️티버의 API vs Library vs Framework