개념
스크립트 시작 시 모든 모듈을 미리 로드하지 않고, 사용에 필요한 시점까지 로딩을 지연시키는 기법
장점
- 빠른 시작 : 모듈 로딩을 미루어 시작 자체를 앞당길 수 있다. 무거운 라이브러리를 사용하는 경우 더 체감이 크다.
- 메모리 절약 : 프로그램 실행시 사용되는 모듈만 로드된다. 따라서 사용하지 않는 모듈은 메모리에 로드되지 않으므로 메모리도 절약된다.
단점
- 런타임 오류 : import문 실행이 뒤로 미뤄지면서 실패가 프로그램 실행 시작시가 아닌 실행 도중에 발생할 수 있다.
- 가독성 저하 : 통상적으로 문서 상단에 import문이 함수나 조건문 내부로 분산되어 작성됨으로써 코드를 한눈에 이해하기 어려워진다.
- Import 반복 : 함수 실행시마다 import문을 실행하게 되어 성능이 저하될 수 있다.
예시
def load_model(model):
if model == 'GPT':
from models import GPT
model = GPT.load()
elif model == 'Gemini':
from models import Gemini
model = Gemini.load()
...
return model