회고록 블로그

라이브러리와 프레임워크의 차이 본문

3. Computer Science 공부

라이브러리와 프레임워크의 차이

김간장 2022. 8. 10. 22:40

 

- 라이브러리와 프레임워크의 가장 큰 차이는 "제어역전"

* 쉽게 말해서 "제어가 역전되어 있다"는 말이다.

 

- 개발자가 모듈의 함수를 호출하는 것이 일반적인 제어 흐름인데 라이브러리가 이에 해당한다.

- 반대로, 모듈이 개발자가 작성한 코드를 실행하는 것 (개발자가 제어하는게 아님)은 제어역전이며, 프레임워크를 말한다.

* 즉, 프레임워크는 개발자가 작성한 코드를 실행하는 형태의 모듈을 말한다.

 

 


 

python의 프레임워크인 Flask 예시>

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
	return "<h1>Hello World!</h1>"

if __name__ == "__main__":
	app.run(debug=True)

실행했을 때 결과>

 

 

python의 math 모듈을 이용하여 작성한 코드 예시>

from math import sin

print(sin(1))

실행했을 때 결과>

 

프레임워크 Flask와 라이브러리 math.sin을 실행했을 때 위와 같이 실행결과가 다르다.

코드를 작성한 사람(=프로그래머)은 "Serving Flask app 'test.py'"와 같은 문자열을 출력해달라고 코드를 작성하지 않았다.

이러한 문자열은 Flask 모듈 내부에서 출력된 것이다.

 

개발자가 Flask 모듈이 제공하는 명령어를 실행하면

Flask가 내부적으로 서버를 실행하고 지정한 파일을 읽어와 적절한 상황에 스스로 실행한다.

즉, 모듈이 개발자가 작성한 코드를 실행한다.

반대로 라이브러리(math.sin 등)은 개발자가 모듈의 기능을 호출한다. 즉, 개발자가 호출하는 시점을 제어할 수 있다.

 

- 참고자료 및 출처 : 혼자 공부하는 파이썬, 윤인성 저자, 한빛미디어, 2019.

 

Comments