오늘날 대부분의 소프트웨어는 사용자가 아닌 개발자가 주도하는 폐쇄적인 형태로, 개인의 고유한 필요에 맞춰 도구를 수정하거나 조합하기 어렵습니다. 이는 물리적 환경에서 우리가 도구를 재배치하거나 직접 만드는 자유와 대조됩니다. '변형 가능한 소프트웨어(malleable software)'는 이러한 경직된 디지털 환경에서 벗어나, 누구나 최소한의 마찰로 자신의 필요에 맞게 도구를 바꾸고 나아가 공동 제작에 참여할 수 있는 기술적, 문화적 생태계를 목표로 합니다.
기존의 맞춤화 방식인 설정, 플러그인, 모딩, 오픈소스는 각각 한계를 가집니다. 설정은 개발자가 제공한 선택지로 제한되고, 플러그인은 허용된 확장 지점에서만 가능하며, 모딩은 기술적 장벽이 높고 유지보수가 어렵습니다. 오픈소스조차도 코드 접근권만으로는 수정이 쉽지 않습니다. 최근 주목받는 AI 코드 생성 기술 역시 새로운 앱을 만드는 데는 유용하지만, 기존 도구를 수정하거나 도구 간 데이터 공유 및 결합 문제를 해결하는 데는 역부족입니다. 이는 마치 유능한 보조 요리사를 푸드코트에 데려오는 것과 같아서, 완제품을 소비하는 환경이 아닌 자유롭게 제작할 수 있는 '주방' 같은 환경으로의 전환이 필요하다는 지적입니다.
변형 가능한 소프트웨어는 두 가지 핵심 설계 원칙을 제시합니다. 첫째, '사용자에서 제작자로 이어지는 완만한 경사'입니다. 이는 작은 수정에는 간단한 조작을, 더 깊은 수정에는 점진적인 학습을 제공하며, 본격적인 프로그래밍은 마지막 수단으로 남겨두는 방식입니다. 스프레드시트나 과거 HyperCard처럼 사용자가 점진적으로 도구의 기능을 확장하고 편집할 수 있는 환경을 제공하는 것이 중요합니다. 둘째, '앱이 아니라 조합 가능한 도구'를 지향합니다. 특정 용도에 묶인 앱 대신, 데이터와 UI를 공유하며 다양한 도구를 유연하게 조합할 수 있는 환경을 구축해야 합니다. 이는 데스크톱 파일 시스템처럼 여러 도구가 같은 데이터에 접근하거나, Airtable과 Notion처럼 동일한 데이터에 여러 보기를 제공하는 저코드(low-code) 데이터베이스 도구의 확장된 개념으로 볼 수 있습니다.
이러한 변형 가능한 소프트웨어의 등장은 디지털 환경에서 사용자의 주도권을 회복하고, 개인과 커뮤니티가 자신의 필요에 맞춰 소프트웨어를 공동 제작하고 유지보수하는 새로운 문화를 열 수 있다는 점에서 큰 의미를 가집니다. 이는 단순히 기능적 개선을 넘어, 상호운용성, 보안, 사업 모델, 그리고 사용자 문화 전반의 변화를 요구하는 거대한 과제입니다. 궁극적으로는 디지털 도구가 우리의 작업 흐름에 맞춰 유연하게 변형될 수 있도록 함으로써, 더 효율적이고 창의적인 작업 환경을 조성할 잠재력을 가지고 있습니다.