코린이의 공부일기

[개발용어] 프레임워크(Framework) 와 라이브러리(Library) 의 차이 본문

STUDY/Computer Science

[개발용어] 프레임워크(Framework) 와 라이브러리(Library) 의 차이

SOJUNG 2022. 2. 21. 17:24

일단 프레임워크(Framework)와 라이브러리 (Library)의 먼저 공통점은 !

 

개발자가 쉽게 사용할 수 있도록 사람(?)이 만들어 놓은 것!

 

 

 

 

But, 심플한 차이점은 

-> " 누가 누구를 컨트롤 하는가" 이다

 

1. 내가 코드를 컨트롤 하는 것

-> 라이브러리 (Library)

 

2. 내가 정해진 규칙을 따라하는 것

-> 프레임워크 (Framework)

 

 

 

 

 

 

즉, 예시를 들어본다면 훨씬 더 쉽게 이해할 수 있다.

 

먼저 라이브러리에 대해 설명하자면,

 

머신러닝 라이브러리 중 하나인 scikit learn 에서 K fold와 Stratified K fold 을 사용해 교차검증을 사용할 수 있는 것처럼 라이브러리는 내가 선택해 사용할 수 있다. 그리고 쉽게 대체해서 사용할 수 있다.

예를들어, 교차검증데이터셋은 사실 직접 손으로 세트를 나누어 구성할 수 있지만 시간절약을 하기위해 소환하여 쓰는 것으로 이해하면 될 것 같다.

 

 

 

 

 

 

그렇다면 프레임워크는 ?

 

프레임워크는 "나"를 부르는 것이다.

즉 일을 할 때 프레임워크의 규칙을 따라 코드를 작성해야 한다.

 

프레임워크는 어디에 코드를 넣어야하는지 규칙을 알려준다.

즉 , 내가 컨트롤 하는 것이 아닌 규칙을 따라가는 것이다.

예를 들어 Pytorch와 Tensorflow와 같이 데이터 셋을 정의 해주는 것, 데이터 로더지정, 모델설계, criterion, Optimizer와 같이 pytorch에 지정되어있는 규칙을 따라 코드를 넣어주어야한다. 

 

 

 

결국 한 줄로 정의하자면

 

라이브러리는 내가 필요한 기능을 쓰고 싶을 때 직접 호출하여 사용하는 것이고 프레임워크는 프레임워크가 정해준 작업과 구조를 토대로 

구현하는 것 이라고 생각하면 될 것 같다.

즉 가장 큰 차이점은 "코드 흐름의 주인" 이 누구한테 있느냐로 생각하면 된다.

Comments