라이브러리 (Library):
- 라이브러리는 일련의 함수, 클래스, 모듈 또는 리소스의 집합입니다. 이러한 코드와 리소스는 특정 기능을 수행하거나 작업을 쉽게 할 수 있도록 도와줍니다.
- 라이브러리는 일반적으로 개발자가 직접 호출하거나 사용하는 코드에서 필요한 함수 또는 클래스를 선택적으로 사용할 수 있습니다.
- 라이브러리는 독립적으로 실행되지 않으며, 개발자가 필요한 기능을 불러와 사용하는 방식으로 통합됩니다.
- 예제: Python에서의 NumPy (수치 계산 라이브러리), jQuery (JavaScript DOM 조작 라이브러리) 등
프레임워크 (Framework):
- 프레임워크는 애플리케이션 또는 시스템을 개발하기 위한 구조와 규칙을 정의하는 데 중점을 두고 있습니다. 개발자는 프레임워크가 제공하는 구조 안에서 애플리케이션 코드를 작성해야 합니다.
- 프레임워크는 특정 도메인이나 작업을 위한 뼈대를 제공하며, 애플리케이션의 전체 구조를 정의합니다. 개발자는 프레임워크의 규칙을 따라야 합니다.
- 프레임워크는 주로 반제품 형태로 제공되며, 개발자는 이를 확장하거나 커스터마이징하여 자신의 애플리케이션을 개발합니다.
- 예제: Ruby on Rails (웹 애플리케이션 프레임워크), Spring Framework (Java 기반 엔터프라이즈 애플리케이션 프레임워크) 등
프레임워크는 내가 작성한 코드를 가져가 빌드하고, 라이브러리는 내가 코드 작성을 위해 가져와 사용하는 것이다.
제어 흐름의 차이다.
'오늘 뭐했냐 > 개발에 대한 주저리' 카테고리의 다른 글
23.10.06 REST API (0) | 2023.10.11 |
---|---|
23.10.05 콜백헬 (0) | 2023.10.11 |
23.10.03 도메인 주도 설계 (Domain-driven design, DDD) (0) | 2023.10.05 |
23.10.02 NestJS에서 모듈(Module) (0) | 2023.10.04 |
23.10.01 데코레이터( @, Decorator) (0) | 2023.10.03 |