패스잇
백엔드 개발 · 중급

Python의 데코레이터(Decorator)란 무엇이며, 사용 예시를 들어주세요.

힌트 · 함수를 감싸는 함수와 @wrapper 문법을 설명해보세요.

함수래핑(Wrapping)합성(Composition)@(at symbol)재사용성

모범답안

데코레이터는 파이썬에서 함수를 감싸서 기능을 추가하거나 변경할 때 사용하는 기능입니다. 일종의 함수 래핑(Wrapping)이라고 생각하시면 됩니다. @ 기호를 사용하여 함수 위에 데코레이터를 붙이는 방식으로 사용하며, 이를 통해 코드의 재사용성을 높일 수 있습니다.

예를 들어, 함수의 실행 시간을 측정하는 데코레이터를 만들 수 있습니다.

import time

def timer(func):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        result = func(*args, **kwargs)
        end_time = time.time()
        print(f"{func.__name__} 실행 시간: {end_time - start_time:.4f}초")
        return result
    return wrapper

@timer
def my_function():
    time.sleep(1)

my_function()

@timer 데코레이터를 my_function 위에 붙임으로써, my_function의 실행 시간을 자동으로 측정하고 출력할 수 있습니다. 데코레이터를 사용하면 여러 함수에 동일한 기능을 쉽게 추가할 수 있어 코드 중복을 줄이고 유지보수를 용이하게 할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Python 면접 질문

← Python 면접 질문 전체 보기