코드 중복 제거를 너무 일찍 하지 말아야 하는 이유
- DRY(Don't Repeat Yourself) 원칙을 너무 엄격하게 적용하면 "Premature" 추상화를 유발하여 미래의 변경이 더 복잡해질 수 있음
- 중복이 진짜로 불필요한지, 아니면 시간이 지나면서 독립적으로 발전할 기능인지 생각해야 함
- 함수나 클래스가 동일해 보여도 서로 다른 맥락과 비즈니스 요구사항을 가질 수 있음
- 코드를 짧게 만드는 것보다 함수의 목적이 시간이 지나도 유지되는지 생각해야 함
- 추상화의 위험: 기능이 다르게 발전할 가능성이 있는 경우, 추상화가 오히려 해로울 수 있음.
- 추상화를 설계할 때, 장기적으로 별도로 발전할 수 있는 동작을 조기에 결합하지 말아야 함
- 의심스러울 때는 시간이 지나면서 결합을 정당화하는 충분한 공통 패턴이 나타날 때까지 동작을 분리해 두어야 함
- 작은 규모에서는 Premature 추상화의 복잡성을 해결하는 것보다 중복을 관리하는 것이 더 간단할 수 있음
- 개발 초기에는 약간의 중복을 허용하고 추상화를 기다려야 함
- 미래의 요구사항은 종종 예측할 수 없음
- YAGNI(You Aren't Gonna Need It) 원칙에 대해 생각해 보아야 함
- 중복이 문제가 되지 않을 것이거나, 시간이 지나면서 충분히 고려된 추상화의 필요성을 분명히 나타낼 것임