Files
2nd/10_Wiki/Topics/AI_and_ML/KISS-Principle-in-Software-Design.md
T

2.4 KiB

id, category, confidence_score, tags, last_reinforced
id category confidence_score tags last_reinforced
CS-KISS-PRINCIPLE-001 Unified 1.0
software-design
kiss-principle
simplicity
clean-code
refactoring
maintainability
2026-04-26

KISS Principle in Software Design (KISS 원칙: 단순함의 미학)

📌 한 줄 통찰 (The Karpathy Summary)

"복잡성은 시스템의 적이다. 해결책을 필요 이상으로 똑똑하게 만들려 하지 말고, 누구나 단번에 이해할 수 있는 가장 단순한 구조를 유지하여 소프트웨어의 생존력을 확보하라" — Keep It Simple, Stupid(KISS)라는 설계의 근본 철학.

📖 구조화된 지식 (Synthesized Content)

  • 추출된 패턴: "Intentional Simplicity and Reduction of Overhead" — 과도한 추상화나 불필요한 기능을 제거하고, 문제의 본질에 가장 가깝고 명확한 코드를 작성하는 패턴.
  • KISS 원칙의 실천 지침:
    • Avoid Over-engineering: 미래에 일어날지도 모르는 복잡한 시나리오를 대비해 미리 코드를 복잡하게 만들지 말 것 (YAGNI와 일맥상통).
    • Single Responsibility: 하나의 함수나 컴포넌트가 하나의 역할만 명확히 수행하게 하여 논리적 복잡도 감소.
    • Declarative Approach: 코드가 '어떻게(How)' 동작하는지보다 '무엇을(What)' 하는지 명확히 나타내어 가독성 향상.
    • Small Modules: 거대한 로직을 이해하기 쉬운 작은 단위로 쪼개어 인지적 부하(Cognitive_Load) 경감.
  • 의의: 유지보수 비용을 낮추고 버그 발생 확률을 줄이며, 새로운 팀원이 프로젝트에 빠르게 기여할 수 있는 낮은 진입 장벽 제공.

⚠️ 모순 및 업데이트 (Contradictions & RL Update)

  • 과거 데이터와의 충돌: 과거에는 자신의 기술력을 과시하기 위한 '영리하고 복잡한 코드(Clever Code)'가 선호되기도 했으나, 현대 정책은 '지속 가능한 단순성 정책'을 최우선으로 함.
  • 정책 변화: Antigravity 프로젝트는 코드 리뷰 시 '불필요한 복잡도'를 중대한 결함으로 간주하며, 시니어 개발자일수록 더 단순한 해결책을 제시할 것을 의무화하는 정책을 시행함.

🔗 지식 연결 (Graph)

  • Clean-Code-Principles, YAGNI-Principle, Software-Architecture-Patterns, Refactoring-Techniques
  • Raw Source: 00_Raw/KISS Principle.md