<< Twitter는 어떻게 1초에 3,000개의 이미지를 처리하고 있나? | Home

프로그래머의 악몽이란?

Quora에서 재밌는 글을 발견해서 여기에 남깁니다. 심심힐 때 한번 보고 리프레쉬 하세요. ^^
  • 당신의 코드나 혹은 버그가 우발적으로 누군가를 죽이거나 해할 수 있다.
  • Internet Explorer(웹 개발자의 경우)
  • 요구사항이 다시 변경되었다.(잦은 요구 사항 변경)
  • GitHub의 병합이 충돌한다.
  • 의도한 것과 다른 디렉토리를 rm -rf *를 입력해 버렸다.
  • Stack Overflow 다운!
  • Stack Overflow에서 자신이 답을 찾고 싶은 것과 똑같은 질문을 발견했는데, 1년 전에 질문인데도 여전히 대답이 쓰여져 있지 않다.(xkcd : Wisdom of the Ancients)
  • Stack Overflow에서 할 수 있는 질문 개수의 한계에 다달았다.
  • 실제 제품에 버그가 발생했는데 로컬에서 재현이나 발생하지 않는다.
  • 버그 발생 확률은 낮지만, 무시할 수준은 아니다.
  • 버그의 원인이 고부하시에만 일어나는 경쟁 조건(race condition)에 해당된다.
  • 버그의 원인을 모른다.
  • 버그의 원인이 되는 코드를 쓴 것은 내가 아니지만, 수정해야하는 책임은 있다. 코드를 작성한 사람들은 더 이상 회사에 없다.
  • 버그를 야기한 이슈가 99% 신뢰하는 라이브러리에서 확인하게 된다. 시간적으로 마지막에 본다는 점이다.
  • 하드웨어 버그인데, 모든 사람들이 소프트웨어 버그라고 지목한다.
  • 다수의 사람들이 디버깅하려고, 몇년에 걸쳐 노력했지만, 아무도 성공하지 않았다.
  • 버그가 논리적 오류인데, 상당히 오랜시간 실행되고 나서야 재현된다.
  • 디버깅에 자신의 아무것도 모르는 분야에서의 경험이 필요하다.
  • 버그 수정 일정에 여유가 없다.
  • 밥줄이 걸려있어, 버그를 무시할 수 없다.
  • 세미콜론 키가 손상되어서 작동되지 않는다.
  • 훌륭하게 잘하고 있는 프로젝트에 코멘트가 없다는 것을 1년 후에 발견하고 수정하면서 외친다. "나는 도대체 왜 이런 일 했어?" "정말이 내가 짠 코드인가?" 자신의 집에서 미아가 된 기분이다.
  • 문서가 없는 라이브러리.
  • ==대신 =를 사용했다.
  • 자만. 준비 부족. 싸구려 견적. 공감이 아니라 분노.
  • 내 코드가 동작은 하지만, 이유를 모른다.
  • 커뮤니케이션 부족 : 프로그래머는 자신이 만드는 것에 대해, 그것이 어떻게 사용되는지를 이해해야 한다. 상황을 정립할 필요가 있다. 이유는 무엇을 만드는 데에는 100가지 이상의 결정이 존재하게 된다. 컨텍스트를 이해하고 있으면 판단이 내릴 수 있다.
  • 오버 커뮤니케이션 : 회의, 회의, 회의.. 회의는 프로그래머를 죽여버린다.
  • 뭔가를 명확히하는데 하루가 걸린다. 그런데 "클라이언트"가 다른 타임존에 있다.
  • 문서가 없는것보다 더 나쁜것은 쓸모없는 문서이다.
  • 들여 쓰기가 엉망이고, 불합리한 구조 때문에 디버깅을 하 수 없다.
  • 보스가 옛날 버전의 프로그램을 테스트하고 있다.



Add a comment Send a TrackBack