<aside>

</aside>


🌟 챕터 소개

안녕하세요, 파이썬 마법사 여러분! 😊 GoF 디자인 패턴의 여정을 마치고, 오늘은 파이썬 생태계에서 마치 패턴처럼 널리 사용되는 매우 중요하고 강력한 두 가지 기능, **컨텍스트 관리자(Context Manager)**와 **데코레이터 구문(@)**에 대해 집중적으로 알아보겠습니다.

with open(...) 구문으로 파일을 안전하게 다루거나, @login_required로 마법처럼 기능을 덧붙이는 것, 모두 경험해보셨죠? ✨ 이번 시간에는 이 두 가지 파이썬 핵심 기능의 비밀을 파헤치고 직접 만들어보며, 여러분의 코드를 더욱 안전하고 간결하며 강력하게 만드는 방법을 배워보겠습니다! 💪


🎯 챕터 목표

이번 강의의 목표입니다.

  1. 컨텍스트 관리자with의 목적(안전한 자원 설정 및 해제)을 설명할 수 있습니다.
  2. __enter__, __exit__을 사용한 클래스 기반 컨텍스트 관리자를 만들 수 있습니다.
  3. @contextlib.contextmanager를 사용한 함수 기반 컨텍스트 관리자를 만들 수 있습니다.
  4. Python의 **데코레이터 구문(@)**의 동작 원리(함수/클래스 래핑)를 설명할 수 있습니다.
  5. 간단한 함수 데코레이터를 직접 정의하고 적용할 수 있습니다.
  6. 두 기능의 일반적인 활용 사례를 인지합니다.

💻 강의에서 사용되는 전체 코드 및 프로젝트 구조

이번 강의에서는 실행 시간을 측정하는 Timer 컨텍스트 관리자와 함수 호출 로그를 남기는 @log_call_details 데코레이터를 구현해 봅니다. 모든 코드는 python_specific_patterns.py 파일 하나에 담겠습니다.