피드로 돌아가기
How to Get the Caller's Filename in Node.js
Dev.toDev.to
Backend

Node.js에서 Error().stack을 파싱하여 호출한 파일명을 추출하는 방법으로 로깅 시 호출자 식별

How to Get the Caller's Filename in Node.js

Shoichi Okaniwa2026년 3월 28일2beginner

Context

로깅이나 디버깅 상황에서 특정 함수를 호출한 JavaScript 파일의 이름을 알아야 하는 필요성이 있습니다.

Technical Solution

  • Error() 객체의 stack 속성에서 스택 트레이스 문자열 추출: new Error().stack으로 전체 콜 스택 획득
  • 'at' 문자열 기준으로 스택 트레이스 분할 후 호출자 라인 추출: split('at')[2]를 통해 3번째 요소(호출한 함수의 정보) 선택
  • path.basename()으로 디렉토리 경로 제거: 전체 경로에서 파일명만 추출
  • ':' 문자 기준으로 재분할하여 파일명만 격리: split(':')[0]으로 라인 번호와 칼럼 번호 제거
  • 추가 외부 패키지 없이 Node.js 내장 모듈(path)만 사용: 의존성 최소화

Key Takeaway

Node.js의 Error 스택 트레이스는 구조화된 텍스트 형식으로 제공되므로, 문자열 파싱으로 호출 관계를 추출할 수 있으며, 이는 로깅, 디버깅, 성능 분석 시 호출 스택 분석에 유용합니다.


로깅 레이어가 필요한 Node.js 애플리케이션에서 path.basename()과 Error().stack 파싱을 결합하면 함수 호출 시 호출자 파일명을 자동으로 기록할 수 있어, 런타임 로그에서 호출 경로 추적이 가능합니다.

원문 읽기