[모던 리액트 딥다이브] 6장 리액트 개발 도구

2024. 8. 17. 18:32· FE/리뷰

리액트 개발 도구란?
  • 리액트 팀은 리액트 애플리케이션의 원활한 개발을 위한 개발 도구인 react-dev-tools를 만들어 제공함
  • 리액트로 만들어진 다양한 애플리케이션을 디버깅하기 위해 만들어짐
  • 브라우저 확장 프로그램을 사용해 사용할 수 있음

 

Components 탭
  • 리액트 애플리케이션의 컴포넌트 트리 확인 가능
  • 컴포넌트의 구조뿐만 아니라 props와 내부 hooks 등 다양한 정보 확인 가능
  • 정보
    • 컴포넌트 트리
      • 해당 리액트 페이지의 컴포넌트 트리를 나타냄
      • 기명 함수로 선언된 컴포넌트는 해당 컴포넌트명을, 익명 함수로 선언돼 있다면 Anonymous라는 이름으로 컴포넌트를 보여줌
      • 명확하게 컴포넌트를 확인하려면 기명 함수로 선언하는 것이 개발 도구에서 확인하는 데 많은 도움을 줌
      • 혹은 displayName 속성을 추가할 수 있음 (고차 컴포넌트는 일반적으로 고차컴포넌트와 일반 컴포넌트의 조합으로 구성되므로 displayName을 잘 설정하면 디버깅하는데 많은 도움이 됨)
    • 컴포넌트명과 props
      • 왼쪽 컴포넌트 트리에서 컴포넌트를 선택했을 때 해당 컴포넌트에 대한 자세한 정보를 보여주는 영역
      • 컴포넌트명과 key
        • 컴포넌트의 명칭과 해당 컴포넌트를 나타냄
      • 컴포넌트 도구
        • 눈 아이콘 : 해당 컴포넌트가 HTML의 어디에서 렌더링됐는지 확인 가능. 누르는 즉시 크롬 개발 도구의 메뉴 중 하나인 요소 탭으로 이동하며, 해당 컴포넌트가 렌더링한 HTML 요소가 선택되는 것을 볼 수 있음
        • 벌레 아이콘 : 클릭하는 순간 콘솔 탭에 해당 컴포넌트의 정보가 console.log를 실행해 기록됨. 여기에는 해당 컴포넌트가 받는 props, 컴포넌트 내부에서 사용하는 hooks, 해당 컴포넌트의 HTML 요소인 nodes가 기록됨
        • 소스코드 아이콘 : 해당 컴포넌트의 소스코드 확인 가능. {} 버튼을 누르면 난독화된 코드를 읽고, 디버깅할 때 매우 유용하게 사용 가능
      • 컴포넌트 props
        • 해당 컴포넌트가 받은 propss를 확인할 수 있음
        • 단순한 원시값뿐 아니라 함수도 포함돼 있음
      • 컴포넌트 hooks
        • 컴포넌트에서 사용 중인 훅 정보 확인 가능
        • State : useState
        • Reducer : useReducer
        • Context : useContext
        • Memo : useMemo
        • Callback : useCallback
        • Ref : useRef
        • id : useId
        • LayoutEffect : useLayoutEffect
        • Effect : useEffect
        • 사용자 정의 훅
      • 컴포넌트를 렌더링한 주체, rendered by
        • 해당 컴포넌트를 렌더링한 주체가 누구인지 확인 가능

 

Profiler 탭
  • 리액트가 렌더링하는 과정에서 발생하는 상황을 확인하기 위한 도구
  • 리액트 애플리케이션이 렌더링되는 과정에서 어떤 컴포넌트가 렌더링됐는지, 또 몇 차례나 렌더링이 일어났으며 어떤 작업에서 오래 걸렸는지 등 컴포넌트의 렌더링 과정에서 발생하는 일을 확인할 수 있음
  • 프로덕션 빌드로 실행되는 리액트 애플리케이션에서는 사용할 수 없음 => 개발 모드 리액트 애플리케이션만 가능
  • 정보
    • Flamegraph
      • 렌더 커밋별로 어떠한 작업이 일어났는지 나타냄
      • 너비가 넓을수록 해당 컴포넌트를 렌더링하는 데 오래 걸렸다는 의미
      • 회색 : 아예 렌더링되지 않은 컴포넌트
      • 녹색 : 빠르게 렌더링된 컴포넌트
      • 노란색 : 렌더링에 오래 걸린 컴포넌트
    • Ranked
      • 해당 커밋에서 렌더링하는 데 오랜 시간이 걸린 컴포넌트를 순서대로 나열한 그래프
      • 단순히 렌더링이 발생한 컴포넌트만 보여줌
    • Timeline
      • 시간이 지남에 따라 컴포넌트에서 어떤 일이 일어났는지 확인할 수 있음
      • 업데이트 과정, 동기로 됐는지, 언제 업데이트가 일어났는지 등을 확인할 수 있음
      • 시간 단위로 프로파일링 기간 동안 무슨 일이 일어났는지, 무엇이 렌더링됐고, 또 어떤 시점에 렌더링됐는지, 리액트의 유후 시간은 어느 정도였는지 등을 자세히 확인 가능

 

'FE > 리뷰' 카테고리의 다른 글

[모던 리액트 딥다이브] 8장 ESLint와 테스트 라이브러리  (3) 2024.09.04
[모던 리액트 딥다이브] 7장 크롬 개발자 도구를 활용한 애플리케이션 분석  (0) 2024.08.17
[모던 리액트 딥다이브] 5.2장 리액트 훅으로 시작하는 상태 관리  (0) 2024.08.11
[모던 리액트 딥다이브] 5.1장 상태 관리  (0) 2024.08.11
[모던 리액트 딥다이브] 4.3장 Next.js  (1) 2024.08.04
'FE/리뷰' 카테고리의 다른 글
  • [모던 리액트 딥다이브] 8장 ESLint와 테스트 라이브러리
  • [모던 리액트 딥다이브] 7장 크롬 개발자 도구를 활용한 애플리케이션 분석
  • [모던 리액트 딥다이브] 5.2장 리액트 훅으로 시작하는 상태 관리
  • [모던 리액트 딥다이브] 5.1장 상태 관리
따봉치치
따봉치치
따봉치치
김치치의개발블로그
따봉치치
전체
오늘
어제
  • 분류 전체보기 (359)
    • 면접질문 (4)
    • CS (50)
    • FE (116)
      • Javascipt (16)
      • Typescipt (6)
      • React (16)
      • CSS (5)
      • Nextjs (1)
      • 리뷰 (70)
    • Algorithm (181)
    • ETC (3)
      • Bootcamp (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리액트
  • CS
  • BOJ
  • react
  • 자바스크립트
  • 그래프 탐색
  • 탐욕 알고리즘
  • 데이터베이스
  • 자료구조
  • 투 포인터
  • 모던 리액트 딥다이브
  • javascript
  • Stack
  • 완전탐색
  • Fe
  • 백준
  • 알고리즘
  • 누적합
  • Greedy
  • dp
  • 우선순위 큐
  • BFS
  • typescript
  • 스택
  • 그리디
  • 문자열
  • 백트래킹
  • 모던 자바스크립트 딥다이브
  • TOPCIT
  • C++

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
따봉치치
[모던 리액트 딥다이브] 6장 리액트 개발 도구
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.