Debug code with Visual Studio Code
위의 공식 문서를 읽어보며 필요한 부분을 번역해서 정리한 글입니다.
VS Code는 JavaScript, TypeScript, 그리고 Node.js 디버깅을 별도의 설치 없이 기본적으로 지원한다.

실행 및 디버그 보기(Run and Debug view): 실행, 디버깅, 디버그 설정 관리를 위한 모든 정보를 표시함.
디버그 툴바(Debug toolbar): 자주 쓰는 디버깅 동작을 위한 버튼들을 제공함.
디버그 콘솔(Debug console): 디버거에서 실행 중인 코드의 출력 내용을 보고 상호작용할 수 있게 해줌.
디버그 사이드바(Debug sidebar): 디버깅 세션 중 호출 스택(call stack), 중단점(breakpoints), 변수(variables), 감시 표현식(watch variables) 등을 조작할 수 있게 해줌.
실행 메뉴(Run menu): 자주 사용하는 실행 및 디버그 명령어들을 제공함.
launch.json 파일을 생성하여 디버거 설정을 명시해야 함.※ 단순히 F5 눌러서 현재 파일을 실행하는 게 아니라, 더 복잡한 상황(ex. 이미 실행 중인 다른 앱에 연결, 원격 서버 디버깅, Docker, 백그라운드 서버 프로세스 등)을 디버깅하는 경우에는 디버거 설정을 명시한 launch.json 파일을 직접 생성해야 함.
※ Node.js의 경우, VS Code는 package.json 파일에 있는 start 스크립트를 확인하여 애플리케이션의 진입점(entry point)을 결정함.
(start 스크립트란 package.json 안에 있는 "scripts" 항목 중 "start"로 정의된 명령어)
| 동작 | 설명 |
|---|---|
| Continue / Pause (F5) | 계속(Continue): 다음 중단점까지 프로그램/스크립트를 정상적으로 실행함. 일시정지(Pause): 현재 줄에서 코드 실행을 멈추고 한 줄씩 디버깅할 수 있도록 함. |
| Step Over (F10) | 다음 메서드를 한 줄로 실행하되, 내부 로직은 따라가지 않음 (즉, 해당 메서드 안으로 들어가지 않음). |
| Step Into (F11) | 다음 메서드 안으로 들어가서 그 내부를 한 줄씩 따라가며 실행함. |
| Step Out (Shift + F11) | 현재 메서드 내부에 있을 때, 남은 코드를 한 번에 실행하고 호출한 이전 위치(상위 함수)로 돌아감. |
| Restart (Shift + Cmd + F5) | 현재 실행 중인 프로그램을 종료하고, 현재 디버깅 설정(run configuration)으로 다시 디버깅을 시작함. |
| Stop (Shift + F5) | 현재 실행 중인 프로그램을 종료함. |