HTTP/S 네트워크 요청 성능 데이터(모든 앱)에 대해 알아보기

Performance Monitoring은 trace를 사용하여 앱의 프로세스를 모니터링한 데이터를 수집합니다. trace는 앱에서 두 시점 간에 캡처된 데이터를 포함하는 보고서입니다.

모든 앱 유형에서 Performance Monitoring은 HTTP/S 네트워크 요청 trace라고 하는 앱에서 발생한 각 네트워크 요청에 대한 trace를 자동으로 수집합니다. 이러한 trace는 앱이 서비스 엔드포인트로 요청을 전송한 시점과 엔드포인트의 응답이 완료된 시점 간의 시간 측정항목을 수집합니다. Performance Monitoring은 앱에서 요청을 전송하는 모든 대상 엔드포인트에 대해 다음과 같은 몇 가지 측정항목을 캡처합니다.

  • 응답 시간 — 요청이 전송된 시점과 응답이 완전히 수신된 시점 사이의 시간

  • 응답 페이로드 크기 — 앱에서 다운로드한 네트워크 페이로드의 바이트 크기

  • 요청 페이로드 크기 — 앱에서 업로드한 네트워크 페이로드의 바이트 크기

  • 성공률 — 전체 응답 대비 성공한 응답의 비율(100~399 범위의 응답 코드)

성능 대시보드 하단에 있는 trace 테이블의 네트워크 요청 하위 탭에서 이러한 trace의 데이터를 확인할 수 있습니다(이 페이지의 아랫부분에서 Console 사용에 대해 자세히 알아보기).

Performance Monitoring은 다음 네트워킹 라이브러리를 사용하는 네트워크 요청의 측정항목을 자동으로 수집합니다.

Swift

  • URLSession
  • URLConnection

Objective-C

  • NSURLSession
  • NSURLConnection

네트워크 요청 데이터 집계 맞춤설정

Performance Monitoring은 네트워크 요청에 대해 즉시 사용 가능한 도구 및 데이터 집계 외에 다음 옵션을 지원합니다.

  • 네트워크 요청 trace 수동 계측: 기본 모니터링에 앱의 네트워크 요청이 대부분 포함되지만 일부 요청이 보고되지 않거나 다른 라이브러리를 사용하여 네트워크를 요청할 수 있습니다. 이러한 경우 Performance Monitoring API를 사용하여 커스텀 네트워크 요청 trace를 수동으로 계측할 수 있습니다.
  • 커스텀 URL 패턴으로 데이터 집계: Firebase가 파생된 자동 URL 패턴 매칭으로 캡처하지 않는 특정 URL이 있으면 커스텀 URL 패턴을 만들어 시간 경과에 따른 특정 URL 모음을 모니터링합니다.
  • 성공률 계산 방식 맞춤설정: 특정 API 엔드포인트에서 오류 코드가 예상되거나 이미 앱에서 오류 코드가 처리되는 경우가 있습니다. 이 경우 성공률 계산 방식을 구성하고 앱의 네트워크 호출 성공률을 더 정확하게 모니터링할 수 있습니다.

URL 패턴에 따른 데이터 집계

Firebase Performance Monitoring은 유사한 네트워크 요청에 대한 데이터를 자동으로 집계하여 네트워크 요청 성능의 추세를 파악하는 데 도움을 줍니다.

각 요청에 대해 Firebase는 네트워크 요청의 URL이 URL 패턴과 일치하는지 확인합니다. 요청 URL이 URL 패턴과 일치하면 Firebase에서 자동으로 요청의 데이터를 해당 URL 패턴에 집계합니다. Firebase Console에서 성능 대시보드네트워크 탭에 URL 패턴과 집계된 데이터가 표시됩니다.

URL 패턴이란?

URL 패턴은 도메인, 그리고 URL 경로와 일치할 수 있는 패턴으로 구성됩니다(예: example.com/*/animals/**).

  • URL 패턴에는 다음 경로 세그먼트가 포함될 수 있습니다.

    • 일반 텍스트 - 정확한 문자열과 일치합니다.
    • * - 단일 경로 세그먼트 내 임의 문자열과 일치합니다.
    • ** - 임의 경로 서픽스와 일치합니다.
  • URL 패턴은 다음 중 하나일 수 있습니다.

예: 다음 URL 요청은 URL 패턴 example.com/*/animals/**와 일치할 수 있습니다.

  • example.com/singapore/animals
  • example.com/australia/animals/spiders
  • example.com/australia/animals/marsupials/koala.png

URL 패턴의 도메인에도 *가 첫 번째 세그먼트로 포함될 수 있습니다(예: *.example.com/*/fruits/**).

Firebase는 각 요청을 하나의 URL 패턴에만 매핑합니다. 커스텀 URL 패턴을 구성한 경우 Firebase는 먼저 해당 패턴과 요청 URL의 매칭을 시도합니다. Firebase는 일치하는 커스텀 URL 패턴을 찾지 못하면 요청 URL을 가장 대표적인 자동 URL 패턴과 매칭합니다. 다음 섹션에서 자동 및 커스텀 URL 패턴에 대해 자세히 알아보세요.

자동 URL 패턴

사용자가 구성한 항목이 없으면 Performance Monitoring은 자동 URL 패턴과 앱의 요청을 매칭하여 앱의 최근 사용 행태를 반영합니다.

자동 URL 패턴 매칭은 어떻게 작동하나요?

Firebase는 각 요청을 앱에서 보낸 요청에서 파생된 가장 대표적인 자동 URL 패턴과 비교합니다. Firebase는 먼저 구성된 커스텀 URL 패턴과 요청 URL의 매칭을 시도합니다.

다음은 Firebase가 앱에서 가장 대표적인 자동 URL 패턴과 요청의 매칭을 시도하는 방법을 설명한 기본적인 예시입니다.

  1. 앱에서 다음과 같은 URL로 여러 요청을 보냅니다.

    • example.com/germany/animals/bears
    • example.com/germany/animals/birds
    • example.com/germany/cars

    Firebase는 example.com/germany/**가 앱의 일반적인 요청 패턴임을 확인하고 프로젝트의 자동 URL 패턴으로 이를 추가합니다.

    이 URL 패턴과 일치하는 새로운 요청이 있을 때마다 Firebase는 자동 URL 패턴 example.com/germany/**에 해당 요청의 데이터를 집계합니다.

  2. 일주일 후 앱 요청의 대부분이 example.com/germany/animals/bearsexample.com/germany/animals/birds로 전송됩니다. 따라서 Firebase는 더 대표적인 URL 패턴인 example.com/germany/animals/**를 파생시킵니다.

    이 새 URL 패턴과 일치하는 새로운 요청이 있을 때마다 Firebase는 오직 새로운 URL 패턴에만 해당 요청의 데이터를 집계합니다. Firebase는 example.com/germany/cars에 대한 요청 데이터를 example.com/germany/**에 계속 집계합니다.

  3. 그런데 다음 몇 주 동안 앱의 example.com/germany/animals/bearsexample.com/germany/animals/birds에 대한 요청이 급격히 감소합니다. Firebase는 example.com/germany/animals/**가 앱의 최신 사용 행태를 대표하지 않음을 확인하고 이러한 두 요청을 다시 example.com/germany/**에 매칭하기 시작합니다.

    example.com/germany/animals/**는 더 이상 가장 대표적인 자동 URL 패턴이 아니므로 Firebase는 여기에 요청 데이터를 더 이상 집계하지 않습니다.

자동 URL 패턴 매칭은 동적이므로 다음 사항에 유의하세요.

  • 이전 요청의 일치 항목 및 집계된 데이터는 새 URL 패턴의 영향을 받지 않습니다. Firebase는 요청 데이터를 소급하여 다시 집계하지 않습니다.

  • 이후 요청만 새로운 URL 패턴의 영향을 받습니다. Firebase는 각 새로운 요청을 가장 대표적인 자동 URL 패턴에 매핑합니다. Firebase는 먼저 구성된 커스텀 URL 패턴과 요청 URL의 매칭을 시도합니다.

자동 URL 패턴 및 해당 데이터 보기

Firebase에서는 모든 URL 패턴과 집계된 데이터를 trace 테이블의 네트워크 요청 하위 탭에 표시합니다. trace 테이블은 Firebase Console의 성능 대시보드 하단에서 확인할 수 있습니다.

카테고리 없음 라벨이 지정된 URL 패턴이 표시될 수 있습니다. 이는 Firebase에서 더 구체적인 URL 패턴과 일치하지 않는 요청에 대한 데이터를 집계할 수 있는 '광범위한' 자동 URL 패턴입니다.

URL 패턴에 집계된 데이터의 데이터 보관 기간이 종료되면 URL 패턴에서 해당 데이터가 삭제됩니다. 자동 URL 패턴에 집계된 모든 데이터가 만료되면 Firebase는 해당 URL 패턴을 Firebase Console에서 삭제합니다.

커스텀 URL 패턴

커스텀 URL 패턴을 만들어 Firebase가 파생된 자동 URL 패턴 매칭으로 캡처하지 않는 특정 URL 패턴을 모니터링할 수 있습니다. 예를 들어 커스텀 URL 패턴을 사용하여 특정 URL의 문제를 해결하거나 시간의 경과에 따라 특정 URL 집합을 모니터링할 수 있습니다.

자세한 내용은 커스텀 URL 패턴 만들기를 참조하세요.

성능 데이터 추적, 보기, 필터링

실시간 성능 데이터를 보려면 앱에서 실시간 데이터 처리와 호환되는 Performance Monitoring SDK 버전을 사용해야 합니다. 실시간 성능 데이터에 대해 자세히 알아보기

대시보드에서 특정 측정항목 추적

주요 측정항목의 추세를 알아보려면 측정항목을 성능 대시보드 상단에서 측정항목 보드에 추가하세요. 주별 변동사항을 확인하여 회귀를 빠르게 파악하거나 코드의 최근 변동사항이 성능을 개선하는지 확인할 수 있습니다.

Firebase Performance Monitoring 대시보드의 측정항목 보드 이미지

측정항목 보드에 측정항목을 추가하려면 다음 단계를 따르세요.

  1. Firebase Console의 성능 대시보드로 이동합니다.
  2. 빈 측정항목 카드를 클릭한 다음 보드에 추가할 기존 측정항목을 선택합니다.
  3. 추가 옵션(예: 측정항목 교체 또는 삭제)을 보려면 채워진 측정항목 카드에서 를 클릭합니다.

측정항목 보드에는 시간 경과에 따라 수집된 측정항목 데이터가 그래픽 형식 및 백분율 수치 변화의 형태로 표시됩니다.

대시보드 사용에 대해 자세히 알아보세요.

trace 및 데이터 보기

trace를 보려면 Firebase Console의 성능 대시보드로 이동하여 trace 테이블까지 아래로 스크롤한 다음 적절한 하위 탭을 클릭합니다. 테이블에는 각 trace의 주요 측정항목이 표시되며 특정 측정항목의 변화율을 기준으로 목록을 정렬할 수도 있습니다.

Performance Monitoring은 Firebase Console에서 측정항목 변경사항을 강조하는 문제 해결 페이지를 제공하므로 성능 문제가 앱과 사용자에게 미치는 영향을 빠르게 해결하고 최소화할 수 있습니다. 예를 들어 다음 시나리오에서 잠재적 성능 문제에 대해 알아볼 때 문제 해결 페이지를 사용할 수 있습니다.

  • 대시보드에서 관련 측정항목을 선택하면 큰 델타가 표시됩니다.
  • trace 테이블에서 상단에 가장 큰 델타가 표시되도록 정렬하면 상당한 비율의 변화가 표시됩니다.
  • 성능 문제를 알리는 이메일 알림이 전송됩니다.

다음과 같은 방법으로 문제 해결 페이지에 액세스할 수 있습니다.

  • 측정항목 대시보드에서 측정항목 세부정보 보기 버튼을 클릭합니다.
  • 측정항목 카드에서 => 세부정보 보기를 선택합니다. 문제 해결 페이지에는 선택한 측정항목에 대한 정보가 표시됩니다.
  • trace 테이블에서 trace 이름 또는 해당 trace와 연결된 행의 측정항목 값을 클릭합니다.
  • 이메일 알림에서 지금 조사하기를 클릭합니다.

trace 테이블에서 trace 이름을 클릭하면 관심 있는 측정항목을 드릴다운할 수 있습니다. 필터 버튼을 클릭하여 속성별로 데이터를 필터링합니다. 예를 들면 다음과 같습니다.

속성별로 필터링되는 Firebase Performance Monitoring 데이터의 이미지
  • 앱 버전별로 필터링하여 이전 또는 최신 출시 버전에 대한 데이터를 확인합니다.
  • 기기별로 필터링하여 이전 기기가 앱을 처리하는 방법을 알아봅니다.
  • 국가별로 필터링하여 데이터베이스 위치가 특정 리전에 영향을 미치지 않는지 확인합니다.

trace 데이터 보기에 대해 자세히 알아보세요.

다음 단계

  • 속성을 사용하여 성능 데이터 검사 방법 자세히 알아보기

  • Firebase Console에서 성능 문제 추적 방법 자세히 알아보기

  • 앱 성능을 저하시키는 네트워크 요청에 대한 알림 설정하기. 예를 들어 특정 URL 패턴의 응답 시간이 설정된 기준을 초과하면 팀에 이메일 알림을 보내도록 구성할 수 있습니다.

  • 동일한 세션 동안 수집된 다른 trace의 타임라인 컨텍스트에서 특정 trace를 볼 수 있는 사용자 세션의 상세 보고서 확인하기