왜 state가 없는 위젯의 프로퍼티와 함수에 static 키워드를 쓰는 거야?
State가 없는 위젯(Stateless Widget)에서 static 키워드를 사용하는 이유는 몇 가지가 있어요.
1. 공유 자원 사용: static 키워드는 클래스의 인스턴스와 상관없이 클래스 자체에 속하는 자원을 정의할 때 사용해요. 만약 여러 위젯 인스턴스가 동일한 데이터를 공유하거나 동일한 함수 로직을 사용해야 한다면 static으로 정의하면 효율적이에요. 예를 들어, 여러 위젯에서 동일한 색상 값을 공유할 때 static으로 정의하면 한 번만 정의하고 재사용할 수 있어요.
2. 메모리 효율성: static 키워드는 메모리 공간을 절약하는 데 도움이 돼요. 인스턴스마다 동일한 값을 복사해서 저장하는 대신, 하나의 공간에 값을 저장하고 이를 참조하는 방식이에요. 이렇게 하면 메모리를 절약하고 성능을 향상시킬 수 있어요.
3. 유틸리티 함수: static으로 정의된 함수는 특정 인스턴스가 없어도 호출할 수 있어요. 그래서 위젯 인스턴스가 없어도 공통으로 사용될 수 있는 유틸리티 함수는 static으로 정의하는 것이 좋아요. 예를 들어, 화면 너비나 높이를 계산하는 함수는 static으로 정의해서 어디서든 쉽게 사용할 수 있어요.
간단히 요약하자면, static 키워드는 클래스 레벨에서 공유할 필요가 있는 자원이나 함수에 사용해서 메모리를 효율적으로 사용하고, 인스턴스 간에 공통으로 사용할 수 있는 유틸리티 함수 등을 정의할 때 유용해요.
