새소식

이것저것 개발노트

[FastAPI] [Chapter 2] 데코레이터

  • -

FastAPI에 자주 등장하는 데코레이터에 대해 알아보자 

 

FastAPI를 사용하다 보면 데코레이터 (decorator)라는 구문이 등장한다. 데코레이터는 함수나 메서드의 기능을 간단하게 수정하거나 확장할 수 있게 해 주는 고급 기능이다. 

 

함수나 클래스, 매서드 앞에 @로 시작하는 문장을 데코레이터라고 한다.

파이썬에서 일반적으로 많이 사용되는 데코레이터의 예로, 클래스 내 메서드를 정적 메서드로 바꾸는 @staticmethod와 클래스 메서드로 바꾸는 @classmethod가 잇다.

 

그렇다면 데코레이터는 무엇일까? 사실 데코레이터는 그 자체가 일정의 함수나 클래스이다.

 

FastAPI로 대표되는 프레임워크에서 수많은 데코레이터를 미리 정의하고 있으므로, 프레임워크 사용자 (웹 앱 개발자)는 데코레이터를 추가하는 것만으로 다양한 기능을 함수에 부여할 수 있게 된다. 

 

Syntactic sugar (문법적 설탕)

데코레이터는 @로 시작하는 특수한 구문이지만, 그 본래의 바탕은 함수의 문접적 설탕에 불과하다.

example 함수와 wrapper 함수의 경우, 데코레이터를 붙인 example 함수를 호출하는 것은, 다음과 같이 wrapper를 통해 example을 호출하는 것과 같은 의미이다. 

wrapper(example)()

 

 

 

@wrapper
def example():
	....

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.