cached_property는 장고에서 제공하는 클래스로, 이를 이용해 특정 메소드로 리턴 되는 속성 값을 여러 번 호출해야 하는 경우(property 안에서 호출하는 함수의 비용이 큰 연산 작업의 경우) 결과값을 캐싱하여, 반복적인 연산이나 네트워크 I/O로 발생하는
@property 데코레이터는 메소드를 마치 필드인 것처럼 취급할 수 있도록 만들어 준다.아래와 같은 예시가 있다고 하자.여기서 full_name은 함수로 정의되어 있지만 @property 데코레이터가 사용되었다. 따라서, views.py에서 full_name을 불러올
property는 외부에서 클래스 내부 변수를 참조하기 위한 함수를 말하는데, 이를 흔히 getter & setter라고도 말한다.이 때 @property는 getter, setter를 쉽게 사용할 수 있는 방법을 제공하는 데코레이터이다. getter, setter는
@classmethod는 다른 자식 클래스에서 @classmethod를 캡슐화 하는 클래스를 호출할 때 해당 메소드가 어떻게 작동해야 하는 지 정의하기 위해 사용된다. 반면 @staticmethod는 호출하는 child class에 관계 없이 같은 값을 리턴할 때 사용