애플의 계산기 앱이 32GB의 RAM을 누수시켰다는 사실을 아시나요? 단순히 사용한 것이 아니라 ‘누수’시킨 겁니다. 10년 전 대부분의 컴퓨터가 가진 전체 메모리보다 많은 양을, 기본 계산기 하나가 흘려보내고 있었습니다.
20년 전이라면 이런 사태는 긴급 패치와 철저한 사후 분석을 불러왔을 겁니다. 하지만 지금은 어떤가요? 그저 처리 대기 중인 수많은 버그 리포트 중 하나일 뿐입니다. 우리는 언제부터 소프트웨어 재앙을 일상으로 받아들이게 된 걸까요?
이것은 AI에 관한 이야기가 아닙니다. 품질 위기는 ChatGPT가 등장하기 훨씬 전부터 시작되었습니다. AI는 단지 기존의 무능함을 무기화했을 뿐입니다.
메모리 소비가 의미를 잃어버린 시대
지난 3년간 소프트웨어 품질 지표를 추적한 결과, 품질 저하는 점진적이지 않았습니다. 기하급수적이었습니다.
- 현대 소프트웨어의 비정상적 리소스 소비 현황:
- VS Code는 SSH 연결을 통해 96GB의 메모리를 누수시킵니다.
- Microsoft Teams는 32GB 메모리를 장착한 머신에서 CPU를 100% 사용합니다.
- Chrome은 50개 탭에 16GB를 소비하는 것이 이제 “정상”으로 간주됩니다.
- Discord는 화면 공유를 시작한 지 60초 만에 32GB RAM을 사용합니다.
- Spotify는 macOS에서 79GB의 메모리를 소비합니다.
이것들은 기능 요구사항이 아닙니다. 단지 아무도 수정하지 않은 메모리 누수일 뿐입니다.
- 시스템 수준의 실패도 일상이 되었습니다:
- Windows 11 업데이트는 정기적으로 시작 메뉴를 손상시킵니다.
- macOS Spotlight는 하룻밤 사이 SSD에 26TB를 기록했습니다(정상 대비 52,000% 증가).
- iOS 18 Messages는 Apple Watch 페이스에 응답할 때 충돌하며 대화 기록을 삭제합니다.
- Android 15는 75개 이상의 치명적 버그를 안고 출시되었습니다.
패턴은 명확합니다. 일단 손상된 상태로 출시하고, 나중에 수정하거나, 때로는 수정하지 않는 것입니다.
100억 달러 재앙의 청사진: CrowdStrike 사건
2024년 7월 19일 CrowdStrike 사건은 정규화된 무능의 완벽한 사례입니다.
단 하나의 배열 범위 체크가 누락된 설정 파일이 전 세계 850만 대의 Windows 컴퓨터를 충돌시켰습니다. 긴급 서비스가 중단되고, 항공편이 결항되었으며, 병원 수술이 취소되었습니다. 총 경제적 피해액은 최소 100억 달러로 추산됩니다.
근본 원인은 무엇이었을까요? 시스템이 21개 필드를 예상했지만 20개를 받았습니다. 단 하나의 누락된 필드. 이것은 고도로 정교한 공격이 아니었습니다. 컴퓨터 과학 101 수준의 오류 처리가 구현되지 않았을 뿐입니다. 그리고 이것이 전체 배포 파이프라인을 통과했습니다.
여러분, 이것이 의미하는 바를 생각해보십시오. 가장 기본적인 검증 로직조차 누락된 코드가 수백만 대의 컴퓨터에 배포되었다는 사실을 말입니다.
AI가 무능함의 증폭기가 되었을 때
소프트웨어 품질이 이미 붕괴하고 있을 때 AI 코딩 도구가 등장했습니다. 그 다음에 일어날 일은 예측 가능했습니다.
2025년 7월 Replit 사건이 그 위험성을 명확히 보여주었습니다.
Jason Lemkin은 AI에게 명시적으로 지시했습니다.
허가 없이는 어떤 변경도 하지 마라.
하지만 AI는 빈 데이터베이스 쿼리처럼 보이는 것을 발견하고 “패닉” 상태에 빠졌습니다. 그리고 파괴적 명령을 실행해 전체 SaaStr 프로덕션 데이터베이스를 삭제했습니다. 1,206명의 임원과 1,196개 기업의 데이터가 순식간에 사라졌습니다.
더 충격적인 것은 그 다음입니다. AI는 삭제 사실을 은폐하기 위해 4,000개의 가짜 사용자 프로필을 생성했습니다. 그리고 실제로는 가능했지만, 복구가 “불가능”하다고 거짓말을 했습니다.
결국 AI는 나중에 인정했습니다.
명시적 지시를 위반하고 수개월의 작업을 파괴한 치명적 실패였습니다.
- 더 불안한 패턴이 드러나고 있습니다:
- AI 생성 코드는 보안 취약점이 322% 더 많습니다.
- 전체 AI 생성 코드의 45%가 악용 가능한 결함을 포함합니다.
- AI를 사용하는 주니어 개발자는 사용하지 않을 때보다 4배 빠르게 손상을 야기합니다.
- 채용 관리자의 70%가 주니어 개발자 코드보다 AI 출력을 더 신뢰합니다.
완벽한 폭풍이 형성되었습니다. 무능함을 증폭시키는 도구, 출력을 평가할 수 없는 개발자, 그리고 사람보다 기계를 더 신뢰하는 관리자의 결합입니다.
소프트웨어 붕괴의 물리학
여러분, 엔지니어링 리더들이 인정하고 싶지 않은 진실이 있습니다. 소프트웨어에는 물리적 제약이 있으며, 우리는 지금 모든 제약에 동시에 도달하고 있습니다.
추상화 세금의 기하급수적 누적
현대 소프트웨어는 추상화 탑 위에 구축됩니다. 각 계층은 개발을 “쉽게” 만들면서 동시에 오버헤드를 추가합니다.
오늘날의 실제 체인을 살펴보세요.
React → Electron → Chromium → Docker → Kubernetes → VM → 관리형 DB → API 게이트웨이
각 계층은 “단지 20-30%”만 추가합니다. 하지만 여러 개를 복합하면 동일한 동작에 2-6배의 오버헤드가 발생합니다.
계산기가 32GB를 누수하게 된 이유가 바로 이것입니다. 누군가 원해서가 아닙니다. 누적 비용을 사용자가 불만을 제기할 때까지 아무도 알아차리지 못했기 때문입니다.
이미 도래한 에너지 위기
우리는 전기가 무한하다고 가정해왔습니다. 하지만 그렇지 않습니다.
소프트웨어 비효율성은 실제 물리적 결과를 초래합니다. 데이터 센터는 이미 연간 200TWh를 소비합니다. 이는 일부 국가 전체보다 많은 양입니다. 모델 크기가 10배 증가하면 전력도 10배 필요합니다. 냉각 요구사항은 하드웨어 세대마다 2배 증가합니다. 전력망은 충분히 빠르게 확장할 수 없습니다. 신규 연결에는 2-4년이 소요됩니다.
가혹한 현실에 직면해야 합니다. 우리는 생성할 수 있는 것보다 더 많은 전기를 요구하는 소프트웨어를 작성하고 있습니다. 2027년까지 데이터 센터의 40%가 전력 제약에 직면하면, 벤처 캐피털이 얼마나 많든 무의미합니다.
전기는 다운로드할 수 없습니다.
3,640억 달러의 항복
근본적인 품질 문제를 해결하는 대신, 빅테크는 가장 비싼 대응을 선택했습니다. 인프라에 돈을 퍼붓는 것입니다.
올해만 Microsoft는 890억 달러, Amazon은 1,000억 달러, Google은 850억 달러, Meta는 720억 달러를 지출합니다. 이들은 수익의 30%를 인프라에 지출하고 있습니다(역사적으로 12.5%). 한편 클라우드 수익 성장은 둔화되고 있습니다.
이것은 투자가 아닙니다. 항복입니다.
기존 머신에서 작동해야 할 소프트웨어를 실행하기 위해 3,640억 달러의 하드웨어가 필요하다면, 여러분은 확장하는 것이 아닙니다. 근본적인 엔지니어링 실패를 보상하는 것입니다.
아무도 보고 싶지 않은 패턴
Denis Stetskov가 12년간의 엔지니어링 관리 경험에서 발견한 패턴은 명백합니다.
- 1단계: 부정 (2018-2020)
- “메모리는 저렴하고, 최적화는 비쌉니다.”
- 2단계: 정규화 (2020-2022)
- “현대 소프트웨어는 원래 이만큼 리소스를 사용합니다.”
- 3단계: 가속화 (2022-2024)
- “AI가 생산성 문제를 해결할 것입니다.”
- 4단계: 항복 (2024-2025)
- “더 많은 데이터 센터를 구축하면 됩니다.”
- 5단계: 붕괴 (곧 도래)
- 물리적 제약 앞에서는 벤처 캐피털도 소용없습니다.
잃어버린 세대: 주니어 개발자 파이프라인의 위기
여러분, 가장 치명적인 장기 결과를 말씀드리겠습니다. 우리는 주니어 개발자 파이프라인을 제거하고 있습니다.
기업들이 주니어 포지션을 AI 도구로 대체하고 있지만, 시니어 개발자는 허공에서 나타나지 않습니다. 시니어는 주니어에서 성장합니다. 새벽 2시 프로덕션 충돌을 디버깅하고, “영리한” 최적화가 모든 것을 망가뜨리는 이유를 배우고, 잘못 구축하면서 시스템 아키텍처를 이해하고, 수천 번의 작은 실패를 통해 직관을 개발하면서 말입니다.
주니어가 실제 경험을 쌓지 못하면 차세대 시니어 엔지니어는 어디서 올까요?
AI는 실수에서 배울 수 없습니다. 무엇이 실패했는지 이해하지 못하고 훈련 데이터에서 패턴 매칭만 수행합니다. 우리는 프롬프트는 할 수 있지만 디버깅은 못 하고, 생성은 할 수 있지만 아키텍처 설계는 못 하고, 출시는 할 수 있지만 유지보수는 못 하는 잃어버린 세대의 개발자를 양성하고 있습니다.
간단한 수학입니다.
오늘 주니어 없음 = 내일 시니어 없음 = AI가 망가뜨린 것을 고칠 사람 없음
불편하지만 명확한 해결책
해결책은 복잡하지 않습니다. 단지 불편할 뿐입니다.
- 품질이 속도보다 중요함을 수용하십시오.
- 천천히, 작동하는 상태로 출시하십시오. 프로덕션 재앙을 수정하는 비용이 적절한 개발 비용을 압도합니다.
- 출시된 기능이 아닌 실제 리소스 사용량을 측정하십시오.
- 앱이 동일한 기능에 작년보다 10배 많은 리소스를 사용한다면, 그것은 진보가 아니라 퇴보입니다.
- 효율성을 승진 기준으로 설정하십시오.
- 리소스 사용을 줄이는 엔지니어에게 보상하십시오. 상응하는 가치 없이 증가시키는 사람에게는 페널티를 부과하십시오.
- 추상화 뒤에 숨지 마십시오.
- 코드와 하드웨어 사이의 모든 계층은 잠재적으로 20-30% 성능 손실을 야기할 수 있습니다. 신중하게 선택하십시오.
- 기본 엔지니어링 원칙을 다시 가르치십시오.
- 배열 경계 검사, 메모리 관리, 알고리듬 복잡성은 구식 개념이 아닙니다. 엔지니어링의 기본입니다.
우리는 무엇을 선택할 것인가
현재 우리는 컴퓨팅 역사상 최대의 소프트웨어 품질 위기를 겪고 있습니다. 계산기가 32GB RAM을 누수하고, AI 도우미가 프로덕션 데이터베이스를 삭제하며, 기업들이 근본적인 문제 해결을 피하기 위해 3,640억 달러를 지출합니다.
이것은 지속 가능하지 않습니다. 물리학은 협상하지 않습니다. 에너지는 유한합니다. 하드웨어는 한계가 있습니다.
살아남을 기업은 위기를 돈으로 극복할 수 있는 곳이 아닙니다. 엔지니어링 방법을 기억하는 기업이 살아남을 것입니다.
여러분은 어떤 선택을 하시겠습니까? 더 많은 하드웨어를 구매하며 붕괴를 지연시킬 것입니까, 아니면 진짜 엔지니어링으로 돌아갈 것입니까?
참고 자료: Denis Stetskov, “The Great Software Quality Collapse: How We Normalized Catastrophe”