Chapter 11. 함수에 날개 달기: 데코레이터

게임을 할 때 기본 캐릭터에 ‘터보 부스터’나 ‘마법 방패’ 같은 아이템을 장착하면 캐릭터의 기본 능력은 그대로 둔 채 새로운 파워가 추가됩니다. 파이썬 프로그래밍에도 이런 아이템 장착 기능이 있는데, 이를 데코레이터(Decorator)라고 부릅니다.
내가 만든 함수를 하나도 건드리지 않고, 그 겉을 마치 선물 포장지처럼 예쁘게 감싸서 로깅을 남기거나, 실행 속도를 빠르게 만들거나, 사용자 권한을 검사하는 마법 같은 기능입니다. 이 장에서는 데코레이터의 강력한 작동 원리와, 이를 가능하게 하는 파이썬의 핵심 개념들을 배웁니다.
📖 목차
- 함수가 품은 보물상자: 클로저 (Closure)
- 함수를 반환하는 함수
- 외부 변수를 가둬두는 자유 변수(Free Variable)의 비밀
- 함수 쪼개기와 기억력: 부분 함수와 메모이제이션
- 인자를 미리 예약해두는
functools.partial - 한 번 푼 문제는 다시 풀지 않는다!
functools.lru_cache
- 인자를 미리 예약해두는
- 아이템 장착! 함수 데코레이터
@기호의 정체- 실행 전후를 가로채는
wrapper함수 - 원래 함수의 신분증을 지켜주는
functools.wraps
- 클래스로 만드는 데코레이터
__call__메서드를 이용한 클래스 기반 데코레이터- 클래스 자체에 장착하는 데코레이터 패턴
서브목차