DevTools 의 새로운 기능 (Chrome 106)
이 게시글의 번역에는 도창욱님이 참여하셨으며, 조은님과 [최원영]](https://www.linkedin.com/in/toruchoi)님이 리뷰를 맡아 주셨습니다.
DevTools를 개선하는 데 도움을 주고 싶으신가요? Google User Research 에 참여해보세요.
소스 패널에서 작성/배포 단위로 파일 그룹화하기
작성/배포 단위로 파일 그룹화하기는 이제 3점 메뉴에 위치합니다. 이전에는 네비게이션 패널에서 바로 확인할 수 있었습니다. 이 데모를 열어보세요. 먼저 원본 소스 코드 (작성됨으로 표기)를 확인하기 위해 작성/배포 단위로 파일 그룹화하기 설정을 활성화하고, 빠르게 확인해봅시다.
Chromium bug: 1352488
개선된 스택 추적
비동기 동작에 대한 연결된 스택 추적
이제 몇몇 동작들이 비동기적으로 발생하도록 스케쥴링되었을 떄, 개발자 도구의 스택 추적기는 동작의 "전체 스토리"를 표현합니다. 이전에는 일부 스토리만을 보여주었습니다. 예를 들어 이 데모를 실행하고, 증가 버튼을 클릭한 뒤 콘솔에 에러 메세지를 확장해봅시다. 소스 코드에서 비동기 timeout
동작을 포함하고 있을 것입니다.
// application.component.ts
async increment() {
await Promise.resolve().then(() => timeout(100));
…
}
이전에는 스택 추적은 타임아웃 동작만을 보여주었으며, 동작의 "진짜 발생 이유"는 보여주지 않았습니다. 이 변경으로 더불어 이제 개발자 도구는 버튼 컴포넌트의 onClick
이벤트로 인해 동작이 발생하였음을 보여주고, increment
함수가 타임아웃 동작에 이어 발생함을 보여줍니다.
그 외에도 DevTools는 새로운 "Async Stack Tagging" 기능을 도입했습니다. 비동기 코드의 두 부분을 새로운 console.createTask()
메서드와 함께 연결하면 작업의 전체 스토리를 알 수 있습니다. 자세한 내용은 DevTools의 최신 디버깅을 참조하세요.
복잡하게 보이나요? 전혀 그렇지 않습니다. 대부분의 경우 사용 중인 프레임워크가 스케쥴링과 비동기 동작을 처리합니다. 이 경우 API의 구현은 프레임워크에 달려 있으므로 걱정할 필요가 없습니다. (예: Angular는 이와 같은 변경 사항을 구현했습니다.)
Chromium bug: 1334585
알려진 서드파티 스크립트를 자동으로 무시하기
이제 개발자도구가 무시 목록에 알려진 타사 스크립트를 자동으로 추가하므로 디버깅 시 코드의 문제를 더 빠르게 확인할 수 있습니다.
이 데모를 열고 증가 버튼을 클릭한 뒤 콘솔에서 오류 메시지를 확장해봅시다. 스택 추적에는 코드만 표시됩니다(예: app.component.ts
button.component.ts
). 전체 스택 추적을 보려면 더 많은 프레임 표시를 클릭하세요.
이전에는 스택 추적에 zone.js
및 core.mjs
와 같은 타사 스크립트가 포함되었습니다. 이는 소스 코드가 아니라 번들러(예: webpack) 또는 프레임워크(예: Angular)에 의해 생성된 코드이며, 이로 인해 오류의 근본 원인을 확인하는 데 더 오랜 시간이 걸리게됩니다.
내부적으로 개발자도구는 소스 맵의 새로운 x_google_ignoreList
속성을 기반으로 하는 서드파티 스크립트를 무시합니다. 이를 위해 프레임워크와 번들러가 이 정보를 제공해야 할 필요는 있습니다. 사례 연구: DevTools를 사용한 더 나은 앵귤러 디버깅을 참조하세요.
추가적으로 항상 전체 스택 추적을 보려면 설정 > 무시 목록 > 알려진 서드파티 스크립트를 자동으로 무시 목록에 추가를 통해 설정을 비활성화할 수 있습니다.
Chromium bug: 1323199
개선된 호출 스택 디버깅
이제 알려진 서드파티 스크립트를 자동으로 무시 목록에 추가하기 설정을 사용하면 호출 스택에 코드와 관련된 프레임들만 표시됩니다.
이 데모를 열고 app.component.ts
의 increment()
함수에 중단점을 설정합니다. 페이지에서 증가 버튼을 클릭하여 중단점을 트리거해보세요. 호출 스택은 코드의 프레임(예를 들ㅓ app.component.ts
및 button.component.ts
)만 표시하는 것을 확인할 수 있습니다.
모든 프레임을 보려면 무시 목록에 있는 프레임 표시를 활성화합니다. 이전에는 개발자도구가 기본적으로 모든 프레임을 표시했습니다.
Chromium bug: 1352488
소스 패널에서 무시 목록에 포함된 소스들 숨기기
탐색 창에서 관련 없는 파일을 숨기려면 무시 목록에 있는 소스 숨기기를 활성화합니다. 이를 통해 코드에만 집중할 수 있습니다.
이 데모를 실행해보세요. 소스 패널에서, node_modules
및 webpack
은 서드파티 스크립트입니다. 3점 메뉴를 클릭하고 무시 목록에 포함된 소스 숨기기를 선택하여 창에서 해당 소스들을 숨길 수 있습니다.
Chromium bug: 1352488
명령 메뉴에서 무시 목록에 포함된 소스들 숨기기
무시 목록에 포함된 소스 숨기기 설정을 사용하면 명령 메뉴에서 파일을 더 빨리 찾을 수 있습니다. 이전에는 명령 메뉴에서 파일을 검색하면 사용자와 관련이 없을 수 있는 서드파티 파일이 함꼐 반환되었습니다.
예를 들어 무시 목록에 포함된 소스 숨기기 설정을 활성화하고 3점 메뉴를 클릭합니다. 파일 열기를 선택한 뒤 버튼 구성 요소를 검색하기 위해 "ton"을 입력합니다. 이전에는 결과에 node_modules
파일 중 하나인 node_modules
파일이 포함되었으며, 첫 번째 결과로도 표시되었습니다.
Chromium bug: 1336604
성능 패널의 새로운 상호 작용 추적
성능 패널의 새로운 상호작용 추적을 사용하여 상호작용을 시각화하고 잠재적인 응답 민감성 문제를 추적할 수 있습니다.
예를 들어 이 데모 페이지에서 성능 기록을 시작해봅시다. 커피를 클릭하고 기록을 중지합니다. 상호작용 트랙에 두 개의 상호작용이 표시됩니다. 두 상호 작용 모두 동일한 ID를 가지며, 이는 상호 작용들이 동일한 사용자의 동작에서 트리거되었음을 나타냅니다.
Chromium bug: 1347390
Performance Insights 패널의 LCP 타이밍 분석
Performance Insights 패널은 이제 최대 콘텐츠풀 페인트(Largest Containful Paint, LCP)의 타이밍 분석을 표시합니다. 이러한 타이밍 정보를 사용하여 LCP 성능을 개선할 수 있는 방법을 확인할 수 있습니다.
Chromium bug: 1351735
Auto-generate default name for recordings in the Recorder panel
이제 *기록 패널은 새로운 기록의 이름을 자동으로 생성합니다.
Chromium bug: 1351383
그외의 하이라이트들
- 이전에는 기록 확장 프로그램들이 기록 패널에서 종종 표시되지 않았습니다. (1351416)
- 스타일 창은 이제 SVG
<stop>
요소의stop-color
속성에 대한 색상 선택기를 표시해줍니다. (1351096) - Performance Insights 패널에서 레이아웃 변경의 근본적 잠재원인인 레이아웃을 유발하는 스크립트를 식별합니다. (1343019)
- Performance Insights 패널에서 LCP 웹 글꼴의 주요 경로를 표시합니다. (1350390)
프리뷰 채널 다운로드하기
Chrome Canary, Dev, Beta 를 기본 개발용 브라우저로 사용해보는 걸 검토해보세요. 프리뷰 채널에서는 최신 DevTools 기능들을 사용할 수 있고, 갓 나온 웹 플랫폼 API를 테스트해 볼 수 있으며, 사용자들이 사이트의 문제를 보기전에 미리 찾아낼 수 있습니다.
Chrome DevTools 팀과 이야기 나누기
아래 옵션을 사용하여 게시물의 새로운 기능 및 변경 사항, 또는 DevTools 관련된 기타 사항에 토론해보세요.
- crbug.com 를 이용한 피드백 및 제안 전달하기.
- DevTools 에서 More options > Help > Report a DevTools issues 를 사용하여 DevTools 이슈 제보하기.
- @ChromeDevTools 에 트윗하기.
- What's new in DevTools YouTube 비디오 에 댓글 남기기.
더 많은 DevTools 기능
What's New In DevTools 영어 버전을 참고하여 관련 기능의 전체 목록을 볼 수 있습니다. 아래 콘텐츠들은 한국어로 번역된 콘텐츠들입니다.
Chrome 108
Chrome 107
- DevTools에서 키보드 단축키 커스터마이징
- 키보드 단축키로 라이트 / 다크 테마 전환하기
- 메모리 인스펙터에서 C/C++ 객체 하이라이팅
- HAR 가져오기에서 전체 이니시에이터 정보 지원
Enter
키를 눌러 DOM 검색 시작- CSS flexbox
align-content
start
및end
아이콘 표시 - 기타 하이라이트
Chrome 106
- 소스 패널에서 저작/배포 단위로 파일 그룹화하기
- 비동기 동작들에 대해 연결된 스택 추적
- 알려진 서드파티 스크립트를 자동으로 무시하기
- 개선된 호출 스택 디버깅
- 소스 패널에서 무시 목록에 포함된 소스들 숨기기
- 명령 메뉴에서 무시 목록에 포함된 소스들 숨기기
- 성능 패널의 새로운 상호 작용 추적
- 성능 인사이트 패널의 LCP 타이밍 세부 분석
- 기록 패널의 기록 이름 자동 생성
- 기타 하이라이트
Chrome 105
- Recorder의 단계별 재생 기능
- Recorder 패널에서 마우스 오버 이벤트 기능 지원
- Performance insights 패널의 Largest Contentful Paint (LCP)
- 레이아웃 변경의 잠재적 근본 원인으로서 텍스트 깜박임(FOIT, FOUT) 식별
- 매니페스트 창의 프로토콜 핸들러
- 요소 패널의 Top layer badge
- 런타임에 Wasm 디버깅 정보 연결하기
- 디버깅 중의 라이브 에디트 지원
- 스타일 창에서의 @scope at rules 보기 및 편집하기
- 소스맵 개선
- 기타 하이라이트
Chrome 104
- 디버깅 중에 frame 재시작하기
- Recorder 패널의 느리게 다시보기 옵션들
- Recorder 패널을 위한 확장 도구 만들기
- 소스 패널에서 작성자 / 배포 순 그룹하기
- Performance insights 패널에서 새로운 User Timings 추적
- 요소의 할당된 슬롯 표시
- 성능 기록을 위한 하드웨어 동시성 시뮬레이션
- CSS 변수 자동 완성 시 색상이 아닌 값 미리보기
- 뒤로-앞으로 캐시 창에서 차단 프레임 식별
- 자바스크립트 객체 자동완성 제안 기능 개선
- 소스맵 개선
- 기타 하이라이트
Chrome 103
- Recorder 패널에서 더블 클릭 & 우 클릭 이벤트 캡쳐하기
- Lighthouse 패널에서 새로 출시된 timspan 과 snapshot 모드
- Performance Insights 패널에서 zoom 컨트롤 개선
- 성능 레코딩 삭제 확인
- 요소 패널에서 창 재배치하기
- 브라우저 밖의 색상 선택하기
- 디버깅 중 인라인 값 미리보기 개선
- 가상 인증자를 위한 대규모 Blob 지원
- 소스 패널에서 새로운 키보드 단축키 지원
- 소스맵 개선
Chrome 102
- 미리보기 기능: 새로운 Performance insights 창
- 새 바로가기 메뉴 - 라이트 테마 및 다크 테마 에뮬레이팅하기
- 네트워크 창의 미리보기 탭의 보안 개선
- 브레이크 포인트에서의 재로딩 개선
- 콘솔 업데이트
- 시작 전에 유저 플로우 녹화 취소하기
- 스타일 창에 상속된 하이라이트 의사 속성들 표시하기
- 기타 하이라이트
- [실험 기능] CSS에서의 변경사항 복사
- [실험 기능] 브라우저 바깥의 색상 선택하기
Chrome 101
- 녹화된 유저 플로우를 JSON 파일로 내보내고 불러오기
- 스타일 창에서 cascade 레이어 보기
- hwb() 색상 함수 지원
- private 속성 표시 개선
- 기타 하이라이트
- [실험] Lighthouse 패널의 새로운 시간 범위 (timespan) 및 스냅샷 (snapshot) 모드
Chrome 100
- 스타일 창의 규칙에서 @supports 보기 및 편집하기
- 공통 셀렉터의 기본 지원
- 기록 셀렉터의 커스터마이징
- 기록 이름 바꾸기
- 마우스를 올려서 클래스/함수 미리보기
- 성능 창에서의 유휴 상태 프레임
- 기타 하이라이트
Chrome 99
- 웹 소켓 요청 쓰로틀링
- 애플리케이션 패널에 Reporting API 창 추가
- Recorder 패널에서 요소가 클릭 가능 / 표시될 때까지 대기 지원
- 콘솔 스타일링, 포매팅, 필터링 개선
- 소스맵 파일을 이용한 Chrome extension 디버깅
- 소스 패널에서 소스 폴더 트리 개선
- 소스 패널에서 워커 소스 파일 표시
- Chrome 자동 다크 테마 개선
- 터치에 친화적인 컬러 피커와 창 분리
- 기타 하이라이트
Chrome 98
- 미리보기 기능: 전체 페이지 접근성 트리
- 변경 탭에서의 더욱 정교한 변화들
- 유저 플로우 레코딩을 위한 더 긴 타임아웃 설정
- 뒤로/앞으로 캐쉬 탭을 이용해 페이지가 캐쉬 가능한지 확인하기
- 새로 추가된 속성 창 필터
- CSS의 forced-colors 미디어 기능 에뮬레이팅
- 마우스를 가져가면 눈금자 표시
- Flexbox 편집기에서의
row-reverse
andcolumn-reverse
지원 - XHR 다시 재생 및 모든 검색 결과 표시를 위한 키보드 단축키 추가
- Lighthouse panel의 Lighthouse 9
- 소스 패널에서의 개선점들
- 기타 하이라이트
- [실험실 기능] Reporting API 창에서의 엔드포인트
Chrome 97
- 기능 미리보기: 신규 Recorder 패널
- Device Mode 의 기기 목록 갱신
- HTML로 수정에서 자동완성
- 코드 디버깅 경험 개선
- [실험적 기능] 여러 기기 사이의 DevTools 설정 동기화
Chrome 96
- 미리보기 기능: 새로운 CSS 개요 영역
- 복원 및 개선된 CSS 길이 편집 및 복사 경험
- CSS 의 prefers-contrast 미디어 기능 에뮬레이션
- 크롬의 자동 어두운 테마 기능 에뮬레이션
- 스타일 영역에서 선언을 자바스크립트로 복사하기
- 네트워크 패널의 새로운 페이로드 탭
- 속성 영역 내의 속성 표시 방법의 개선
- 콘솔의 CORS 에러 숨김 옵션
- 콘솔에서 적절한
Intl
객체 미리보기 및 값 판별 - 일관적인 async 스택 추적
- 콘솔 사이드바 유지
- 애플리케이션 패널 내 애플리케이션 캐시 영역 제거 예정
- [실험실 기능] 애플리케이션 패널에 새롭게 추가된 Reporting API 영역
Chrome 95
- 새 CSS 길이 작성 도구
- 문제 탭에서 문제 숨기기
- 속성 표시 개선
- Lighthouse 8.4
- 소스 패널에서 스니펫 정렬
- 번역된 릴리스 정보로 이동하는 링크 및 번역 관련 버그 제보
- DevTools 커맨드 메뉴 UI 개선
Chrome 94
- DevTools 를 이제 여러분들이 선호하는 언어로 사용하세요
- 기기 목록에 Nest Hub 가 새로이 추가되었습니다
- 프레임 상세 화면에서 Origin trials 가 제공됩니다
- 새로운 CSS 컨테이너 쿼리 배지
- 체크박스 클릭 한 번으로 네트워크 필터 반전 가능
- 다가오는 콘솔 사이드바의 디프리케이션
- 이슈 탭과 네트워크 패널에서 로우(raw) Set-Cookie 헤더 표시
- C고유한 프로퍼티로서의 내이티브 접근자를 콘솔에서 일관성 있게 표시
- #sourceURL을 포함하는 인라인 스크립트를 위한 적절한 오류 스택 추적
- 계산된 창에서의 색상 포맷 변경
- 사용자 정의 도구 설명이 내이티브 HTML 도구 설명으로 변경됨
- [실험중] 이슈 탭에서 이슈들을 숨기기