오늘은 기술 부채란? (Technical Debt) [ 개발에 도움이 되는 영상 ] 영상을 보고 기술 부채에 대한 글을 작성해 보았습니다.
기술 부채란 현재 시점에서 더 오래 소요될 수 있지만 더 나은 접근 방법을 사용하는 대신 보다 쉬운 솔루션을 채택함으로 인해 발생하는 추가적인 재작업의 비용을 의미합니다. (위키백과)
간단하게 말하면 다음과 같습니다. 문제 해결을 위해 아래 두 가지의 접근 방식이 존재한다고 가정해봅시다.
우리는 언젠간 A를 맞이해야 되지만 B를 사용해놓고 '일단 B쓰고 나중에 A로 바꿔야겠다'라 생각하면 그게 바로 기술 부채인 것입니다.
기술 부채에는 크게 두 가지 종류가 존재합니다. 일반적으로 코드를 바꾸는 것은 가벼운 정도의 기술 부채로, 시스템의 구조를 바꿔야 되는 정도는 무거운 기술 부채로 인식하고 있습니다.
가벼운 기술 부채
무거운 기술 부채
=> 결과적으로 서비스 운영에 큰 영향을 미치지 않아 낮은 우선순위를 가지게 되는 경우가 많습니다.
가벼운 기술 부채부터 점진적으로 해결해 나가야 합니다.
기술 부채 관점 종류
당신의 기술부채는 안녕하십니까? 배민선물하기 다시 만들기 영상을 통해 우아한형제들에서는 어떻게 기술 부채를 해결했는지 알아봤습니다.
기존 서비스를 운영하면서 팀 내부적으로 서비스의 발전과 trade off된 기술 부채 내역을 내부적으로 정리하였습니다.
팀 내부적으로 중요한 과제가 있어 기술 부채 상황 계획을 수립하되, 조바심내지 않고 여유로울 때 개선하기 위해 일정을 조정했습니다.
또한, 해당 기간동안 기술 부채 상환 계획을 보다 더 상세하고 치밀하게 계획해 나갔습니다.
기술 부채를 상환할 서비스를 잘 아는 일부 개발자만 상환 준비를 진행합니다. 어떤 영향이 있을지, 문제가 있는지, 무엇을 해야 되는지 검토합니다.
어느정도 개선 계획이 완료될 경우 기존 운영서비스를 유지하는 일부 팀원을 제외한 대부분의 팀원들이 서비스 개선에 참여합니다.
기존의 시스템이 왜 이런 사용자 시나리오를 가지는지 지속적인 의문을 가지고 더 나은 시나리오를 찾기 위해 노력합니다.
기술 부채는 0으로 만들 수 없으나, 다음과 같은 과정을 통해 많은 기술 부채를 상환하여 더 나은 서비스를 제공을 할 수 있게 되었습니다.
기술 부채를 통해 회사는 서비스로 시장 점유율을 높일 수 있으며 서비스의 빠른 성장의 촉진시키는 연료로도 이용할 수 있습니다. 기존 서비스의 개선 없이 추가적인 기능 개발만 존재하기 때문입니다.
또한 개발자라면 마주치는 기술 부채, 꼭 다 갚아야 하나요? 라는 글과 함께 위의 영상을 통해 기술 부채의 발생 이유를 확인해보면 결국 필연적으로 발생할 수 밖에 없는 것이라고 생각되어집니다.
결론적으로 일정 수준 이상의 기술 부채는 서비스의 성장을 위해 필요하지만 과도한 기술 부채는 결국 문제가 발생할 수 있으니 서비스의 기술 부채에 대한 정리가 필요하다고 생각되어집니다.
오늘은 기술 부채에 대해 알아보았습니다. 현재 서비스를 운영하는 개발자분들은 필연적으로 발생하는 기술 부채에 대해 불만을 가지지 않았으면 좋겠습니다.
서비스 성장을 위해서 어느 정도의 합의된 기술 부채는 추후 팀원들과 공유하며 점진적으로 개선해 나가면 되는 것입니다.
오늘부터 서비스 개선사항을 하나하나 적어 나가면서 기술 부채 상환을 준비하는 것은 어떨까요?
감사합니다.