본문 바로가기

Python

[Python] 파이썬 라이브러리와 프레임워크의 차이

반응형

파이썬 모듈을 보다보면 라이브러리(library) 그리고 프레임워크(Framework)라는 단어가 자주 등장합니다. 큰 구분없이 사용하지만, 제어 역전(Inversion of Control)에 따라서 둘을 구분할 수 있습니다.


  - 라이브러리 : 정상적인 제어가 이뤄지는 모듈
  - 프레임워크 : 제어 역전이 발생하는 모듈


먼저 여기서 제어 역전을 설명할 필요가 있는데, 제어역전이란 '개발자가 만든 함수를 모듈이 호출하는 경우'를 뜻합니다. 아래 코드를 보시면 이해하실 수 있는데요.

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
	return "<p>Hi</p>"


위 플라스크 코드는 개발자가 작성하였지만, 저 함수를 실행하는 것은 모듈입니다. 즉 웹상에서 '/' 쪽 디렉터리에 접근할 때 hello 함수가 실행되는 것입니다. 이렇듯 개발자가 작성한 코드를 모듈이 호출하는 상황은 제어가 역전되었다고 해서 제어 역전(Inversion of Control)이라고 합니다. 이렇듯 개발자의 코드를 실행해주는 모듈을 프레임워크라고 합니다. 

일반적인 제어는 아래 처럼 개발자가 모듈의 기능을 개발자가 직접 호출해서 사용하는 것을 뜻합니다. 

import pandas 
df = pandas.read_csv('../data/gapminder.tsv', sep='\t') # csv 파일 읽기 
print(df.info()) 


즉 위와 같이 pandas의 기능을 개발자가 호출해서 사용하는 경우는 flask의 사례처럼 제어 역전이 발생하지 않습니다. 이러한 기능의 모듈을 바로 라이브러리라고 합니다.

출처 : 혼공파(혼자공부하는 파이썬)

반응형