링크가 복사되었습니다!

소프트웨어의 대정체: 매년 앱이 더 망가진 것처럼 느껴지는 이유

소프트웨어에 오류가 더 많아진 것처럼 느껴지는 이유는 실제로 그렇기 때문입니다. 새로운 데이터는 AI 코딩 어시스턴트, 빠른 출시 주기, QA(품질 보증)의 소멸이 어떻게 숨겨진 기술 부채 위기를 초래하고 있는지 보여줍니다.

🌐
기계 번역

이 기사는 영어 원문에서 자동 번역되었습니다. 영어 원문 읽기

갈라지는 코드 블록과 오작동하는 인터페이스의 디지털 추상적 표현.

항공편을 확인하기 위해 휴대전화의 잠금을 해제했지만 앱이 흰색 화면에서 멈춥니다. 웹사이트에서 “지금 구매”를 클릭하면 버튼이 회색으로 바뀌지만 아무 일도 일어나지 않습니다. 스마트 전구를 페어링하려고 하는데 펌웨어 업데이트가 세 번 실패했습니다.

기술이 점점 더 취약해지고 있다고 느낀다면, 당신은 상상을 하고 있는 것이 아닙니다.

지난 10년 동안 기술 업계는 “빠르게 움직이고 파괴하라”는 모토를 바탕으로 운영해 왔습니다. 독립 분석가들은 이제 파손된 물건의 비용을 집계하고 있습니다. 하드웨어는 기하급수적으로 빨라지고 신뢰성이 높아졌지만(현대의 주력 휴대폰은 물리학의 기적입니다), 하드웨어에서 실행되는 소프트웨어는 접착 테이프와 기도로 점점 더 긴밀하게 연결되어 있는 것처럼 느껴집니다.

이는 존재하지 않았던 ‘황금시대’에 대한 향수만이 아니다. 이는 측정 가능한 통계적 추세입니다. 주요 코드 분석 회사의 새로운 데이터는 혼란스러운 패턴을 보여줍니다. 코딩 프로세스가 더욱 자동화됨에 따라 시스템의 구조적 무결성이 저하되고 있습니다. 시장은 모래 기초 위에 디지털 초고층 빌딩을 건설하고 있으며 균열이 나타나기 시작했습니다.

속도의 엔트로피

근본적인 문제는 소프트웨어 제공의 경제성이 변화하고 있다는 것입니다. 20년 전만 해도 소프트웨어 배송은 물리적인 행위였습니다. “Gold Master”를 CD-ROM이나 DVD에 담아 상자에 넣은 다음 트럭으로 매장으로 운반했습니다. 해당 디스크에 심각한 버그가 있는 경우 리콜 비용은 천문학적이었습니다. 품질 보증(QA)은 사치가 아니었습니다. 그것은 사업을 위한 실존적 필요성이었습니다.

오늘날 배송의 마찰은 0입니다. OTA(Over-The-Air) 업데이트와 CI/CD(지속적 통합/지속적 배포) 파이프라인을 통해 개발자는 몇 분 만에 수백만 명의 사용자에게 코드를 푸시할 수 있습니다. 이는 위험을 공급업체에서 사용자에게 효과적으로 전달했습니다.

Advertisement

처음 100만 명의 사용자를 베타 테스터로 처리할 수 있는데 왜 전담 QA 팀에 비용을 지불합니까?

DevOps 서클에서 종종 “Shift Left”라고 불리는 이 철학(개발자가 테스트를 더 일찍 수행해야 함을 의미)은 역설적으로 실제로 아무도 “사용자 수준”에서 테스트하지 않는 상황을 초래했습니다. 개발자는 특정 기능(단위 테스트)을 테스트하지만 수천 개의 마이크로서비스, 즉 “통합” 계층 간의 복잡한 상호 작용은 우연에 맡깁니다.

그러나 지난 3년 동안 이 불길에 새로운 촉진제가 쏟아졌다. 바로 인공지능이다.

AI 코드 품질 역설

GitHub Copilot, Cursor 및 Google 자체 도구와 같은 AI 코딩 도우미의 약속은 생산성 혁명이었습니다. 채택은 이제 거의 보편적입니다. Stack Overflow의 2025년 개발자 설문조사에 따르면 개발자 중 84% 이상이 AI 도구를 사용하고 있거나 사용할 계획을 갖고 있는 것으로 나타났습니다. 그러나 동일한 도구에 대한 신뢰도는 단 29%로 떨어졌습니다. 이는 1년 만에 11포인트 하락한 수치입니다.

코드를 작성하는 것이 병목 현상을 일으킨 적이 없기 때문에 이러한 격차가 존재합니다. 읽는 것과 유지하는 것이었죠.

2023년부터 2026년까지 6억 2천 3백만 건의 분석된 코드 변경 사항을 기반으로 작성된 GitClear의 2026년 “유지 관리 가능성 격차” 보고서는 붕괴에 대한 확실한 수치를 제시합니다. 변경된 백만 줄당 측정된 중복 코드 블록은 2023년 40.3에서 2026년 현재 73.0으로 증가해 81% 증가했으며 기록상 최고 수준입니다. 복사/붙여넣기한 코드는 2022년 변경 사항의 9.4%에서 2026년 상반기 15.7%로 증가했습니다. 한편, 시스템 일관성을 유지하는 리팩토링의 서명인 이동된 코드의 비율은 2022년 변경된 라인의 21%에 머물렀고, 2023년에는 13%로 떨어졌고, 2026년에는 3.8%로 떨어졌습니다. 멀리. 이제 개발자는 코드를 리팩터링하는 것보다 코드를 복제할 가능성이 약 5배 더 높습니다.

”샷건 코딩” 효과

AI 모델은 확률적 엔진입니다. 그들은 다음으로 가능성이 가장 높은 토큰을 예측합니다. 개발자가 AI에게 “이 날짜를 구문 분석하는 함수 작성”을 요청하면 AI는 완전히 새로운 맞춤형 함수를 생성합니다. 완벽하게 좋은 날짜 파서가 회사의 공유 라이브러리 3개 폴더에 이미 존재한다는 사실을 알 수 없습니다.

그 결과 동일한 로직을 약간 다르게 구현한 수천 개의 중복된 코드베이스가 생성되었습니다. 이는 소프트웨어 엔지니어링의 신성한 법칙 중 하나인 “DRY”(Don’t Repeat Yourself) 원칙을 위반합니다. 날짜 분석에서 버그가 발견되면 한 곳에서 수정하지만, 다른 AI 생성 버전 50개는 여전히 손상된 상태입니다.

Advertisement

업계에서는 그에 상응하는 기능의 증가 없이 코드베이스 크기의 엄청난 인플레이션을 목격하고 있습니다. 예전에 10,000줄의 코드였던 간단한 앱이 이제 50,000줄이 되었습니다. 더 많은 일을 하기 때문이 아니라 AI가 생성한 상용구로 인해 비대해졌기 때문입니다.

정확하다는 환상

두 번째 문제는 합성 코드의 “취약함”입니다. 생성 시스템은 구문(코드의 문법)에는 탁월하지만 의미(코드의 의미)에는 어려움을 겪습니다. 그들은 완벽하게 보이는 코드를 생성합니다. 컴파일하고 실행하지만 극단적인 경우나 드문 오류 상태를 처리하지 못하는 경우가 많습니다.

결제 처리 시스템을 작성하는 인간 개발자는 “카드가 청구된 직후이지만 주문이 기록되기 전에 네트워크가 끊어지면 어떻게 될까요?”라고 생각합니다. 그들은 해당 트랜잭션 상태를 처리하는 코드를 작성합니다. 명시적으로 메시지가 표시되지 않는 한 AI는 종종 “행복한 경로”를 기본값으로 설정합니다. 모든 것이 작동한다고 가정합니다.

이는 연구하려고 할 때 사라지거나 변경되는 버그인 “Heisenbugs”로 이어지며, 종종 로드 시에만 나타나는 경쟁 조건 및 처리되지 않은 상태로 인해 발생합니다.

생산성 향상 자체가 부분적으로는 환상이라는 증거도 있습니다. 연구 그룹 METR의 2025년 무작위 연구에 따르면 자신의 코드베이스로 작업하는 숙련된 개발자는 AI가 자신을 더 빠르게 만든다고 믿는 반면, 측정 결과는 해당 작업에서 약 19% 더 느린 것으로 나타났습니다. 도구는 텍스트를 빠르게 생성하기 때문에 빠르게 느껴집니다. 디버깅 청구서는 나중에 도착합니다.

마이크로서비스 죽음의 나선

AI 붐과 병행하여 마이크로서비스로의 아키텍처 전환이 이루어지고 있습니다. 하나의 대규모 애플리케이션(“모놀리스”) 대신 최신 앱은 네트워크를 통해 서로 통신하는 수백 개의 작고 독립적인 서비스로 구성됩니다.

종이에 이것은 훌륭합니다. 이를 통해 팀은 독립적으로 작업할 수 있습니다. 실제로는 모든 함수 호출을 실패할 수 있는 네트워크 요청으로 전환합니다.

모놀리식 앱에서 함수 A는 함수 B를 호출합니다. 두 함수가 동일한 메모리 공간에 있기 때문에 100% 작동합니다. 마이크로서비스 앱에서 서비스 A는 JSON 패킷을 서비스 B로 보냅니다.

  • 네트워크가 느릴 수 있습니다.
  • 서비스 B가 다시 시작될 수 있습니다.
  • JSON 형식이 약간 변경되었을 수 있습니다.

이러한 상호 작용의 복잡성은 선형이 아닌 기하급수적으로 증가합니다. 10개의 서비스가 있는 경우 45개의 가능한 연결 쌍이 있습니다. 서비스가 100개라면 4,950개입니다. 많은 현대 기업용 앱에는 수천 개가 있습니다.

엔지니어들은 인간 한 사람의 인지 능력을 넘어서는 시스템을 구축했습니다. 더 이상 모든 일이 어떻게 작동하는지 아는 사람은 아무도 없습니다. 무언가가 고장 났을 때 디버깅은 논리적인 추론 과정이 아닙니다. 분산된 로그를 통한 고고학적 발굴이다.

Advertisement

사용자 경험의 회귀

이것이 사용자에게 어떻게 나타나나요?

  1. 회전 휠: 앱이 모든 상호 작용에 대해 실시간 데이터 가져오기에 더 많이 의존함에 따라 UI는 네트워크 안정성에 의존하게 됩니다.
  2. “뭔가 잘못되었습니다” 일반 오류: 분산 시스템에서는 오류 처리가 복잡하기 때문에 앱은 종종 아무 것도 알려주지 않는 일반 “포괄” 오류 메시지를 기본값으로 표시합니다.
  3. 기능 부패: 3계층 깊이의 종속성이 업데이트되었고 아무도 호환성을 확인하지 않았기 때문에 갑자기 작동하지 않거나 비정상적으로 작동하던 기능입니다.

생태계는 ‘확률적 소프트웨어’ 시대로 접어들고 있습니다. 아마도 효과가 있을 것입니다. 대부분의 경우.

탈출구: 기능으로서의 신뢰성

진자가 뒤로 흔들리기 시작합니다. B2B 세계에서 기업은 “99.999% 가동 시간”이 비용을 지불할 가치가 있는 경쟁 우위라는 것을 깨닫고 있습니다.

시장에서는 이러한 복잡성을 해결하는 것이 유일한 임무인 전문 그룹인 “플랫폼 엔지니어링” 팀의 출현을 보고 있습니다. 그들은 표준화를 시행하는 내부 개발자 플랫폼을 구축하고 있으며, 본질적으로 AI 보조자가 새로운 라이브러리를 환각하는 대신 승인된 라이브러리를 사용하도록 강요하고 있습니다.

게다가 차세대 “Agentic QA” 도구가 등장하고 있습니다. AI가 문제라면 해결책이 될 수도 있다. 새로운 자율 테스트 에이전트는 인간 사용자처럼 앱을 탐색하고, 버튼을 클릭하고, 양식을 채우고, 버그를 연중무휴 24시간 보고할 수 있습니다. 과거의 취약한 자동 테스트와는 달리, 이러한 에이전트는 화면을 “보고” 코드에 작동해야 한다고 표시된 경우에도 버튼이 파손된 시기를 식별할 수 있습니다.

평결

업계가 15년 동안 안정성보다 속도를 우선시했기 때문에 소프트웨어가 더 버그처럼 느껴졌습니다. 기술 회사는 모든 개발자에게 페라리 엔진(AI)을 제공했지만 브레이크(QA)를 제거했습니다. 개발팀은 현재 가드레일에 충돌하고 있습니다.

다음의 위대한 기술 회사는 가장 많은 기능을 제공하는 회사가 아닐 것입니다. 그들은 소프트웨어가 간단하고 조용하게 작동하는 사람들일 것입니다. 디지털 혼돈의 세계에서 신뢰성은 최고의 사치입니다.

그때까지는 해당 페이지를 계속 새로 고치는 것이 좋습니다. 두 번째에도 효과가 있을 수 있습니다. 아마.

출처

Advertisement

🦋 Bluesky 토론

Bluesky에서 토론하기

게시물 검색 중...