본문 바로가기

Developement

배포된 프로그램에 대한 개발자적인 생각.


내가 프로그래밍을 해 온것으로만 따지면 허접하지만 꽤 오랜 시간 해 온 듯 하다.
처음 프로그래밍을 시작 한 것은 초등학교 때 부터 관심을 가져 중학교 때 부터 시작한 듯 하다.

(한 개발자의 잡설을 읽으시려면 펼쳐 보시길..)

소시적 부터 프로그래밍을 해 왔지만 10년전에 내가 만들었던 프로그램들 크기나, 요즘 내가 만들어 내는 프로그램들 크기를 보면 거의 비슷하다.
나름 철칙이 생긴 것이 허접떄기 하나 만들면서 많은 리소스는 쓰지 말자였고.
그 철칙을 나름대로 철저히 지키고자 노력하고 있다.

왠만한 프로그램은 설계는 둘째 치고 만들어져 컴파일 된 아이가 동작중 CPU 는 얼마나 사용하고, 메모리는 또 얼마나 사용되는지를 모니터링 한다.
내가 만든 프로그램이 CPU 와 메모리를 낭비 하는 것은 허락되지 않은 도둑질이라 생각하기 때문이다.
물론 프로그램 특성이 자원을 많이 소모 해야 하는 특성을 가진다면 모르겠지만, 작은 유틸리티로 만들어 지는 녀석이 메모리를 수십메가 먹고 들어 가는 것 자체가 나는 용납할 수 없는 일 이기 때문이다.

내 취지가 이러다 보니, 몇몇 프로그램들을 보면 나는 이해 할 수 없는 모습들을 보이게 된다.
특히 국산 무료 백신이라 불리는 것들 부터 해서, 별거 아닌 프로그램들인데 과도한 자원을 사용하는 것들까지.
빌어먹을 절약정신 때문에 지금도 왠만한 런타임 코드 크기는 1MB 를 넘지 않게 만드려고 하고, 사용되는 시스템 메모리 또한 10MB 는 넘지 않도록 하려는데 왠만한 프로그램들은 런타임 크기만 수십메가요, 사용되는 메모리는 100MB 도 더 쓰는게 많다.

특히 내가 천하의 쓰레기로 생각하는 .NET Framework 류는 정말 뭐만 만들었다면 다들 메모리를 100MB 잡고 시작하는 듯 하다. 그나마 Adobe 의 AIR 는 .NET Framework 보다 조금 더 저렴할 뿐 ... 자원을 낭비하는건 똑같은 처지라 본다.

점점 CPU 성능이 높아지고, 기본으로 설치되는 시스템 메모리도 이미 GB 로 올라선게 옛말이 되어 가지만, 나의 개똥철학으로서는 프로그램이란 그만한 수준에 따라 사용해야 할 자원의 수준도 정해 진다고 생각한다.
사용자의 PC 성능이 좋아진다 하여, 덩치가 크고 무겁게 만들 필요가 전혀 없는 프로그램을 무겁게 만들필요가 없지 않냐는 말이다.

주변을 돌아보면 대단한 일을 하는 것도 아닌데, 무척이나 놀라운 덩치를 보이는 프로그램들이 많이 생겨나고 있는 듯 하다.
특히 개발자들에겐 악명이 자자한 동쪽 소프트웨어 는 무료백신을 시스템 자원을 다 말아 먹도록 만들기도 하는 재능을 보이기도 한다. (어떻게 그렇게 만드는지 신기할 정도)

하고자 하는 말은 이것:

하는일에 비해 쓸데없이 거대하게 만들지 말자는 말 이다.
사용자의 PC 에 자원이 남아 돈다고 해서, 프로그램을 자원을 많이 쓰도록 만들면 정작 자원이 모자란 PC 에서는 돌지도 못한다는 것.
모두를 위한 프로그램을 만든다고 하면 그 모두를 위해 돌도록 만들어 주어야 하는 것은 아닌가 하는 게 나의 취지이며, 부적절한 시스템 자원의 낭비를 하지 않는 프로그램들이 앞으로도 계속 되어야 한다는 말이다.