# 기술 부채 분류 (2018)

> Clean Markdown view of GeekNews topic #17017. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=17017](https://news.hada.io/topic?id=17017)
- GeekNews Markdown: [https://news.hada.io/topic/17017.md](https://news.hada.io/topic/17017.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-10-01T09:50:45+09:00
- Updated: 2024-10-01T09:50:45+09:00
- Original source: [technology.riotgames.com](https://technology.riotgames.com/news/taxonomy-tech-debt)
- Points: 3
- Comments: 1

## Topic Body

### 기술 부채의 분류

#### 소개
- Bill "LtRandolph" Clark는 _LoL_의 Champions 팀의 엔지니어링 매니저로, 기술 부채에 대해 깊은 관심을 가지고 있음.
- 기술 부채는 미래 개발자에게 비용을 초래하는 코드나 데이터로 정의됨.
- 이 글에서는 Riot에서 경험한 다양한 기술 부채의 유형과 내부적으로 사용하는 모델을 소개함.

#### 메트릭스
기술 부채를 평가하기 위해 세 가지 주요 축을 사용함: 영향, 수정 비용, 전염성.

##### 영향
- 기술 부채가 플레이어와 개발자에게 미치는 영향.
- 버그, 누락된 기능, 예기치 않은 동작 등.

##### 수정 비용
- 기술 부채를 수정하는 데 필요한 시간과 리스크.
- 단순한 오류는 몇 분 만에 수정 가능하지만, 깊이 뿌리박힌 문제는 몇 주 또는 몇 달이 걸릴 수 있음.

##### 전염성
- 기술 부채가 얼마나 퍼질 수 있는지.
- 다른 시스템과의 상호작용, 데이터 복사, 새로운 기능 구현에 영향을 미침.

#### 부채의 유형

##### 로컬 부채
- 시스템 내부에서만 문제가 발생하며, 외부에는 영향을 미치지 않음.
- 예: Jarvan의 Cataclysm.

###### Cataclysm 메트릭스
- 영향: 1 / 5
- 수정 비용: 2 / 5
- 전염성: 1 / 5

##### 맥가이버 부채
- 두 개의 상충하는 시스템이 임시방편으로 결합된 경우.
- 예: C++의 std::string과 Riot의 AString 클래스.

###### std::string vs AString 메트릭스
- 영향: 2 / 5
- 수정 비용: 3 / 5
- 전염성: -2 / 5

##### 기초 부채
- 시스템의 깊은 곳에 자리 잡은 가정이 전체 시스템에 영향을 미치는 경우.
- 예: _LoL_의 lua 스크립팅 언어 사용.

###### BlockBuilder Lua 메트릭스
- 영향: 4 / 5
- 수정 비용: 4 / 5
- 전염성: 4 / 5

##### 데이터 부채
- 다른 유형의 기술 부채 위에 많은 콘텐츠가 쌓여 수정이 어렵고 위험한 경우.
- 예: BlockBuilder 스크립팅 언어의 매개변수 이름 버그.

###### 매개변수 이름 버그 메트릭스
- 영향: 2 / 5
- 수정 비용: 2 / 5
- 전염성: 4 / 5

#### 요약
- 기술 부채를 평가할 때는 영향, 수정 비용, 전염성을 고려해야 함.
- 전염성은 기술 부채가 퍼질 가능성을 나타내며, 이를 무시하면 큰 문제가 될 수 있음.
- 기술 부채는 로컬 부채, 맥가이버 부채, 기초 부채, 데이터 부채의 네 가지 유형으로 분류할 수 있음.

### GN⁺의 정리
- 이 글은 기술 부채의 유형과 이를 평가하는 방법을 설명함으로써 개발자들이 더 나은 결정을 내릴 수 있도록 도움을 줌.
- 기술 부채의 전염성을 강조하여, 문제를 조기에 해결하는 것이 중요함을 강조함.
- 유사한 기능을 가진 다른 프로젝트로는 _Dota 2_와 _Overwatch_가 있음.

## Comments



### Comment 29556

- Author: neo
- Created: 2024-10-01T09:50:45+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=41689332) 
- 인터페이스는 디자인에서 가장 중요한 요소 중 하나이며, 신중하게 고려해야 함
  - 아름다운 인터페이스는 시간이 주어지면 쉽게 개선할 수 있지만, 반대의 경우는 드묾

- 창업자의 부채는 빠르고 좋은 기술을 제공하기 위해 창업자들이 만든 부채임
  - 많은 국가의 창립 문서도 이 범주에 속함

- 이 글이 엔지니어링 매니저에 의해 작성된 것이 놀라움
  - 내부에서 승진한 매니저가 없고, 외부에서 채용하는 경향이 있음

- 기술 부채에 대한 분류가 논의됨
  - 관련 링크: [A Taxonomy of Technical Debt](https://news.ycombinator.com/item?id=16810092)
  - 관련 링크: [A Taxonomy of Tech Debt (2018)](https://news.ycombinator.com/item?id=39782923)

- 기술적 관점에서 훌륭한 기사임
  - "명명법"이 더 적절한 표현일 수 있음
  - 각 예시가 매우 생각을 자극함

- 기술 부채를 설명하는 데 "Contagion"을 사용함
  - 훌륭한 설명임

- 기술 부채는 미래 개발자가 비용을 지불해야 하는 코드나 데이터로 정의됨
  - 부채를 발생시킬 때 즉각적인 필요와 미래 비용을 균형 있게 고려해야 함
  - 부채에 대한 병적인 혐오감을 가지고 있음

- "로컬 부채"를 일반적인 상황에서 기술 부채로 부르지 않을 것임
  - 어딘가에 항상 혼란이 있을 것이며, 그것을 캡슐화하는 것이 일반적임

- 여러 스타트업에서 일한 경험이 있음
  - 창업자들이 아이디어와 실제 구현된 것, 그리고 작동하는 부분을 혼동하는 경우가 많음

- 단기적인 이익을 위해 기술 부채를 의도적으로 떠안는 경우가 있음
  - 이 이익도 다른 축으로 고려해야 함
