3,000명 이상의 모바일 앱 사용자를 대상으로 한 Dimensional Research 설문 조사는 오늘날 많은 사람이 믿고 있는 고객 기대치에 대한 사실을 확인시켜 주었습니다.
이러한 성능 관련 통계는 기술 전문가인 우리가 앱이 성능 방정식의 작은 부분일 뿐이라는 것을 알고 있기 때문에 실망스러울 수 있습니다.
우리는 애플리케이션 성능이 향상된다는 것을 알고 있습니다. 애플리케이션 성능 측정은 그 아래에 있는 모든 계층의 성능에 따라 달라집니다. OSI 체계에서 보면 이는 애플리케이션을 구성하는 실제 코드와 데이터를 제외한 모든 것을 말합니다.
'스택'의 (매우 단순화된) 표현을 고려해 보겠습니다. 각 계층에는 고유한 성능 프로필과 과제가 있습니다. 물리적 계층조차도 애플리케이션 성능에 큰 영향을 미칠 수 있습니다. 예를 들어 케이블 모뎀의 전력 저하로 인해 애플리케이션 성능이 급격히 떨어질 수 있습니다. 궁극적으로 데이터를 전송하는 것은 최하위 계층의 신호이기 때문입니다. 신호가 약해지면 데이터를 다시 전송해야 할 수도 있습니다. 재전송은 전체 메시지를 전송하는 데 더 오랜 시간이 걸린다는 것을 의미합니다. 그로 인해 강력하고 안정적인 신호에 의존하는 모든 것에 부정적인 영향을 미쳐 고객 경험이 저하됩니다.
이 관계를 스택의 맨 위까지 반복할 수 있습니다. 창 크기 문제, 패킷 순서 오류, 웹 서버 과부하 등은 모두 "앱"의 전반적인 성능에 영향을 미칩니다. 어떤 계층이 최적이 아닌 성능을 보인다면, 애플리케이션 역시 최적이 아닐 가능성이 높습니다. 앱 성능은 실제로 그 아래에 있는 모든 계층의 성능의 합계입니다.
앱 성능을 관리하는 데는 앱별 애플리케이션 서비스가 가장 좋은 옵션이라는 것은 항상 사실이었습니다. 앱별(전용) 앱 서비스를 사용하면 해당 서비스를 애플리케이션의 요구 사항에 맞게 구체적으로 조정할 수 있습니다.
앱 성능에 관심이 많은 사람이라면 일부 TCP 설정이 장시간 앱 세션에 더 좋고, 다른 TCP 설정은 짧고 집중적인 트랜잭션에 더 좋다는 걸 알고 있을 겁니다. 네트워크 계층의 MTU와 같은 사소한 것들이 Xbox에서 20GB 게임을 다운로드하는 데 걸리는 시간에 상당한 영향을 미칠 수 있습니다.
애플리케이션 성능은 여러 가지 요인에 의해 영향을 받습니다. 최적의 고객 경험을 추구하는 조직이라면 모든 것을 각 애플리케이션에 맞춰 최적화해야 합니다.
이것이 제가 과거에 성능(최적화 및 가속)이 애플리케이션 중심 서비스라고 여러 번 언급한 이유입니다. 이는 로드 밸런싱 및 앱 보호와 같은 앱 가속 서비스가 서비스를 제공하는 앱과 더 긴밀하게 연결되어야 함을 점차 의미합니다. 불변성, 클라우드 네이티브 아키텍처, 컨테이너, 인프라스트럭처 코드 등의 개념을 기반으로 하는 새로운 배포 모델은 애플리케이션과 함께 앱별 가속, 보호, 최적화 서비스를 배포하고 운영할 수 있는 역량을 강화합니다. 이는 앱(모바일 또는 웹)이 고객 성능 기대치를 충족하도록 보장하는 서비스이므로 중요한 사항입니다.
하지만 거기서 멈출 수는 없습니다.
최적의 고객 경험을 제공한다는 것은 고객 환경의 동일한 스택에 달려 있다는 사실을 잊을 수 없습니다. 장치 성능, 연결 강도 및 속도, 시스템 부하는 이러한 변수들의 집합에 영향을 미쳐 성능을 저하시킬 수 있습니다.
이는 애플리케이션 서비스에 가시성이 필요한 이유 중 하나입니다. 고객 환경에서 수집한 정보를 애플리케이션 환경의 정보와 결합하면 성능 문제의 근원에 대한 귀중한 통찰력을 얻을 수 있습니다. 이러한 환경을 조정하는 능력 역시 고객의 애플리케이션 경험에 대한 기대치를 충족하거나 초과하는 데 매우 중요합니다.
가시성은 조직이 애플리케이션을 보호하고, 확장하고, 가속화하는 능력을 가능하게 하는 핵심 요소입니다. 앱을 컨테이너, 클라우드, 고객 환경 등 더 광범위하게 배포할수록 성능 저하에 직면했을 때 가시성뿐만 아니라 조치를 보장할 수 있는 애플리케이션 서비스를 더 광범위하게 배포해야 합니다.