Files
2nd/00_Raw/Clean Code Principles.md
T
2026-04-26 20:21:24 +09:00

3.7 KiB

Clean Code Principles

📌 Brief Summary

Clean Code 원칙은 코드를 읽기 쉽고 유지보수하기 좋게, 명확하고 단순하게 작성하는 소프트웨어 엔지니어링의 핵심 지침입니다 [1]. 프론트엔드 및 React 개발 환경에서 이 원칙들은 컴포넌트의 결합도를 낮추고 로직을 예측 가능하게 유지하여 장기적인 확장성을 확보하는 데 필수적인 역할을 합니다 [2, 3]. 대표적으로 DRY, KISS, YAGNI 원칙 등이 있으며, 이러한 원칙들을 균형 있게 적용하여 너무 이른 최적화나 불필요한 코드의 증가를 방지합니다 [4, 5].

📖 Core Content

  • Clean Code의 기본 개념: 코드는 항상 명확하고 단순하게 작성하여 가독성과 유지보수성을 높여야 합니다 [1]. React 컴포넌트를 작성할 때는 간결하고 이름을 잘 지어야 하며, 깊게 중첩된 구조를 피해야 합니다 [5]. 또한 함수의 크기는 작게 유지하고 순환 복잡도(cyclometric complexity)를 낮추며, 함수와 변수 이름은 서술적으로 명확하게 지정해야 합니다 [6].

  • DRY (Don't Repeat Yourself): 동일한 코드를 두 번 작성하지 않고 중복을 피하는 원칙입니다 [1]. React에서는 반복되는 로직을 커스텀 훅(Custom Hooks)이나 고차 컴포넌트(HOC)로 추출하여 재사용합니다 [4, 5]. 중복을 제거하면 코드를 수정해야 할 때 여러 곳을 일일이 변경할 필요 없이 한 곳에서만 수정할 수 있어 관리가 용이해집니다 [7].

  • KISS (Keep It Simple, Stupid): 복잡성보다 단순성을 최우선으로 고려해야 한다는 원칙입니다 [1]. 기능이나 컴포넌트가 너무 커지면 더 작고 이해하기 쉬운 논리적 단위로 나누어야 합니다 [7]. 너무 이른 최적화(premature optimization)를 피하고 컴포넌트 내부의 로직을 직관적이고 단순하게 유지하는 것이 좋습니다 [5].

  • YAGNI (You Aren't Gonna Need It): 실제로 필요해지기 전까지는 기능을 미리 추가하지 않는 원칙입니다 [1]. 애자일(Agile) 환경에서 특히 중요한 이 원칙은, 미래에 사용될지도 모른다는 이유로 기능을 개발하는 것을 지양합니다 [8]. 미리 만든 기능은 결국 쓰이지 않거나 변경될 가능성이 높으며, 이는 개발 시간 낭비와 유지보수해야 할 사용되지 않는 코드(dead code)의 증가로 이어집니다 [8, 9]. 따라서 컴포넌트는 오늘 당장 필요한 것만 구현하고 확장은 나중으로 미뤄야 합니다 [5].

  • DRY와 KISS의 균형 유지: 중복을 피하는 DRY 원칙은 유용하지만, 지나치게 남용하여 과도하게 추상화할 경우 코드의 복잡성이 증가하여 단순성을 추구하는 KISS 원칙을 위반할 수 있습니다 [4]. 재사용 가능한 추상화 코드가 원래의 중복 코드보다 오히려 이해하기 더 어렵다면 실패한 설계입니다 [3, 4]. 따라서 동일한 패턴이 최소 세 번 이상 반복될 때까지 기다린 후 추상화를 진행하는 것이 조기 최적화를 방지하고 디버깅하기 쉬운 코드를 유지하는 좋은 지침입니다 [4].

🔗 Knowledge Connections


Last updated: 2026-04-26