프레임워크와 라이브러리의 정의
위키백과에 따르면 프레임워크와 라이브러리를 다음과 같이 정의한다.
프레임워크
컴퓨터 프로그래밍에서 소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조, 프레임워크(framework)라고도 한다.
- 위키백과
라이브러리
라이브러리(library)는 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다.
- 위키백과
프레임워크
- 프레임워크는 애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 커넥션 등의 기능들을 위해 뼈대(구조)를 제공한다.
- 개발자는 프레임워크가 제공하는 뼈대 위에서 코드를 작성한다.
- 개발할 수 있는 범위가 정해져있다.
- 프레임워크는 그 스스로 제어 흐름의 주도성을 가지고 있다. (제어의 역전 - Inversion of Control)
- Java의 Spring, Python의 Django, 안드로이드 앱 개발의 Android 등이 있다.
장점 | 1. 효율적이다. - 가이드가 제공되어 있기 때문에 시간과 비용이 절약되며 생상성이 좋아진다. 2. 제품 Quality의 향상 - 정형화되어 있어 일정 수준 이상의 품질을 기대할 수 있다. 3. 유지 보수가 쉽다. - 프레임워크는 코드가 체계적이어서 담당자가 바뀌더라도 유지보수가 안정적이다. |
단점 | 1. 자유롭고 유연한 개발에 한계가 있을 수 있다. - 프레임워크 제작자가 설계한 구조를 유지한 채 코드를 작성해야한다. 2. 학습 시간이 길다. - 코드를 개발자가 짜는 것이 아니라, 프레임워크의 코드를 사용하기 때문이다. |
라이브러리
- 개발에 필요한 것들을 미리 구현해놓은 도구
- 재사용이 가능한 기능을 미리 구현해놓고 필요한 곳에서 호출하여 사용한다.
- 개발자가 코드의 특정 부분을 라이브러리로 대체하거나 추가할 수 있다.
- 라이브러리는 개발자가 제어 흐름의 주도성을 가지고 있다.
- C++의 STL, Python의 pip로 설치한 pandas/tensorflow 등이 있다.
프레임워크와 라이브러리의 차이점
프레임워크와 라이브러리의 가장 큰 차이점은 제어 흐름의 주도성을 누구에게/어디한테 있는지이다.
프레임워크는 프레임워크가 제어 흐름의 주도성을, 라이브러리는 개발자가 제어 흐름의 주도성을 가지고 있다.
즉, 프레임워크는 프레임워크가 개발자의 코드를 호출하여 필요한 기능을 수행하고, 라이브러리는 개발자가 라이브러리를 호출하여 사용하는 것이다.
'IT 용어' 카테고리의 다른 글
WEB (0) | 2024.04.25 |
---|---|
REST의 제약 조건 / 특징 (0) | 2024.04.24 |
REST (0) | 2024.04.24 |