Interaction to Next Paint(다음 페인트와의 상호작용)(INP)

브라우저 지원

  • 96
  • 96
  • x
  • x

소스

Chrome 사용 데이터에 따르면 사용자가 페이지 로드 에 머문 시간 중 90% 를 페이지 수명 주기 전체에 걸쳐 주의 깊게 측정하는 것이 중요합니다. INP 측정항목이 평가합니다.

우수한 응답성은 페이지가 페이지와의 상호작용에 빠르게 반응한다는 것을 의미합니다. 페이지가 상호작용에 응답하면 결과는 시각적 피드백이며, 이는 브라우저가 표시하는 다음 프레임에서 브라우저가 제공합니다. 시각적 피드백을 통해 예를 들어 온라인 장바구니에 추가한 항목이 실제로 추가되는지, 모바일 탐색 메뉴가 열렸는지, 로그인 양식의 콘텐츠가 서버에서 인증되었는지 등을 알 수 있습니다.

어떤 상호작용은 다른 상호작용보다 자연스럽게 시간이 더 걸릴 수 있지만, 특히 복잡한 상호작용의 경우 몇 가지 초기 시각적 피드백을 사용자에게 무언가 발생하고 있다는 신호로 빠르게 제시하는 것이 중요합니다. 다음 페인트까지의 시간이 이 작업을 할 수 있는 가장 이른 기회입니다. 따라서 INP의 목적은 상호작용의 모든 최종 효과 (예: 다른 비동기 작업의 네트워크 가져오기 및 UI 업데이트)를 측정하는 것이 아니라 다음 페인트가 차단되는 시간을 측정하는 것입니다. 시각적 피드백을 지연하면 페이지가 사용자의 동작에 반응하지 않는다는 느낌을 사용자에게 줄 수 있습니다.

INP의 목표는 사용자가 상호작용을 시작한 시점부터 다음 프레임이 그려질 때까지의 시간을 사용자가 수행하는 모든 상호작용 또는 대부분의 상호작용에서 최대한 짧게 유지하는 것입니다.

다음 동영상에서 오른쪽 예는 아코디언이 열리는 즉시 시각적 피드백을 제공합니다. 또한 응답성이 부족하면 사용자가 경험이 손상되었다고 생각하기 때문에 입력에 대해 의도하지 않은 여러 응답이 어떻게 발생할 수 있는지도 보여줍니다.

낮은 응답성과 양호한 응답성의 예입니다. 왼쪽에서 장기 작업은 아코디언이 열리지 않도록 차단합니다. 이로 인해 사용자는 사용 환경에 문제가 있는 것으로 생각하고 여러 번 클릭합니다. 기본 스레드가 따라잡을 때 지연된 입력을 처리하여 아코디언이 예기치 않게 열리고 닫힙니다.

이 도움말에서는 INP의 작동 방식과 측정 방법을 설명하고 INP 개선을 위한 리소스를 안내합니다.

INP란 무엇인가요?

INP는 사용자가 페이지를 방문하는 전체 기간에 발생하는 모든 클릭, 탭, 키보드 상호작용의 지연 시간을 관찰하여 사용자 상호작용에 대한 페이지의 전반적인 응답성을 평가하는 측정항목입니다. 최종 INP 값은 관찰된 가장 긴 상호작용이며 이상점을 무시합니다.

INP 계산 방법에 대한 참고사항

위에서 설명한 것처럼 INP는 페이지와의 모든 상호작용을 관찰하여 계산됩니다. 대부분의 사이트에서는 최악의 지연 시간 상호작용이 INP로 보고됩니다. 그러나 상호작용이 많은 페이지의 경우, 평상시와 달리 반응형 사이트에서 랜덤 오류가 발생하면 비정상적으로 많은 상호작용이 발생할 수 있습니다. 상호작용이 많을수록 이런 일이 일어날 가능성도 높아집니다. 이러한 문제에 대응하고 이러한 유형의 페이지에 대한 실제 응답성을 더 정확하게 측정하기 위해 Google에서는 50회의 상호작용마다 가장 높은 상호작용을 무시합니다. 대부분의 페이지 경험은 상호작용이 50회를 넘지 않으므로 최악의 상호작용이 보고됩니다. 그런 다음 모든 페이지 조회의 75번째 백분위수가 평소와 같이 보고되며, 이상점을 추가로 제거하여 대다수 사용자가 경험하는 또는 더 나은 값을 제공합니다.

상호작용은 동일한 논리적 사용자 동작 중에 실행되는 이벤트 핸들러 그룹입니다. 예를 들어 터치스크린 기기의 '탭' 상호작용에는 pointerup, pointerdown, click 등 여러 이벤트가 포함됩니다. 상호작용은 자바스크립트, CSS, 기본 제공 브라우저 컨트롤 (예: 양식 요소) 또는 이들의 조합에 의해 발생할 수 있습니다.

상호작용의 지연 시간은 사용자가 상호작용을 시작한 시점부터 다음 프레임에 시각적 피드백이 표시되는 순간까지 상호작용을 유도하는 이벤트 핸들러 그룹에서 가장 긴 단일 기간으로 구성됩니다.

좋은 INP 점수란 무엇인가요?

'좋음' 또는 '나쁨'과 같은 라벨을 응답성 측정항목에 고정하기는 어렵습니다. 한편, 여러분은 우수한 응답성을 우선시하는 개발 관행을 장려해야 합니다. 반면, 사용자가 달성 가능한 개발 기대치를 설정하기 위해 사용하는 기기의 기능은 상당히 달라질 수 있다는 사실을 고려해야 합니다.

우수한 응답성으로 사용자 환경을 제공하려면 필드에 기록되는 페이지 로드의 75번째 백분위수를 모바일 및 데스크톱 기기별로 세분화하여 측정해야 합니다.

  • INP가 200밀리초 이하라면 페이지의 응답성이 양호하다는 의미입니다.
  • INP가 200밀리초 이하 또는 500밀리초이면 페이지 응답성을 개선해야 함을 의미합니다.
  • INP가 500밀리초를 초과하면 페이지의 응답성이 좋지 않음을 의미합니다.
적절한 INP 값은 200밀리초 이하이고, 좋지 않은 값은 500밀리초보다 크고, 그 사이의 값은 개선이 필요합니다.

상호작용이란 무엇인가요?

기본 스레드의 상호작용을 보여주는 다이어그램 사용자가 작업 실행을 차단하면서 입력합니다. 입력은 이러한 작업이 완료될 때까지 지연되고, 이후 포인터 업, 마우스업, 클릭 이벤트 핸들러가 실행된 후 다음 프레임이 표시될 때까지 렌더링 및 페인팅 작업이 시작됩니다.
상호작용의 수명입니다. 기본 스레드의 긴 작업과 같은 요인으로 인해 이벤트 핸들러가 실행될 때까지 입력 지연이 발생합니다. 그러면 상호작용의 이벤트 핸들러가 실행되고 다음 프레임이 표시되기 전에 지연이 발생합니다.

상호작용의 기본 동인은 대개 자바스크립트이지만 브라우저는 체크박스, 라디오 버튼, CSS에서 제공하는 컨트롤과 같이 JavaScript로 구동되지 않는 컨트롤을 통해 상호작용을 제공합니다.

INP가 적용되는 한, 다음과 같은 상호작용 유형만 관찰됩니다.

  • 마우스로 클릭합니다.
  • 터치스크린이 있는 기기를 탭합니다.
  • 물리적 키보드 또는 터치 키보드의 키 누르기

상호작용은 기본 문서 또는 문서에 삽입된 iframe에서 발생합니다(예: 삽입된 동영상에서 재생 클릭). 최종 사용자는 iframe에 무엇이 있는지 알지 못합니다. 따라서 최상위 페이지의 사용자 환경을 측정하려면 iframe 내 INP가 필요합니다. JavaScript Web API는 iframe 콘텐츠에 액세스할 수 없으므로 iframe 내에서 INP를 측정하지 못할 수 있으며 이는 CrUX와 RUM의 차이로 표시됩니다.

상호작용은 두 부분으로 구성될 수 있으며, 각 부분에는 여러 개의 이벤트가 있습니다. 예를 들어 키 입력은 keydown, keypress, keyup 이벤트로 구성됩니다. 탭 상호작용에는 pointeruppointerdown 이벤트가 포함됩니다. 상호작용 내에서 지속 시간이 가장 긴 이벤트가 상호작용의 지연 시간으로 선택됩니다.

두 가지 상호작용이 포함된 좀 더 복잡한 상호작용의 묘사 첫 번째는 마우스 버튼을 놓기 전에 프레임을 생성하는 마우스 다운 이벤트입니다. 이 이벤트에서는 또 다른 프레임이 결과로 표시될 때까지 더 많은 작업이 시작됩니다.
여러 이벤트 핸들러와의 상호작용을 묘사합니다. 상호작용의 첫 번째 부분에서는 사용자가 마우스 버튼을 클릭하면 입력을 수신합니다. 그러나 마우스 버튼을 놓기 전에 프레임이 표시됩니다. 사용자가 마우스 버튼에서 손을 떼면 다음 프레임이 표시되기 전에 다른 일련의 이벤트 핸들러가 실행되어야 합니다.

INP는 사용자가 페이지를 떠날 때 계산되며, 그 결과로 전체 페이지의 수명 주기 동안 페이지의 전반적인 응답성을 나타내는 단일 값이 생성됩니다. INP가 낮으면 페이지가 사용자 입력에 안정적으로 반응한다는 의미입니다.

INP는 최초 입력 반응 시간 (FID)과 어떻게 다른가요?

INP에서 모든 페이지 상호작용을 고려하는 경우 첫 입력 지연 (FID)첫 번째 상호작용만 고려합니다. 또한 첫 번째 상호작용의 입력 지연만 측정하며 이벤트 핸들러를 실행하는 데 걸리는 시간 또는 다음 프레임 표시 지연은 측정하지 않습니다.

FID가 로드 반응성 측정항목이기도 한 점을 고려할 때, 로드 단계에서 페이지와의 첫 번째 상호작용이 체감할 수 있는 입력 지연이 거의 없거나 전혀 없으면 페이지에서 좋은 첫인상을 주었기 때문입니다.

INP는 단순한 첫인상이 아닌 모든 상호작용을 샘플링함으로써 응답성을 포괄적으로 평가할 수 있으므로 INP는 FID보다 전반적인 응답성을 더 정확하게 나타내는 지표가 됩니다.

INP 값이 보고되지 않으면 어떻게 하나요?

페이지에서 INP 값을 반환하지 못할 수 있습니다. 표시되지 않는 원인으로는 여러 가지가 있습니다.

  • 페이지가 로드되었지만 사용자가 키보드의 키를 클릭하거나 탭하거나 누르지 않았습니다.
  • 페이지가 로드되었지만 사용자가 클릭, 탭, 키보드 사용이 포함되지 않은 동작을 사용하여 페이지와 상호작용했습니다. 예를 들어 스크롤하거나 요소 위로 마우스를 가져가는 것은 INP 계산 방식에 영향을 주지 않습니다.
  • 페이지와 상호작용하도록 스크립트가 작성되지 않은 검색 크롤러 또는 헤드리스 브라우저와 같은 봇이 페이지에 액세스하고 있습니다.

INP 측정 방법

INP는 다양한 도구를 사용하여 현장실험실에서 모두 측정할 수 있습니다.

현장

INP 최적화 여정은 필드 데이터에서 시작하는 것이 이상적입니다. 최적으로 Real User Monitoring (RUM)의 필드 데이터는 페이지의 INP 값뿐만 아니라 INP 값 자체에 기여한 특정 상호작용, 페이지 로드 중 또는 이후에 발생한 상호작용, 상호작용 유형 (클릭, 키 누름 또는 탭), 기타 중요한 정보를 보여주는 문맥 데이터도 제공합니다.

웹사이트가 Chrome 사용자 환경 보고서 (CrUX) 포함 요건을 충족하는 경우 PageSpeed Insights의 CrUX (및 기타 코어 웹 바이탈)를 통해 INP의 필드 데이터를 빠르게 확인할 수 있습니다. 최소한 웹사이트의 INP에 대한 출처 수준의 그림을 가져올 수 있지만 경우에 따라 페이지 수준 데이터도 가져올 수 있습니다.

그러나 CrUX는 개괄적인 문제가 있다는 것을 알리는 데 유용하지만 문제를 완전히 이해하는 데 도움이 되는 세부 정보를 충분히 제공하지 않는 경우가 많습니다. RUM 솔루션을 사용하면 상호작용이 느린 페이지, 사용자 또는 사용자 상호작용을 더 자세히 살펴볼 수 있습니다. 개별 상호작용에 INP를 기여할 수 있으면 추측에 의존하거나 노력의 낭비를 방지할 수 있습니다.

실험실

상호작용이 느리다는 것을 시사하는 필드 데이터가 확보되면 실험실에서 테스트를 시작하는 것이 좋습니다. 하지만 현장 데이터가 없는 경우 실험실에서 느린 상호작용을 재현하기 위한 몇 가지 전략이 있습니다. 이러한 전략으로는 일반적인 사용자 플로우를 따르고 그 과정에서 상호작용을 테스트하는 것은 물론, 사용자 환경의 중요한 부분에서 느린 상호작용을 표시하기 위해 기본 스레드가 가장 많이 사용되는 로드 중에 페이지와 상호작용하는 것 등이 포함됩니다.

INP 개선 방법

INP 최적화를 위한 가이드 모음에서 현장에서 느린 상호작용을 식별하고 실험실 데이터를 사용하여 다양한 방법으로 상세히 살펴보고 최적화하는 과정을 확인할 수 있습니다.

변경 로그

측정항목을 측정하는 데 사용되는 API에서 버그가 발견되기도 하고 측정항목 자체의 정의에서 발견되는 경우도 있습니다. 따라서 변경이 필요한 경우도 있으며, 이러한 변경사항은 내부 보고서와 대시보드에서 개선되거나 회귀된 것으로 나타날 수 있습니다.

이러한 측정항목을 쉽게 관리할 수 있도록 이러한 측정항목의 구현 또는 정의에 대한 모든 변경사항이 이 변경 로그에 표시됩니다.

이러한 측정항목에 관한 의견이 있으면 web-vitals-feedback Google 그룹에 작성해 주세요.