λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
IT

Visual Studio Code의 Run and Debug κΈ°λŠ₯

by πŸ’²πŸŽ΅βœ–οΈβœ”οΈβ˜Ό 2024. 3. 5.

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 κΈ°λŠ₯은 효율적인 μ½”λ“œ μ‹€ν–‰κ³Ό 디버깅을 κ°€λŠ₯μΌ€ ν•˜λŠ” κ°•λ ₯ν•œ λ„κ΅¬μž…λ‹ˆλ‹€. ν”„λ‘œμ νŠΈ 개발과 μœ μ§€ 보수λ₯Ό 보닀 효과적으둜 μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ 이 κΈ°λŠ₯을 적극 ν™œμš©ν•΄λ³΄μ„Έμš”. μ½”λ“œ μž‘μ„± 및 디버깅 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ΅œμ ν™”ν•˜μ—¬ 생산성을 높일 수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ“κΈ€