데코레이터는 중첩함수를 리턴하며 함수를 장식한다. 특정 함수를 실행하기 전에 강제적으로 다른 함수가 먼저 실행되도록 한 후에 다음 함수가 실행되도록 하는 강제성을 제공하는 기능이다.
사용하는 이유
- 가독성 반복되는 코드를 함수로 정의해서 효과적으로 코드를 관리하고 가독성을 높이기 위해 사용한다.
- Closure(폐쇄) 가둔다는 뜻으로 어떠한 정보를 기반으로 무엇인가를 실행하고 싶지만 기반이 되는 정보는 접근을 제한하여 노출이 되거나 수정을 하지 못하게 하고 싶을 경우에 사용한다.
- 중첩 함수가 부모 함수의 변수나 정보를 중첩 함수 내에서 사용한다.
- 부모 함수는 리턴값으로 중첩 함수를 리턴한다.
- 부모 함수에서 리턴 했으므로 부모 함수의 변수는 직접적인 접근이 불가능 하지만 부모 함수가 리턴한 중첩 함수를 통해서 사용될 수 있다.
내가 작성한 인증 코드