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