파이썬 데코레이터

파이썬 데코레이터
안녕하세요! 오늘은 파이썬에서 매우 유용하고 멋진 기능 중 하나인 ‘데코레이터(decorator)’에 대해 이야기해볼까요? 데코레이터는 파이썬의 함수나 메서드를 감싸는 역할을 하는 함수입니다. 쉽게 말해, 다른 함수의 기능을 확장하거나 수정할 때 사용됩니다. 예를 들어, 코드 중복을 줄이거나 로깅, 인증, 캐싱 등의 기능을 추가할 때 데코레이터를 활용할 수 있어요. 데코레이터는 함수를 인자로 받는 고차 함수(higher-order function)의 형태를 가지고 있습니다. 데코레이터를 사용하면 기존 함수의 기능을 손쉽게 확장할 수 있고, 코드의 가독성을 높일 수 있습니다. 간단한 데코레이터를 만들어보자면, 다음과 같이 작성할 수 있어요.

def my_decorator(func):
    def wrapper():
        print("데코레이터 시작")
        func()
        print("데코레이터 끝")
    return wrapper

@my_decorator
def say_hello():
    print("안녕하세요!")

say_hello()

위 코드에서 `my_decorator` 함수가 데코레이터 역할을 합니다. `wrapper` 함수 내에서 기존 함수의 실행 전후에 원하는 기능을 추가할 수 있어요. `@my_decorator` 문법을 사용하여 `say_hello` 함수에 `my_decorator` 데코레이터를 적용했는데, 이제 `say_hello` 함수를 호출하면 “데코레이터 시작”, “안녕하세요!”, “데코레이터 끝” 순서로 출력됩니다. 데코레이터를 사용하면 코드를 간결하게 유지하면서도 여러 함수에 동일한 기능을 쉽게 적용할 수 있어요. 데코레이터의 활용은 파이썬 프로그래밍을 더욱 효율적으로 만들어주는데, 한 번 사용해보면 그 편리함에 빠져들게 될지도 모르겠어요. 혹은 궁금한 점이 있거나 더 알고 싶은 내용이 있다면 언제든지 물어봐 주세요! 함께 공부해보아요. 😊✨