DaehunGwak / study-pragmatic-programmer

실용주의 프로그래머 (20주년 판) 스터디
5 stars 1 forks source link

8주차 - 3.20 디버깅 #18

Open DaehunGwak opened 1 year ago

DaehunGwak commented 1 year ago

진도

일시

donghoon-song commented 1 year ago

Topic20. 디버깅

  1. 비난 대신 문제를 해결할 것. 어쨌든 해결해야 한다.
  2. “그건 불가능해”라는 반응하지 말 것. 실제로 일어난 일이니까.
  3. 표면에 보이는 증상만 해결하려고 하지 말고 문제의 근본 원인을 고민할 것
  4. 코드를 고치기 전에 실패하는 테스트부터 한다. → ‘명령 하나’로 버그를 재현하기 위해
  5. “select”는 망가지지 않았다. 컴퓨터는 거짓말하지 않는다. 시스템 탓을 하지 말 것
  6. 가정하지 말고 증명하라.
  7. 버그를 미리 잡을 순 없는지 계속 고민해볼 것

버그가 발생했을 때 책에서 나온 것처럼 시스템을 탓했던 적이 꽤 있는데 대부분은 코드 잘못이었다. 흑흑. 그리고 조건이 얽혀 있는 게 많다보니까 재현하기가 무척 어렵.. 프론트는 사용자의 환경이 매우 다양하다.

Edwin222 commented 1 year ago

아래는 책에 실려있는 구절이지만 너무나 인상깊은 대목이라 퍼왔습니다. "제 자리에서는 재현 안되네요"라고 넘기기 전에 항상 이 이야기를 떠올릴 필요가 있을 것 같음. (비슷한 경험이 있어서)

앤디는 대형 그래픽 애플리케이션 프로젝트에서 일한 적이 있다. 릴리즈가 가까워졌을 때 한 테스터가 특정한 붓으로 쓱 긋기만 하면 애플리케이션이 죽어 버린다고 보고했다. 담당 프로그래머는 아무 문제가 없다고 반박했다.

그는 직접 해당 붓으로 선을 쓱 그어봤고 별 문제 없이 잘 작동했다. 똑같은 실랑이가 며칠간 반복되었고 사람들의 감정은 순식간에 악화되었다.

결국 모든 사람을 방에 모았다. 테스터는 문제의 붓을 선택하고 우상단에서 좌하단으로 쓱 그었고 애플리케이션은 죽어버렸다. "이런" 프로그래머가 작은 목소리로 말했다. 그는 테스트할 때 언제나 좌하단에서 우상단으로 선을 그었는데 그때는 아무런 문제도 없었다며 부끄러워 했다.
minkukjo commented 1 year ago
DaehunGwak commented 1 year ago