DRY(Don’t Repeat Yourself)는 “같은 지식을 코드 여러 곳에 중복해서 두지 말라”는 원칙이다. 하나의 사실이 여러 곳에 흩어져 있으면, 바뀔 때 전부 찾아 고쳐야 하고 그중 하나라도 빠뜨리면 버그가 된다.
여기서 말하는 중복은 코드 모양이 같은 것이 아니라 지식이 같은 것을 뜻한다. 우연히 비슷하게 생겼을 뿐 서로 다른 이유로 존재하는 코드를 억지로 합치면, 한쪽 요구사항이 바뀔 때 함께 묶인 다른 쪽까지 영향을 받아 오히려 더 나빠진다.
그래서 DRY를 성급하게 적용하는 것은 위험하다. 아직 중복이라 확신할 수 없을 때는 YAGNI를 따라 그냥 두고, 실제로 같은 지식이 반복해서 나타난 뒤에 묶는 편이 정확하다.
참고