-
기술 부채Technique/Programmer 2017. 3. 19. 14:19반응형
기술 부채 ( Technical debt )
기술 부채는 위키사이트의 창시자로 알려진 컴퓨터 프로그래머 워드 커닝햄에 의해 만들어진 신조어로서, 오늘날 소프트웨어 업계에서 광범위하게 사용되고 있다. 금융업계에서 유래한 이 은유적 표현은 소프트웨어를 빠르게 출시하기 위한 결정을 내리는 것은 부채를 지는 것과 다름 없다는 의미를 갖고 있다. 즉 지금 무언가를 할 수 있게 해주는 것으로 그것이 없었다면 무언가를 할 수 없었다는 뜻이다.
다만 부채는 무시해서는 안 되며 반드시 되갚아야 한다. 되갚는 시기가 늦어질수록 더 많은 비용이 든다. 적절한 시간에 갚지 않는다면, 부채에 대한 이자가 늘어나고 효용은 줄어든다.
소프트웨어 세상에서의 기술 부채란 코드로 되돌아가 업데이트 하라는 뜻이다. 수정하지 않은 채 코드를 내버려둔다면 늘어나는 빚 속에 갇혀 점점 옴짝달싹 못하게 되고 개발 절차도 느려지게 된다. 이는 중요하다. 낮은 코드 품질은 더 긴 개발 기간을 뜻하지만, 길게 보았을 때는 짧은 기간 안에 반드시 갚을 빚을 통해 빠르게 일을 처리할 수 있다는 말이기도 하다.
기술 부채는 리팩토링이나 설계 조정의 지연, 다음 업데이트까지 라이브러리나 빌드 도구의 업데이트를 미루는 것, 혹은 로깅이나 디버깅을 대충 처리한 부분을 합리화 하는 것이다, 다채로운 비유인 만큼 그 뜻이 오용될 수 있다. 기술 부채는 단순히 잘못된 무언가를 가리키지 않는다. 때에 따라 나쁜 코드를 작성하는 행위가 ‘실용적’ 이라며 정당화되기도 한다. 실용적 선택과 날림 처리 사이에는 분명 차이가 존재한다.
의식적으로 기술 부채를 다룬다면 개발팀에게는 강력한 무기가 될 수 있다. 부채가 쌓이지 않도록 하되 항상 그것을 가시화하라. 실제 부채처럼 빨리 갚아서 과도한 이자와 비용이 들지 않도록 하자.
반응형'Technique > Programmer' 카테고리의 다른 글
15. 규칙 가지고 놀기 (0) 2017.03.21 13. 소프트웨어 설계에 대한 이야기 (0) 2017.03.19 응집도와 결합도 (0) 2017.03.16 12. 복잡도 다루기 (0) 2017.03.16 11. 테스트 하기 (0) 2017.02.22