DevTools의 새로운 기능 (Chrome 70)

다시 방문해 주셔서 감사합니다. Chrome 68 관련 최종 업데이트 이후 약 12주가 지났습니다. 게시물을 작성할 만큼 새로운 기능이나 UI 변경사항이 충분하지 않았기 때문에 Chrome 69는 건너뛰었습니다.

Chrome 70에서 DevTools에 제공되는 새로운 기능과 주요 변경사항은 다음과 같습니다.

이 문서를 계속 읽거나 동영상 버전 보기:

콘솔의 라이브 표현식

실시간 표현을 Play Console 상단에 고정하면 그 값을 실시간으로 모니터링할 수 있습니다.

  1. Create Live Expression 라이브 표현 만들기을 클릭합니다. Live Expression UI가 열립니다.

    Live Expression UI

    그림 1. Live Expression UI

  2. 모니터링할 표현식을 입력합니다.

    Live Expression UI에 Date.now() 입력

    그림 2. Live Expression UI에 Date.now() 입력

  3. Live Expression UI 외부를 클릭하여 표현식을 저장합니다.

    저장된 Live Expression입니다.

    그림 3. 저장된 Live Expression

실시간 표현 값은 250밀리초마다 업데이트됩니다.

Eager Evaluation 동안 DOM 노드 강조표시

콘솔에서 DOM 노드로 평가되는 표현식을 입력하면 Eager Evaluation 시 표시 영역에서 해당 노드가 강조 표시됩니다.

Console에 document.activeElement를 입력하면 표시 영역에서 노드가 강조 표시됩니다.

그림 4. 현재 표현식은 노드로 평가되므로 해당 노드는 표시 영역에서 강조표시됩니다.

다음은 유용하게 사용할 수 있는 표현식입니다.

  • document.activeElement: 현재 포커스가 있는 노드를 강조 표시합니다.
  • document.querySelector(s): 임의의 노드를 강조 표시합니다. 여기서 s는 CSS 선택자입니다. 이는 DOM 트리의 노드 위로 마우스를 가져가는 것과 같습니다.
  • $0: DOM 트리에서 현재 선택된 노드를 강조표시합니다.
  • $0.parentElement: 현재 선택된 노드의 상위 요소를 강조 표시합니다.

성능 패널 최적화

이전에는 대용량 페이지를 프로파일링할 때 Performance 패널에서 데이터를 처리하고 시각화하는 데 수십 초가 걸렸습니다. 요약 탭에서 이벤트를 자세히 알아보기 위해 클릭한 경우에도 로드하는 데 몇 초가 걸리는 경우도 있었습니다. Chrome 70에서는 처리와 시각화가 더 빨라집니다.

성능 데이터 처리 및 로드

그림 5. 성능 데이터 처리 및 로드

보다 안정적인 디버깅

Chrome 70에서는 중단점이 사라지거나 트리거되지 않는 버그를 수정했습니다.

소스 맵과 관련된 버그도 수정합니다. 일부 TypeScript 사용자는 코드를 단계별로 실행하는 동안 DevTools에 특정 TypeScript 파일을 무시하도록 지시하지만, 대신 DevTools에서 번들된 전체 자바스크립트 파일을 무시합니다. 이러한 수정사항은 소스 패널이 일반적으로 느리게 실행되는 문제도 해결합니다.

명령 메뉴에서 네트워크 제한 사용 설정

이제 명령 메뉴에서 네트워크 제한을 빠른 3G 또는 저속 3G로 설정할 수 있습니다.

명령 메뉴의 네트워크 제한 명령

그림 6. 명령 메뉴의 네트워크 제한 명령

조건부 중단점 자동 완성

자동 완성 UI를 사용하여 조건부 중단점 표현식을 더 빠르게 입력할 수 있습니다.

자동 완성 UI

그림 7. 자동 완성 UI

알고 계셨나요? 자동 완성 UI는 콘솔도 지원하는 CodeMirror 덕분입니다.

AudioContext 이벤트 중단

Event Listener Breakpoints 창을 사용하여 AudioContext 수명 주기 이벤트 핸들러의 첫 번째 줄에서 일시중지합니다.

AudioContext는 오디오를 처리하고 합성하는 데 사용할 수 있는 Web Audio API의 일부입니다.

이벤트 리스너 중단점 창의 AudioContext 이벤트

그림 8. 이벤트 리스너 중단점 창의 AudioContext 이벤트

ndb로 Node.js 앱 디버그

ndb는 Node.js 애플리케이션을 위한 새로운 디버거입니다. ndb는 DevTools를 통해 사용할 수 있는 일반적인 디버깅 기능 외에 다음 기능도 제공합니다.

  • 하위 프로세스 감지 및 연결
  • 모듈 앞에 중단점을 배치해야 합니다.
  • DevTools UI 내에서 파일 수정
  • 기본적으로 현재 작업 디렉터리 외부에 있는 모든 스크립트를 무시합니다.

ndb UI

그림 9. ndb UI

자세한 내용은 ndb의 리드미를 참조하세요.

보너스 팁: User Timing API로 실제 사용자 상호작용 측정

실제 사용자가 페이지에서 중요한 여정을 완료하는 데 걸리는 시간을 측정하고 싶으신가요? User Timing API로 코드를 계측해 보세요.

예를 들어 사용자가 클릭 유도 문구 (CTA) 버튼을 클릭하기 전에 홈페이지에서 머무는 시간을 측정하려 한다고 가정해 보겠습니다. 먼저 DOMContentLoaded와 같은 페이지 로드 이벤트에 연결된 이벤트 핸들러에서 여정의 시작을 표시합니다.

document.addEventListener('DOMContentLoaded', () => {
  window.performance.mark('start');
});

그런 다음 여정의 끝을 표시하고 버튼을 클릭할 때의 기간을 계산합니다.

document.querySelector('#CTA').addEventListener('click', () => {
  window.performance.mark('end');
  window.performance.measure('CTA', 'start', 'end');
});

측정값을 추출하여 분석 서비스로 간편하게 전송하여 익명의 집계 데이터를 수집할 수도 있습니다.

const CTA = window.performance.getEntriesByName('CTA')[0].duration;

DevTools가 성능 기록의 User Timing 섹션에 자동으로 User Timing 측정값을 마크업합니다.

사용자 시간 섹션

그림 10. 사용자 시간 섹션

이 기능은 코드를 디버깅하거나 최적화할 때도 유용합니다. 예를 들어 수명 주기의 특정 단계를 최적화하려면 수명 주기 함수의 시작과 끝에서 window.performance.mark()를 호출합니다. React는 개발 모드에서 이 작업을 수행합니다.

미리보기 채널 다운로드

Chrome Canary, 개발자 또는 베타를 기본 개발 브라우저로 사용하는 것이 좋습니다. 이러한 Preview 채널을 통해 개발자는 최신 DevTools 기능에 액세스하고 최첨단 웹 플랫폼 API를 테스트하며 다른 사용자보다 먼저 사이트에서 문제를 찾을 수 있습니다.

Chrome DevTools팀에 문의하기

게시물에서 새로운 기능과 변경사항 또는 DevTools와 관련된 다른 항목에 대해 논의하려면 다음 옵션을 사용하세요.

  • crbug.com을 통해 제안 또는 의견을 제출하세요.
  • DevTools에서 옵션 더보기   더보기   > 도움말 > DevTools 문제 신고를 사용하여 DevTools 문제를 신고합니다.
  • @ChromeDevTools로 트윗을 보냅니다.
  • DevTools의 새로운 기능 YouTube 동영상 또는 DevTools 팁 YouTube 동영상에 댓글을 남겨주세요.

DevTools의 새로운 기능

DevTools의 새로운 기능 시리즈에서 다룬 모든 사항의 목록

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113

Chrome 112

Chrome 111

Chrome 110

Chrome 109

Chrome 108

Chrome 107

Chrome 106

Chrome 105

Chrome 104

Chrome 103

Chrome 102

Chrome 101

Chrome 100

Chrome 99

Chrome 98

Chrome 97

Chrome 96

Chrome 95

Chrome 94

Chrome 93

Chrome 92

Chrome 91

Chrome 90

Chrome 89

Chrome 88

Chrome 87

Chrome 86

Chrome 85

Chrome 84

Chrome 83

Chrome 82

Chrome 82가 취소되었습니다.

Chrome 81

Chrome 80

Chrome 79

Chrome 78

Chrome 77

Chrome 76

Chrome 75

Chrome 74

Chrome 73

Chrome 72

Chrome 71

Chrome 70

Chrome 68

Chrome 67

Chrome 66

Chrome 65

Chrome 64

Chrome 63

Chrome 62

Chrome 61

Chrome 60

Chrome 59