chore(wiki): reinforce knowledge batch #11-#12 (240 docs milestone)

This commit is contained in:
Antigravity Agent
2026-04-26 15:31:26 +09:00
parent c612160a13
commit b08b092ec8
71 changed files with 2075 additions and 106 deletions
+18 -16
View File
@@ -1,27 +1,29 @@
---
id: P-REINFORCE-AI-FUNCTIONAL
id: FP-001
category: "[[10_Wiki/💡 Topics/AI]]"
confidence_score: 0.98
tags: [Programming, FunctionalProgramming, Declarative, Immutability]
last_reinforced: 2026-04-20
confidence_score: 1.0
tags: [programming, functional-programming, immutability, pure-functions, software-engineering]
last_reinforced: 2026-04-26
---
# [[Functional-Programming]] (함수형 프로그래밍)
# [[Functional Programming (함수형 프로그래밍)]]
## 📌 한 줄 통찰 (The Karpathy Summary)
> "상태를 바꾸지 말고, 명확한 수식을 선언하라." 프로그램의 실행보다 데이터의 변환(Transformation)에 집중하며, 부작용(Side Effect)이 없는 순수 함수를 조합하여 복잡성을 관리하는 패러다임이다.
> "데이터의 상태 변화를 피하고, 순수 함수들의 조합으로 견고한 로직을 조립하라" — 계산을 수학적 함수의 평가로 취급하고 상태 변경 및 가변 데이터를 멀리하여, 병렬 처리에 유리하고 버그가 적은 소프트웨어를 만드는 프로그래밍 패러다임.
## 📖 구조화된 지식 (Synthesized Content)
- **Core Concepts**:
- **Pure Functions**: 동일한 입력에 언제나 동일한 출력. 외부 상태를 건드리지 않음.
- **Immutability**: 데이터는 한 번 생성되면 변하지 않음. 변경이 필요하면 복사본 생성.
- **First-class Citizens**: 함수를 변수에 담고, 인자로 전달하고, 결과로 리턴할 수 있음.
- **Declarative**: '어떻게(How)'가 아니라 '무엇(What)'을 하는지 명시함.
- **Benefits**: 테스트와 디버깅이 압도적으로 쉽고, 병렬 처리에 매우 유리하다.
- **추출된 패턴:** "어떻게(How)" 연산할지보다 "무엇(What)"인지 정의하고, 입력을 넣으면 항상 동일한 출력이 나오는 불변성(Immutability)과 참조 투명성(Referential Transparency)을 유지하는 선언적 코딩 패턴.
- **핵심 개념:**
- **Pure Functions:** 외부 상태를 참조하거나하지 않는 함수. 테스트와 디버깅이 매우 쉬움.
- **First-class Citizens:** 함수를 변수에 담고, 인자로 넘기고, 결과로 반환할 수 있음.
- **Higher-order Functions:** 함수를 파라미터로 받거나 결과로 반환하는 함수 (map, filter, reduce 등).
- **Immutability:** 한 번 생성된 데이터는 수정하지 않고 항상 새로운 데이터를 생성하여 전달.
- **의의:** 동시성(Concurrency) 문제가 발생하는 멀티코어 환경과 대규모 분산 시스템에서 데이터 일관성을 유지하는 가장 강력한 무기.
## ⚠️ 모순 및 업데이트 (RL Update)
- 순수 함수형은 현실 세계의 '상태 변화'나 'I/O'를 처리하기가 매우 까다롭다(모나드 등의 난해한 개념 필요). 따라서 현대의 개발 주류는 객체 지향의 구조적 장점과 함수형의 논리적 안정성을 결합한 **'멀티 패러다임(Multi-paradigm)'** 방식으로 정착하고 있다.
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌:** 객체지향(OOP)이 유일한 정답이던 시대를 지나, 데이터 스트림 처리와 비동기 프로그래밍이 중요해지면서 함수형 패러다임이 모든 주류 언어(JS, Java, Python 등)에 깊숙이 침투함.
- **정책 변화:** Antigravity 프로젝트는 에이전트의 사고 흐름(Chain of Thought)을 처리하는 파이프라인 설계 시, 각 단계를 순수 함수로 정의하여 재현 가능성과 안정성을 확보함.
## 🔗 지식 연결 (Graph)
- Related: [[JavaScript-Modern-Patterns]] , [[Reactive-Programming]]
- Key Concept: [[Referential-Transparency]]
- [[Determinism-in-Computing]], [[Distributed-Computing]], [[Software-Architecture-Patterns]], [[Parallel-Computing]]
- **Raw Source:** [[10_Wiki/Topics/AI/Functional-Programming.md]]