Framework & Library & API
프레임워크와 라이브러리는 정확한 개념을 모를때 무슨 차이가 있는지 헷갈릴때가 있다.
그 차이를 한마디로 정의하자면 응용프로그램의 흐름 주도권을 누가 가지고 있는가?를 물어보면 해답을 얻을 수 있다.
먼저 각각의 정의를 먼저 정리해보았다.
Framework(프레임워크)
- 개발에 있어 기본이 되는 뼈대나 구조를 제공함.
- 프레임워크는 라이브러리의 컬렉션이라고 할 수 있다.
- 라이브러리와 프레임워크에 주된 차이점은 제어의역전(IOC)이다. (이 말에서 흐름 주도권을 생각해볼수 있다.)
- 프레임워크에는 작업을 호출할 수 있는 제어권이 있음. (수동적)
- 반제품 형태에 구조를 가지는 애플리케이션 (완전한 애플리케이션 소프트웨어가 아님.)
- 프레임워크 안에 여러 라이브러리를 가지고 있음.
- 미리 작성된 재사용 가능 코드의 본문으로, 개발자가 애플리케이션을 개발할 때 필요에 따라 사용자 정의 코드 사용가능
라이브러리
- 프로그램의 특정 기능을 수행하도록 미리 짜여진 코드 뭉치.
- 컴퓨터 프로그램에서 빈번하게 사용되는 사전 컴파일된 루틴 또는 리소스(클래스, 템플릿, 설정데이터 등)를 모아둔 것.
- 리소스가 필요한 경우 프로그램은 해당 리소스에 대한 라이브러리를 호출함.
라이브러리, 프레임워크 간 차이
각각의 정의를 살펴보니 이제 흐름의 주도권을 누가 가지고 있는지 확인 할 수가 있다.
라이브러리는 말 그대로 여러 특정 기능들이 모아져 있는 것을 의미한다. 예를 들어 내가 도서관에 가서 과학에 대한 지식을 얻고 싶을때 과학 관련 서적을 내가 주체가 되어 선택해 읽는다. 이 말은 곧 흐름의 주도권이 나(개발자)이다. 반대로 프레임워크는 내가 흐름의 주도권을 쥐어서 할 수가 없다. 왜냐하면 프레임워크를 사용할 때 정상 작동을 하려면 해당 프레임워크만의 규칙을 따라 주어야하고, 내가 작업을 호출하거나 객체를 생성을 하거나 등의 일들에 주도권이 없기 때문이다.
마지막으로는 API에 대해서 먼저 정의를 알아보겠다.
API
- 응용프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스.
- 프로그램과 프로그램을 연결시켜주는 매개체 역할 (규칙들의 집합)
- EX ) API가 대신해주는 프로그램의 기능들을 미리 정리해서 규칙을 세워두고 클라이언트는 접근할 프로그램을 모르더라도 API에 따라 통신을 가능하게 해줌.
대표적으로 구글에서 제공하는 구글 클라우드 플랫폼이 있다.
아래 사진에서 볼 수 있듯이 프로젝트를 진행 중에 필요 기능이 있다면 해당 API를 사용해 기능 구현 시간을 단축 시킬수 있는 이점이 있다.
'개발지식' 카테고리의 다른 글
MAC - STS lombok 설치 및 경로 설정 (0) | 2021.04.16 |
---|---|
Blog - Dark Mode 만들기 (0) | 2021.04.09 |
Scope - 객체 범위 (0) | 2021.03.30 |
EL - Expression Language (0) | 2021.03.29 |
쿠키와 세션이란? (Cookie & Session) (0) | 2021.03.26 |
댓글