Essay

소프트웨어의 복제가능성에 대하여

"정말 소프트웨어는 적은 비용으로 복제가 가능할까?" 에 대한 개인적인 고찰

DuplicabilityEssay

복제 가능성이란?

소프트웨어는 기존의 산업과 대비한 특성으로 "복제 가능(Duplicability)"를 가지고 있다고 설명되고는 한다. 복제 가능이란, 적은 비용으로 소프트웨어의 다량 배포가 가능하다는 것이다.

적은 비용에 대한 의구심

하지만 가끔 드는 생각은, 지금 시대에 복제 가능성이라는 것이 그다지 장점으로 느껴지지 않는데다가, 실제로 장점인가 싶은 생각이 들 때가 있다.

인터넷으로 연결되지 않은 어플리케이션을 개발하던 시절에는 맞는 이야기라고 생각한다. 하지만 SaaS가 보급되는 현재에는 아니라고 생각한다.

넷플릭스나 Salesforce 같은 SaaS 회사의 경우, 사용자에게 배포되는 프로그램만으로는 정상 작동하지 않고 서비스를 동작하기 위한 회사 차원의 서비스를 접속에 비례해서 제공해야하기 때문이다. 넷플릭스를 만명이 시청하고 있다면, 서비스는 끊임없이 만명에게 각자가 시청하는 컨텐츠를 스트리밍해줘야한다.

또한 리소스는 비례하게 증가하는 것 뿐만 아니라 어느 시점, 시점마다 구현이 가지고 있는 한계를 극복하기 위해 복잡성을 크게 증가시켜야 하는 것이다. 백엔드 서비스가 초당 n개의 request를 처리할 수 있다고 했을 때, n개를 넘어서는 request를 처리하기 위해서 scale out을 하고, load balancing을 구축해야한다. (서버리스라면 아닐지도!)

다시 생각해보는 복제 가능성

그때 그시절 복제 가능성이 집중했던 소프트웨어의 특징은 소비자가 서비스를 사용하기 위한 최소 구성 요소를 다른 산업에 비해서 가장 싸게 달성할 수 있다는 것이 아닐까? 그것이 옛날에는 모든 기능이 클라이언트에서 작동하는 Fat Client 였으나, 요즘에는 네트워크가 없이는 채팅을 보낼 수 없는 카카오톡 같은 Thin Client이니 말이다. (카카오톡이 지금도 Thin Client인가? 예시가 이상하지만 그래서 더 재미있다.) 쿠팡이든 네이버든 스토어를 통해서 배포할 수 있다! 그 비용으로 30%를 수수료 떼가겠다는 플랫폼 사업자들 때문에 쉽다라고 생각할 수 있나 싶긴 하지만 말이다!

TL;DR

소프트웨어의 복제 가능성은 서비스 전체에 대한 비용이 싸다는 것이 아니라, 사용자가 서비스에 접근하기 위한 최소 비용이 타 산업 대비 매우 적다는 것으로 생각된다.