Files
2nd/10_Wiki/Topics/Chrome DevTools 및 메모리 프로파일링.md
T

2.9 KiB

Chrome DevTools 및 메모리 프로파일링

📌 Brief Summary

Chrome DevTools는 구글 크롬 브라우저에 내장된 웹 제작 및 디버깅 도구 세트로, 웹 사이트의 런타임 상태를 실시간으로 분석하고 최적화할 수 있는 필수 도구입니다 [1, 2]. 특히 메모리 패널을 통한 프로파일링은 힙(Heap) 스냅샷을 캡처하고 시간에 따른 메모리 할당을 추적하여 가비지 컬렉션(GC) 이후에도 남아있는 메모리 누수(Memory Leak)를 감지하는 데 핵심적인 역할을 합니다 [1, 3].

📖 Core Content

  • 핵심 패널 및 기능

    • Elements & Console: DOM/CSS 실시간 수정 및 JavaScript 즉석 실행과 로그 확인을 수행합니다 [1, 4].
    • Network: 데이터 요청 및 응답을 감시하여 네트워크 병목 현상을 파악합니다 [1].
    • Performance & Memory: 프레임 드랍이나 메모리 사용량을 정밀 분석하여 성능 저하의 원인을 식별합니다 [1, 5].
  • 메모리 프로파일링 기법

    • 힙 스냅샷 (Heap Snapshot): 특정 시점의 전체 객체 그래프를 캡처합니다. '3-스냅샷 기법'을 통해 기준점과 작업 전후의 메모리 변화를 비교하여 실제 누수 후보를 찾아낼 수 있습니다 [3, 6].
    • 타임라인 할당 계측 (Allocation Instrumentation on Timeline): 시간에 따른 실시간 메모리 할당을 추적합니다. 파란색 막대는 현재 살아있는 객체, 회색 막대는 가비지 컬렉션된 객체를 나타내며 누수 발생 시점을 명확히 보여줍니다 [3, 7].
    • 보존 경로 (Retaining Path/Retainers): 특정 객체를 메모리에 살아있게 유지하는 참조 체인을 역순으로 보여주어 누수의 근본 원인을 추적하게 합니다 [3, 8].
  • 지능형 디버깅의 진화 최근 DevTools에는 AI 비서(Gemini 등)가 통합되어 에러 메시지 분석과 코드 수정 제안을 제공하는 지능형 디버깅 정책으로 진화하고 있습니다 [1].

⚖️ Trade-offs & Caveats

  • 의도된 보존 vs 누수: 캐시나 실행 취소 기록(Undo history) 등은 의도적으로 데이터를 보존하도록 설계된 것이므로, 이를 우발적인 누수와 명확히 구분해야 합니다 [9].
  • 콘솔 참조 주의: console.log로 출력된 객체는 브라우저가 참조를 계속 유지하므로, 메모리 조사 시에는 콘솔을 비워야 정확한 측정이 가능합니다 [3, 9].

🔗 Knowledge Connections


Last updated: 2026-04-30