하나의 Application이 성능이 나지 않을 때 무조건 Performance만 운운하는 경우가 있다.
Performance라는 것은 알고리즘이나 로직, 디자인등에 관련된 개발자 수준에서 개선될 수 있는 사항이고 Response는 하드웨어나 네트워크 속도 등 어쩔 수 없거나 장비등을 통해서 개선될 수 있는 사항이다.
개발자의 입장에서 Reponse는 어쩔 수 없는 대상이지만 때로는 피해가야 할 때가 있다.
이를 테면 핸드폰에서 소켓 연결이 아주 빈번하다면 그때마다 연결하지 말고 계속 연결해서 사용하는 것이 대표적인 예이다.
Performance의 종류는 아래와 같다.
- Computational Preformance
- RAM Footprint
- Startup Time
- Scalability
- Perceived Performance
이중 개발자들이 가장 지나치기 쉬운 것이 Perceived Performance이다. 이는 사용자가 인지하는 수행속도를 뜻한다. 윈도우에서 복사를 할 때 서류철이 날라가는 에니메이션을 보여주거나, 다운로드 받을 때 몇 %가 수행되었는지를 보여주는 것들을 말한다.
모바일에서는 부족한 리소스로 Application을 수행하다 보니 이러한 것을 지나치기가 쉽다. 예전과는 많이 달라졌으니 세심한 UI 배려가 좀 더 필요하다는 생각을 많이 한다.