<aside>
</aside>
안녕하세요, 파이썬 마법사 여러분! 😊 GoF 디자인 패턴의 여정을 마치고, 오늘은 파이썬 생태계에서 마치 패턴처럼 널리 사용되는 매우 중요하고 강력한 두 가지 기능, **컨텍스트 관리자(Context Manager)**와 **데코레이터 구문(@
)**에 대해 집중적으로 알아보겠습니다.
with open(...)
구문으로 파일을 안전하게 다루거나, @login_required
로 마법처럼 기능을 덧붙이는 것, 모두 경험해보셨죠? ✨ 이번 시간에는 이 두 가지 파이썬 핵심 기능의 비밀을 파헤치고 직접 만들어보며, 여러분의 코드를 더욱 안전하고 간결하며 강력하게 만드는 방법을 배워보겠습니다! 💪
이번 강의의 목표입니다.
with
문의 목적(안전한 자원 설정 및 해제)을 설명할 수 있습니다.__enter__
, __exit__
을 사용한 클래스 기반 컨텍스트 관리자를 만들 수 있습니다.@contextlib.contextmanager
를 사용한 함수 기반 컨텍스트 관리자를 만들 수 있습니다.@
)**의 동작 원리(함수/클래스 래핑)를 설명할 수 있습니다.이번 강의에서는 실행 시간을 측정하는 Timer
컨텍스트 관리자와 함수 호출 로그를 남기는 @log_call_details
데코레이터를 구현해 봅니다. 모든 코드는 python_specific_patterns.py
파일 하나에 담겠습니다.