영상에도 나온 얘기지만, 무슨 데코레이터인지 모르면 가독성을 매우 나쁘게 하는 경향이 있음. 체감상으로는 큰 프로젝트가 아니면 사용하지 않는게 깔끔하고, 그나마 사용한다면 아주 간단하고 직관적인 기능 구현에만 쓰는게 좋아보이더라구요.
@divetrack9290Ай бұрын
디자인 패턴 중에 하나일 정도로, 양날의 검이긴 하지만 잘 쓰면 좋은 문법입니다. 많은 함수가 같은 동작을 공유할 때, 함수의 입출력을 제어하고 싶다면 decorator를, 그렇지 않다면 context(with 구문)를 쓰면 됩니다. 만약 썼는데 코드가 깔끔해지지 않고 오히려 더 더러워졌다면 그건 코드 구조에 대한 안목이 없어서 그런 겁니다. 그리고 decorator를 썼을 때 가독성이 나빠진다면 본인의 문서화 습관이나 네이밍 규칙을 점검할 필요가 있습니다. 함수의 이름은 나름의 규칙이 있어야 하고 이름만 봐도 그 역할을 알 수 있어야 하며, 매우 중요한 동작인 경우엔 docs에도 충분히 설명되어 있는 게 기본입니다. 모든 기능은 엄청난 토론을 거쳐서 도입되며, 필요없는 기능이 굳이 도입되는 경우는 아주 드뭅니다. 어떤 기능의 존재 목적을 잘 모르겠다면, 그건 본인이 그 기능을 적재적소에 사용하지 못하고 있거나, 혹은 접해온 코드들이 그 기능을 엉망으로 쓰고 있다는 얘기죠.