𝗖𝗼𝗱𝗲 𝗗𝘂𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗜𝘀 𝗖𝗵𝗲𝗮𝗽𝗲𝗿 𝗧𝗵𝗮𝗻 𝗪𝗿𝗼𝗻𝗴 𝗔𝗯𝘀𝘁𝗿𝗮𝗰𝘁𝗶𝗼𝗻𝘀

대부분의 개발자는 초기에 DRY 원칙을 배웁니다. Do Not Repeat Yourself(자신을 반복하지 마라).

이 규칙은 타당합니다. 오류를 방지하고 시간을 절약해 줍니다.

하지만 많은 개발자가 이 규칙을 너무 엄격하게 따릅니다. 모든 것을 하나의 함수나 클래스로 합치려 하죠. 이는 과잉 엔지니어링(over-engineering)으로 이어집니다.

서로 다른 두 로직을 하나의 추상화로 강제하면 문제가 발생합니다. 복잡성이 더해지고, 코드를 읽기 어렵게 만듭니다.

잘못된 추상화는 약간의 중복보다 더 큰 비용을 초래합니다.

코드를 중복시키면 로직이 정확히 어디에 있는지 알 수 있습니다. 한 부분을 변경해야 한다면, 바로 그곳을 수정하면 됩니다.

잘못된 추상화를 사용하면 그와 연결된 모든 것을 변경해야 합니다. 현재 작업과 전혀 상관없는 기능을 망가뜨릴 위험이 있습니다.

안전하게 작업하려면 다음 규칙을 따르세요:

  • 현재 맡은 작업에 맞춰 코드를 작성하세요.
  • 패턴이 세 번 나타날 때까지 기다린 후에 추상화하세요.
  • 코드 몇 줄을 아끼는 것보다 가독성을 우선시하세요.
  • 어느 정도의 중복은 건강하다는 점을 받아들이세요.

모든 코드 라인을 완벽하게 만들려고 애쓰는 것을 멈추세요. 대신 코드를 변경하기 쉽게 만드는 데 집중하세요.

출처: https://dev.to/kelvin_kariuki_20f4bec616/developer-take-on-code-duplication-is-far-cheaper-than-the-wrong-abstraction-3g0b