CEO, 뉴스

Microsoft의 대표 스프레드시트 프로그램인 Excel 5.0은 1993년에 출시됐다. 당시에는 꽤 큰 프로그램이었다. 하드 드라이브 공간을 무려 15MB나 차지했다. 그 무렵 사람들은 1985년쯤 처음 샀던 20MB PC 하드 드라이브를 아직 기억하고 있었으니, 15MB는 정말 큰 용량처럼 보였다.

Excel 2000이 출시될 무렵에는 필요한 공간이 무려 146MB로 늘었다. 거의 열 배다! Microsoft 프로그래머들이 엉성하게 만든 탓이라고 생각하는가?

아니다.

인터넷에서 흔히 볼 수 있는 지루한 ‘블로트웨어’ 비판 글을 쓰려는 거라고 생각할지 모르겠다. “소프트웨어가 너무 비대해졌다”고 징징대고, “아, 괴로워라” 하고 한탄하며, 날씬한 edlin과 vi가 Word와 Emacs보다 훨씬 낫다고 주장하는 글 말이다.

하하! 속았다. 그런 글을 또 쓰려는 게 아니다. 그런 주장은 사실이 아니기 때문이다.

1993년 당시 하드 드라이브 가격을 고려하면 Microsoft Excel 5.0이 차지한 공간의 비용은 약 36달러였다.

2000년 당시 가격으로 계산하면 Microsoft Excel 2000이 차지한 공간의 비용은 약 1.03달러다.

(이 수치는 인플레이션을 반영했으며, 하드 드라이브 가격 자료는 여기에서 가져왔다.)

실질적으로 보면 Excel은 오히려 작아지고 있는 셈이다!

그렇다면 블로트웨어란 정확히 무엇일까? The Jargon File은 이를 빈정대듯 “기능은 거의 제공하지 않으면서 디스크 공간과 메모리를 터무니없이 많이 차지하는 소프트웨어. 특히 애플리케이션과 운영체제 업그레이드에 쓰인다. 이 용어는 Windows/NT 세계에서 매우 흔하다. 그 원인도 마찬가지다”라고 정의한다.

아마 그 사람들은 Windows를 싫어하는 모양이다. Windows 386(1989)에 가상 메모리가 등장한 뒤로는 10년 넘게 메모리가 부족했던 적이 없다. 하드 드라이브 공간은 메가바이트당 0.0071달러까지 떨어졌고, 나무에서 뛰어내리며 나는 법을 배우는 양처럼 계속 급락하고 있다.

Linus Åkerlund가 설명해 줄지도 모르겠다. 그는 자신의 웹페이지에 이렇게 쓴다. “이런 비대한 프로그램을 쓰는 큰 단점은 아주 사소한 일 하나만 하려 해도 거대한 프로그램 전체를 불러와야 한다는 것이다. 메모리를 전부 잡아먹는다… 시스템을 효율적으로 쓰지 못한다. 실제보다 시스템이 더 비효율적인 것처럼 보이게 하며, 이는 완전히 불필요하다.”

아, 메모리를 전부 잡아먹는다고. 알겠다. 하지만 실제로는 그렇지 않다. 1987년 Windows 1.0 시절부터 운영체제는 필요한 페이지만 불러온다. 실행 파일이 15MB이고 사용하는 코드가 2MB 분량의 페이지에 걸쳐 있다면, 디스크에서 RAM으로 불러오는 양은 2MB뿐이다. 최신 Windows는 페이지를 하드 드라이브에서 연속된 위치에 자동으로 재배치하기도 해서, 다음번 프로그램 실행 속도를 더 빠르게 한다.

오늘날처럼 성능이 넘치고 가격은 저렴한 컴퓨터에서 거대한 프로그램을 불러오는 일이 5년 전의 작은 프로그램을 불러오는 것보다 여전히 빠르다는 점은 누구도 부인하지 않을 것이다. 대체 무엇이 문제인가?

RA Downes의 글에서 실마리를 찾을 수 있다. 그는 Microsoft의 작은 유틸리티 하나를 몇 시간 동안 분석한 듯하다. 크기가 무려 1MB나 된다는 사실에 화가 난 모양이다. (그 글이 쓰였을 당시 하드 드라이브 공간으로 치면 3.15센트다.) 그의 생각으로는 프로그램 크기가 지금보다 약 95% 작아야 했다. 우스운 점은 그가 분석한 유틸리티가 RegClean이라는 프로그램이라는 것이다. 아마 들어본 적도 없을 것이다. Windows 레지스트리를 살펴보고 사용되지 않는 항목을 찾아 삭제하는 프로그램이다. 사용하지 않는 레지스트리 항목을 정리하는 데 신경 쓰려면 다소 강박적인 성향이 있어야 한다. 그래서 블로트웨어를 걱정하는 일이 소프트웨어 문제라기보다 정신 건강 문제에 가까운 게 아닌가 하는 생각이 들기 시작한다.

사실 블로트웨어를 택할 만한 이유는 많다. 우선 프로그래머가 코드 크기를 걱정하지 않아도 되면 제품을 더 빨리 출시할 수 있다. 그러면 더 많은 기능을 제공할 수 있다. 기능은 사용할 때 삶을 더 낫게 만들고, 사용하지 않을 때도 대개 해가 되지 않는다. 소프트웨어 업체가 출시 전에 멈춰 서서 코드 크기를 50% 줄이는 데 두 달을 쓴다면, 사용자에게 돌아오는 순이익은 거의 느끼기 어려울 것이다. 하드 드라이브를 늘 가득 채워 쓰는 사람이라면 Duran Duran MP3를 하나 더 내려받을 수 있을지도 모른다. 하지만 새 버전을 두 달 더 기다리는 손해는 체감할 수 있고, 두 달 동안 판매를 포기해야 하는 소프트웨어 회사의 손해는 더 크다.

많은 소프트웨어 개발자는 오래된 ‘80/20’ 법칙에 매혹된다. 그럴듯해 보인다. 사람들의 80%가 기능의 20%를 쓴다는 것이다. 그러면 기능의 20%만 구현해도 판매량의 80%를 유지할 수 있다고 스스로 설득하게 된다.

하지만 그 20%는 사람마다 다르다. 누구나 서로 다른 기능을 사용한다. 지난 10년 동안 서로에게서 배우려 하지 않은 회사들이 기능의 20%만 구현한 ‘라이트’ 워드 프로세서를 출시하려 한 사례를 수십 건은 들었을 것이다. 이런 이야기는 PC가 등장한 때부터 있었다. 대개 새 워드 프로세서를 기자에게 보내 평가를 맡기면, 기자는 그 프로그램으로 평가 기사를 작성한다. 그러다 대부분의 기자에게 꼭 필요한 정확한 단어 수 확인 기능을 찾는다. 하지만 그 기능은 ‘아무도 쓰지 않는 80%’에 속한다며 빠져 있다. 결국 기자는 라이트 프로그램은 좋고 블로트웨어는 나쁘다고 주장하면서도, “이 빌어먹을 프로그램은 단어 수를 세지 않아서 쓸 수 없다”는 기사를 쓰게 된다. 이런 일이 일어날 때마다 1달러씩 받았더라면 꽤 행복했을 것이다. 이런 경우도 마찬가지다.

‘라이트’ 제품을 마케팅하며 “가볍습니다. 겨우 1MB예요”라고 말하면 사람들은 대체로 반가워한다. 그러고는 꼭 필요한 기능이 있는지 묻는다. 그 기능이 없으면 제품을 사지 않는다.

요점은 이렇다. ‘80/20’을 전략으로 삼으면 소프트웨어 판매에 어려움을 겪을 것이다. 현실이 그렇다. 이 전략은 소프트웨어 산업만큼이나 오래됐고, 효과가 없다. 놀라운 점은 빠르게 성장하는 회사들의 임원 가운데 이 전략이 통할 거라고 생각하는 사람이 여전히 많다는 것이다.

Jamie Zawinski는 세상을 바꾼 Netscape의 초기 버전을 논하며 핵심을 이렇게 표현했다. 그는 말한다. “그렇게 믿으면 편하겠지만, Mozilla [Netscape 1.0]가 큰 것은 쓸모없는 잡동사니로 가득해서가 아니다. 여러분의 필요가 크기 때문에 Mozilla가 큰 것이다. 인터넷이 크기 때문에 여러분의 필요도 큰 것이다. 작고 날렵한 웹 브라우저는 얼마든지 있다. 덧붙이자면, 그런 브라우저는 유용한 일을 거의 하지 않는다. 하지만 Mozilla를 만들 때 완벽한 보석 같은 프로그램을 만드는 것이 목표는 아니었다.”