재사용, 감소, 재활용(코드): 지속 가능한 소프트웨어 활용
제이콥 매티슨
재사용 가능한 소프트웨어 구성 요소(RSC)의 잠재력과 품질은 웹 지속 가능성과 "친환경" 디지털 제품을 보는 방식에 영향을 미칠 수 있습니다. 그러나 RSC는 소프트웨어 또는 기술 회사의 혁신 주기에서 가장 눈에 띄지 않는 측면 중 하나이며 비즈니스 배럴의 맨 아래에 머무르는 경우가 많습니다. "재사용 가능한 구성 요소"라는 용어는 기술 및 혁신 노력에 참여하지 않는 사람들에게는 너무 기술적이며 최소한의 노력으로 작업을 완료하려는 프로그래머에게는 (당연히) 너무 모호합니다. 몇 줄의 코드를 복사하여 붙여넣는 것은 의도적이든 아니든 기본 질문 라인을 따르기 때문에 지속 가능한 개발에 영향을 미칠 수 있습니다. 효율적인가? 쉽게 이해할 수 있나요? 모듈식인가요? 비용 효율적인가요?
당연히 기업은 처음 세 가지 질문이 네 번째이자 마지막 질문에 어떤 영향을 미치는지에 관심이 있습니다. 그러나 역설적이게도 대부분의 기업은 수익에 미치는 영향을 측정하는 순서를 바꾸려고 하지 않습니다. 소프트웨어의 재사용성에 대한 더 많은 정보와 인식이 확산된다면, 첫 번째 정의로서 "소프트웨어 재사용은 새로운 분야에서 소프트웨어 개발과 관련된 조직의 요구를 충족하는 소프트웨어 구성 요소를 재사용하기 위한 사전 계획에 의존한다는 것이 분명해질 것입니다. 맥락." 계획, 참여 및 전략적 디자인은 구성 요소 기반 웹 디자인(구성 요소: 웹 사이트나 애플리케이션을 방문할 때 사용자에게 표시되는 모든 요소를 생각함)을 훨씬 뛰어넘습니다.
Vue.js 및 Laravel과 같은 인기 있는 기술 스택을 갖춘 디자인, 코드 없는 플랫폼 및 기성 솔루션의 모듈성 증가는 단순한 소프트웨어 관련 현상이 아니라 제품 다양성에 대한 소비자 수요 증가에 대한 대응입니다. 매우 짧은 시간 동안 제품 수명과 관련성을 보장합니다. 실제로 일반적인 디자인 원칙에 적용할 때 "디자인의 모듈화는 제품과 그 구성 요소의 디자인 경계를 선택하는 것으로 정의될 수 있습니다. (…) 디자인 기능과 작업이 내부에서 상호 의존적이고 독립적입니다. 모듈 전반에 걸쳐."
특히 기술 분야에서 디자인 경계는 프런트엔드, 백엔드, 제품 개발, UX/UI 등의 전담 팀을 구성하여 결정되는 경우가 많습니다. 이러한 경계는 다양한 변형을 가질 수 있습니다. 대부분의 소프트웨어 회사는 최종 사용자와 디자인 요소 자체 간의 상호 작용을 보장할 목적으로 기능 요소가 개발되는 포드와 같은 구조를 선택합니다. Vuetify 또는 Bootstrap과 같은 잘 알려진 많은 코드 라이브러리 및 스타일 라이브러리는 디자인 원칙(예: 가독성 및 접근성)을 그대로 유지하는 것을 목표로 합니다.
소프트웨어 지속 가능성을 측정하는 것은 종종 비용/이익 추적은 물론 재사용 경제 모델을 의미할 수 있습니다. 가장 기본적인 수준에서 지속 가능성은 얼마나 많은 새로운 코드 줄이 작성되었는지로 측정할 수 있습니다(인간의 노력, 시간 및 전문적인 역량뿐만 아니라 로드 시간, 렌더링 및 대역폭 사용량도 희생). 1992년까지만 해도 이 개념은 전혀 새로운 것이 아니었습니다. 프로젝트를 위해 얼마나 많은 새로운 코드 줄이 작성되었는지와 관련하여 순 재사용 이익과 재사용 순 비용을 추적하는 구체적인 지표가 있습니다. 오늘날 모델 기반 접근 방식, 알고리즘 예측 또는 기계 학습을 사용하는 등 소프트웨어의 지속 가능한 개발을 위한 유지 관리-진화 개발 주기를 측정하기 위한 자동화 모델이 제안되었습니다. 그러나 중소기업의 경우 새로운 솔루션을 구현하는 데 비용이 많이 들 수 있습니다.
이 문제에 대해 연구원 Maggo와 Gupta는 지속 가능한 소프트웨어의 덜 눈에 띄는 측면에 대해 다음과 같이 이야기합니다. "소프트웨어 저장소를 구축하고 강화하는 데 사용할 수 있는 재사용 가능한 소프트웨어 구성 요소를 처음부터 개발하는 데 필요한 추가 비용이 있습니다." 이러한 추가 비용을 방지하려면 총 자원 없이 구현할 수 있는 5가지 요소에 대한 프로세스 평가가 핵심입니다.