# Debug（디버그）

무언가 고장난 경우: 테스트 실패, 회귀, 충돌, 정의되지 않은 동작.

## 증상

실패한 테스트 또는 보고된 증상에서 시작한다. 명확하게 말하라: 무엇이 작동하지 않는지, 기대값은 무엇인지.

## 가설

증상을 유발할 수 있는 것들을 나열한다. 가장 가능성이 높은 것부터 시작한다.

## 고립

최소 재현 가능한 케이스를 실행한다. 관련 없는 코드를 제거한다. 한 번에 하나의 변수만 바꾼다.

## 관찰

실행하고, 출력을 기록하고, 상태를 확인한다. 증상이 사라지면 기록한다. 계속되면 기록한다.

## 수정

코드를 변경한다. 증상이 사라질 때까지 "고립"으로 돌아가 반복한다.

## 검증

원래 실패한 테스트가 이제 통과한다. 새로운 실패가 없다.
