본문 바로가기
IT

코드 품질, 기술 부채

by Redking

코드 퀄리티가 왜 중요한지 말해도 그에 대한 가시화 되어있는 데이터가 없었기 때문에 건강한 코드베이스의 중요성이 비즈니스단에서 중요도를 두지 않고 있습니다. 최근에 발표된 새로운 연구에서 고품질 코드의 비즈니스 이점을 처음으로 측정해본 결과가 있었습니다.

 

완성도 높은 소프트웨어는 큰 이점이 있습니다.  이미 검증이 끝난 코드들을 재활용 하여 더욱 빠른 개발을 할 수 있게 해주고 긍정적인 사용자 경험을 유지할 수 있게 됩니다.

연구 결과를 보면, 개발자들의 시간의 23~42%가 기술 부채와 안티 패턴 때문에 낭비되고 있습니다.

코드 퀄리티는 비 기술 직군에겐 보이지 않기 때문에 코드 퀄리티를 높이는 것이 어떤 비즈니스 가치를 창출하는지 알기 직관적으로 어렵습니다.

고품질 코드는 버그가 15배 적고, 개발 속도는 두 배, 완료 시간의 불확실성은 9배 낮다는 연구 결과가 있고 이 연구는 다양한 산업, 분야, 프로그래밍 언어로 구성된 39개의 상용 코드베이스를 조사한 것입니다.

 

소프트웨어 개발에서의 큰 문제 중 하나는 코드 퀄리티가 가시성을 가지기 어렵다는 점입니다.

이로 인해 빠르게 새로운 기능을 추가할때는 다소 낮은 퀄리티로 개발하여 단기적인 이득 얻을 수는 있겠지만, 장기적인 관점에서 보는 경우 유지보수가 필요하게 됨으로 인해서 처음 얻었던 리소스적인 이득보다 큰 손실을 볼 수 있습니다.

 

어느 순간부터는 작은 이득을 얻기 위해 쌓아왔던 기술 부채들의 무게가 그동안 얻었던 이득보다 무거워지고, 결국에는 비지니스 전체에 그 영향이 미치게 됩니다. 새롭게 개발한 기능들에 대해서도 점점 늘어나는 버그, 재작업과 같은 과정을 밟으며 어려움에 놓이게 됩니다. 이 과정을 파훼하기 위해서는 코드의 퀄리티를 일정 수준 이상 유지하여야 합니다.

 

기술 부채가 있는 코드는 기능을 구현하는데 시간이 더 오래걸립니다. 그 이유 중 하나는 불확실성에서 나오는데 이로 인해서 개발에 필요한 시간이 길어지면, 프로젝트의 전체 일정을 예측하기가 더 어려워집니다. 이는 관련자가 고객이나 내부 이해관계자들에게 언제 완료할 수 있는지에 대한 확신을 가지기 어렵게 만듭니다. 또한 이후 유지 보수와 관련해서도 지속적인 고민이 필요하게 됩니다.

 

물론 여유가 없는 경우에는 어쩔수 없이 처음부터 빠르게 mvp를 구현한 후에 프로젝트가 안정기에 도달한 후 기술 부채를 해결하는 방법이 일반적인 프로젝트이겠으나, 장기적으로 봤을때는 다 누군가는 해결해야 할 문제이니 처음부터 어느정도의 퀄리티를 유지하여 구현하는게 미래에 이 프로젝트를 관리할 사람에게 도움이 될것이라는 생각을 마음속에 가지고 코드를 작성해보는게 좋을것 같습니다.

 

댓글