본문 바로가기
분석/AB 테스트

05. 속도의 중요성

by 여우요원 2023. 12. 7.
반응형

 

- 도입

백엔드 단의 속도 저하 실험을 통해 아래의 질문에 대한 답을 찾을 수 있다.

  • 제품 성능이 얼마나 중요한가?
    • 제품 속도가 주요 지표(매출, 사용자 만족도 등)에 얼마나 영향을 주는지, 장기적 영향(탈퇴 고객)까지도 평가할 수 있음.
    • 새로운 기능의 도입은 속도를 저하시키기 마련인데, 이 때 성능을 향상시키면 지표를 개선할 수 있는가?
  • 제품의 어느 곳에서 지연 시간을 줄이는 것이 중요한가?
    • 사용자가 스크롤 해야 보이는 영역, 분할된 화면의 오른쪽 영역은 덜 중요할 수 있음.

 

실제로 많은 기업에서 실험을 통해 속도가 중요하다는 것을 밝혀냈다.

  • 2017년 빙은 10분의 1초의 개선마다 1억 8천만 달러의 연간 매출 증가의 가치가 있음을 확인했고,
    이는 전문팀을 확대하는 근거로 충분했다.
  • 아마존에서 100밀리초 속도 저하 실험은 매출을 1% 감소시켰다. - 참고
  • 빙과 구글의 공동 강연에서 성능이 검색어 수, 수익, 클릭, 만족도, 클릭 시간 등 주요 지표에 큰 영향을 미친다는 것을 보여줬다.
  • 빙에서는 1밀리초라도 성능 개선이라도 매출 향상에 기여할 수 있음을 확인했고, 매 4밀리초의 개선으로 엔지니어 1명을 1년 고용하는 비용을 댈 수 있었다.
  • cf. 3rd party 툴의 도입이 페이지 속도를 느리게 하고 지표에 영향을 미칠 수 있음 → 목표 지표의 증가와 비용간의 트레이드 오프 효과를 비교해서 판단하는 것이 필요

 

- 실험을 통해 지표에 대한 영향을 측정하기 위한 가정

국지적 선형 근사

 

속도 저하 실험의 주요 가정은 지표 대 성능의 그래프가 현 시점의 성능값을 중심으로 하는 직선으로 잘 근사된다는 것이다.

  • 수직선의 왼쪽으로 움직인다면 나타날 지표의 변화량과 오른쪽으로 움직인다면 나타날 지표의 변화량이 거의 같을 것이라는 가정
    • 현 시점의 성능 포인트에서 그래프의 불연속성이나 극적인 변화가 있기 힘듦.
    • 그래프의 임의의 두 점을 샘플링하여 선형 근사치가 타당한지 확인.

 

- 웹사이트의 성능을 측정하는 방법

웹사이트의 성능(ex. PLT)을 측정하는 것은 자명하지 않다.

리퀘스트가 상이한 서버에서 처리되기 때문에, 지연 시간을 신뢰성있게 측정하기 위해 서버의 시계는 동기화되어야 한다.

 

클라이언트와 서버의 시간이 분리되는 예

 

  • 사용자가 경험하는 페이지 로드 시간은 T6-T0이지만, T7-T1을 측정해 근사한다.
  • cf. 새로운 W3C 표준을 지원하는 새로운 브라우저에서 네비게이션 타이밍 호출은 여러 PLT 관련 정보를 제공한다.

- 속도 저하 실험 설계

속도 저하 처치를 어디에 가하는가?

  • 부적합한 구간 : 청크1의 전송
    • 빙은 청크1을 보낼 때의 전송을 늦췄지만 영향이 너무 컸음.
    • 청크1은 계산할 것이 없어 이미 기존에도 서버에서 빠르게 전송되고 있었기에, 청크1의 지연 시간을 개선한다는 목표 자체가 실익이 없었음.
    • 청크1은 리퀘스트가 제대로 수신됐다는 피드백을 사용자에게 제공하는데, 이것이 지연된 것이 여러 부정적 영향을 가져옴.
  • 적합한 구간 : 청크2의 계산을 끝낼 때
    • 서버가 HTML을 보내는 대신 HTML의 쿼리 의존적인 부분을 생성하는 데 시간이 더 걸린 것처럼 서버로부터의 응답을 지연.

 

지연시간은 얼마나 돼야 하는가?

  • (유사한 신뢰구간 크기를 갖는다는 가정 하에)지연시간이 클수록 더 좁은 범위의 기울기를 제공하고, 이는 기울기를 더 정확하게 추정할 수 있게 함.

 

  • 지연 시간이 길다는 것은 1차 테일러 급수 근사치가 덜 정확할 수 있다는 것을 의미하므로 더 짧은 지연시간을 요구.
  • 오랜 지연 시간은 사용자들에게 더 많은 해를 끼치므로 더 짧은 지연시간을 요구.

 

절대 지연시간 vs 상대 지연시간

지리적 네트워크(-> 고객 특성)의 차이를 감안하기 위해 지연을 일정하게 할지, 일정 비율로 할지의 여부

  • 남아프리카의 빙 사용자들은 페이지 로드 시간이 매우 느려서 250밀리초 지연이 별로 느껴지지 않을 수 있음

 

세션의 처음 페이지 vs 세션 후반부의 페이지

 

- 페이지 내 영역별 영향의 차이

빙의 알고리즘 검색 결과를 보여주는 속도는 매우 중요했고, 매출과 사용자 지표에 중요한 영향을 미쳤다.

반면, 페이지의 다른 영역은 상대적으로 훨씬 덜 중요하다는 것이 밝혀졌다.

  • 빙에서 오른쪽 화면의 일부 요소가 표시되는 시간을 250밀리초 지연하는 실험을 했을 때, 트래픽이 거의 2천만명이 되었음에도 불구하고 주요 지표에 통계적으로 유의한 영향은 감지되지 않았음.

 

인지된 성능

사용자가 페이지를 충분히 볼 수 있을 때, 성능을 판단하기 시작한다.

인지된 성능을 측정하기 위한 방법론들

  • 첫 번째 결과까지의 시간
    • 트위터와 같이 리스트가 표시되면 첫 번째 트윗이 보일 때까지의 시간
  • 기본 화면 표시 시간
    • 브라우저의 초기영역(기본 화면)의 픽셀이 모두 칠해질 때까지의 시간
  • 속도지수
    • 페이지상에 보이는 요소가 표시되는 시간을 평균낸 것
    • 덜 중요한 요소가 늦게 보여지는 경우의 문제를 피할 수 있음
  • 페이지 단계 시간 및 사용자 준비 시간
    • 사용자 준비 시간은 페이지의 필수 요소가 사용할 준비가 될 때까지의 시간
  • 사용자 행동까지의 시간
    • 사용자가 예상하는 행동이 있을 때 잘 작동
    • 단순 클릭보다 성공한 클릭(<> 미끼 클릭)까지의 시간을 활용하면 더 정교한 측정이 가능
    • 단, 동작이 예상되는 경우에만 작동
      • ex. 사용자가 파리에서의 시간을 요청하고 그 답변이 뜨기만 한다면 클릭할 요소가 없음

 

- 극단적 결과

속도가 매우 중요한 반면, 속도의 영향력을 과대평가하고 있다는 결과들고 존재한다.

  • 구글에서 검색 결과 수를 10개에서 30개로 늘리는 실험을 했고, 이로 인해 실험군의 트래픽과 매출이 20% 감소했다고 주장
    • 마리사 메이어는 페이지 생성까지 0.5초 더 걸린게 원인이라고 설명했지만, 당시 여러 요인이 바뀌었고 성능이 지표 변화에 차지하는 영향은 적을 것으로 의심됨(kohavi et al. 2014)
  • Etsy에서는 200밀리초의 지연은 전혀 문제가 되지 않는다고 주장

해서, 실험 결과를 검토할 때 어떤 신뢰수준을 적용해야 하는지 고민하고,
특정 사이트에서 작용한 아이디어가 다른 사이트에서는 잘용하지 않을 수 있다는 점도 고려해야 한다.

 

cf. 드문 시나리오지만 속도가 너무 빠르면 어떤 활동이 제대로 수행됐는지 사용자가 의심할 수 있어서 일부 제품은 가짜 진행 막대를 추가하기도 함

반응형