10분
ExitStack: 동적으로 리소스 관리하기
파일 닫는 걸 또 깜빡했다 - 컨텍스트 매니저
ExitStack: 동적으로 리소스 관리하기
Python 고급: 제너레이터, 데코레이터, 컨텍스트 매니저, Type Hints > 파일 닫는 걸 또 깜빡했다 - 컨텍스트 매니저
학습 목표
ExitStack의 용도를 이해한다 동적 리소스 관리 패턴을 익힌다
ExitStack이 필요한 상황
리소스 개수가 런타임에 결정될 때 with 문으로는 처리하기 어렵습니다.
에디터 로딩 중...
ExitStack 사용
에디터 로딩 중...
ExitStack의 주요 메서드
| 메서드 | 설명 |
|---|---|
enter_context(cm) | 컨텍스트 매니저 등록 |
push(exit_callback) | 종료 시 호출할 콜백 등록 |
callback(func, *args) | 종료 시 호출할 함수 등록 |
pop_all() | 모든 콜백을 새 스택으로 이동 |
실용 예제: DB 트랜잭션
에디터 로딩 중...
핵심 인사이트
"ExitStack은 동적 리소스 관리의 핵심입니다. 개수를 모를 때, 조건부로 리소스를 열 때 사용!"
핵심 포인트
- • ExitStack: 동적으로 컨텍스트 매니저 관리
- • enter_context(): CM 등록
- • callback(): 종료 시 호출할 함수 등록
- • 런타임에 리소스 개수가 결정될 때 필수