26장. Breakpoint를 관찰 질문으로 바꾼다
모든 줄에 breakpoint를 찍지 않는다. “입력 DTO는 정상인가”, “어느 호출에서 tenant가 바뀌는가”, “exception이 어디서 삼켜지는가” 같은 질문마다 경계를 선택한다. conditional, logpoint, exception breakpoint, evaluate expression을 쓰되 getter 호출과 state 변경 표현식을 조심한다.
멀티스레드·async 코드는 thread/frame을 확인한다. breakpoint가 timeout과 race를 바꿀 수 있으므로 trace·test와 함께 쓴다. production remote debugging은 port·권한·개인정보·성능 위험 때문에 기본 금지하고 승인된 격리 환경에서만 한다.