잘못된 추상화보다는 중복을 선호하라 (2016)
(sandimetz.com)
잘못된 추상화는 매개변수와 조건문을 복잡하게 만들어 유지보수를 어렵게 하므로, 매몰 비용의 함정에 빠지기보다 차라리 중복을 허용함으로써 코드를 단순화하고 새로운 요구사항에 유연하게 대응하는 것이 더 경제적이라는 통찰을 제시합니다.
이 글의 핵심 포인트
- 1잘못된 추상화를 유지하는 것보다 코드 중복을 허용하는 것이 비용 측면에서 훨씬 저렴함
- 2중복 제거를 위한 추상화가 새로운 요구사항과 만나 매개변수와 조건문을 추가하며 복잡해지는 패턴 발생
- 3기존 코드가 가치 있다고 믿고 유지하려는 '매몰 비용의 함정(Sunk Cost Fallacy)'이 잘못된 설계를 고착화함
- 4잘못된 추상화를 해결하는 가장 빠른 방법은 추상화된 코드를 다시 호출부로 인라인화하여 중복을 재도입하는 것임
- 5추상화를 해체함으로써 각 호출부가 필요한 최소한의 코드만 갖게 하여 새로운 추상화를 시작할 수 있는 기반을 마련함
이 글에 대한 공공지능 분석
왜 중요한가?
소프트웨어의 확장성은 코드의 유지보수 용이성에 달려 있습니다. 잘못된 추상화는 단순한 기술적 오류를 넘어, 개발 팀의 생산성을 저하시키고 제품의 피벗(Pivot)을 방해하는 치명적인 기술 부채로 작용하기 때문입니다.
어떤 배경과 맥락이 있나?
전통적인 DRY(Don't Repeat Yourself) 원칙은 코드 중복을 지양하지만, 과도한 적용은 오히려 객체 간의 결합도를 높이고 유연성을 떨어뜨리는 결과를 초래합니다. 개발자가 '완벽한 설계'를 추구하려는 욕구가 어떻게 잘못된 방향으로 흐를 수 있는지 보여줍니다.
업계에 어떤 영향을 주나?
스타트업 환경에서는 빠른 기능 출시와 요구사항 변경이 빈번합니다. 잘못된 추상화에 갇힌 코드는 새로운 기능을 추가할 때마다 기존 로직을 파괴할 위험을 높이며, 이는 결국 개발 속도의 급격한 저하로 이어집니다.
한국 시장에 어떤 시사점이 있나?
빠른 실행력을 강조하는 한국 스타트업 생태계에서, 초기 설계의 완벽함에 집착하기보다 변화하는 비즈니스 로직에 맞춰 구조를 과감히 재구성할 수 있는 '설계의 유연성'을 확보하는 문화가 필요합니다.
이 글에 대한 큐레이터 의견
이 글은 개발자들에게 '코드의 미학'보다 '변경 비용의 경제학'을 우선시하라는 강력한 메시지를 전달합니다. 창업자 관점에서 볼 때, 엔지니어들이 기존의 복잡한 구조를 유지하기 위해 매개변수를 늘려가는 현상은 단순한 코딩 스타일의 문제가 아니라, 비즈니스 민첩성을 <0xEA><0xB0><0x89>아먹는 경영 리스크입니다.
물론 극단적인 중복 허용은 코드 베이스를 비대하게 만들고 관리 포인트를 늘리는 '코드 비대화(Code Bloat)'라는 트레이드오프를 발생시킵니다. 무분별한 중복은 결국 또 다른 형태의 기술 부채가 될 수 있습니다.
따라서 핵심은 '언제 추상화를 하고, 언제 해체할 것인가'에 대한 판단력입니다. 창업자는 개발 팀이 매몰 비용의 함정에 빠져 잘못된 설계를 고수하기보다, 필요할 때 과감히 코드를 인라인화하고 구조를 재정립할 수 있는 기술적 자율성과 리팩토링 시간을 보장해 주어야 합니다.
댓글
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.