10분
실무 데코레이터 패턴 가이드
반복되는 로깅 코드가 지겨워 - 데코레이터
실무 데코레이터 패턴 가이드
Python 고급: 제너레이터, 데코레이터, 컨텍스트 매니저, Type Hints > 반복되는 로깅 코드가 지겨워 - 데코레이터
학습 목표
캐싱, 인증, 로깅 패턴을 익힌다 적절한 패턴 선택 기준을 안다
실무에서 자주 쓰는 데코레이터 패턴
1. 캐싱 (Memoization)
에디터 로딩 중...
사용 시점:
- 동일 입력 → 동일 출력 (순수 함수)
- 비용이 큰 계산 (DB 쿼리, API 호출)
- 반복 호출이 예상될 때
2. 인증/권한 체크
에디터 로딩 중...
사용 시점:
- API 엔드포인트 보호
- 관리자 기능 제한
- RBAC (역할 기반 접근 제어)
3. 로깅/모니터링
에디터 로딩 중...
패턴 선택 가이드
| 상황 | 추천 데코레이터 |
|---|---|
| 반복 계산 최적화 | @lru_cache |
| 접근 권한 체크 | @require_auth, @require_role |
| 실행 추적/디버깅 | @log_calls, @timing |
| 입력 검증 | @validate_args |
| 에러 복구 | @retry |
| 트랜잭션 관리 | @transactional |
"데코레이터로 관심사 분리를 달성하세요. 비즈니스 로직과 부가 기능(로깅, 캐싱, 인증)을 깔끔하게 분리!"
핵심 포인트
- • @lru_cache: 순수 함수 결과 캐싱
- • 인증 데코레이터: 권한 체크 로직 분리
- • 로깅 데코레이터: 호출/결과/에러 자동 기록
- • 데코레이터 = 관심사 분리의 핵심 도구