크롬 F12 개발자도구 사용법 / 크롬 디버깅 및 소스 분석 방법

크롬 개발자 도구 사용법

크롬 개발자 도구 실행 방법

  • F12 (단축키)
  • 크롬 우측 상단 점 3개 > 도구 더보기 > 개발자 도구
  • 크롬 브라우저 우클릭 > 검사

개발자 도구 위치 변경

F12 > 우측 상단 점 3개 > Dock side: 팝업창/좌측/하단/우측 중 선택

개발자 도구 언어 변경

F12 > 우측 상단 설정 아이콘 > Preferences 메뉴 > Language: English (US) - English (US) 또는 Korean - 한국어 선택 > 우측 상단 X 버튼으로 닫기 > 상단 Reload DevTools 버튼 클릭
또는
F12 > 우측 상단 점 3개 > Run Command > english (US) 또는 korean 입력 및 선택 > 상단 Reload DevTools 버튼 클릭

브라우저 캐시 삭제 방법

F12 > 좌측 상단 새로고침 아이콘 우클릭 > 캐시 비우기 및 강력 새로고침
소스가 수정되었는데 바로 반영이 안 되는 경우, 브라우저 캐시를 지우면 적용이 됩니다.

F12 눈금자 활성화 방법

F12 > 우측 상단 점 3개 > Run Command > Show rulers on hover 입력 및 선택 > HTML 요소에 마우스를 올리면 화면 가로, 세로 라인에 눈금자가 표시됩니다.
눈금자 비활성화 시에는 Do not show rulers on hover 입력 및 선택하면 됩니다.

Javascript 비활성화

F12 > 우측 상단 점 3개 > Run command > javascript 검색 > Disable JavaScript 선택
또는
F12 > 우측 상단 설정 아이콘 > Preferences 메뉴 > 우측 하단 Debugger : Disable JavScript 체크
Javascript 비활성화가 적용되면 Sources 탭 경고표시를 확인할 수 있습니다.
슬라이드 배너 등 움직이는 HTML 요소 분석 시, 잠시 화면을 멈출 수 있는 방법입니다.


Elements 탭 사용법

HTML 요소 검사 방법

  • F12 > Elements 탭 > HTML DOM 요소 마우스 호버 시 요소의 범위와 적용된 ID, CSS 등을 확인할 수 있습니다.
  • 좌측 상단 화살표 아이콘 클릭 (Ctrl + Shift + C) > 화면 요소 마우스 호버 시에도 동일한 기능을 합니다.
  • 화면 요소에서 마우스 우클릭 후 검사를 클릭하면 Elements 탭에서 해당 요소가 자동 포커스 됩니다.

HTML 요소 CSS 분석 방법

우측 Styles 탭 기능

Elements 탭 좌측에서 선택된 요소에 적용된 모든 CSS가 나타납니다.
CSS 우측 파일명을 클릭하면 해당 CSS가 작성된 위치로 이동하여 전체 코드를 확인할 수 있습니다.
파일명 부분에 user agent stylesheet라고 나오면, 브라우저에서 기본적으로 제공되는 스타일입니다.

Styles 탭 우측 상단 Show Computed Styles sidebar 아이콘을 클릭하면,
Styles 탭 우측에 Computed 패널이 함께 표시되어, 최종 적용된 CSS를 확인하기 편합니다.

우측 Computed 탭 기능
상단 Box Model 섹션에서 요소에 적용된 margin, border, padding, 요소 크기를 시각적으로 확인할 수 있습니다.
각 수치 더블클릭 시 원하는 값으로 변경할 수 있어 편리합니다.

하단에는 우선순위에 의해 최종적으로 해당 요소에 적용된 CSS 목록을 노출합니다.
우측 Group 체크박스 체크 시, CSS 속성들이 카테고리별로 정리되어 보기가 편해집니다.
각 CSS 속성 좌측 ▶ 화살표 선택 시 CSS 속성 값, 해당 CSS가 적용된 요소, CSS가 작성된 파일명을 확인할 수 있습니다.
각 CSS 속성 하위 목록은 우선순위 높은 순으로 정렬되기 때문에 1번째 값이 요소에 실제 적용된 CSS 값입니다.
CSS 속성 값 좌측 화살표를 클릭하면 Styles 탭에서 해당 CSS 규칙 위치로 자동 포커스 됩니다.

HTML 요소 위치로 화면 이동

HTML 요소 좌측 점 3개 > Scroll into view

HTML 요소 수정

Elements 탭에서 HTML 요소 수정 시 저장되지 않으며, 새로고침하면 날아갑니다.

HTML 요소 값 변경 HTML 요소에서 수정하고 싶은 부분 더블클릭 > 수정 > 엔터
또는
HTML 요소 우클릭 > Edit as HTML > 편집 후 포커스를 벗어나면 반영됩니다.
Ctrl + Z 단축키로 수정된 것을 취소할 수 있습니다.

HTML 요소 속성 추가
HTML 요소 우클릭 > add attribute > 속성명=”값” 입력 > 엔터

HTML 요소 위치 변경
HTML 요소 클릭 및 드래그 > 원하는 HTML 요소 위치로 이동

HTML 요소 숨기기
HTML 요소 클릭 > H visibility: hidden !important; CSS가 적용되어 화면에서 숨겨집니다.
다시 H를 누르면, 요소가 다시 보여집니다.

HTML 요소 CSS 수정

Elements 탭에서 HTML 요소 CSS 수정 시 저장되지 않으며, 새로고침하면 날아갑니다.

CSS 활성화/비활성화
HTML 요소 클릭 > 우측 Styles 탭 > 적용된 CSS 좌측 체크박스로 ON/OFF 가능

CSS 속성 값 수정
HTML 요소 클릭 > 우측 Styles 탭 > 적용된 CSS 속성 값 클릭 > 수정 > 엔터

CSS 규칙 추가
HTML 요소 클릭 > 우측 Styles 탭 상단 + 버튼 클릭 > 추가된 CSS 규칙 선택자명 수정 > CSS 속성 입력

CSS 속성 추가
HTML 요소 클릭 > 우측 Styles 탭 > 상단 element.style 규칙 클릭 > 인라인 CSS 작성
또는
HTML 요소 클릭 > 우측 Styles 탭 > 적용된 CSS 속성 우측 여백 클릭 > 속성명: 속성값 작성 > 엔터

CSS 복사
복사하고 싶은 CSS Selector 우클릭 후 Copy declaration, 붙여넣고 싶은 곳에 Ctrl + V하면 됩니다.
Selector, declaration 모두 복사하고 싶다면 Copy rule 하면 됩니다.

CSS 색상 선택 도구 열기

HTML 요소 클릭 > 우측 Styles 탭 > color 등 색상 관련 CSS 속성 값 왼쪽 네모 클릭 > 색상 선택 도구 활성화
색상 선택 도구에서 HTML 요소 CSS 색상 변경 가능합니다.
해당 요소가 Contrast ratio (명도 대비율) 4.5:1 이상으로 접근성 기준을 충족하는지도 확인 가능합니다.

화면 CSS 색상 추출
색상 선택 도구에서 좌측 스포이드 클릭 > HTML 요소 또는 컴퓨터 화면 내 요소 클릭 > #f7bc21 등 색상 헥스코드 추출 가능
헥스코드 우측 화살표 클릭하면, rgb 등 다른 색상 표기법으로도 변경할 수 있습니다.

가상 클래스 확인 및 적용

요소 상태 클래스 적용
HTML 요소 클릭 > 우측 Styles 탭 > 상단 Filter 우측 :hov 클릭 > 체크박스로 :active, :hover, :focus, :focus-within, :focus-visible, :target 등 요소 상태 클래스 적용 및 해제 가능

요소 클래스 추가
HTML 요소 클릭 > 우측 Styles 탭 > 상단 Filter 우측 :cls 클릭 > 요소에 적용할 클래스명 입력 > 엔터 > 체크박스로 클래스 적용 및 해제 가능

HTML 소스 검색

Ctrl + F > 검색어 입력

스크롤 화면 캡쳐

F12 > Elements 탭 > 우측 상단 점 3개 > Run command (Ctrl + Chift + P) > screenshot 검색 > Capture full size screenshot 선택 > 다운로드 폴더에 저장된 웹 페이지 전체화면 캡처 이미지 확인
크롬 F12 개발자 도구가 새 창 모드로 열려있어야 합니다.


Console 탭 사용법

콘솔에서 메시지를 출력하거나, javascript 코드를 실행할 수 있습니다.

콘솔 메시지 종류

console.log() 일반 메시지 출력
console.info() 정보 메시지 출력
console.debug() 디버그 메시지 출력
Console 탭 상단 우측 Default levels 클릭 > Verbose 선택 시 확인 가능
console.warn() 노란색 경고 메시지 출력
console.error() 빨간색 오류 메시지 출력
console.table(배열 또는 객체)
console.table(배열 또는 객체, 컬럼명)
배열 또는 객체를 테이블 형태로 출력
console.time("레이블")
Javascript 코드 실행
console.timeEnd("레이블")
타이머 실행 후 중지 시 소요시간 출력
레이블로 여러 타이머 구분 가능

Console 탭에 출력 가능한 메시지 종류입니다.

form에 저장된 값 출력

var formElement = document.querySelector('#FormID명');
var formData = new FormData(formElement);

for (var pair of formData.entries()) {
    console.log(pair[0] + ': ' + pair[1]);
}

특정 id Form 안에 저장된 모든 entries를 콘솔에 출력하는 스크립트입니다.
디버깅 모드로 브레이크 포인트에 멈추면, 해당 시점의 form 값들을 볼 수 있습니다.

실시간 표현식 생성

Console 탭 상단 좌측 눈 모양 아이콘 클릭 > Javascript 표현식 입력 > 엔터
입력한 표현식의 현재 값이 자동 갱신되어, Javascript 변수 값 등 확인이 가능합니다.


Sources 탭 사용법

정적 리소스 분석 및 수정

좌측 Page 목록에서 파일 선택 > 우측 코드 편집기에서 소스 확인 > 코드 수정 > Ctrl + S (저장)
해당 페이지에 적용된 HTML, CSS, Javascript, 이미지, 폰트 등 정적 리소스들을 볼 수 있습니다.

정적 리소스 전체 검색

Ctrl + Shift + F > 검색어 입력
검색된 소스 줄 선택 시 Sources 탭으로 이동하여 파일 전체 소스 확인 및 변경이 가능합니다.

검색된 파일 위치 찾기
상단 파일명 우클릭 > Reveal in sidebar

크롬 디버깅 방법

F12 > Sources 탭 > HTML 또는 Javascript 파일 선택 > 브레이크 포인트 생성 > 이벤트 발생
디버그포인트에서 멈추면, 변수에 마우스 올리거나 Console에서 변수명을 입력하여 현재 들어있는 값 확인이 가능합니다.

브레이크 포인트 생성 방법

  • 코드 편집기에서 실행되지 않고 멈추길 원하는 코드 좌측 클릭
  • 코드 편집기에서 실행되지 않고 멈추길 원하는 코드 위 debugger; 작성 > Ctrl + S (저장)
  • 우측 Event Listener Breakpoints > Mouse > click 체크 (모든 마우스 클릭 이벤트 발생 시 일시중지)

크롬 디버깅 단축키

F8 코드 계속 실행, 다음 브레이크 포인트에서 멈춤
F10 함수 내부로 진입 없이, 다음 줄로 이동
F11 함수 내부로 진입
Shift + F11 현재 함수 실행을 마치고, 호출부 (상위 함수) 로 이동
Ctrl + F8 지정한 모든 브레이크 포인트 활성화/비활성화

Network 탭 사용법

네트워크 탭에서 웹 페이지 리소스가 예상대로 다운로드, 업로드 되는지 확인할 수 있습니다.
리소스 목록의 최상위 리소스는 일반적으로 HTML 문서이고 네트워크 활동이 시간순으로 기록됩니다.
리소스명, 응답코드 상태, 리소스 유형, 요청을 발생시킨 코드, 자원의 크기 및 시간을 확인할 수 있습니다.

폭포 열 활성화 방법
리소스 목록 우클릭 > Waterfall 선택
리소스 대기열 시간, 연결에 걸린 시간, 요청 전송 시간, 서버 응답 대기 시간, 콘텐츠 다운로드 시간 등을 볼 수 있습니다.

네트워크 요청 종류 필터링

All 모든 네트워크 요청 및 응답 확인
Fetch/XHR 비동기 API 서버 요청만 확인

예시 : XMLHttpRequest (XHR), Fetch API 요청 등
Doc HTML 문서 요청만 확인

SPA는 페이지 초기 로드 시에만 확인 가능합니다.
페이지 이동 시에는 서버에서 HTML을 받지 않습니다.

예시 : index.html, about.html 등
CSS CSS 파일 요청만 확인

예시 : main.css, style.css 등
JS Javascript 파일 요청만 확인

예시 : app.js, jquery.js 등
Font 웹 폰트 요청만 확인

예시 : woff, ttf, eot 등
Img 이미지 파일 요청만 확인

예시 : jpg, png, gif, svg
Media 동영상, 오디오 파일 요청만 확인

예시 : mp4, mp3, wav 등
Manifest 웹 앱 매니패스트 요청만 확인

예시 : manifest.json 파일
Socket 웹소켓 통신만 확인
Wasm WebAssembly 모듈 요청만 확인
Other 그 외 기타 파일만 확인

예시 : PDF 등

상단 우측 필터링 기능을 이용하면, 현재 확인하려는 파일 종류만 필터링해서 볼 수 있습니다.

네트워크 정적 리소스 정보 분석

Headers 해당 파일에 대한 HTTP 요청 정보, 요청 헤더, 응답 헤더 값을 확인할 수 있습니다.
Preview 이미지 등 리소스의 모습을 미리보기 할 수 있습니다.
Response 서버 응답 데이터 전체를 확인할 수 있습니다.
HTML, Javascript 파일 내용을 볼 수 있어 유용합니다.
Initiator 해당 파일의 URL 요청 순서가 나옵니다.
Timing 서버 응답 대기 시간, 콘텐츠 다운로드 소요 시간 등을 확인할 수 있습니다.
Cookies 요청 쿠키, 응답 쿠키 키-값을 확인할 수 있습니다.

네트워크 요청 순서대로 정렬된 정적 리소스 파일 이름을 선택하면 볼 수 있는 정보입니다.

새로고침 시 브라우저 캐시 비활성화 설정

F12 > Network 탭 > 상단 Disable cache 체크 > 새로고침
캐시 비활성화 설정 후 새로고침 시, 신규 방문자 기준 네트워크 리소스 로딩 시간을 확인할 수 있습니다.
해당 설정은 F12 개발자도구가 열린 상태에서만 유효합니다.

느린 네트워크 환경 재현

F12 > Network 탭 > 상단 Disable cache 우측 No throtting 클릭 > 3G 등 네트워크 조절 프로필 선택 > 새로고침
모바일 사용자, 해외 사용자의 느린 네트워크 환경으로 조작하여 테스트 가능합니다.
Offline 네트워크 조절 프로필을 선택하면 네트워크가 끊긴 상황도 재현할 수 있습니다.

크롬 네트워크 조절 프로필 생성 방법
F12 > Network 탭 > 상단 Disable cache 우측 No throtting 클릭 > Add… 선택 > Add profile > 아래 항목들 참고하여 입력 > Add

Profile Name 커스텀 네트워크 조절 프로필 이름
Download (Mbps) 서버로부터 데이터 다운로드 받는 속도 제한
Upload (Mbps) 서버에 데이터 업로드 하는 속도 제한
Latency (ms) 요청-응답 간 지연 시간
Packet loss (%) 네트워크 전송 중 손실되는 패킷 비율

예) 10% : 패킷 10개 중 1개가 사라짐
Packet queue length (개수) 전송 지연 전 버퍼에 쌓을 수 있는 최대 패킷 수
너무 크면 응답 지연이 심해집니다.
Packet reordering (%) 패킷 순서가 뒤죽박죽 도착할 확률
스트리밍/실시간 통신에 영향이 큽니다.

예) 20% : 패킷 5개 중 1개가 순서가 바뀜

네트워크 요청 지연 시간, 패킷 손실율 등을 지정한 네트워크 조절 프로필을 생성할 수 있습니다.

새 창 팝업이 열릴 때 F12 열기 설정

F12 우측 상단 설정 아이콘 > Preferances 메뉴 > 우측 하단 Global > Auto-open DevTools for popups 체크
새 창으로 팝업이 열릴 때, F12 Network 탭이 열려서 어떤 URL 파라미터로 들어왔는지 분석할 수 있습니다.
부모 창에서 F12를 열고 있어야 팝업 창에도 F12가 자동으로 열립니다.

팝업 Request URL 확인 방법
Network 탭 > 첫 번째 네트워크 요청 클릭 > Headers 탭 > General > Request URL에서 현재 팝업이 열릴 때 들어온 URL 전체를 확인할 수 있습니다.
특히 Vue, React 팝업에서 URL을 라우팅 했을 경우, 초기 요청 URL 및 파라미터를 확인할 수 있어 디버깅 및 소스 분석에 유용합니다.


Performance 탭 사용법

웹 페이지 성능을 측정하고 병목 구간을 시각적으로 파악하여 최적화할 수 있습니다.
CPU 사용량, 네트워크 요청 및 리소스 로딩 타임라인, 메모리 사용량, Javascript 호출 스택 등을 제공합니다.
설치된 확장 프로그램들이 노이즈를 유발할 수 있으므로, 시크릿 모드에서 측정하는 것이 좋습니다.

CPU 및 네트워크 성능 지연 설정
F12 > Performance 탭 > 우측 설정 아이콘 > CPU: 4x slowdown, Network: 3G 등 선택
성능 측정 시, 실제 테스트하는 PC보다 느린 CPU 및 네트워크 환경을 시뮬레이션 할 수 있습니다.

웹 페이지 로딩 속도 성능 측정

F12 > Performance 탭 > 좌측 상단 새로고침 아이콘 클릭

상호작용 및 애니메이션 성능 측정

F12 > Performance 탭 > 좌측 상단 녹화 아이콘 클릭 > 사용자 동작 수행 > Stop
클릭, 스크롤, 애니메이션 등 인터랙션 구간의 프레임 드롭, 렌더링 병목을 파악할 수 있습니다.


Application 탭 사용법

브라우저에 저장된 데이터 확인 방법

F12 > Application 탭 > 좌측 Storage 메뉴 > 스토리지 선택 > 데이터가 저장된 도메인 선택 > 우측 영역에서 키-값 데이터 확인 및 수정 가능

브라우저 스토리지 종류

Local Storage 로컬스토리지는 같은 브라우저 전체에서 공용으로 사용할 수 있습니다. 브라우저를 종료해도 남아있고, 직접 삭제하기 전까지 유지됩니다.
주로 영구적인 데이터 저장에 사용됩니다.
Session Storage 다른 탭은 다른 세션으로 정의하여 세션스토리지 데이터가 공유되지 않습니다.
새로고침 해도 남아있고, 브라우저 탭을 종료하면 삭제됩니다.
임시 데이터를 저장하는 데 유용합니다.
Cookies 쿠키는 4KB 저장 가능하여, 최대 5MB 저장할 수 있는 로컬스토리지보다 용량이 적습니다.
브라우저가 종료되면 사라지는 session 쿠키, 만료일까지 저장되는 Persistent 쿠키가 있습니다.
Console 탭에서 document.cookie 입력 시에도 쿠키에 저장된 키-값들 확인 가능합니다.
톰캣 컨테이너에서 세션을 유지하기 위해 발급하는 JSESSIONID도 요청 쿠키에 저장됩니다.

좌측 Storage 메뉴에서 각 스토리지를 선택하면 저장된 값 확인이 가능합니다.

웹 스토리지란?
쿠키보다 큰 문자열을 클라이언트에 저장할 수 있는 저장소이며, 서버가 아닌 Javascript에서만 값을 조작할 수 있습니다.
웹 스토리지에는 Local Storage, Session Storage가 있습니다.


Lighthouse 탭 사용법

웹 페이지 성능 검사

F12 > Lighthouse 탭 > Mode, Device, Categories 선택 > Analyze page load
현재 웹 페이지의 로딩 성능, 사용자 접근성, 최신 웹 표준 준수 여부, 검색엔진 최적화 등을 분석합니다.
분석에 참고한 문서, 문제가 발생한 항목에 대한 설명, 개선 방법 등을 제공받을 수 있습니다.

웹 성능 검사 결과 PDF 저장 방법
검사 결과 페이지 우측 점 3개 > Print Expanded > 대상 : PDF로 저장 > 저장


모바일 디바이스 모드

F12 > 좌측 상단 Toggle device toolbar 버튼 (Ctrl + Shift + M)

디바이스 모드 화면 사이즈 변경 방법

  • 상단 가로x세로 사이즈 입력
  • 우측 및 하단 사이즈 변경 바 드래그
  • 상단 좌측 기기명 선택 > Edit > Custom devices 추가 또는 원하는 기기명 체크
  • 상단 우측 회전 버튼 선택 (세로모드/가로모드 전환)
  • 상단 가로x세로 사이즈 입력 바 하단 기준점 클릭 (모바일/태블릿/노트북 사이즈 전환)

Categories:

Updated: