모던 소프트웨어라는 잔해
즐겁고, 신기하고, 두근거리는 소프트웨어들은 모두 어디로 갔나?

어린 시절의 나를 즐겁게 해줬던 소프트웨어들이 있다. 그림판과 마우스로 장난스러운 만화를 그렸고, 메모장으로 작성한 허접한 글을 학교 홈페이지에 올려 친구들에게 읽어보게 했었다. 소프트웨어는 나의 종이이자, 지우개 달린 연필이었고, 총천연색의 크레파스였다. 어릴 때 ‘커서 언젠가 많은 사람이 쓰는 소프트웨어를 만들고 싶다’는 꿈을 갖게 된 계기였다.
그러나, 요즘 들어 소프트웨어를 만들고 사용하는 사람으로서, 특히 사용하는 입장에서, 예전과 같은 반짝임과 즐거움을 느끼지 못한다. 그러다 Cursor의 Head of Design인 Ryo Lu의 ryOS를 보고 문득 생각했다. 모던 소프트웨어가 망가진 것은 아닐까.
컴퓨팅 성능을 과도하게 사용한다
지난 몇 십년간 하드웨어의 성능이 급격하게 발전했고, 소프트웨어도 그에 맞춰 고도화되었다. 당장 몇 년 전의 소프트웨어보다 지금의 소프트웨어가 더 많은 것을 수행하고 보여줄 수 있다. 그런데 요즘은 너무 과한 것 같다.
예를 들어, Discord를 열면 평균 1.2GB의 메모리를 차지한다. 사실 메모리를 많이 차지하는 이유는 Latency를 줄이고 오디오 품질을 줄이기 위한 기술보다, Electron과 같은 별도의 추상화 레이어/라이브러리가 끼어있기 때문이다.
모던 소프트웨어는 웹으로 개발한 뒤 Electron으로 포팅하는 형태를 띄고 있다. 덕분에 개발자들은 직접 Chromium을 빌드할 필요 없이 간편하게 데스크탑 앱을 만들어 고객에게 전달할 수 있게 되었다. 하지만, 간편함의 대가로 소프트웨어가 무거워지고 느려졌다.
그런데 사실 Electron은 문제가 아니다. 그냥 잘못 만든 소프트웨어도 존재한다. XCode는 단순 설치만으로 12GB를 차지하는데, 이제 실행하면 5GB짜리 AI 자동완성 기능을 강제로 설치해야하며, 만들고자 하는 플랫폼마다 별도로 다운로드를 받아 설치를 하게 된다. 무겁고 느린데, 오류가 나서 앱도 자주 꺼진다. 총체적 난국이다.
기능이 과도하게 많다
송금할 일이 있어 토스 앱에 들어가면 요새는 조금 갑갑하다. 갑자기 알을 깨라느니, 내 건강보험에 문제가 있다는 알림 화면을 꺼야, 혹은 살짝 스크롤을 내려야 송금 버튼을 볼 수 있다. ‘간편하게 송금한다’를 밀던 토스가 ‘금융의 모든 것’을 표방하면서 메뉴를 한참 내려야될 정도로 기능이 많아졌다. (사실 앱인토스는 금융도 아니다)
모던 소프트웨어는 복잡해질 운명을 갖고 태어난다. 사용자가 늘어나며 다양한 니즈를 충족하기 위해. 또는 비즈니스 성장을 위해 새로운 영역으로 확장하면서. 기능이 늘어나며 강력한 소프트웨어가 되는 것은 좋은 일이다. 그러나 대부분 복잡도를 관리하는 것에 실패한 채 덕지덕지 기능을 붙인다. 누더기가 된 메뉴/설정 화면을 보면 알 수 있다.
기능만 덕지덕지 붙은 제품은 제품 본연의 정체성을 흐리게 만든다. 정체성이 흐려진다면 ‘고객님을 위해 더욱 커지겠습니다’는 말은 설득력을 잃는다. 그렇기에 어렵지만 ‘무엇을 하지 않을 것인가’를 끊임 없이 생각해야한다. 하지만 이것이 불가능하다는 것을(특히 한국 시장에서는) 알기에 슬퍼진다. 작은 시장에서는 오직 1등만이 간신히 살아남기 직전의 상태에 도달할 수 있기 때문이다.
필요하지 않은 소프트웨어
“사람들은 더이상 필요한 걸 사지 않는다. 갖고 싶은 걸 산다.” 드라마 재벌집 막내아들에서 나오는 대사 중 하나이다. 트위터를 열면 하루에도 수많은 소프트웨어들이 생겨난다. 하지만 그 중에서 ‘정말 쓸모 있는 것’을 찾는 것은 하늘의 별따기이다. 소프트웨어의 정크화이다.
LLM 덕분에 소프트웨어를 만드는 비용과 노력이 줄어들었고 스스로도 크게 도움을 받고 있다. 모던 소프트웨어의 정크화는 그의 어두운 면이라고 생각한다. 전세계에서 만들어지고 있는 모든 소프트웨어의 퀄리티에 점수를 매겨 평균을 내본다고 했을 때, 나는 평균이 낮아지고 있다는 생각이 든다. 쓰이지 않는 소프트웨어가 나뒹구는 세상. 쓰레기 같은 소프트웨어가 쓰는 사람마저 쓰레기로 만들고 있는 것이 아닐까?
스스로를 돌아보며
발전한 만큼 아쉬운 부분이 생겨나기 마련이고, 그것을 항상 문제라고 말할 수는 없다. (소프트웨어가 메모리를 500MB 먹는다고 할 때, 일반 사용자의 관점에서 불편함을 느낄까 아닐까? 저마다 다를 수 있는, 딱 그만큼의 감도라고 생각한다)
그럼에도 나는 좋은 제품을 만들고 싶은 사람이다. 내가 만드는 제품을 사람들이 사용하면서 즐겁고, 신기하고, 두근거리게 만들고 싶다. 사소한 인터랙션 하나부터 전체적인 기능의 구성까지 고민을 계속하는 이유기도 하다.
그럼에도 불안할 때가 있다. 나 역시 그저 그런 소프트웨어를 만드는 사람이 아닌가. 설령 아니라고 하더라도, 언제까지 그러지 않은 채로 존재할 수 있나.