처음이어도 괜찮아요 · 그림부터 시작해요
breakpoint· step· next· continue로 frame을 조사한다
`breakpoint()`와 pdb의 step·next·continue·variable inspection을 사용해 call stack과 최초 invalid state를 결정적으로 찾는다. 이 판단을 생략하면 통과한 test와 많은 log가 있어도 결함을 놓치거나 잘못된 수정을 승인할 수 있습니다.
아직 답을 몰라도 괜찮아요. 아래 작은 예시를 보고 먼저 예상해 보세요.01 · 가볍게 시작하기
정답을 보기 전에 먼저 골라볼까요?
synthetic td07 fixture · secret 없는 고정 입력 · exact Python 3.14.6- 1먼저 골라보기
틀려도 괜찮아요. 지금 생각한 답 하나를 정해요.
- 2그림으로 확인하기
움직이는 순서와 달라지는 곳만 천천히 찾아요.
- 3내 말로 다시 말하기
한 문장으로 말해 보면 내가 이해한 곳을 확인할 수 있어요.
02 · 그림으로 보기
그림이 움직이는 순서를 직접 확인해요
- 01관찰breakpoint · step · next · continue · frame
- 02추론`step`은 호출 안으로 들어가고 `next`는 현재 frame의 다음 줄까지 진행하므로 질문에 맞게 선택한다. breakpoint는 failure 이후가 아니라 invariant가 처음 깨질 수 있는 boundary 직전에 둔다. debugger에서 값을 바꾸는 실험은 원인 증거와 분리하고 깨끗한 replay로 다시 확인한다.
- 03검증breakpoint·step·next·continue로 frame을 조사한다의 예상 결과·관찰 결과·판정 oracle을 실행 전에 분리해 기록한다. library 내부까지 무조건 step으로 따라간다.에서 최초 불일치 지점과 근본 원인을 재현 가능한 evidence로 국소화한다. last-good와 first-bad frame을 잇는 재현 가능한 command sequence을 정상·경계·실패 fixture에 적용하고 false green·false red가 없는지 검증한다.
처음 보는 말도 책 읽듯 풀어봐요
이 수업은 쉬운 뜻과 생활 예를 아직 함께 준비하지 못했어요. 설명 없는 정확한 이름은 먼저 보여 주지 않을게요.
그림에서 찾을 쉬운 규칙
- 01`step`은 호출 안으로 들어가고 `next`는 현재 frame의 다음 줄까지 진행하므로 질문에 맞게 선택한다.
- 02breakpoint는 failure 이후가 아니라 invariant가 처음 깨질 수 있는 boundary 직전에 둔다.
- 03debugger에서 값을 바꾸는 실험은 원인 증거와 분리하고 깨끗한 replay로 다시 확인한다.
03 · 같이 풀어보기
한 단계씩 따라가면 어렵지 않아요
중첩 함수가 있는 주문 검증기 진단에서 breakpoint·step·next·continue로 frame을 조사한다 계약을 적용한다.
synthetic td07 fixture · secret 없는 고정 입력 · exact Python 3.14.604 · 이제 내가 해볼 차례
여기까지 오면 이런 일을 할 수 있어요
`breakpoint()`와 pdb의 step·next·continue·variable inspection을 사용해 call stack과 최초 invalid state를 결정적으로 찾는다.
- breakpoint·step·next·continue로 frame을 조사한다의 예상 결과·관찰 결과·판정 oracle을 실행 전에 분리해 기록한다.
- library 내부까지 무조건 step으로 따라간다.에서 최초 불일치 지점과 근본 원인을 재현 가능한 evidence로 국소화한다.
- last-good와 first-bad frame을 잇는 재현 가능한 command sequence을 정상·경계·실패 fixture에 적용하고 false green·false red가 없는지 검증한다.
05 · 자주 헷갈리는 지점
틀린 답도 이유를 알면 다음에는 맞힐 수 있어요
01step과 next는 이름만 다르고 항상 같은 줄에서 멈춘다.
한 번 더 생각해 볼 질문breakpoint·step·next·continue로 frame을 조사한다의 최소 fixture에서 이 주장을 깨는 관찰값과 판정 근거를 각각 한 줄로 쓰세요.
이렇게 고쳐 생각해요`step`은 호출 안으로 들어가고 `next`는 현재 frame의 다음 줄까지 진행하므로 질문에 맞게 선택한다.
02traceback 마지막 줄에 breakpoint를 두면 최초 원인을 자동으로 찾는다.
한 번 더 생각해 볼 질문breakpoint·step·next·continue로 frame을 조사한다의 최소 fixture에서 이 주장을 깨는 관찰값과 판정 근거를 각각 한 줄로 쓰세요.
이렇게 고쳐 생각해요breakpoint는 failure 이후가 아니라 invariant가 처음 깨질 수 있는 boundary 직전에 둔다.
03debugger에서 값을 고쳐 성공하면 source fix가 검증된 것이다.
한 번 더 생각해 볼 질문breakpoint·step·next·continue로 frame을 조사한다의 최소 fixture에서 이 주장을 깨는 관찰값과 판정 근거를 각각 한 줄로 쓰세요.
이렇게 고쳐 생각해요debugger에서 값을 바꾸는 실험은 원인 증거와 분리하고 깨끗한 replay로 다시 확인한다.
06 · 더 궁금할 때만 보기
선생님과 검토자를 위한 믿을 만한 원문
원문과 어디까지 참고했는지 펼쳐 보기처음 배우는 동안에는 열지 않아도 괜찮아요.
Python 표준 debugging·profiling 도구의 공식 index. 각 도구의 세부 보장은 개별 공식 문서로 다시 검증한다.
breakpoint·set_trace, step·next·continue, frame 조사, post-mortem과 Python 3.14 debugger 경계
traceback 추출·formatting과 exception chain 진단. 마지막 frame을 root cause로 자동 판정하지 않음
testing purpose·error/defect/failure, types·levels·process, coverage·refactoring, debugging·assertions·logging·white/black-box objective
