3.1 KiB
3.1 KiB
DRY Principle
📌 Brief Summary
DRY는 "Don't Repeat Yourself"의 약자로, 동일한 코드를 두 번 이상 작성하지 않고 기존 코드를 재사용하여 코드 중복을 피하는 소프트웨어 엔지니어링 원칙입니다 [1, 2]. 이를 통해 코드의 가독성을 높이고, 향후 변경 사항이 발생했을 때 여러 곳을 수정할 필요 없이 단일 지점에서만 변경할 수 있도록 하여 유지보수성을 극대화합니다 [2]. React 애플리케이션에서는 주로 공통 로직을 커스텀 훅(Custom Hooks)이나 고차 컴포넌트(Higher-Order Components)로 추출하는 방식으로 적용됩니다 [3, 4].
📖 Core Content
- 개념과 장점: DRY 원칙을 따르지 않아 중복된 코드가 많아지면, 향후 코드 변경 시 여러 부분을 동시에 수정해야 하는 어려움이 따릅니다 [2]. 이 원칙을 적용하여 코드를 별도의 컴포넌트나 함수로 분리하면, 단 한 곳에서만 변경을 수행하면 되므로 코드의 반복을 줄이고 관리가 용이해집니다 [2, 5]. 특히 반복적인 로직이 많은 애플리케이션에서 매우 유용하게 쓰입니다 [4].
- React에서의 적용 방법: React 개발에서 DRY 원칙은 로직을 재사용 가능한 형태로 추출하는 것을 장려합니다. 구체적으로는 반복되는 코드를 커스텀 훅이나 고차 컴포넌트(HOC)로 분리하여 컴포넌트 간의 결합도를 낮추고 로직의 예측 가능성을 높입니다 [3, 4, 6].
- 적용 시 주의점 및 타 원칙과의 조화:
- DRY 원칙을 지나치게 맹신하면 지나치게 복잡한 추상화(overly complex abstractions)를 초래할 수 있습니다 [5].
- 재사용 가능한 추상화가 본래의 반복된 코드보다 이해하기 어려워진다면, 이는 코드를 단순하게 유지하라는 KISS (Keep It Simple, Stupid) 원칙을 위배한 것입니다 [3].
- 성급한 최적화를 피하기 위해, 코드 패턴이 세 번 이상 반복될 때까지 추상화를 보류하는 것이 일반적인 권장 지침입니다. 이렇게 함으로써 코드를 단순하고 디버깅하기 쉽게 유지할 수 있습니다 [3].
- 모듈형 아키텍처인 Feature-Sliced Design (FSD) 같은 방법론에서도 DRY 원칙과 지역적인 커스터마이징(local customization) 사이에서 적절한 균형을 유지하는 것을 핵심으로 삼고 있습니다 [7].
🔗 Knowledge Connections
- Related Topics: KISS Principle, YAGNI Principle, Clean Code, Custom Hooks
- Projects/Contexts: React Architecture, Feature-Sliced Design, Frontend Refactoring
- Contradictions/Notes: 소스에 따르면 DRY 원칙을 통해 반복을 줄일 수 있지만, 무리하게 적용할 경우 지나치게 복잡한 추상화로 이어질 수 있습니다 [5]. 이는 코드를 단순하게 유지하려는 KISS 원칙과 상충될 수 있으므로, 패턴이 세 번 이상 반복될 때 추상화를 적용하는 등 두 원칙 사이의 균형이 필요합니다 [3].
Last updated: 2026-04-26