GN⁺ 2024-05-12 | parent | ★ favorite | on: Copilot의 메모리 누수 문제(stevenharman.net)
Hacker News 의견

수동 메모리 관리에 대한 두려움 없이 엔지니어링 훈련으로 해결 가능함

  • RAII와 명확한 소유권 규칙만 있으면 메모리 관리는 쉬운 엔지니어링 작업임
  • 오히려 참조 카운팅과 공유 포인터를 고집하는 프레임워크가 소유권을 모호하게 만들어 더 어려움
  • 생성하면 해제하고, 이전하면 신경쓰지 않는 것이 엔지니어링 규율의 일부임
  • 메모리 버그는 로직 버그와 다를 바 없으므로 고치는 게 당연함
  • OS 자원(핸들, 소켓 등)도 자동 자원 관리자 없이 수동으로 관리하므로 메모리도 마찬가지로 접근 가능함

메모리 누수로 인한 500만 달러 손실 사례

  • 90년대 Solaris 프린터 드라이버의 메모리 누수 버그로 인해 발생한 일화 소개
  • 당시 은행에서 팩스로 거래를 확인하고 프린터로 출력해 상대방과 통화로 읽어주며 녹음하는 방식으로 법적 확인을 받음
  • 메모리 누수로 프린터 드라이버가 다운되어 출력되지 않은 확인서 때문에 거래 취소를 당해 500만 달러 손실을 봄
  • 결국 Sun CEO의 불평으로 개발자들이 버그를 고치게 됨

메모리 누수 디버깅 도구와 해결 방안

  • Valgrind를 사용하면 C에서 누수를 쉽게 찾을 수 있음
  • 설계가 제대로 되어 있다면 대개 할당과 해제를 동일한 함수에서 하므로 고치기 쉬움
  • Yahoo 광고 서버의 메모리 누수 사례와 임시방편 해결책 소개
  • PHP 설계자의 농담 인용문을 통해 완벽주의보다는 실용주의를 택하는 태도 보여줌
  • Rails에서는 생산성을 위해 하드웨어로 해결하는 것이 일반적이라고 함

글쓰기 스타일에 대한 칭찬

  • 글쓴이의 글쓰기 방식이 이모티콘이나 포맷팅 때문인지 즐겁다는 코멘트