10

ExitStack: 동적으로 리소스 관리하기

파일 닫는 걸 또 깜빡했다 - 컨텍스트 매니저

학습 목표

ExitStack의 용도를 이해한다 동적 리소스 관리 패턴을 익힌다

ExitStack이 필요한 상황

리소스 개수가 런타임에 결정될 때 with 문으로는 처리하기 어렵습니다.

에디터 로딩 중...

ExitStack 사용

에디터 로딩 중...

ExitStack의 주요 메서드

메서드설명
enter_context(cm)컨텍스트 매니저 등록
push(exit_callback)종료 시 호출할 콜백 등록
callback(func, *args)종료 시 호출할 함수 등록
pop_all()모든 콜백을 새 스택으로 이동

실용 예제: DB 트랜잭션

에디터 로딩 중...

핵심 인사이트

"ExitStack은 동적 리소스 관리의 핵심입니다. 개수를 모를 때, 조건부로 리소스를 열 때 사용!"

핵심 포인트
  • ExitStack: 동적으로 컨텍스트 매니저 관리
  • enter_context(): CM 등록
  • callback(): 종료 시 호출할 함수 등록
  • 런타임에 리소스 개수가 결정될 때 필수