데코레이터란 무엇일까요? 사전적 의미로는 "장식가" 또는 "인테리어 디자이너" 등의 의미를 가지고 있습니다. 이름 그대로, 자신의 방을 예쁜 벽지나 커튼으로 장식을 하듯이, 기존의 코드에 여러가지 기능을 추가하는 파이썬 구문이라고 생각하시면 됩니다. 그리고 데코레이터를 이해하시기 위해서는 클로저(Closure)와 일급함수(First Class)개념을 알고 계셔야 합니다. 데코레이터(Decorator)에 장점과 단점은
장점
예제를 보면서 설명하겠습니다.
🖋클로저(Closure) 구현
결과값
근데 이 방법은 부모함수(closure)를 변수에 저장해서 사용해야 하는 번거로움이 있습니다. 그러나 데코레이터(Decorator)를 사용하면 좀 더 간결하게 사용할 수 있습니다.
🖊데코레이터(Decorator) 구현
결과값
위에 클로저(Closure)와는 비슷하면서 다른것은 display위에 @closure를 구현한 것입니다. 그렇게하면 따로 부모함수(closure)를 저장하여 사용하지 않아도 됩니다.
결과값을 보면 클로저(Closure)와 데코레이터(Decorator)이 같은 것을 확인 할 수있습니다. 즉, 데코레이터(Decorator)를 사용하면 위에서 설명한대로 중복제거 및 코드간결, 클로저(Closure)보다 문법간결합니다.