소프트웨어는 나빠지는 중이지만, 예전은 더 끔찍했다
원제 Software may be getting worse, but it used to be horrible
186 포인트댓글 137
Key Point
소프트웨어 품질 저하 논의에서 빠지기 쉬운 역사적 맥락 - 현재의 문제는 실제로는 과거보다 훨씬 관리 가능한 수준이며, 자동 업데이트와 프로세스 격리 같은 기반 구조가 가져온 근본적인 개선을 이해할 수 있다.
핵심 요약
- 코드 생산량이 10배 증가해도 에러율을 10배로 줄이지 못하면 결과적으로 프로덕션이 더 버그가 많아진다는 점에서 소프트웨어 품질 저하가 현실이지만, 과거 소프트웨어는 훨씬 더 심각한 문제들을 가지고 있었다.
- 과거 Windows는 95% 시장점유율을 차지했고 극심한 안정성 문제로 인해 블루스크린이 자주 발생했으며, 이는 버그 많은 디바이스 드라이버와 리소스 미회수로 인한 컴퓨터 성능 저하가 원인이었다.
- 자동 저장 기능이 없거나 제대로 작동하지 않아 몇 시간 작업한 문서를 날리는 일이 흔했고, Google Docs 출시 후에도 사용자들이 트라우마 때문에 Ctrl+S를 반사적으로 눌렀을 정도였다.
- 9살 아이도 Ctrl+Alt+Del로 password 보호된 screensaver를 끌 수 있을 정도로 보안이 형편없었으며, 광고 악성코드와 바이러스가 매년 발생했고 방문 중인 이들은 antivirus 검사를 반복해야 했다.
- 하드드라이브의 자기 플래터 방식에서 파일 단편화가 불가피했고 이를 수동으로 정기적으로 처리하지 않으면 컴퓨터 부팅에 20분이 소요될 정도로 느려졌다.
- 메모리 제약으로 인해 프로그래머들이 byte 단위로 절약하려 했으며, 1998년 Axis and Allies 게임은 한 국가의 유닛이 255를 초과하면 게임이 크래시되는 버그가 있었다.
- 소프트웨어는 물리 매체에 저장되어 CD 스크래치나 NES 카트리지 부식으로 작동 불능이 될 수 있었으며, 이로 인해 소프트웨어 자체가 취약했다.
- 온라인 게임 Diablo II는 클라이언트 해킹, 아이템 드롭 경합, 아이템 복제 글리치, 사기 등으로 인해 게임 경제와 신뢰 체계가 붕괴되었고 이후 Diablo III에서 이런 문제들을 하드웨어 개선으로 수정했다.
- 초기 개인용 컴퓨터의 TURBO 버튼은 프로그래머들이 4.77MHz로 고정된 클록 속도를 가정하고 작성한 애플리케이션이 더 빠른 프로세서에서 오작동하는 문제를 해결하기 위해 필요했다.
- 현대 소프트웨어는 비대하고 느리며 복잡하지만, 프로세스 격리, 온라인 업데이트, 고수준 프로그래밍 언어, 자동 메모리 관리, Steam과 Windows Update 같은 개선을 고려하면 과거 방식으로 돌아갈 수 없다.