pile·

Programming's Greatest Mistakes • Mark Rendle • GOTO 2023

GOTO Conferences·GOTO Conference 2023·

챕터별 상세

010:00 – 9:05

사소한 실수와 날짜 버그 — Med file 'un□', Y2K, Roman 38

Mark Rendle은 사람이 다치거나 죽은 사례는 다루지 않겠다는 "콘텐츠 안심 문구"와 함께 프로그래밍의 큰 실수들을 풀어낸다. 먼저 자기 실수부터다. 회원 관리 소프트웨어의 새 버전이 기존 쿼리 파일(.med)을 손상시키자, 신경쇠약 직전이던 그가 복구 유틸리티를 만들며 다이얼로그에 "Med file un□" 같은 노골적인 이름을 임시로 붙였는데, 동료가 그대로 고객(소프트웨어에 150만 파운드를 낸)들에게 배포해 버린 일화다. 큰돈도 고객도 잃지 않았지만 "앞으로 이름은 못 짓게 하자"로 정리됐다.

반면 진짜 가격표가 붙는 실수도 있다. Y2K 는 펀치 카드·코어 메모리 시절 1바이트가 1달러였던 제약 아래 연도를 두 자리로 저장한 코발 코드에서 비롯됐다. Bob Bemmer가 1959년부터 경고했으나 사람들은 1990년대 후반에야 움직였고, 전 세계가 약 반조 달러를 들여 고쳤다 — 실수의 본질은 "45년이나 기술 부채를 방치한 것"이었다. 2022년 Microsoft Exchange가 날짜를 64비트 정수에 넣다 터진 일, 곧 닥칠 2038년 유닉스 32비트 시간 오버플로(64비트로 패치됨), 그리고 영국 Kennel Club이 강아지 이름 일련번호를 로마 숫자 로 저장해 38(XXXVIII)에서 필드를 넘긴(해법은 글자 두 칸 추가) 사례를 곁들인다.