๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT

Visual Studio Code์˜ Run and Debug ๊ธฐ๋Šฅ

by ๐Ÿ’ฒ๐ŸŽตโœ–๏ธโœ”๏ธโ˜ผ 2024. 3. 5.
728x90

Visual Studio Code์˜ Run and Debug ๊ธฐ๋Šฅ

์†Œ๊ฐœ

Visual Studio Code(VSCode)๋Š” ํ˜„๋Œ€์ ์ด๊ณ  ๊ฒฝ๋Ÿ‰ํ™”๋œ ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ๋กœ, ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ ์–ธ์–ด์™€ ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ํ’๋ถ€ํ•œ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ์ค‘์—์„œ 'Run and Debug' ๊ธฐ๋Šฅ์€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๋“ค์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

VSCode Run and Debug์˜ ์—ญํ• 

1. ์ฝ”๋“œ ์‹คํ–‰

VSCode์˜ Run and Debug๋Š” ์ฝ”๋“œ๋ฅผ ์„ ํƒํ•œ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๋‹จ์ถ•ํ‚ค ๋˜๋Š” ๋ฉ”๋‰ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ ์ถœ๋ ฅ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๋””๋ฒ„๊น…

๋””๋ฒ„๊น…์€ ์ฝ”๋“œ ๋‚ด์˜ ์˜ค๋ฅ˜๋ฅผ ์ฐพ์•„๋‚ด๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๊ณผ์ •์œผ๋กœ, VSCode๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ง๊ด€์ ์ด๊ณ  ๊ฐ•๋ ฅํ•œ ๋””๋ฒ„๊น… ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์ค‘๋‹จ์ (breakpoint)์„ ์„ค์ •ํ•˜๊ณ , ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ํ™•์ธํ•˜๋ฉฐ ์ฝ”๋“œ ์‹คํ–‰ ์ค‘ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์ƒํ™ฉ

VSCode Run and Debug๋Š” ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  1. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ: ์ฝ”๋“œ ๋ณ€๊ฒฝ ํ›„ ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์˜ˆ์ƒ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰ ๋ฐ ๋””๋ฒ„๊น…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  2. ์˜ค๋ฅ˜ ํ•ด๊ฒฐ: ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ ์‹คํ–‰ ์ค‘ ๋””๋ฒ„๊น… ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

์žฅ๋‹จ์ 

์žฅ์ 

  • ํŽธ๋ฆฌํ•œ ์‹คํ–‰: ์ฝ”๋“œ ์‹คํ–‰์ด ๊ฐ„ํŽธํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.
  • ์‹ค์‹œ๊ฐ„ ๋””๋ฒ„๊น…: ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋””๋ฒ„๊น…์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์˜ค๋ฅ˜๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค์–‘ํ•œ ํ™•์žฅ ๊ธฐ๋Šฅ: ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•œ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž๋Š” ํ•„์š”ํ•œ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์ 

  • ํ•™์Šต ๊ณก์„ : ์ดˆ๊ธฐ์—๋Š” Run and Debug ๊ธฐ๋Šฅ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฐ๊ด€ ๊ธฐ์ˆ 

VSCode Run and Debug๋Š” ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ํŠน์ • ์–ธ์–ด๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋งž๋Š” ๋””๋ฒ„๊น… ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, JavaScript ๊ฐœ๋ฐœ ์‹œ์—๋Š” Node.js ๋””๋ฒ„๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ •

ํ”„๋กœ์ ํŠธ ๋‚ด .vscode/launch.json ์ƒ์„ฑ ๋ฐ ์•„๋ž˜์™€ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰

์ƒˆ๋กœ์šด Chrome Instance ์—์„œ์˜ ์‹คํ–‰

ํ”„๋กœ์ ํŠธ ๋‚ด ์„œ๋น„์Šค ์‹คํ–‰ script ์™€ launch chrome ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ด ํ›„์— ํ™•์ธํ•˜๊ณ  ์‹ถ์€ ์ง€์ ์— break point ๋ฅผ ๊ฑธ์–ด ๋””๋ฒ„๊น…์„ ์ง„ํ–‰ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด Chrome Instance ์—์„œ์˜ ์‹คํ–‰

ํ”„๋กœ์ ํŠธ ๋‚ด ์„œ๋น„์Šค ์‹คํ–‰ script ์™€ Launch Existing Chrome Instance ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ด ํ›„์— ํ™•์ธํ•˜๊ณ  ์‹ถ์€ ์ง€์ ์— break point ๋ฅผ ๊ฑธ์–ด ๋””๋ฒ„๊น…์„ ์ง„ํ–‰ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Chrome Debugger Configuration

Run Chromium with command-line switches

Window

<chrome_path>\chrome.exe --remote-debugging-port=9222

MacOS

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222

Linux

google-chrome --remote-debugging-port=9222

Port 9222 is used for remote debugging of Google Chrome or Chromium. It is used to attach a debugger to a running Chrome instance so that developers can inspect the HTML/CSS/JavaScript code, debug and profile performance of web applications. Ports those registered with IANA are shown as official ports. The same port number may be unofficialy used by various services or applications. The official usage are listed separately below its usage may change from time to time.

๊ฒฐ๋ก 

VSCode์˜ Run and Debug ๊ธฐ๋Šฅ์€ ํšจ์œจ์ ์ธ ์ฝ”๋“œ ์‹คํ–‰๊ณผ ๋””๋ฒ„๊น…์„ ๊ฐ€๋Šฅ์ผ€ ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ๊ณผ ์œ ์ง€ ๋ณด์ˆ˜๋ฅผ ๋ณด๋‹ค ํšจ๊ณผ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ด ๊ธฐ๋Šฅ์„ ์ ๊ทน ํ™œ์šฉํ•ด๋ณด์„ธ์š”. ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐ ๋””๋ฒ„๊น… ํ”„๋กœ์„ธ์Šค๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€