DevTools의 새로운 기능 (Chrome 70)

환영합니다. Chrome 68의 최종 업데이트 이후 약 12주가 지났습니다. 첫 번째 단계는 Chrome 69로 업데이트하는 것이 좋습니다.

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

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

콘솔의 실시간 표현

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

  1. 실시간 표현 만들기를 클릭합니다. 실시간 표현 만들기입니다. 라이브 표현식 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 사용자는 DevTools에 무시하도록 지시 특정 TypeScript 파일을 사용하는 경우 대신 DevTools가 전체 번들 자바스크립트 파일에 포함됩니다. 이 수정사항은 또한 소스 패널을 발생시킨 문제를 해결합니다. 일반적으로 느리게 실행됩니다

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

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

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

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

자동 완성 조건부 중단점

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

자동 완성 UI

그림 7. 자동 완성 UI

알고 계셨나요? 자동 완성 UI는 CodeMirror를 통해 사용할 수 있으며 콘솔을 클릭합니다.

AudioContext 이벤트에서 중단

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

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

Event Listener Breakpoints 창에 있는 AudioContext 이벤트

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

ndb로 Node.js 앱 디버그

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

  • 하위 프로세스 감지 및 연결
  • 모듈 앞에 중단점을 배치합니다.
  • 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의 새로운 기능 시리즈에서 다룬 모든 내용 목록입니다.