반응형

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의 흐름 제어가 역전된다.

 

[참고]

https://youtu.be/We8JKbNQeLo

https://youtu.be/_j4u4ftWwhQ

반응형

+ Recent posts