Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Douglas' Space

TCO와 기술부채 본문

Computing Tech. Diary/Computing Buzzwords

TCO와 기술부채

똘키아빠 2022. 5. 31. 17:53
이번 글에서는 기술부채(technical debt)의 개념을 정리해 보도록 하겠습니다. 기술부채의 개념을 소개하기 전에 TCO에 대해 먼저 이해가 필요할 것 같습니다. TCO(Total Cost of Ownership)라는 용어는 많이 들어 보셨으리라 생각합니다. TCO는 제품의 획득과 운영유지보수에 투여되는 총비용을 의미합니다. 다시말해 제품의 수명주기 기간에 투여된 총비용을 말합니다.  소프트웨어는 하드웨어와 달리 닳지도 않는데 왜 수명주기가 존재할까요? 소프트웨어의 수명주기는 물리적인 존재의 의미보다 소프트웨어가 더 이상 가치가 없어 그 효용성이 없어 졌을 때 소프트웨어의 수명이 다 했다라고 볼 수 있습니다.
위의 그림은 소프트웨어 수명주기의 특징을 잘 설명해 줍니다. 소프트웨어의 수락시험을 통해 개발이 완료되어도 모든 소프트웨어는 결함(defect)이 존재하기 마련입니다. 이 결함으로 야기되는 문제를 실패(failure)라고 합니다.  시험을 통해 소프트웨어에 내재된 모든 결함을 없애는 것은 불가능합니다. 다만, 시험을 통해 결함을 많이 발견하려고 노력할 뿐입니다. 시험 후에는 운용유지를 수행하면서 필요시 upgrade라는 작업을 통해 결함이 다시 주입되고 시험 등을 거쳐 결함이 줄어듭니다. 그리고 결국에는 결함이 계속 줄기는 하지만 결국 그 효용성으로 인해 더 이상 소프트웨어가 가치를 잃고 그 수명을 다하게 됩니다.
결국 좋은 소프트웨어는 많은 사람이 오랬동안 사용하는 것이며 그 효용가치가 계속 있다는 의미일 것 입니다. 다시말해 개발 이후의 운영 및 유지보수 기간이 매우 긴 소프트웨어를 좋은 소프트웨어라고 할 수 있습니다. 다시 말해 좋은 소프트웨어는 위의 그림에서 알 수 있듯이 결함이 없는 소프트웨어라고 할 수 있습니다. 그런데 이 결함은 단순한 소프트웨어의 버그(bug) 만을 의미하는 것이 아니라, 사용자, 더 넓게는 시장에서 그 소프트웨어에 기대하는 요구사항을 만족하지 못하는 모든 것을 결함이라고 할 수 있습니다.
기술부채(technical debt)는 다양한 해석과 정의가 존재합니다만 저는 이 결함의 관점에서 기술부채를 정의하고자 합니다. 기술부채는 시장이 요구하는 요구사항을 만족하지 못하는 소프트웨어의 결함으로 인해 발생하는 소프트웨어의 가치의 차이라고 정의하고자 합니다. 다시말해 소프트웨어가 시장의 요구사항을 만족하지 못해 지고 있는 빚인 셈입니다. 기술부채가 결국 TCO 증가에  매우 큰 영향을 주게 됩니다. 개발자는 이러한 기술부채가 적도록 소프트웨어를 개발해야 합니다. 기술부채도 재정적 부채와 같이 빚을 값지 않으면 이자가 늘어나듯이, 소프트웨어의 결함을 해소하지 않으면 계속적으로 부채에 대한 이자가 급격히 늘어나게 됩니다.
 
위의 그림은 앞의 그림과 유사하지만, 소프트웨어 가치와 기술부채와의 관계 관점에서 표현한 그림입니다. 소프트웨어는 운영유지되면서 변경이 발생하고, 변경을 통해 그 가치가 어느 정도 올라가지만 시장의 요구사항을 계속적으로 수용하지 못하면 소프트웨어의 결함으로 이어져 기술부채가 증가함을 보여주고 있습니다.
따라서 개발관점에서 기술부채를 줄이는 방법은 소프트웨어의 가치를 극대화할 수 있도록 고객 및 시장의 요구사항을 신속하게 반영하는 것입니다. 이를 위해서는 사용자 또는 고객의 요구사항을 잘 이해하고 이를 빠르게 적용할 수 있도록 소프트웨어를 SOTA(state-of-the-art) 기술을 적용하여 좋은 설계를 하는 것입니다. 

'Computing Tech. Diary > Computing Buzzwords' 카테고리의 다른 글

Edge Computing  (0) 2022.06.08
OTA(Over-The-Air)  (0) 2022.06.04
가상화 (Virtualization)  (0) 2022.05.28
양자컴퓨터  (0) 2022.05.24
튜링어워드  (0) 2022.05.23
Comments