nestjs
많은 주니어 개발자들은 서버 코드의 문제를 찾기 위해 console.log()를 추가한 후 서버를 재시작하는 방식으로 디버깅을 수행합니다. 하지만 이 방법은 코드 수정 후 서버를 매번 재시작해야 하므로, 비효율적이며 시간이 오래 걸릴 수 있습니다.
이 문제를 해결하기 위해 VS Code의 디버깅 기능을 활용하면, 코드 실행 중에 변수를 실시간으로 확인하고, 중단점(Breakpoint)을 설정하여 코드 흐름을 추적할 수 있습니다.
이번 글에서는 NestJS 프로젝트에서 VS Code를 활용한 디버깅 환경을 설정하는 방법을 설명하겠습니다.
아래 설정을 .vscode/launch.json 파일에 추가합니다.
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug Hanpy Framework",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "start:debug", "--inspect-brk"],
"autoAttachChildProcesses": true,
"restart": true,
"sourceMaps": true,
"stopOnEntry": false,
"console": "integratedTerminal"
}
]
}
브레이크포인트는 특정 코드 줄에서 실행을 일시 중지하여 현재 변수 값과 코드 흐름을 분석할 수 있도록 돕는 기능입니다.
디버깅할 코드 줄 왼쪽의 번호 영역을 클릭하면 빨간 점(🔴)이 생깁니다. 디버그 모드를 실행하면 해당 줄에서 코드가 멈추고, 현재 변수 값과 실행 흐름을 확인할 수 있습니다.
디버깅이 멈춘 상태에서 VS Code의 "변수(Variables)" 패널을 보면, 현재 실행 중인 코드의 변수 값을 확인할 수 있습니다.
launch.json의 "start:debug"가 실행될 때, package.json에 해당 스크립트가 정의되어 있어야 합니다.
"scripts": {
"start:debug": "node --inspect-brk dist/main.js"
}
위와 같이 설정하면 pnpm run start:debug를 실행할 때, Node.js 디버거가 활성화된 상태로 서버가 실행됩니다.
VS Code에서 NestJS 프로젝트를 디버깅할 때 console.log()를 남발하는 대신, 브레이크포인트를 활용한 디버깅 환경을 구축하면 훨씬 효율적으로 문제를 분석할 수 있습니다. launch.json을 설정하여 디버깅 환경을 구성하고, npm run start:debug 스크립트를 통해 서버를 실행하며, VS Code에서 브레이크포인트와 변수 확인 기능을 적극 활용하면, 서버 재시작 없이 즉시 디버깅할 수 있습니다.