모던 리액트 Deep Dive 책을 읽으며 정리한 내용을 공유합니다. 책 링크
import React from ‘react’ 가 필요없음
(새로운 JSX transform 으로 tsconfig.json 의 jsx 를 react-jsx 등으로 변경하면 됨)<Suspense fallback={undefined} />
도 null 과 동일하게 처리됨.<img>
<svg> 내부의 <image>
<video>
<p>, <div>
등이 포함됨.탐색 모드 : 일반적으로 페이지에 접속했을 때부터 페이지 로딩이 완료될 때까지의 성능을 측정하는 모드로 지표 수집이 완료되면 리포트가 생성되는 걸 확인할 수 있는데 각 내용의 의미는 다음과 같다
성능 : 웹페이지의 성능과 관련된 지표를 확인할 수 있는 영역으로 핵심 웹 지표인 최초 콘텐츠풀 페인트, 최대 콘텐츠풀 페인트, 누적 레이아웃 이동 외에도 지원하는 추가 지표가 있는데 이는 아래와 같음.
Time to Interactive : 페이지에서 사용자가 완전히 상호작용할 수 있을 때까지 걸리는 시간을 측정
Speed Index : 페이지가 로드되는 동안 콘텐츠가 얼마나 빨리 시각적으로 표시되는지를 계산
Total Blocking Time : 메인 스레드에서 특정 시간 이상 실행되는 작업으로 긴 작업이 수행될 때마다 메인 스레드가 차단된 것으로 간주.
접근성 : 웹 접근성으로, 장애인 및 고령자 등 신체적으로 불편한 사람들이 일반적인 사용자와 동등하게 웹페이지를 이용할 수 있도록 보장하는 것을 뜻함.
권장사항 : 웹사이트를 개발할 때 고려해야 할 요소들을 얼마나 지키고 있는 지 확인할 수 있는 지표로 보안, 표준 모드, 최신 라이브러리, 소스 맵 등 다양한 요소들이 포함되어 있음,
검색 엔진 최적화 : 웹페이지가 구글과 같은 검색엔진이 쉽게 웹페이지 정보를 가져가서 공개할 수 있도록 최적화되어 있는지를 확인
기간 모드 : 실제 웹페이지를 탐색하는 동안 지표를 측정하는 것으로, 기간 모드 시작을 누른 뒤 성능 측정을 원하는 작업을 수행한 다음, 기간 모드를 종료하면 그 사이 일어난 작업들에 대한 지표를 확인할 수 있음. (탐색 모드에서 지원한 지표들과 추가로 아래 지표를 지원함)
흔적 : 웹 성능을 추적한 시간을 성능 탭에서 보여주는데, 시간의 흐름에 따라 어떻게 웹페이지가 로딩되었는 지 상세하게 보여줌
트리맵 : 페이지를 불러올 때 함께 로딩한 모든 리소스를 함께 모아서 볼 수 있는 곳으로 리소스 중 어떠한 파일이 전체 데이터 로딩에서 어느 정도를 차지했는 지 비율로 확인할 수 있으며, 실제 불러온 데이터의 크기도 확인할 수 있음.
스냅샷 모드 : 탐색 모드와 매우 유사하지만 현재 페이지 상태를 기준으로 분석하다는 점이 다름. 즉, 현재 상태에서 검색엔지의 최적화, 접근성, 성능 등을 분석할 수 있음. 페이지 로딩이 아닌 특정 페이지의 특정 상태를 기준으로 분석하고 싶다면 스냅샷 모드를 사용하면 됨. (스냅샷 모드의 지표는 탐색 모드와 매우 유사)
<a> 태그의 값에 적절한 제한을 둬야 한다
<a> 태그는 반드시 페이지 이동이 있을 때만 사용하고, 페이지 이동 없이 어떠한 핸들러만 작동시키고 싶다면 <a> 보다는 <button>을 사용하는 것이 좋음
<expire-time>
은 이 설정을 브라우저가 기억해야 하는 시간을 의미