@ computed (계산된 속성)
methods와 computed의 차이
computed는 data 속성에 변화가 있을때 자동으로 다시 연산을 한다.
computed에서 사용하고 있는 data속성인 message
라는 프로퍼티가 변화가 있을때만 다시 연산을하고 한번 연산한 값을 캐싱 해놓았다가 필요한 부분에 다시 재 사용한다.
같은 페이지내에서 같은 연산을 여러번 반복해야 할 경우에 성능면에서 효율적으로 사용할 수 있다.
반면 methods는 캐싱이라는 개념이 없기 때문에 매번 재 렌더링된다.
캐싱 효과가 필요하다면 computed를 사용하고 캐싱이 필요없다면 methods를 사용하도록 하자.
getter
getter는 객체의 프로퍼티를 가져오는 함수를 말합니다.
getter의 장점
계산 미루기 (Lazy getter)
getter는 프로퍼티에 접근하기 전까지 그 값을 계산하지 않습니다.
getter의 값 계산은 실제 값이 필요할 때 이루어지고, 값이 필요하지 않다면, 계산을 하지 않습니다. 즉 값이 필요하지 않다면 쓸데없는 계산을 하지 않아 cpu를 낭비하지 않게 됩니다.
캐싱 (Smart/Memorized getter)
최적화 방법으로 계산 미루기와 함께 캐싱하는 것이 있습니다.
값은 getter가 호출될 때 처음 계산되며 캐싱됩니다. 이후의 호출은 다시 계산하지 않고 이 캐시값을 반환합니다.
이러한 캐싱은 다음과 같은 경우에 유용합니다.
1. 값의 계산 비용이 큰 경우. (RAM이나 CPU 시간을 많이 소모하거나, worker thread를 생성하거나, 원격 파일을 불러오는 등)
2. 값이 당장 필요하지 않지만 나중에 사용되어야 할 경우(혹은 이용되지 않을 수도 있는 경우)
3. 값이 여러번 이용되지만 변경되지 않아 매번 계산할 필요가 없는 경우
setter
setter는 객체의 프로퍼티를 설정하는 함수를 말합니다.