Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML DOM console.trace() 메서드 – 스택 트레이스 출력 방법 총정리

HTML DOM의 console.trace() 메서드는 호출된 시점까지의 스택 트레이스(stack trace)를 콘솔에 출력하는 기능을 합니다. 즉, 현재 코드가 어떤 경로를 거쳐 해당 지점에 도달했는지, 코드 실행 흐름(code path)을 추적할 때 주로 사용됩니다.

문법(Syntax)

console.trace() 메서드의 기본 문법은 다음과 같습니다.

console.trace(label);

여기서 label은 선택적(optional) 매개변수로, 문자열 타입의 값을 받아 트레이스에 라벨을 지정합니다. 서로 다른 코드 조각에 대해 여러 개의 트레이스를 출력해야 할 때 각 트레이스를 구분하는 데 유용합니다.

예제(Example)

다음 예제를 통해 console.trace() 메서드의 동작을 살펴보겠습니다.

<!DOCTYPE html>
<html>
<body>
<h1> console.trace() Method</h1>
<p>아래 버튼을 클릭하세요...</p>
<button onclick="Function1()">Start Trace</button>
<script>
    function Function1(){
       Function2();
    }
    function Function2(){
       console.trace();
    }
</script>
<p>버튼 클릭 후 콘솔 탭에서 스택 트레이스를 확인할 수 있습니다.</p>
</body>
</html>

출력 결과(Output)

위 코드를 실행하면 다음과 같은 화면이 나타납니다.

HTML DOM console.trace() 메서드 – 스택 트레이스 출력 방법 총정리

「Start Trace」 버튼을 클릭한 뒤, 브라우저 개발자 도구의 콘솔(Console) 탭에서 출력 결과를 확인합니다.

HTML DOM console.trace() 메서드 – 스택 트레이스 출력 방법 총정리

동작 원리 설명

위 예제의 실행 흐름을 단계별로 분석해 보겠습니다.

1. 버튼 생성 및 이벤트 연결

먼저 「Start Trace」 버튼을 만들고, 사용자가 클릭하면 Function1()이 실행되도록 onclick 이벤트를 연결했습니다.

<button onclick="Function1()">Start Trace</button>

2. 함수 호출 순서와 스택 트레이스

Function1()은 내부에서 Function2()를 호출하고, Function2()는 자신의 내부에 있는 console.trace() 메서드를 실행합니다.

스택 트레이스는 LIFO(Last-In, First-Out, 후입선출) 순서를 따르기 때문에, 가장 마지막에 호출된 함수가 가장 먼저 출력됩니다.

  • 첫 번째로 출력: console.trace()를 직접 호출한 Function2()
  • 두 번째로 출력: Function2()를 호출한 Function1()
  • 세 번째로 출력: Function1()을 실행시킨 「Start Trace」 버튼의 onclick 이벤트

즉, 스택 트레이스는 함수가 호출된 순서의 역순으로 표시되며, 이를 통해 코드가 어떤 경로로 현재 위치에 도달했는지 한눈에 파악할 수 있습니다.

<button onclick="Function1()">Start Trace</button>
function Function1(){
    Function2();
}
function Function2(){
    console.trace();
}

정리

console.trace() 메서드는 디버깅 시 함수 호출 경로를 추적하는 강력한 도구입니다. 복잡한 콜백 체인이나 여러 계층으로 중첩된 함수 호출 구조에서 문제 발생 지점을 빠르게 찾아내야 할 때 특히 유용하며, label 매개변수를 활용하면 여러 트레이스 출력 결과도 체계적으로 관리할 수 있습니다.