데코레이터는 중첩함수를 리턴하며 함수를 장식한다. 특정 함수를 실행하기 전에 강제적으로 다른 함수가 먼저 실행되도록 한 후에 다음 함수가 실행되도록 하는 강제성을 제공하는 기능이다.
사용하는 이유
- 가독성 반복되는 코드를 함수로 정의해서 효과적으로 코드를 관리하고 가독성을 높이기 위해 사용한다.
- Closure(폐쇄) 가둔다는 뜻으로 어떠한 정보를 기반으로 무엇인가를 실행하고 싶지만 기반이 되는 정보는 접근을 제한하여 노출이 되거나 수정을 하지 못하게 하고 싶을 경우에 사용한다.
- 중첩 함수가 부모 함수의 변수나 정보를 중첩 함수 내에서 사용한다.
- 부모 함수는 리턴값으로 중첩 함수를 리턴한다.
- 부모 함수에서 리턴 했으므로 부모 함수의 변수는 직접적인 접근이 불가능 하지만 부모 함수가 리턴한 중첩 함수를 통해서 사용될 수 있다.
내가 작성한 인증 코드
![](https://velog.velcdn.com/images%2Fvkdtksdl789%2Fpost%2Fed307195-eda1-407b-8708-3fb5de2b580b%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-03-25%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%209.30.36.png)