"기술 부채"의 두 판 사이의 차이

 
(같은 사용자의 중간 판 20개는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개요==
==개요==
;technical debt, design debt, code debt
;technical debt, design debt, code debt
;기술적 부채, 기술 부채, 설계 부채, 코드 부채
;[[技術]] [[負債]]
;기술 부채, 기술적 부채, 설계 부채, 코드 부채
* 개발기한에 맞추느라 제대로 하지 못한 발생한 [[설계 스멜]], [[코드 스멜]]
* 임기응변식 소프트웨어 아키텍처와 여유 없는 소프트웨어 개발의 결과에 대한 비유
* 임기응변식 소프트웨어 아키텍처와 여유 없는 소프트웨어 개발의 결과에 대한 비유
* 개발기한에 맞추느라 제대로 하지 못한 문서화, 테스트, 소스코드 잔재, 경고 메시지, 코드분석 대응, 조직 내 지식공유 부족, 복잡해서 변경이 어려운 코드
* 빌린 돈으로 당장 무언가를 할 수 있지만 그 돈을 갚을 때까지 이자를 지불하게 된다. (꼭 필요한 경우 일시적으로 돈을 빌려쓸 수는 있지만 장기화되면 좋지 않다.)
* 일정에 쫓기면 [[소프트웨어 품질]] 중에서 가장 눈에 띄지 않는 [[유지보수성]]을 희생할 가능성이 크다...
 
==예시==
* 문서화 부족
* 설계, 코딩 능력 부족
* 소통 부족, 지식공유 부족
* 테스트, 테스트 코드 부족
* 코드 분석, 코드 리뷰 부족
* 예외처리, 경고 메시지 부족
* 복잡해서 변경이 어려운 코드
* 개발자간 코드(branch)의 차이가 커져서 통합(merge)이 어려워짐
 
==구분==
[[파일:techDebtQuadrant.png]]
 
==예시==
* 설계 문서 없음
* 유닛 테스트 없음
* 사용되지 않는 DB 항목 남겨둠
* 빌드/배포 자동화 안함


==같이 보기==
==같이 보기==
* [[코드 스멜]]
{{z컬럼3|
* [[커다란 진흙 덩이]]
* [[리팩토링]]
* [[매몰비용]]
* [[기술]]
* [[기술]]
* [[부채(debt)]]
* [[부채(負債)]]
* [[리팩토링]](refactoring)
* [[매몰비용]](sunk cost)
* [[버스 팩터]](bus factor)
* [[설계 스멜]](design smell)
* [[코드 스멜]](code smell)
* [[코드 리뷰]](code review)
* [[클린 코드]](clean code)
* [[산탄총 수술]](shotgun surgery)
* [[스파게티 코드]](spaghetti code)
* [[오버엔지니어링]](overengineering)
* [[커다란 진흙 덩이]](big ball of mud)
* [[TODO, FIXME, XXX]]
* [[프론트엔드, 백엔드 비유]]
}}


==참고==
==참고==
19번째 줄: 52번째 줄:
* {{네이버사전}}
* {{네이버사전}}
* {{네이버백과}}
* {{네이버백과}}
* http://wiki.c2.com/?WardExplainsDebtMetaphor
* https://brunch.co.kr/@leehosung/2 기술 부채 2016-05-10
* https://brunch.co.kr/@leehosung/2 기술 부채 2016-05-10


24번째 줄: 58번째 줄:
[[분류: 아키텍처]]
[[분류: 아키텍처]]
[[분류: 비유]]
[[분류: 비유]]
[[분류: 技]][[분류: 術]][[분류: 負]][[분류: 債]]

2023년 8월 29일 (화) 16:43 기준 최신판

1 개요[ | ]

technical debt, design debt, code debt
技術 負債
기술 부채, 기술적 부채, 설계 부채, 코드 부채
  • 개발기한에 맞추느라 제대로 하지 못한 발생한 설계 스멜, 코드 스멜
  • 임기응변식 소프트웨어 아키텍처와 여유 없는 소프트웨어 개발의 결과에 대한 비유
  • 빌린 돈으로 당장 무언가를 할 수 있지만 그 돈을 갚을 때까지 이자를 지불하게 된다. (꼭 필요한 경우 일시적으로 돈을 빌려쓸 수는 있지만 장기화되면 좋지 않다.)
  • 일정에 쫓기면 소프트웨어 품질 중에서 가장 눈에 띄지 않는 유지보수성을 희생할 가능성이 크다...

2 예시[ | ]

  • 문서화 부족
  • 설계, 코딩 능력 부족
  • 소통 부족, 지식공유 부족
  • 테스트, 테스트 코드 부족
  • 코드 분석, 코드 리뷰 부족
  • 예외처리, 경고 메시지 부족
  • 복잡해서 변경이 어려운 코드
  • 개발자간 코드(branch)의 차이가 커져서 통합(merge)이 어려워짐

3 구분[ | ]

TechDebtQuadrant.png

4 예시[ | ]

  • 설계 문서 없음
  • 유닛 테스트 없음
  • 사용되지 않는 DB 항목 남겨둠
  • 빌드/배포 자동화 안함

5 같이 보기[ | ]

6 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}