Jamie the programmer

기술 부채 관리를 위한 기술 부채 식별 방법 (feat. Martin Fowler 의 Technical Debt Quadrant) 본문

programming/tips

기술 부채 관리를 위한 기술 부채 식별 방법 (feat. Martin Fowler 의 Technical Debt Quadrant)

jamie91 2023. 6. 25. 16:40
Contents 접기

개요

 

어떠한 신규 프로젝트를 시작하는데 기술부채를 생산하는 옛날의 범했던 실수를 다시 범하지 않기 위해 기술부채와 관련지식을 습득하고 실수를 범하지 않기 위한 좋은 개발 습관을 만들어 나가야 합니다. 기술 부채를 생산하지 않기 위해서 여러 개발 이론 및 기술을 접목하는 것도 중요하지만, 제일 먼저 기술 부채를 식별할 수 있는 사전 지식을 갖추는 게 중요하다고 생각합니다. 해당 글은 Martin Fowler의 기술 부채의 복잡성을 설명하고 구분 방법을 제시하는 기술 부채 사분면(Technical Debt Quardrant) 을 설명하는 글입니다.

 

 

 

 

 

 

기술 부채의 4가지 타입

 

 

 

1. Reckless & Deliberate Debt (신중하지 못했지만, 의도한)

  • 장기간으로 보았을 때 발생할 수 있는 문제를 식별하지 않고 어떤 결과를 초래할 지에 대해 이해하지 못한 상황에서 충분히 고려하지 않고 작성한 코드
  • 예)
    • 데드라인이 다가와 기술부채를 해결하지 못한 채 그대로 두었으며, 추후 언제 다시 돌아와서 해결을 할지에 대해 계획하지 않음.
    • 지금은 일단 잘되네? 나중에 다시 확인은 해봐야 하는데. 언젠지는 모르겠고.

 

2. Reckless & Inadvertent Debt (신중하지 못한, 부주의한)

  • Thing you should have know as a developer, but didn't. (개발자로서 처리해야 했지만 하지 않음.)
  • 물론, 개발자가 모든 도메인 지식을 가지고 있지 않을 수 있다는 점은 이해하지만 개발'팀'은 도메인에 대한 지식을 숙지하고 있어야 하고, 개발 기준과 best practice를 파악하고 있어야 한다.
  • 예)
    • 팀 내 팀원 간 기술이 공유가 되지 않아 실수를 범한 코드

 

3. Prudent & Inadvertent Debt (신중했지만, 부주의한)

  • 팀의 스킬과 베스트 프랙티스를 도입 및 발전시켰음에도 불구하고 발생하는 기술 부채
  • 때때로 기술부채는 직접 경험해 봐야 알 수 있을 때가 있다.
  • 간혹, 빠르게 변화하는 IT 산업에서 유행이 지난 혹은 현재 시점에 아무런 영향이 없는 기술적 접근을 도입한 경우에 발생되기도 한다.
  • Martin Fowler는 행당 분면이 가장 예측하기 어려운 기술 부채라 하였다.
  • 메트릭 측정 등 을 동반하여도 알 수 없는 부채라고도 하였다.

 

4. Prudent & Deliberate Debt(신중했지만, 의도한)

  • 개발 속도와 타협하는 기술 부채
  • 신중한 의사결정에 결과로 잠재적 위험과 보상의 균형
  • 선택에 의한 발생 가능한 결과를 나열 및 최악의 시나리오를 예측하는 과정을 실시

 

 

 

Insight

  • 매사에 늘 신중할 것 -> Prudent
  • 예상을 했던 하지 못했던 기술 부채를 없애기 위해 계획하고 실천할 것
  • 2분면(Reckless & Inadvertent Debt (신중하지 못한, 부주의한))과 같은 실수를 범하지 않기 위해 팀원 간 기술 공유가 중요하다는 것을 깨달았으며, 기술 공유를 체계화하는 데 노력해야 할 것

 

 

728x90
반응형

'programming > tips' 카테고리의 다른 글

Docs as Code: API 문서화를 코드처럼 관리하는 방법  (0) 2025.03.01