기술 부채

기술 부채
Photo by Towfiqu barbhuiya / Unsplash

기술적인 안정성과 확장성을 포기하면서 속도를 선택하는 것을 의미한다.
지금 당장은 빠르게 개발을 마무리지을 수 있으나 추후에 많은 리팩토링과 테스트가 필요해진다.

이런 tradeoff는 실제 사회에서도 똑같다.
내가 집을 지금 사고 싶다면 빚을 내서 빠르게 내가 살 집을 얻는다. 그러나 추후에 많은 이자와 상환금이 나를 기다리고 있다.

일반적으로 기술 부채라 하면 굉장히 부정적으로 들린다. 실제로도 최대한 부채를 안 지도록 해야 하는 것이 맞고 어떻게 해야 부채를 안 짊어질 수 있는지에 대한 고민은 회사 차원에서 반드시 필요한 부분이다.

그러나 내가 오늘 얘기하고 싶은 부분은 약간 다르다. 내가 지금 살 집이 필요하다면 어느 정도의 부채도 반드시 필요하다는 것이다. 다만 이 부채가 생김으로써 앞으로 생길 이자들에 대해 어떻게 낼 것인지 빚은 어떤 식으로 갚을 것인지 빚을 얼마를 진 것인지에 대한 계획은 반드시 있어야 한다.

개발을 할 때로 적용해보면 다음과 같다.

언제나 항상 모든 코드 디자인을 신경쓰지 말고 모든 코드를 테스트하지 말자.

1. 그러나 내가 하지 않았다면 왜 안했는지에 대한 명확한 근거가 있어야 한다. 기술 부채가 생김으로써 생기는 비즈니스 이익이 더 큰지 기술 부채로 인해 생기는 마이너스가 더 큰 지 대략적으로라도 계산을 통해 의사결정을 내려야 한다.

2 기술 부채를 짊어지기로 결정했다면 내가 이 부채들을 언제 갚을 것인지 명확한 계획을 세워라. 계획을 세우지 않는다면 차일피일 늦어지면서 알게모르게 복리로 잔뜩 불어날 것이다.

3. 기술 부채로 인한 이자에 대한 측정을 해라. 한번 포기한 부채로 인해 점점 협업의 효율성이 떨어지고 코드 퀄리티가 개선이 되지 않는 모습을 볼 수 있다. 만약 심하다면 기존의 계획보다 더 당겨서 부채들을 갚을 필요가 있다. 리팩토링의 개념에 대해서 확실히 알고 있어야 한다.


이에 대한 생각들을 가지고 있다면 적당한 부채로 투자를 하고 실현된 이익을 재투자하여 돈이 돈을 낳는 선순환 구조가 만들어질 것이다.

기술 자산을 열심히 불려나가자.

#기술자산#리팩토링#디자인패턴#기술부채#복리#만기일시상환#하면#진짜#힘들어요