라이브러리 | 프레임워크 | |
제어 흐름 | 개발자가 라이브러리의 함수를 필요에 따라 호출하여 사용 -> 개발자 주도 |
개발자는 프레임워크가 제공하는 확장점(hook)에 코드를 작성 -> 프레임워크 주도 |
재사용성 | 특정 기능을 수행하는 독립적인 모듈로, 필요에 따라 선택적으로 사용 | 애플리케이션의 전체적인 구조와 흐름을 제공하므로, 프레임워크에 맞춰 개발 |
결합도 | 라이브러리와 애플리케이션의 결합도 낮음 -> 재사용 용이 |
프레임워크와 애플리케이션의 결합도가 높음 -> 프레임워크에 종속 |
추상화 수준 | 특정 기능을 수행하는 저수준의 API를 제공 | 애플리케이션의 전반적인 구조와 흐름을 제공하는 높은 수준의 추상화를 제공 |
개발 생산성 | 개발자가 직접 구현해야 할 부분이 많음 -> 생산성 낮음 |
프레임워크가 제공하는 기능과 구조를 활용하여 빠른 개발 가능 -> 생산성 높음 |
러닝 커브 | 라이브러리의 API와 사용 방법을 익힘 -> 러닝 커브 낮음 |
프레임워크의 전반적인 아키텍처와 설계 원칙을 이해해야 함 -> 러닝 커브 높음 |
요약
라이브러리는 특정 기능을 수행하는 모듈이며 개발자가 필요에 따라 호출하여 사용하지만, 프레임워크는 애플리케이션의 전체적인 구조와 흐름을 제공하며 개발자는 프레임워크가 정의한 규칙에 따라 개발해야 함
'Cs' 카테고리의 다른 글
1. 운영체제(1) (0) | 2024.10.23 |
---|---|
GET과 POST의 차이 (0) | 2024.10.15 |
IP (0) | 2024.06.11 |
HTTP (0) | 2024.06.11 |
DOM (0) | 2024.03.10 |