๐ ️ ์ฝ๋ ๋๋ฒ๊น ํด ์๋ฒฝ ๊ฐ์ด๋
๐ ๋ชฉ์ฐจ
์ํํธ์จ์ด ๊ฐ๋ฐ์์ ๋๋ฒ๊น (Debugging)์ ํ์์ ์ธ ๊ณผ์ ์ด์์. ์ฝ๋ ์ค๋ฅ๋ฅผ ์ฐพ์ ์์ ํ๋ ์์ ์ผ๋ก, ํ๋ก๊ทธ๋จ์ ์์ ์ฑ๊ณผ ์ฑ๋ฅ์ ํฅ์์ํค๋ ํต์ฌ ์์์ฃ .
๋๋ฒ๊น ํด์ ์ฌ์ฉํ๋ฉด ์ค๋ฅ๋ฅผ ๋น ๋ฅด๊ฒ ๋ฐ๊ฒฌํ๊ณ ์์ ํ ์ ์์ด์. ํนํ, ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ง๋ค ์ต์ ํ๋ ๋๋ฒ๊น ๋๊ตฌ๊ฐ ์กด์ฌํ๋ฉฐ, ์ด๋ฅผ ์ ์ ํ ํ์ฉํ๋ฉด ์์ฐ์ฑ์ ๊ทน๋ํํ ์ ์๋ต๋๋ค.
์ค๋์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋๋ฒ๊น ํด๊ณผ ํจ๊ณผ์ ์ธ ๋๋ฒ๊น ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ์ค์ ์ฌ๋ก๊น์ง ์ดํด๋ณผ ๊ฑฐ์์. ์ด๋ณด ๊ฐ๋ฐ์๋ถํฐ ์๋ จ๋ ์์ง๋์ด๊น์ง ์ ์ฉํ ์ ๋ณด๊ฐ ๊ฐ๋ํ๋ ๋๊น์ง ์ฝ์ด๋ณด์ธ์! ๐
![]() |
| ์ฝ๋ ๋๋ฒ๊น ํด |
๋๋ฒ๊น ์ด๋? ๊ฐ๋ ๊ณผ ์ค์์ฑ
๋๋ฒ๊น (Debugging)์ ์ฝ๋์์ ๋ฐ์ํ๋ ๋ฒ๊ทธ(Bug)๋ฅผ ์ฐพ์ ์์ ํ๋ ๊ณผ์ ์ด์์. ๋ฒ๊ทธ๋ ํ๋ก๊ทธ๋จ์ด ์๋ํ ๋๋ก ๋์ํ์ง ์๋ ์ค๋ฅ๋ฅผ ์๋ฏธํ์ฃ .
์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ ์ด์ฐฝ๊ธฐ๋ถํฐ ๋๋ฒ๊น ์ ์ค์ํ ๊ฐ๋ ์ด์์ด์. ์ ์ค์ ์ธ ํ๋ก๊ทธ๋๋จธ์ธ ๊ทธ๋ ์ด์ค ํธํผ(Grace Hopper)๋ ์ต์ด์ '๋ฒ๊ทธ'๊ฐ ์ค์ ๋ฒ๋ (Moth)์๋ค๊ณ ๊ธฐ๋กํ๊ธฐ๋ ํ์ฃ . ์ดํ ์ด ๊ฐ๋ ์ด ํ์ฅ๋์ด ์ค๋๋ ์ ๋๋ฒ๊น ์ผ๋ก ๋ฐ์ ํ์ด์.
๋๋ฒ๊น ์ ํจ๊ณผ์ ์ผ๋ก ์ํํ๋ฉด ๊ฐ๋ฐ ์๋๊ฐ ๋นจ๋ผ์ง๊ณ , ์ฝ๋์ ํ์ง์ด ํฅ์๋ผ์. ์ฝ๋ ์ค๋ฅ๋ฅผ ์ค์ด๊ณ ํ๋ก๊ทธ๋จ์ ์์ ์ฑ์ ๋์ด๋ ๊ฒ์ด ๋๋ฒ๊น ์ ๊ฐ์ฅ ์ค์ํ ๋ชฉ์ ์ด์์.
๊ทธ๋ ๋ค๋ฉด, ์ด๋ค ํด์ด ๋๋ฒ๊น ์ ๋์์ค๊น์? ๋ค์ ์น์ ์์ ์์๋ณผ๊ฒ์! ๐ง
๐ป ์ธ๊ธฐ ์๋ ์ฝ๋ ๋๋ฒ๊น ํด
๋๋ฒ๊น ํด์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ค์ํ๊ฒ ์กด์ฌํด์. ๋ค์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋๋ฒ๊น ํด๋ค์ด์์.
๐ง ์ฃผ์ ๋๋ฒ๊น ํด ๋น๊ต
| ํด ์ด๋ฆ | ์ง์ ์ธ์ด | ํน์ง | ์ฌ์ฉ ํ๊ฒฝ |
|---|---|---|---|
| GDB | C, C++ ๋ฑ | ๊ฐ๋ ฅํ CLI ๊ธฐ๋ฐ ๋๋ฒ๊ฑฐ | Linux, macOS |
| Visual Studio Debugger | C#, C++, Python ๋ฑ | GUI ๊ธฐ๋ฐ, ๊ฐ๋ ฅํ ๋ธ๋ ์ดํฌํฌ์ธํธ | Windows |
| Chrome DevTools | JavaScript | ์น ๋๋ฒ๊น ์ต์ ํ | ๋ชจ๋ OS |
| PDB | Python | Python ๋ด์ฅ ๋๋ฒ๊ฑฐ | ๋ชจ๋ OS |
๊ฐ ๋๋ฒ๊น ํด์ ํน์ฑ์ ์ ํ์ ํ๊ณ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ง๊ฒ ์ ํํ๋ฉด ํจ์ฌ ํจ์จ์ ์ผ๋ก ์ค๋ฅ๋ฅผ ์์ ํ ์ ์์ด์! ๐ฅ
๐ ํจ๊ณผ์ ์ธ ๋๋ฒ๊น ๋ฐฉ๋ฒ
๋๋ฒ๊น ์ ์ํ๋ ๊ฐ๋ฐ์๋ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ด ๋ฐ์ด๋ ๊ฐ๋ฐ์์์. ๋จ์ํ ์ค๋ฅ๋ฅผ ์์ ํ๋ ๊ฒ์ด ์๋๋ผ, ๋ฌธ์ ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๋ถ์ํ๊ณ ์ฌํํ๋ ๋ฅ๋ ฅ์ด ์ค์ํ์ฃ .
ํจ์จ์ ์ธ ๋๋ฒ๊น ์ ์ํด ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ด ์ข์์:
- 1. ๋ฌธ์ ์ฌํ: ๋ฒ๊ทธ๋ฅผ ์ ํํ๊ฒ ์ฌํํด์ผ ์์ธ์ ์ฐพ์ ์ ์์ด์.
- 2. ๋ก๊ทธ ๋ถ์: ์ค๋ฅ ๋ฉ์์ง์ ๋ก๊ทธ๋ฅผ ํ์ธํ๋ฉด ๋จ์๊ฐ ๋ ์ ์์ด์.
- 3. ๋ธ๋ ์ดํฌํฌ์ธํธ ํ์ฉ: ๋๋ฒ๊ฑฐ์์ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ์ค์ ํ๋ฉด ์คํ ํ๋ฆ์ ๋จ๊ณ๋ณ๋ก ๋ถ์ํ ์ ์์ด์.
- 4. ์ฝ๋ ์ฃผ์ ์ฒ๋ฆฌ: ํน์ ์ฝ๋ ๋ธ๋ก์ ์ฃผ์ ์ฒ๋ฆฌํ๊ณ ์คํํ์ฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์์น๋ฅผ ์ขํ ๋๊ฐ์.
- 5. ๊ตฌ๊ธ ๊ฒ์ & ์ปค๋ฎค๋ํฐ ํ์ฉ: Stack Overflow ๊ฐ์ ์ปค๋ฎค๋ํฐ์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์ ์๋ ์์ด์.
์ ๋ฐฉ๋ฒ๋ค์ ์ ์ ํ ์กฐํฉํ๋ฉด ํจ์ฌ ๋น ๋ฅด๊ฒ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ด์. ํนํ ๋ธ๋ ์ดํฌํฌ์ธํธ์ ๋ก๊ทธ๋ ๋๋ฒ๊น ์ ํต์ฌ ๋๊ตฌ์์! ๐ ️
✅ ๋๋ฒ๊น ์ ์ ์ฉํ ํ
๋๋ฒ๊น ์ ํ ๋ ๋ค์๊ณผ ๊ฐ์ ํ์ ํ์ฉํ๋ฉด ๋์ฑ ํจ๊ณผ์ ์ด์์:
๐ก ๋๋ฒ๊น ํ ๋ชจ์
| ํ | ์ค๋ช |
|---|---|
| ๋ก๊ทธ ๋ ๋ฒจ ์ค์ | DEBUG, INFO, ERROR ๋ฑ ์ ์ ํ ๋ก๊ทธ ๋ ๋ฒจ์ ์ค์ ํด ๋ฌธ์ ์ ์ฌ๊ฐ๋๋ฅผ ๊ตฌ๋ถํด์. |
| ๋จ๊ณ๋ณ ์คํ | ํ ์ค์ฉ ์ฝ๋ ์คํํ๋ฉฐ ๋ณ์ ๊ฐ์ ํ์ธํด์. |
| ํ๊ฒฝ ๋ถ๋ฆฌ | ๋ก์ปฌ, ์คํ ์ด์ง, ํ๋ก๋์ ํ๊ฒฝ์ ๋ถ๋ฆฌํ๋ฉด ์์ธ ๋ถ์์ด ์ฌ์์. |
| ์ฝ๋ ๋ฆฌ๋ทฐ | ๋๋ฃ์ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํ๋ฉด ์์์น ๋ชปํ ์ค์๋ฅผ ์ฐพ์ ์ ์์ด์. |
์ด ํ๋ค์ ์ ์ฉํ๋ฉด ๋๋ฒ๊น ๊ณผ์ ์ด ํ๊ฒฐ ์์ํด์ง ๊ฑฐ์์. ํนํ ๋ก๊ทธ ๋ถ์์ ๋ฐ๋์ ์ต๊ดํํด์ผ ํด์! ๐ฅ
๐ ์ธ์ด๋ณ ๋๋ฒ๊น ์ ๋ต
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ง๋ค ๋๋ฒ๊น ๋ฐฉ์์ด ์กฐ๊ธ์ฉ ๋ฌ๋ผ์. ๊ฐ ์ธ์ด์ ํน์ฑ์ ๋ง๋ ๋๋ฒ๊น ๋ฐฉ๋ฒ์ ์ตํ๋๋ฉด ํจ์ฌ ํจ์จ์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ด์.
๐ ์ธ์ด๋ณ ๋๋ฒ๊น ๊ธฐ๋ฒ
| ์ธ์ด | ์ฃผ์ ๋๋ฒ๊น ๋ฐฉ๋ฒ | ๋ํ ๋๋ฒ๊น ํด |
|---|---|---|
| Python | PDB ํ์ฉ, print ๋๋ฒ๊น , ๋ก๊น | PDB, PyCharm Debugger |
| JavaScript | console.log, ๋ธ๋ผ์ฐ์ DevTools ์ฌ์ฉ | Chrome DevTools, VS Code Debugger |
| C/C++ | GDB ์ฌ์ฉ, Valgrind๋ก ๋ฉ๋ชจ๋ฆฌ ์ฒดํฌ | GDB, CLion Debugger |
| Java | ๋๋ฒ๊ฑฐ ๋ธ๋ ์ดํฌํฌ์ธํธ, ๋ก๊ทธ ๋ถ์ | IntelliJ IDEA Debugger, JDB |
๊ฐ ์ธ์ด๋ณ ํน์ฑ์ ๋ง๊ฒ ๋๋ฒ๊น ๋ฐฉ๋ฒ์ ์ ํํ๋ฉด ๋ฌธ์ ๋ฅผ ํจ์ฌ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์์ด์! ๐
๐ ์ค์ ๋๋ฒ๊น ์ฌ๋ก
์ด์ ์ค์ ์ฌ๋ก๋ฅผ ํตํด ๋๋ฒ๊น ๊ณผ์ ์ ์ดํด๋ณผ๊ฒ์. ํ์ ๊ฐ๋ฐ์๋ค์ด ์ด๋ป๊ฒ ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๋์ง ์์๋ณด์ฃ !
๐ ์ฌ๋ก 1: Python ๋ฌดํ ๋ฃจํ ๋ฒ๊ทธ
ํ ์คํํธ์ ๊ฐ๋ฐ์๊ฐ Python์ผ๋ก ์น ํฌ๋กค๋ฌ๋ฅผ ๋ง๋ค์๋๋ฐ, ํน์ ์กฐ๊ฑด์์ ๋ฌดํ ๋ฃจํ๊ฐ ๋ฐ์ํ์ด์. ์์ธ์ ์ฐพ๊ธฐ ์ํด ๋ค์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณค์ด์:
- 1. ๋ก๊ทธ ์ถ๊ฐ: ๋ฌดํ ๋ฃจํ๊ฐ ๋ฐ์ํ๋ ์์น๋ฅผ ์ฐพ๊ธฐ ์ํด ๋ก๊ทธ๋ฅผ ์ฝ์ ํ์ด์.
- 2. ๋ณ์ ๊ฐ ์ถ๋ ฅ: ๋ฃจํ ๋ณ์์ ๊ฐ์ ํ์ธํ์ด์.
- 3. ๋ธ๋ ์ดํฌํฌ์ธํธ ์ค์ : PDB ๋๋ฒ๊ฑฐ๋ฅผ ์ฌ์ฉํด ์ค๋จ์ ์ ์ค์ ํ์ด์.
- 4. ๋ฌธ์ ํด๊ฒฐ: ๋น๊ต ์ฐ์ฐ์ ์ค๋ฅ(== ๋์ = ์ฌ์ฉ)๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์์ ํ์ด์.
์ด์ฒ๋ผ ์์ ์ค์๋ ์ฝ๋ ํ๋ฆ์ ๋ง์น ์ ์๊ธฐ ๋๋ฌธ์, ๋๋ฒ๊น ํด๊ณผ ๋ก๊ทธ๋ฅผ ์ ๊ทน ํ์ฉํด์ผ ํด์! ๐ ️
๐ด ์ฌ๋ก 2: JavaScript์ 'undefined' ์๋ฌ
ํ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ๋ฒํผ ํด๋ฆญ ์ ๋์ํ์ง ์๋ ๋ฒ๊ทธ๋ฅผ ๋ฐ๊ฒฌํ์ด์. ๋๋ฒ๊น ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์์:
- 1. ์ฝ์ ํ์ธ: Chrome DevTools์์ ์ฝ์ ์ค๋ฅ๋ฅผ ํ์ธํ์ด์.
- 2. ๋๋ฒ๊น ๋ชจ๋ ์คํ: `debugger;` ํค์๋๋ฅผ ์ฌ์ฉํด ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ์ค์ ํ์ด์.
- 3. ์ด๋ฒคํธ ๋ฆฌ์ค๋ ์ ๊ฒ: ๋ฒํผ ์์๊ฐ ์ ํํ ์ ํ๋์ง ์์์์ ๋ฐ๊ฒฌํ์ด์.
- 4. ํด๊ฒฐ: `querySelector`๋ฅผ ์ฌ์ฉํด ์ฌ๋ฐ๋ฅด๊ฒ ์์๋ฅผ ์ ํํ์ด์.
ํ๋ก ํธ์๋ ๋๋ฒ๊น ์์๋ DevTools ํ์ฉ์ด ์ ๋ง ์ค์ํด์. ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ๋ถ์ํ๋ ์ต๊ด์ ๋ค์ด์ธ์! ๐
❓ FAQ
Q1. ๋๋ฒ๊น ํด์ ์ฌ์ฉํ์ง ์๊ณ ๋ ์ค๋ฅ๋ฅผ ์ฐพ์ ์ ์์๊น์?
A1. ๊ฐ๋ฅํ์ง๋ง ๋นํจ์จ์ ์ด์์. ๋๋ฒ๊น ํด์ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ํด๊ฒฐ ์๋๊ฐ ํจ์ฌ ๋นจ๋ผ์ ธ์.
Q2. ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋๋ฒ๊น ํด์ ๋ฌด์์ธ๊ฐ์?
A2. GDB, Visual Studio Debugger, Chrome DevTools, PDB ๋ฑ์ด ๋ง์ด ์ฌ์ฉ๋ผ์.
Q3. ๋๋ฒ๊น ์๋๋ฅผ ๋์ด๋ ํ์ด ์์๊น์?
A3. ๋ธ๋ ์ดํฌํฌ์ธํธ ํ์ฉ, ๋ก๊ทธ ๋ถ์, ์ฝ๋ ๋ฆฌ๋ทฐ, ๊ตฌ๊ธ ๊ฒ์์ด ๋์์ด ๋ผ์.
Q4. ์ด๋ณด ๊ฐ๋ฐ์๊ฐ ๋๋ฒ๊น ์ ์ํ๋ ค๋ฉด?
A4. ๋๋ฒ๊น ๊ณผ์ ์ ์์ฃผ ์ฐ์ตํ๊ณ , ๋๋ฒ๊น ํด ์ฌ์ฉ๋ฒ์ ์ตํ์ผ ํด์.
Q5. ํ๋ก๋์ ํ๊ฒฝ์์๋ ๋๋ฒ๊น ์ด ๊ฐ๋ฅํ๊ฐ์?
A5. ๊ฐ๋ฅํ์ง๋ง, ๋ก๊น ์ ํตํด ๋ฌธ์ ๋ฅผ ๋ถ์ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด์์.
Q6. print ๋๋ฒ๊น ์ ๋นํจ์จ์ ์ธ๊ฐ์?
A6. ๊ฐ๋จํ ๋ฌธ์ ํด๊ฒฐ์๋ ์ ์ฉํ์ง๋ง, ๋ณต์กํ ๋ฒ๊ทธ๋ ๋๋ฒ๊ฑฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์์.
Q7. ๋๋ฒ๊น ๊ณผ ํ ์คํธ์ ์ฐจ์ด์ ์?
A7. ํ ์คํธ๋ ์ฝ๋์ ๋์์ ๊ฒ์ฆํ๋ ๊ณผ์ ์ด๊ณ , ๋๋ฒ๊น ์ ๋ฐ์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ณผ์ ์ด์์.
Q8. ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋ฒ๊ทธ๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์?
A8. ๋ฌธ์ ์ฌํ → ๋ก๊ทธ ๋ถ์ → ๋ธ๋ ์ดํฌํฌ์ธํธ ํ์ฉ ์์๋ก ์งํํ๋ฉด ํจ๊ณผ์ ์ด์์.
ํ๊ทธ: ๋๋ฒ๊น , ์ฝ๋ ์ค๋ฅ, ํ๋ก๊ทธ๋๋ฐ, ๊ฐ๋ฐ์ ๋๊ตฌ, GDB, Visual Studio, Chrome DevTools, PDB, ์ํํธ์จ์ด ๊ฐ๋ฐ, ๋ฒ๊ทธ ํด๊ฒฐ

๋๊ธ
๋๊ธ ์ฐ๊ธฐ