---
id: CS-KISS-PRINCIPLE-001
category: "10_Wiki/💡 Topics/AI"
confidence_score: 1.0
tags: [software-design, kiss-principle, simplicity, clean-code, refactoring, maintainability]
last_reinforced: 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
