반응형
1. Framework
: Software 분야에서 Application을 개발에 빈번히 쓰여지는 범용 기능을 한꺼번에 제공해 Application의 토대로서 기능하는 Software이다. Application의 아웃라인으로 개발에 Framework를 이용하면 독자적으로 필요로하는 부분만 개발하면 되기 때문에 개발 효율의 향상을 기대할 수 있다.
e.g., Spring, Django, node.js 등
1.1. 특징
- 공통적인 개발 환경을 제공한다. (개발 편의성)
- 개발할 수 있는 범위가 정해져있다.
- Application 제어의 역전이 발생한다.
2. Library
: 개발자가 사용할 수 있는 API들을 종류나 목적에 따라 나누어 정의한 API 묶음으로 재사용 가능한 Code의 집합이다. Library는 System에 기본적으로 설치되어있는 기본 Library와 제조사나 외부 메이커에 의해 만들어지는 확장 Library로 나뉜다.
e.g.,
import random # random Library를 사용하겠다.
random_num = random.randrange(1, 7) # random Library에 포함되어 있는 함수를 이용해 값 반환
2.1. 특징
- 개발에 필요한 것들을 모아둔 일종의 저장소이다.
- 필요할 때 호출해서 사용한다.
- Application의 흐름을 제어한다
☞ Framework와 반대
3. API(Application Programming Interface)
: 응용 프로그램에서 사용할 수 있도록 운영체제나 다른 프로그램이 제공하는 기능을 제어할 수 있게 만든 Interface이다.
3.1. 특징
- 응용 프로그램을 다른 운영체제나 Program과 연결해주는 다리 역할을 한다.
- 직접 구현하는 것이 아닌 제어를 담당한다.
- API를 조합해 원하는 Program을 만들 수 있다.
4. 비유를 통한 Framework, Library, API의 이해
집을 지을 때 아래의 조건이 만족되어야 한다고 가정해보자.
1. 3개의 방, 1개의 화장실이 존재해야 한다.
2. 에어컨이 존재해야 한다.
3. 조명, 가전제품 등을 제어할 수 있는 리모컨이 존재해야 한다.
- 1번 조건 : 맨땅에 헤딩하기보다는 평면도를 이용해 여러 사람이 협업하면 효율성이 높아질 것이다.
☞ 평면도 = Framework - 2번 조건 : 에어컨을 실제로 만들기보다는 기존에 만들어져 있는 에어컨을 구매해 가져다 놓으면 불필요한 시간과 노력을 줄일 수 있을 것이다.
☞ 기존 제품 = 외부 Library - 3번 조건 : 리모컨을 이용해 제품을 제어한다면 리모컨 없이 제어할 때보다 더 쉽게 제어할 수 있을 것이다.
☞ 리모컨 = API
5. Library와 Framework의 공통점과 차이점
Library | Framework | |
공통점 | 개발에 편의성을 제공한다. | |
차이점 | Application의 흐름을 제어한다. | Application의 흐름 제어가 역전된다. |
[참고]
반응형
'CS기술 지식 > 전산 기초' 카테고리의 다른 글
[전산 기초] 객체 지향 프로그래밍(OOP, Object-Oriented Programming)이란? (0) | 2022.03.05 |
---|