본문으로 바로가기
728x90
반응형
SMALL

https://daheenallwhite.github.io/programming/2019/07/15/library-framework-api/

 

 

 

라이브러리


누군가가 좋은 연산 클래스를 만들었다고 가정하자. 버그도 없으며, 정의된 함수만 잘 호출하면 잘 동작한다.

혼자 쓰기는 아까워서 남들도 쉽게 사용하도록 공유하고 싶다. 그러나 소스코드는 공개하기 싫다.

(해당 연산 클래스의 멤버변수와 멤버 함수들을 선언한 헤더파일, 함수 정의 부분을 컴파일한 목적파일 을 만들고

사용 방법에 대한 문서를 공유하자)

이것이 라이브러리다.

응용 프로그램 개발을 위해 필요한 기능을 모아 놓은 소프트웨어

 

 

API


어플리케이션 작성시 위에서의 연산 클래스 라이브러리를 사용한다.해당 연산 클래스에 정의된 메소드들을 실행함으로써 해당 메소드들의 필요한 인자나 리턴타입 등이 연산 클래스 라이브러리의 API 가 되는것이다.

서로간의 협업이나 이미 만들어진 소프트웨어 컴포넌트를 결합해서 만드는 것도 라이브러리라 할수 있으며 이런 컴포넌트를 결합하기 위한 매개체 들을 API 라고 한다.

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

 

프레임워크


누군가의 짜여진 규칙에 따라 코딩, 프레임워크가 나를 제어

응용프로그램이나 소프트웨어의 솔루션 개발을 수월하게 하기위해 제공된 소프트웨어 환경

 

 

 

1. 라이브러리와 API의 차이점은 구현 로직의 유무
2. 라이브러리와 프레임워크의 차이점은 응용프로그램(애플리케이션)의 흐름 주도권을 누가 가지고있냐

 

자동차 비유에 설명해보면

자동차 현재속도를 구하는 라이브러리는 내가 자동차 현재속도를 구하고 싶을때 언제든지 매개변수 값을 넣어서 능동적으로 사용하지만

내가 자동차 프레임워크를 통해 특정 애플리케이션을 만들려고 할 때 프레임워크 양식에 맞게 작성한 내 코드가 프레임워크에 의해 수동적으로 쓰인다는 것이다. 

 

API는 구글맵 API를 떠올리자   "프로그램끼리의 사이의 연결을 시켜주는 다리"

요청양식에 맞게 데이터를 보내면 데이터를 주겠다. 

예를들면 자동차 종류랑 몇키로 탔는지 url식으로 car/BMW&10000 이렇게 보내면 우리가 특정 사이트에 있는 저정도 스펙의 자동차 평균 값을 int형식으로 리턴해줄게 

이 때  car/BMW&10000 <<  요게 API

 

그럼 다시 처음으로 돌아가서 pymongo 라이브러리에서 mongo_client라는 함수는 연결하려는 데이터베이스의 url과 포트번호, 그리고 여러가지 매개변수를 양식(API)에 맞게 보내면 우리가 클라이언트 객체를 반환해줄게

 

mongoclient로 얻은 객체의 타입

<class 'pymongo.mongo_client.MongoClient'>

 

 

 

 

 

 

참고:boying-blog.tistory.com/28

velog.io/@tjdud0123/API-vs-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-vs-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC

 

API vs 라이브러리 vs 프레임워크

api, 라이브러리, 프레임워크의 차이점을 알아보자

velog.io

 

 

728x90
반응형
LIST