함수를 수정하지 않고 유연하게 함수에 특정 동작을 추가하거나 작동 방식을 바꿀 수 있다. decorate() 함수는 함수를 인자로 받고, 내부 wrapper() 함수는 decorate() 함수의 인자로 넘어온 함수를 호출한다. hello() 함수를 decorate() 함수의 인자로 넘긴 후, hello2 변수에 할당하면 "hello" 출력 전에 before, 후에 "after"이 출력되는 것을 볼 수 있다. def hello(): print("hello") def decorate(func): def wrapper(): print("before") func() print("after") return wrapper hello2=decorate(hello) hello2() @ 기호와 함께 함수 헤더 위에 데코..