DevTools의 새로운 기능 (Chrome 65)

Kayce Basques
Kayce Basques

Chrome 65의 DevTools에 추가되는 새로운 기능은 다음과 같습니다.

아래에서 출시 노트를 읽거나 동영상 버전을 시청하세요.

로컬 재정의

로컬 재정의를 사용하면 DevTools에서 변경사항을 적용하고 페이지 로드 시에도 변경사항을 유지할 수 있습니다. 이전에는 DevTools에서 변경한 내용이 페이지를 새로고침하면 삭제되었습니다. 로컬 재정의는 몇 가지 예외를 제외하고 대부분의 파일 형식에서 작동합니다. 제한사항을 참고하세요.

로컬 재정의를 사용하여 페이지 로드 간에 CSS 변경사항을 유지합니다.

그림 1. 로컬 재정의를 사용하여 페이지 로드 간에 CSS 변경사항 유지

기본 원리:

  • DevTools에서 변경사항을 저장할 디렉터리를 지정합니다.
  • DevTools에서 변경하면 DevTools는 수정된 파일의 사본을 디렉터리에 저장합니다.
  • 페이지를 새로고침하면 DevTools는 네트워크 리소스가 아닌 수정된 로컬 파일을 제공합니다.

로컬 재정의를 설정하려면 다음 단계를 따르세요.

  1. 소스 패널을 엽니다.
  2. 재정의 탭을 엽니다.

    재정의 탭

    그림 2. 재정의

  3. 재정의 설정을 클릭합니다.

  4. 변경사항을 저장할 디렉터리를 선택합니다.

  5. 뷰포트 상단에서 허용을 클릭하여 DevTools에 디렉터리 읽기 및 쓰기 액세스 권한을 부여합니다.

  6. 필요한 사항을 수정합니다.

제한사항

  • DevTools는 요소 패널의 DOM 트리에서 변경된 사항을 저장하지 않습니다. 소스 패널에서 HTML을 수정하세요.
  • 스타일 창에서 CSS를 수정하고 해당 CSS의 소스가 HTML 파일인 경우 DevTools에서 변경사항을 저장하지 않습니다. 대신 소스 패널에서 HTML 파일을 수정하세요.
  • 작업공간 DevTools는 네트워크 리소스를 로컬 저장소에 자동으로 매핑합니다. DevTools에서 변경사항을 적용하면 해당 변경사항이 로컬 저장소에도 저장됩니다.

변경사항 탭

새로운 변경사항 탭을 통해 DevTools에서 로컬로 변경한 사항을 추적하세요.

변경사항 탭

그림 3. 변경사항

새로운 접근성 도구

새로운 접근성 창을 사용하여 요소의 접근성 속성을 검사하고 색상 선택기에서 텍스트 요소의 대비 비율을 검사하여 저시력 장애 또는 색각 이상이 있는 사용자가 액세스할 수 있는지 확인하세요.

접근성 창

요소 패널의 접근성 창을 사용하여 현재 선택된 요소의 접근성 속성을 조사합니다.

접근성 창

그림 4. 접근성 창에는 요소 패널의 DOM 트리에서 현재 선택된 요소의 ARIA 속성 및 계산된 속성과 접근성 트리에서의 위치가 표시됩니다.

아래의 Rob Dodson의 A11ycast에서 라벨링에 관한 내용을 확인하여 접근성 창이 어떻게 작동하는지 알아보세요.

색상 선택 도구의 대비율

이제 색상 선택 도구에 텍스트 요소의 대비율이 표시됩니다. 텍스트 요소의 대비율을 높이면 시력 장애 또는 색각 이상이 있는 사용자가 사이트에 더 쉽게 액세스할 수 있습니다. 대비율이 접근성에 미치는 영향을 자세히 알아보려면 색상 및 대비를 참고하세요.

텍스트 요소의 색상 대비를 개선하면 모든 사용자가 사이트를 더 쉽게 사용할 수 있습니다. 즉, 흰색 배경에 회색 텍스트가 있으면 누구나 읽기 어렵습니다.

강조 표시된 H1 요소의 대비율을 검사합니다.

그림 5. 강조 표시된 h1 요소의 대비율 검사

그림 5에서 4.61 옆에 있는 체크표시 2개는 이 요소가 고급 권장 대비율 (AAA)을 충족함을 의미합니다. 체크표시가 하나만 있는 경우 최소 권장 대비율 (AA)을 충족한다는 의미입니다.

더보기 더보기를 클릭하여 대비 비율 섹션을 펼칩니다. 색상 스펙트럼 상자의 흰색 선은 권장 대비율을 충족하는 색상과 그렇지 않은 색상 간의 경계를 나타냅니다. 예를 들어 그림 6의 회색은 권장사항을 충족하므로 흰색 선 아래의 모든 색상도 권장사항을 충족합니다.

대비율 섹션이 펼쳐진 모습

그림 6. 대비율 섹션이 펼쳐짐

감사 패널에는 페이지의 모든 텍스트 요소의 대비율이 충분한지 확인하는 자동 접근성 감사가 있습니다.

Chrome DevTools에서 Lighthouse 실행을 참고하거나 아래 A11ycast를 시청하여 감사 패널을 사용하여 접근성을 테스트하는 방법을 알아보세요.

새 감사

Chrome 65에는 완전히 새로운 검색엔진 최적화 감사 카테고리와 많은 새로운 성능 감사가 포함되어 있습니다.

새 검색엔진 최적화 감사

페이지가 새로운 SEO 카테고리의 각 감사를 통과하면 검색엔진 순위를 높이는 데 도움이 될 수 있습니다.

새로운 SEO 감사 카테고리입니다.

그림 7. 새로운 SEO 감사 카테고리

새로운 성능 감사

Chrome 65에는 다음과 같은 새로운 성능 감사도 많이 포함되어 있습니다.

  • JavaScript 부팅 시간이 높음
  • 정적 애셋에 비효율적인 캐시 정책 사용
  • 페이지 리디렉션 방지
  • 문서가 플러그인을 사용함
  • CSS 축소
  • 자바스크립트 축소

성능이 중요합니다. Mynet이 페이지 로드 속도를 4배 개선한 후 사용자의 사이트 체류 시간이 43% 늘고, 조회한 페이지 수가 34% 증가했으며, 이탈률이 24% 감소하고, 기사 페이지 조회당 수익이 25% 증가했습니다. 자세히 알아보기

도움말: 페이지의 로드 성능을 개선하고 싶지만 어디서부터 시작해야 할지 모르겠다면 감사 패널을 사용해 보세요. URL을 입력하면 페이지를 개선할 수 있는 다양한 방법에 관한 자세한 보고서가 제공됩니다. 시작하기

기타 업데이트

작업자 및 비동기 코드를 사용한 안정적인 코드 단계별 실행

Chrome 65에서는 스레드 간에 메시지를 전달하는 코드와 비동기 코드로 단계별 실행할 때 단계별 실행 Step Into 버튼이 업데이트되었습니다. 이전 단계별 실행 동작을 원하는 경우 대신 새로운 단계 단계 버튼을 사용하면 됩니다.

스레드 간에 메시지를 전달하는 코드로 들어가기

이제 스레드 간에 메시지를 전달하는 코드로 들어가면 DevTools에 각 스레드에서 발생하는 상황이 표시됩니다.

예를 들어 그림 8의 앱은 기본 스레드와 작업자 스레드 간에 메시지를 전달합니다. 기본 스레드에서 postMessage() 호출로 들어가면 DevTools가 작업자 스레드의 onmessage 핸들러에서 일시중지됩니다. onmessage 핸들러 자체는 기본 스레드에 메시지를 다시 게시합니다. that 호출로 들어가면 기본 스레드에서 DevTools가 일시중지됩니다.

Chrome 65에서 메시지 전달 코드로 이동

그림 8. Chrome 65에서 메시지 전달 코드로 이동

이전 버전의 Chrome에서 이와 같은 코드로 이동하면 그림 9에서 볼 수 있듯이 Chrome에 코드의 기본 스레드 측면만 표시되었습니다.

Chrome 63에서 메시지 전달 코드로 이동

그림 9. Chrome 63에서 메시지 전달 코드로 이동

비동기 코드로 단계별 실행

비동기 코드로 단계별로 실행할 때 DevTools는 이제 최종적으로 실행되는 비동기 코드에서 일시중지하기를 원하는 것으로 가정합니다.

예를 들어 그림 10에서 setTimeout()로 이동한 후 DevTools는 해당 지점까지의 모든 코드를 백그라운드에서 실행한 다음 setTimeout()에 전달된 함수에서 일시중지합니다.

Chrome 65에서 비동기 코드로 이동

그림 10. Chrome 65에서 비동기 코드 단계별 실행

Chrome 63에서 이와 같은 코드를 단계별로 실행하면 그림 11에서 볼 수 있듯이 DevTools가 시간순으로 실행되는 코드에서 일시중지되었습니다.

Chrome 63에서 비동기 코드로 이동

그림 11. Chrome 63에서 비동기 코드 단계별 실행

성능 패널의 여러 녹화

이제 성능 패널에서 최대 5개의 녹화 파일을 일시적으로 저장할 수 있습니다. DevTools 창을 닫으면 녹화가 삭제됩니다. Performance(성능) 패널에 익숙해지려면 런타임 성능 분석 시작하기를 참고하세요.

성능 패널에서 여러 녹화 파일 중에서 선택

그림 12. 성능 패널에서 여러 녹화 파일 중에서 선택

보너스: Puppeteer 1.0으로 DevTools 작업 자동화

Chrome DevTools팀에서 유지관리하는 브라우저 자동화 도구인 Puppeteer 버전 1.0이 출시되었습니다. Puppeteer를 사용하면 스크린샷 캡처와 같이 이전에는 DevTools를 통해서만 가능했던 많은 작업을 자동화할 수 있습니다.

const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'example.png'});
  await browser.close();
})();

또한 PDF 생성과 같이 일반적으로 유용한 자동화 작업을 위한 API도 있습니다.

const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'});
  await page.pdf({path: 'hn.pdf', format: 'A4'});
  await browser.close();
})();

자세한 내용은 빠른 시작을 참고하세요.

Puppeteer를 사용하여 DevTools를 명시적으로 열지 않고도 탐색 중에 DevTools 기능을 노출할 수도 있습니다. 예는 DevTools를 열지 않고 DevTools 기능 사용하기를 참고하세요.

미리보기 채널 다운로드

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

Chrome DevTools팀에 문의하기

다음 옵션을 사용하여 새로운 기능, 업데이트 또는 DevTools와 관련된 기타 사항을 논의하세요.

DevTools의 새로운 기능

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