YAGNI는 단순히 코드 작성 노동을 아끼라는 규칙이 아니라, 추측에 기반한 구조를 미리 만드는 것을 경계하라는 원칙이다. AI로 코드 비용이 거의 0이 되었음에도 선택지 상실과 비용을 앞당겨 지불하는 손실이라는 두 가지 본질적 비용 때문에 여전히 미리 만들지 말아야 한다.
-
많은 사람들이 YAGNI(You Aren’t Gonna Need It)를 “지금 필요하지 않은 코드를 작성하지 말라”는 노동력 절약 규칙으로 오해한다.
-
그러나 YAGNI의 본질은 코드 작성 비용 절감이 아니라, 미래 기능 때문에 미리 설계를 구축해버리는 추측에 기반한 구조(speculative structure) 를 피하는 데 있다.
-
미리 구조를 만들면 두 가지 비용(두 장의 청구서)이 발생한다:
1. 선택지 상실(Optionality Bill)
- 예상 기능이 실제로 나타나지 않을 가능성이 높다. 잘못된 구조로 인해 우회 작업 + 제거 비용이 든다.
- 예측이 맞더라도, “올바른 구조를 나중에 만들 수 있는 선택지”를 조기에 포기하게 된다.
- 기다리는 것은 게으름이 아니라, 선택지라는 자산을 유지하는 것이다.
2. NPV(Net Present Value) 비용
- 비용을 앞당 겨 지불하고, 수익(기능)을 뒤로 미루게 된다.
- 예측이 완벽히 맞아도, 비용을 먼저 지불하는 순서 자체가 손실을 만든다.
- “나중에 개량하면 더 비싸다”는 주장도 결국 또 다른 예측일 뿐이다.
-
AI의 등장으로 코드 작성 비용이 거의 0에 가까워졌지만, YAGNI는 여전히 유효하다.
- 노동력 절약 규칙이었다면 AI로 인해 무의미해졌을 것이다.
- 하지만 선택지 상실과 비용 선지급이라는 두 손실은 그대로 남는다.
- 오히려 AI가 생성한 코드는 자신이 작성하지 않은 만큼 이해도가 낮아 상황을 악화시킬 수 있다.
-
결론: 코드가 저렴해졌다고 해서 미래 기능을 지금 만들 필요는 없다.
선택지와 자금(시간 가치)은 사용하지 않고 보관할 때 가치가 높다. 코드 작성 비용이 낮아져도 이 기본 원칙은 변하지 않는다.
참조 사이트
