개발지식

Framework & Library & API

devLog by Ronnie's 2021. 4. 4. 19:30

Framework & Library & API

프레임워크와 라이브러리는 정확한 개념을 모를때 무슨 차이가 있는지 헷갈릴때가 있다.

그 차이를 한마디로 정의하자면 응용프로그램의 흐름 주도권을 누가 가지고 있는가?를 물어보면 해답을 얻을 수 있다.

 

먼저 각각의 정의를 먼저 정리해보았다.

 

Framework(프레임워크)

- 개발에 있어 기본이 되는 뼈대나 구조를 제공함.

- 프레임워크는 라이브러리의 컬렉션이라고 할 수 있다.

- 라이브러리와 프레임워크에 주된 차이점은 제어의역전(IOC)이다. (이 말에서 흐름 주도권을 생각해볼수 있다.)

- 프레임워크에는 작업을 호출할 수 있는 제어권이 있음. (수동적)

- 반제품 형태에 구조를 가지는 애플리케이션 (완전한 애플리케이션 소프트웨어가 아님.)

- 프레임워크 안에 여러 라이브러리를 가지고 있음.

- 미리 작성된 재사용 가능 코드의 본문으로, 개발자가 애플리케이션을 개발할 때 필요에 따라 사용자 정의 코드 사용가능

 

라이브러리

- 프로그램의 특정 기능을 수행하도록 미리 짜여진 코드 뭉치.

- 컴퓨터 프로그램에서 빈번하게 사용되는 사전 컴파일된 루틴 또는 리소스(클래스, 템플릿, 설정데이터 등)를 모아둔 것.

- 리소스가 필요한 경우 프로그램은 해당 리소스에 대한 라이브러리를 호출함.

 

라이브러리, 프레임워크 간 차이

각각의 정의를 살펴보니 이제 흐름의 주도권을 누가 가지고 있는지 확인 할 수가 있다.

라이브러리는 말 그대로 여러 특정 기능들이 모아져 있는 것을 의미한다. 예를 들어 내가 도서관에 가서 과학에 대한 지식을 얻고 싶을때 과학 관련 서적을 내가 주체가 되어 선택해 읽는다. 이 말은 곧 흐름의 주도권이 나(개발자)이다. 반대로 프레임워크는 내가 흐름의 주도권을 쥐어서 할 수가 없다. 왜냐하면 프레임워크를 사용할 때 정상 작동을 하려면 해당 프레임워크만의 규칙을 따라 주어야하고, 내가 작업을 호출하거나 객체를 생성을 하거나 등의 일들에 주도권이 없기 때문이다.

 

마지막으로는 API에 대해서 먼저 정의를 알아보겠다.

 

API

- 응용프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스.

- 프로그램과 프로그램을 연결시켜주는 매개체 역할 (규칙들의 집합)

- EX ) API가 대신해주는 프로그램의 기능들을 미리 정리해서 규칙을 세워두고 클라이언트는 접근할 프로그램을 모르더라도 API에 따라 통신을 가능하게 해줌.

대표적으로 구글에서 제공하는 구글 클라우드 플랫폼이 있다.

console.cloud.google.com/apis

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

아래 사진에서 볼 수 있듯이 프로젝트를 진행 중에 필요 기능이 있다면 해당 API를 사용해 기능 구현 시간을 단축 시킬수 있는 이점이 있다.