DevTools의 새로운 기능 (Chrome 70)

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

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

계속해서 읽거나 이 문서의 동영상 버전을 시청하세요.

콘솔의 실시간 표현

라이브 표현을 실시간으로 모니터링하려면 콘솔 상단에 라이브 표현을 고정하세요.

  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 외부를 클릭합니다.

    저장된 실시간 표현

    그림 3. 저장된 실시간 표현

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

Eager 평가 중에 DOM 노드 강조표시

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

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

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

다음과 같은 표현식에 도움이 될 수 있습니다.

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

성능 패널 최적화

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

실적 데이터를 처리하고 로드하는 중입니다.

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

더 안정적인 디버깅

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

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

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

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

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

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

자동 완성 조건부 중단점

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

자동 완성 UI

그림 7. 자동 완성 UI

알고 계셨나요? 자동 완성 UI는 Console을 구동하는 CodeMirror 덕분에 가능합니다.

AudioContext 이벤트에서 중단

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

AudioContext는 웹 오디오 API의 일부이며 오디오를 처리하고 합성하는 데 사용할 수 있습니다.

Event Listener Breakpoints 창에 있는 AudioContext 이벤트

그림 8. Event Listener Breakpoints 창의 AudioContext 이벤트

ndb로 Node.js 앱 디버그

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

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

ndb UI

그림 9. ndb UI

자세한 내용은 ndb의 README를 참조하세요.

보너스 팁: 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는 실적 기록의 사용자 시간 섹션에서 사용자 시간 측정값을 자동으로 마크업합니다.

사용자 시간 섹션

그림 10. 사용자 시간 섹션

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

미리보기 채널 다운로드

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

Chrome DevTools 팀에 문의하기

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

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

DevTools의 새로운 기능

DevTools의 새로운 기능 시리즈에서 다룬 모든 내용 목록입니다.

Chrome 127

Chrome 126

Chrome 125

Chrome 124

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