프로그래밍 언어/Python

[@ 데코레이터] 원래 함수를 수정하지 않고 추가적인 기능을 구현하는 방법

버터젤리 2025. 4. 20. 21:48

 

 

🎀 데코레이터란?

데코레이터(Decorator) = 다른 함수에 기능을 추가하는 함수

  • 원래 함수를 바꾸지 않고
  • 실행 전후에 기능을 덧붙이기 위해 씀!

바로 예시로 알아보자 

def decorator_function(original_function):
    def wrapper_function():
        print("함수 실행 전 🎬")
        original_function()
        print("함수 실행 후 🎉")
    return wrapper_function

@decorator_function
def say_hello():
    print("안녕~ 👋")

say_hello()

 

함수 실행 전 🎬  
안녕~ 👋  
함수 실행 후 🎉

 

Sum.

@decorator_function 데코레이터 함수 붙이는 문법
wrapper_function 기존 함수 감싸는 함수
original_function() 원래 우리가 부르고 싶은 함수

 

 

- 기존 함수의 내용에 앞,뒤로 기능을 덧붙일수 있음

🌟 데코레이터 언제 쓰냐?

  • ✅ 공통기능 추가 (ex. 로깅, 인증 체크, 타이머 등)
  • ✅ 코드 재사용성 ↑
  • ✅ 함수 수정 없이 기능 덧붙이기 가능!

 

가장 적합한 예시

 

🧪 예시: 실행 시간 측정 데코레이터

import time

def timer_decorator(func):
    def wrapper():
        start = time.time()
        func()
        end = time.time()
        print(f"⏱ 걸린 시간: {end - start:.2f}초")
    return wrapper

@timer_decorator
def slow_function():
    time.sleep(2)
    print("느린 함수 끝~ 🐢")

slow_function()