| name | systematic-debugging |
| description | Root-cause-first debugging methodology. Use when encountering any bug, test failure, or unexpected behavior BEFORE proposing fixes. Prevents random fix attempts that waste time and create new bugs. |
| metadata | {"author":"misskim","version":"1.0","origin":"Concept from obra/superpowers systematic-debugging, adapted for our workflow"} |
Systematic Debugging
์ฒ ์น
๊ทผ๋ณธ ์์ธ ํ์
์์ด ์์ ์๋ ์ ๋ ๊ธ์ง
4๋จ๊ณ ํ๋ก์ธ์ค
Phase 1: ๊ทผ๋ณธ ์์ธ ์กฐ์ฌ
์์ ์๋ ์ ์ ๋ฐ๋์:
- ์๋ฌ ๋ฉ์์ง ์ ๋
โ ์คํ ํธ๋ ์ด์ค ์ ์ฒด ์ฝ๊ธฐ, ์ค ๋ฒํธ/ํ์ผ ๊ฒฝ๋ก ๊ธฐ๋ก
- ์ฌํ โ ์ผ๊ด๋๊ฒ ํธ๋ฆฌ๊ฑฐ ๊ฐ๋ฅํ๊ฐ? ์ ํํ ๋จ๊ณ๋?
- ์ต๊ทผ ๋ณ๊ฒฝ ํ์ธ โ git diff, ์ต๊ทผ ์ปค๋ฐ, ์ ์์กด์ฑ, ์ค์ ๋ณ๊ฒฝ
- ๋ฐ์ดํฐ ํ๋ฆ ์ถ์ โ ์๋ชป๋ ๊ฐ์ด ์ด๋์ ์์๋๋๊ฐ? ์ญ์ถ์
๋ค์ค ์ปดํฌ๋ํธ ์์คํ
์ผ ๋:
๊ฐ ๊ฒฝ๊ณ์ ์ง๋จ ๋ก๊ทธ ์ถ๊ฐ โ ํ ๋ฒ ์คํ โ ์ด๋์ ๊นจ์ง๋์ง ํ์ธ โ ๊ทธ ์ปดํฌ๋ํธ๋ง ์กฐ์ฌ
Phase 2: ํจํด ๋ถ์
- ์๋ํ๋ ์์ ์ฐพ๊ธฐ โ ๊ฐ์ ์ฝ๋๋ฒ ์ด์ค์์ ์ ์ฌํ ์๋ ์ฝ๋
- ์ฐธ์กฐ์ ๋น๊ต โ ํจํด ๊ตฌํ ์ ์ฐธ์กฐ ๋ฌธ์ ์์ ํ ์ฝ๊ธฐ (ํ์ด๋ณด๊ธฐ ๊ธ์ง!)
- ์ฐจ์ด์ ์๋ณ โ ์๋/๋น์๋ ๊ฐ ๋ชจ๋ ์ฐจ์ด ๋์ด
- ์์กด์ฑ ํ์
โ ํ์ํ ๋ค๋ฅธ ์ปดํฌ๋ํธ, ์ค์ , ํ๊ฒฝ
Phase 3: ๊ฐ์ค ๊ฒ์ฆ
- ๋จ์ผ ๊ฐ์ค ์๋ฆฝ โ "X๊ฐ ๊ทผ๋ณธ ์์ธ์ด๋ค. ์๋ํ๋ฉด Y"
- ์ต์ ๋ณ๊ฒฝ์ผ๋ก ํ
์คํธ โ ํ ๋ฒ์ ํ๋๋ง ๋ณ๊ฒฝ
- ๊ฒ์ฆ โ ์๋ํ๋ฉด Phase 4, ์๋๋ฉด ์ ๊ฐ์ค
- ๋ชจ๋ฅด๋ฉด ๋ชจ๋ฅธ๋ค๊ณ ์ธ์ โ ์ถ์ธกํ์ง ๋ง ๊ฒ
Phase 4: ๊ตฌํ
- ์คํจ ํ
์คํธ ์ผ์ด์ค ์์ฑ โ ์์ ์ ์ ๋จผ์
- ๋จ์ผ ์์ ๊ตฌํ โ ๊ทผ๋ณธ ์์ธ๋ง ํด๊ฒฐ, "๊น์ ๊ฐ์ด" ๊ฐ์ ๊ธ์ง
- ๊ฒ์ฆ โ ํ
์คํธ ํต๊ณผ? ๋ค๋ฅธ ํ
์คํธ ๊นจ์ง์ง ์์?
- 3๋ฒ ์ด์ ์์ ์คํจ ์ โ ์ํคํ
์ฒ ์์ฌ
- ๋งค ์์ ๋ง๋ค ์๋ก์ด ๋ฌธ์ ๋ฐ๊ฒฌ?
- "๋๊ท๋ชจ ๋ฆฌํฉํ ๋ง"์ด ํ์ํ๋ค๋ฉด?
- STOP โ ๊ทผ๋ณธ ์ค๊ณ๊ฐ ์๋ชป๋ ๊ฒ. ์ฃผ์ธ๋๊ณผ ๋
ผ์.
๐จ ์ํ ์ ํธ โ ์ฆ์ ๋ฉ์ถ๊ณ Phase 1๋ก
- "์ผ๋จ X ๋ฐ๊ฟ๋ณด๊ณ ๋๋์ง ๋ณด์"
- "์ฌ๋ฌ ๋ณ๊ฒฝ์ ํ๊บผ๋ฒ์ ํ
์คํธ"
- "๋น ๋ฅธ ์์ , ๋์ค์ ์กฐ์ฌ"
- "๋์ถฉ ์ด๊ฒ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์๋ฐ"
- "์๋์ผ๋ก ํ์ธํ์ผ๋ ๋ ๊ฑฐ์ผ"
- ์กฐ์ฌ ์์ด ์์ ์ ์ ์
- 2๋ฒ ์ด์ ์์ ์๋ ์คํจ
ํฉ๋ฆฌํ ๋ฐฉ์ง
| ํ๊ณ | ํ์ค |
|---|
| "๊ฐ๋จํ ๋ฌธ์ ๋ผ ํ๋ก์ธ์ค ๋ถํ์" | ๊ฐ๋จํ ๋ฒ๊ทธ์๋ ๊ทผ๋ณธ ์์ธ ์์ |
| "๊ธํด์ ํ๋ก์ธ์ค ๋ฐ๋ฅผ ์๊ฐ ์์" | ์ฒด๊ณ์ ๋๋ฒ๊น
์ด ์ถ์ธก๋ณด๋ค ๋น ๋ฆ |
| "์ผ๋จ ์ด๊ฒ๋ถํฐ ์๋" | ์ฒซ ์์ ์ด ํจํด์ ๊ฒฐ์ ํจ |
| "์ฐธ์กฐ ๋ฌธ์๊ฐ ๋๋ฌด ๊ธธ์ด" | ๋ถ๋ถ ์ดํด = ๋ฒ๊ทธ ๋ณด์ฅ |