빚 - Debt
Taegeun Moon
빚에는 좋은 빚과 나쁜 빚이 있다. 좋은 빚은 나를 더 부유하게 만들고, 나쁜 빚은 나를 더 가난하게 만든다.
- Robert Kiyosaki
빚은 미래의 자산을 앞당겨 현재에 사용하는 것이다. 앞당겨온 자산을 유의미하게 사용한다면 부가 가치를 더 일찍 생산하게 될 것이고, 무의미하게 사용한다면 미래의 자산을 소모하는것에 그칠 것이다.
개인적으로 좋은 빚과 나쁜 빚을 구분하는 기준으로 아래 두가지가 있다 생각한다.
- 빚으로 구매한 것이 어떤 가치를 주는가?
- 미래에 감당 가능한 수준인가?
때로는 현재의 자산이 충분함에도 미래의 자산을 사용하기도 한다. 미래의 자산을 씀으로써, 현재의 자산은 또 다른 가치를 만들어 내는데 쓰일 수 있기 때문이다.
당장 맥북을 구매할 현금이 충분함에도 신용카드로 (무이자)할부 구매하는 경우는 좋은 빚이라고 생각한다. 당장 지출하지 않은 현재 자산으로 적금을 하거나 주식투자를 하는게 더 이득일 수 있고, 미래에 빚을 상환하는게 감당 가능한 수준이기 때문이다.
반대로 1억을 대출해 비트코인에 투자하는것은 나쁜 빚이라 생각한다. "시세 차익"이라는 가치가 너무나 불확실하고, 최악의 경우 감당하는것이 어려울 수 있기 때문이다.
즉, 빚은 무조건적으로 나쁜것은 아니며, 잘 활용한다면 현재 자산 만으로는 만들어 낼 수 없는 가치를 추가적으로 만들어 낼 수 있다.
기술 부채
코드를 작성하다 보면 코드 퀄리티
와 개발 공수
사이를 저울질 해야 하는 경우가 생긴다. 투입 가능한 개발 공수는 한정적이기 때문에, 현실적으로 코드 퀄리티를 타협하는 경우가 많다. 이러한 코드는 빚과 비슷한 성격을 가지는 부분이 있어, 기술 부채
라 불리기도 한다.
- 미래에 비용(시간)을 지불해서 수정해야 한다
- 비용을 미래에 지불함으로서 생기는 이자가 있다 (맥락 유실, 코드 복잡도 증가)
일반적으로 기술 부채에 대해 부정적으로만 생각하는 시각이 많다. 하지만 부채를 만들지 않기 위해 현재 자산(시간)을 너무 많이 사용하면 다른 작업을 하는데 필요한 시간까지 사용해 버리거나, 불필요한 오버엔지니어링이 되기도 한다 (Hello World Enterprise Edition).
앞서 언급한 부채의 특성을 이해하고 기술 부채를 잘 관리한다면, 확보한 현재 자산으로 더 많은 일을 하는데 유의미하게 사용할 수 도 있을 것이다. (물론 과도한 기술 부채를 만들면 나중에 프로젝트가 청산 당할수 도 있다)
마치며
기술 부채를 잘 관리한다는 것은 무조건 부채를 없애는 것이 아니라, 감당 가능한 수준에서 적당이 유지하는 것이다. 코드 작성에 비용을 너무 빨리 지불하면 오버엔지니어링이 되고, 너무 늦게 지불하면 누적된 이자가 감당하기 어려운 수준이 되기 때문이다. 그리고 기술 부채를 의도적으로 잘 활용한다면, 현재 자산 만으로는 할 수 없는 많은 일들이 가능해 질 것이다.
안타깝게도 개발에 있어 이를 꽤나 어렵게 만드는 요인이 한가지 있다. 금융 부채에 있어서는 미래 자산을 끌어다 쓰는것이 명확하게 보이지만, 기술 부채에 있어서는 미래 자산을 사용하고 있다는 것이 잘 보이지 않기 때문이다. 따라서 기술 부채를 잘 관리하기 위해선, 미래 자산을 사용하고 있다는 것을 인지할 수 있는 능력을 갖추는 것이 선행되어야 한다. 이를 잘 인지할 수 있게 된다면, 다음으로는 현재 자산을 확보하기 위해 의도적으로 미래 자산을 끌어와 사용할 수 있는 능력 또한 갖출 수 있을 것이다.