본문 바로가기
개발자 기초 & 실무

크롬 개발자도구(DevTools) 완전 활용법 — 네트워크, 콘솔, 디버거까지 실무 가이드

by yamoojin83 2025. 11. 14.

크롬 개발자도구(DevTools) 완전 활용법 — 네트워크, 콘솔, 디버거까지 실무 가이드

웹 개발자라면 ‘크롬 개발자도구(DevTools)’는 필수 무기입니다.

화면이 깨지거나, 버튼이 작동하지 않거나, API 응답이 늦을 때 가장 먼저 확인해야 할 도구가 바로 이것이죠.

이번 글에서는 초급 실무자가 알아야 할 DevTools의 핵심 탭(Elements, Console, Network, Sources)을 중심으로 실무 디버깅 노하우를 단계별로 정리했습니다.

 

크롬 개발자도구 전체 화면 구조

1. 개발자도구 열기 — 기본 단축키와 패널 구조

크롬 개발자도구는 단축키 하나로 열 수 있습니다.

- **Windows / Linux:** Ctrl + Shift + I 또는 F12
- **Mac:** Command + Option + I

열면 기본적으로 오른쪽 또는 하단에 탭 형태의 패널이 나타납니다.

주요 패널은 다음과 같습니다.

  • Elements: HTML과 CSS 구조 확인 및 실시간 수정
  • Console: 자바스크립트 로그·에러·명령어 실행
  • Network: 요청/응답, API 속도, 헤더, 응답코드 분석
  • Sources: JS 코드 브레이크포인트 설정 및 디버깅
  • Application: 쿠키, 로컬스토리지, 세션스토리지 관리

💡 팁: Ctrl + Shift + M (Mac: Command + Shift + M)을 누르면 모바일 기기 화면으로 전환되어 반응형 UI 테스트도 가능합니다.

2. Elements 탭 — HTML & CSS 실시간 수정

Elements 탭은 “화면의 뼈대와 옷”을 직접 조작할 수 있는 공간입니다.

특정 요소에 마우스를 올리면 페이지 내 위치가 하이라이트됩니다.

실무 활용 예시:

  1. 버튼 크기나 색상이 안 맞을 때 → 해당 요소 선택
  2. 오른쪽 스타일 패널에서 CSS 수정
  3. 실시간 반영으로 즉시 시각적 확인

<button class="submit">전송</button>
/* CSS */
.submit {
  background-color: #007bff;
  padding: 8px 16px;
}

💡 주의: Elements에서 수정한 내용은 브라우저에만 임시 반영됩니다. 서버에는 저장되지 않으므로, IDE 코드에 직접 반영해야 합니다.

3. Console 탭 — 자바스크립트 로그 & 에러 탐색

Console 탭은 프론트엔드 디버깅의 중심입니다.

여기에는 자바스크립트의 console.log() 출력, 오류 메시지, 네트워크 관련 경고까지 모두 표시됩니다.


console.log("폼 전송 시작");
console.warn("입력값 누락: email");
console.error("서버 응답 오류", response);

💡 실무 팁:
- console.clear() : 콘솔 초기화
- console.table(arr) : 배열 데이터를 표로 시각화
- filter: error : 에러만 필터링

특히 백엔드 로그(logback)와 Console 로그를 동시에 비교하면 화면과 서버 간 데이터 흐름을 빠르게 파악할 수 있습니다.

크롬 개발자도구 콘솔 탭 로그 예시

4. Network 탭 — API 요청 & 응답 확인

Network 탭은 백엔드와의 연결을 검증하는 가장 강력한 도구입니다.

화면에서 발생하는 모든 요청(API, 이미지, CSS, JS 파일 등)이 타임라인 형태로 표시됩니다.

주요 확인 포인트:

  • Method: GET, POST 등 요청 방식
  • Status: 200(성공), 400(요청 오류), 500(서버 오류)
  • Time: 응답 속도(ms 단위)
  • Payload: 요청 시 전송된 데이터
  • Response: 서버에서 반환한 JSON/XML 결과

예시로 /api/login 요청이 실패했을 때, Network 탭에서 Response를 열면 에러 메시지(예: “Invalid password”)를 즉시 확인할 수 있습니다.


{
  "status": "error",
  "message": "Invalid password"
}

💡 실무 팁: - Preserve log 체크 → 페이지 새로고침 시 로그 유지 - Disable cache 체크 → 캐시 끄고 실제 요청 테스트 - Filter: XHR 선택 → API 요청만 보기

5. Sources 탭 — 자바스크립트 디버깅

Sources 탭에서는 자바스크립트 파일을 직접 열어 브레이크포인트를 설정하고 변수 상태를 확인할 수 있습니다.

이는 백엔드의 log.debug()와 유사한 역할을 합니다.

  1. 왼쪽에서 디버깅할 JS 파일 선택
  2. 줄 번호 클릭 → 브레이크포인트 설정
  3. 오른쪽 ‘Scope’ 창에서 변수 값 확인
  4. ‘Step Over (F10)’로 한 줄씩 실행

💡 활용 예: 폼 검증 로직이 동작하지 않을 때, 브레이크포인트를 setValidation() 내부에 걸어 값이 정상 전달되는지 확인합니다.

크롬 개발자도구 소스탭 디버깅 화면

6. Application & Storage — 쿠키/세션 확인

Application 탭에서는 쿠키, 로컬스토리지(LocalStorage), 세션스토리지(SessionStorage)를 한눈에 볼 수 있습니다.

로그인 유지나 장바구니 데이터처럼 클라이언트 측 저장소를 관리할 때 매우 유용합니다.

예시:
localStorage.setItem("userId", "abc123"); → 저장된 값은 Application 탭 → Local Storage에서 확인 가능합니다.

쿠키 만료시간, 도메인, 보안 설정도 확인할 수 있어 세션 만료 이슈를 추적할 때 자주 활용됩니다.

7. 실무 시나리오 — 프론트와 백엔드 로그를 연결하기

실제 프로젝트에서는 크롬 개발자도구 + 서버 로그(Logback) 조합으로 문제 원인을 찾는 경우가 많습니다.

예를 들어, “결제 버튼이 눌러지지 않는다”면 다음 순서로 접근합니다.

  1. Console 탭: 자바스크립트 오류 확인 (예: Uncaught TypeError)
  2. Network 탭: 요청 URL, 응답코드(400/500) 확인
  3. Response 탭: API 에러 메시지 확인
  4. 서버 Logback 로그에서 traceId로 동일 요청 검색

💡 핵심:</stron