DevTools의 새로운 기능 (Chrome 65)

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

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

로컬 재정의

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

로컬 재정의를 사용하여 페이지 로드 전반에서 CSS 변경사항 유지

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

기본 원리:

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

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

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

    재정의 탭

    그림 2. 재정의

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

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

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

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

제한사항

  • DevTools는 Elements 패널의 DOM 트리에서 변경한 내용을 저장하지 않습니다. 대신 Sources 패널에서 HTML을 수정합니다.
  • 스타일 창에서 CSS를 수정했는데 CSS의 소스가 HTML 파일인 경우 DevTools에서 변경사항을 저장하지 않습니다. 대신 Sources 패널에서 HTML 파일을 수정합니다.
  • Workspaces DevTools는 네트워크 리소스를 로컬 저장소에 자동으로 매핑합니다. DevTools에서 변경할 때마다 변경사항이 로컬 저장소에도 저장됩니다.

변경사항 탭

변경사항 탭을 통해 DevTools에서 로컬로 변경한 사항을 추적합니다.

변경사항 탭

그림 3. 변경사항

새로운 접근성 도구

접근성 창을 사용하여 요소의 접근성 속성을 검사하고 색상 선택 도구에서 텍스트 요소의 명암비를 검사하여 저시력 장애 또는 색각 이상이 있는 사용자가 액세스할 수 있는지 확인합니다.

접근성 창

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

접근성 창

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

아래에서 라벨 지정에 관한 롭 도슨의 A11ycast를 확인하여 접근성 창이 작동하는 모습을 살펴보세요.

색상 선택 도구의 대비율

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

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

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

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

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

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

펼쳐진 대비율 섹션

그림 6. 펼쳐진 대비율 섹션

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

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

새 감사

Chrome 65에는 완전히 새로운 카테고리의 SEO 감사와 여러 가지 새로운 실적 감사가 포함되어 있습니다.

새로운 SEO 감사

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

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

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

새로운 실적 감사

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

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

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

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

기타 업데이트

작업자 및 비동기 코드를 사용한 안정적인 코드 스테핑

Chrome 65에서는 스레드 간에 메시지를 전달하는 코드와 비동기 코드를 단계적으로 실행할 때 Step Into Step Into 버튼이 업데이트됩니다. 이전 스테핑 동작을 사용하려면 대신 새 Step 단계 버튼을 사용하세요.

스레드 간에 메시지를 전달하는 코드 단계별 적용

스레드 간에 메시지를 전달하는 코드로 들어가면 이제 DevTools가 각 스레드에서 어떤 일이 일어나는지 표시합니다.

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

Chrome 65에서 메시지 전달 코드로 스테핑

그림 8. Chrome 65에서 메시지 전달 코드 실행

이전 버전의 Chrome에서 이와 같은 코드를 스테핑하면 Chrome은 그림 9와 같이 코드의 기본 스레드 측면만 표시했습니다.

Chrome 63에서 메시지 전달 코드로 스테핑

그림 9. Chrome 63에서 메시지 전달 코드 실행

비동기 코드로 단계별 처리

비동기 코드로 스테핑할 때 이제 DevTools는 결국 실행되는 비동기 코드에서 일시중지하려고 한다고 가정합니다.

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

Chrome 65에서 비동기 코드로 스테핑

그림 10. Chrome 65에서 비동기 코드로 스테핑

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

Chrome 63에서 비동기 코드로 스테핑

그림 11. Chrome 63에서 비동기 코드로 스테핑

성능 패널의 여러 녹음 파일

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

실적 패널에서 여러 녹화 중에서 선택

그림 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, Dev 또는 베타를 기본 개발 브라우저로 사용하는 것이 좋습니다. 이러한 미리보기 채널을 사용하면 최신 DevTools 기능에 액세스하고, 최신 웹 플랫폼 API를 테스트하고, 사용자가 발견하기 전에 사이트에서 문제를 찾을 수 있습니다.

Chrome DevTools팀에 문의하기

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

DevTools의 새로운 기능

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