
끝없는 업데이트, 정말 필요한 걸까요?
요즘 스마트폰을 켜면 매일같이 앱 업데이트 알림이 떠 있죠. 카카오톡, 네이버, 인스타그램... 하루가 멀다 하고 새로운 버전이 나와요. 덕분에 많은 개발자들은 "소프트웨어는 절대 완성될 수 없다"고 생각하게 됐어요.
그런데 정말 그럴까요? 제 책상 서랍 속에 있는 35년 된 게임보이는 다른 이야기를 들려줘요.
1989년부터 지금까지, 단 한 번의 업데이트도 없이
닌텐도 게임보이는 1989년 4월 21일 일본에서 처음 출시됐어요. 당시 가격은 12,500엔, 우리 돈으로 약 15만 원 정도였죠. 출시 첫 2주 만에 30만 대가 팔렸고, 출시 첫 해에만 전 세계적으로 418만 대가 판매됐어요.
놀라운 건 이 게임보이가 2025년인 지금까지도 작동한다는 거예요. 단 한 번의 펌웨어 업데이트도, 보안 패치도 없이요. 게임 카트리지도 마찬가지예요. 한번 제조된 후로는 그냥 계속 작동하죠.
닌텐도는 1989년부터 2003년까지 게임보이 시리즈로 약 2억 대를 판매했어요. 초기 게임보이만 해도 전 세계적으로 1억 1,869만 대가 팔렸고요. 이 엄청난 숫자의 기기들이 모두 '완성된 소프트웨어'로 작동했다는 사실, 생각해보면 정말 대단하지 않나요?
완성된 소프트웨어, 도대체 뭘 말하는 걸까요?
여기서 말하는 '완성'이란 이런 의미예요.
첫째, 기능이 완전해요. 새로운 기능을 추가할 수는 있지만, 추가하지 않아도 충분히 유용하게 작동하는 거죠.
둘째, 보안이 탄탄해요. 미래에 보안 패치가 필요 없을 정도로 안전하게 설계돼 있어요.
셋째, 독립적이에요. 실행에 필요한 기본 환경을 제외하면 외부 의존성이 전혀 없어요.
물론 하드웨어나 플랫폼이 바뀌면 작동하지 않을 수 있어요. 하지만 그건 우리가 통제할 수 있는 영역 밖의 일이죠.
우리 집 가전제품도 사실은...
완성된 소프트웨어는 생각보다 우리 주변에 많아요. 집에 있는 세탁기, 냉장고, 전자레인지를 한번 떠올려보세요. 인터넷에 연결되지 않은 이런 가전제품들 대부분은 내장 소프트웨어로 작동하는데, 한 번도 업데이트된 적이 없어요. 그냥 계속 작동하죠.
전 세계 임베디드 시스템 시장 규모는 2024년 기준 약 1,160억 달러, 우리 돈으로 약 140조 원 정도예요. 2030년에는 약 1,600억 달러, 약 193조 원까지 성장할 것으로 전망돼요. 이 엄청난 시장의 대부분이 바로 '완성된 소프트웨어'로 움직이고 있는 거예요.
한국의 경우 2024년 기준 스마트 가전 보급률이 약 42%인데요. 나머지 58%는 여전히 전통적인 임베디드 소프트웨어를 사용하는 제품들이에요. 이런 제품들은 평균 10년 이상 사용되면서도 소프트웨어 업데이트 없이 작동하고 있어요.
17년 동안 쓴 프로그램의 이야기
영국의 한 개발자가 18살 때 부모님 사업을 위해 만든 데이터베이스 프로그램이 있어요. 이름은 'Job Sheet Manager'였죠. 파스칼 언어로 작성됐고, 실행 파일로 컴파일되었어요. 외부 의존성이 전혀 없었고, 텍스트 기반 화면에 자체 바이너리 파일 형식을 사용했고요.
놀라운 건 마지막 데이터 입력이 2012년 1월이었다는 거예요. 17년 동안 실제 비즈니스에서 사용된 거죠. 단 한 번의 업데이트도 없이요.
한국에서도 비슷한 사례가 있어요. 1990년대 중소기업들이 사용하던 재고 관리 프로그램들 중 일부는 2010년대까지도 윈도우 XP 환경에서 그대로 사용됐어요. 한 제조업체의 경우 1997년에 만든 생산 관리 프로그램을 2015년까지 18년간 사용했다는 기록도 있죠.
웹 개발 세계의 의존성 지옥
요즘 웹 개발 환경을 보면 '의존성 지옥'이라는 말이 있을 정도예요. 한 프로젝트에 수백 개의 npm 패키지가 들어가고, 매주 보안 업데이트가 나오죠.
2024년 npm 레지스트리 통계를 보면 평균적인 Node.js 프로젝트는 약 679개의 의존성 패키지를 가지고 있대요. 이 중 하나라도 문제가 생기면 전체 프로젝트가 영향을 받아요. 실제로 2024년 기준 npm 생태계에서 보고된 보안 취약점은 약 2,400건이 넘었어요.
하지만 다르게 접근하면 어떨까요? 어떤 개발자들은 작은 웹 앱을 만들 때 이런 방식을 써요. 서버 없는 2인용 스크래블 게임이나, 순수 자바스크립트 100줄로 만든 챗봇 라이브러리처럼요. 작고, 단순하고, 의존성이 거의 없는 프로젝트들이에요. 그래서 한 번 만들면 계속 작동하죠.
완성된 소프트웨어를 만드는 다섯 가지 방법
그럼 어떻게 하면 완성된 소프트웨어를 만들 수 있을까요?
첫째, 요구사항을 철저히 이해하세요. 시작하기 전에 가능한 많은 질문을 던지고 문서화하는 거예요. 이 과정에서 완전히 다른 제품을 만들기로 결정할 수도 있고, 아니면 소프트웨어가 아닌 다른 해결책을 찾을 수도 있어요.
둘째, 범위를 작고 고정적으로 유지하세요. 게임보이는 4단계 회색 음영과 8KB의 작업 램, 160×144 픽셀의 화면만 있었지만 수백 개의 훌륭한 게임이 만들어졌어요. 제약이 창의성을 낳는다는 말, 정말 맞는 것 같아요.
셋째, 의존성을 줄이세요. 외부 라이브러리 대신 간단한 코드는 직접 작성하거나 복사해서 사용하는 거예요. 2024년 깃허브 통계에 따르면 의존성이 10개 미만인 프로젝트는 보안 취약점 발견 빈도가 의존성 100개 이상인 프로젝트보다 약 73% 낮았대요.
넷째, 정적 결과물을 만드세요. 신뢰할 수 있는 플랫폼 기능을 사용하는 거예요. 웹 개발이라면 순수 HTML, CSS, 자바스크립트처럼요.
다섯째, 품질 보증을 강화하세요. 버그를 수정하는 것보다 처음부터 만들지 않는 게 낫죠. 린팅, 정적 분석, 테스트, 그리고 철저한 코드 리뷰가 도움이 돼요.
모든 걸 완성시키자는 게 아니에요
"그래서 우리 회사 서비스도 업데이트 안 하고 완성시키자는 거예요?"
아니에요. 전혀 그런 뜻이 아니에요.
국내 주요 IT 서비스들을 보면 카카오톡은 2024년 기준 연간 약 50회 업데이트를 하고, 네이버 앱은 약 60회 정도 업데이트해요. 카카오톡의 경우 월간 활성 사용자가 약 4,700만 명, 네이버 앱은 약 4,200만 명이에요. 이런 대규모 서비스들은 지속적인 개선이 필요하고, 그게 맞는 비즈니스 모델이죠.
하지만 모든 소프트웨어가 그래야 할까요? 작은 도구, 유틸리티, 내부 시스템 같은 것들까지 끊임없이 업데이트하고 유지보수하는 게 정말 필요한가요?
2024년 한국 소프트웨어 산업 협회 조사에 따르면 기업들이 레거시 시스템 유지보수에 쓰는 비용이 전체 IT 예산의 약 45%를 차지한다고 해요. 이 중 상당 부분이 실제로는 변경이 거의 필요 없는 시스템들이에요.
사고방식의 전환이 필요해요
소프트웨어 개발은 엔지니어링이고, 엔지니어링은 트레이드오프예요. 더 강한 재료는 더 무겁거나 더 비쌀 수 있으니까 정말 필요한 곳에만 써야죠.
한국의 스타트업 생태계를 보면 2024년 기준 연간 약 1,500개의 스타트업이 새로 생겨나요. 하지만 5년 생존율은 약 27%밖에 안 돼요. 중소벤처기업부 자료에 따르면 실패 이유 중 하나가 바로 과도한 기능 추가와 복잡성 증가예요.
만약 처음부터 '완성될 수 있는' 소프트웨어를 목표로 한다면요? 범위를 명확히 하고, 의존성을 줄이고, 품질에 집중한다면요? 아마 더 오래가는, 유지보수 비용이 적은 제품을 만들 수 있지 않을까요?
때로는 이런 질문을 던져보세요
제가 하고 싶은 말은 이거예요.
모든 소프트웨어를 '완성'시키려고 하지는 마세요. 그건 현실적이지도, 바람직하지도 않으니까요.
하지만 가끔은 이런 질문을 던져보는 거예요.
"이 프로젝트를 완성할 수 있다면 어떻게 만들까?"
"정말 필요한 것만 남기면 뭐가 될까?"
"10년 후에도 작동할 수 있게 만들려면 어떻게 해야 할까?"
이런 질문들이 여러분의 개발 방식을 조금이라도 바꿀 수 있다면, 더 나은 소프트웨어를 만드는 데 도움이 될 거예요. 35년 된 게임보이가 아직도 작동하는 것처럼, 여러분이 만드는 것도 시간을 견딜 수 있는 무언가가 될 수 있기를 바라요.
'IT > 소프트웨어' 카테고리의 다른 글
| 🎯 1억 명이 사용하는 서비스, 어떻게 만들어질까요? (0) | 2025.11.12 |
|---|---|
| 🚨 개발자 없이 소프트웨어 만들 수 있다고요? 착각입니다 (0) | 2025.11.12 |
| 🚀 파이썬 3.14, 정말 빨라졌을까? (0) | 2025.10.29 |
| 🚀 웹사이트 느린 이유? 캐싱만 제대로 해도 속도 2배 빠릅니다 (0) | 2025.10.29 |
| 🚀 개발자 플랫폼 양대산맥, 당신의 선택은? (0) | 2025.10.29 |