feat: achieve 600 files milestone in AI knowledge base

This commit is contained in:
2026-04-20 19:10:32 +09:00
parent ed5140096e
commit ae1627c35b
713 changed files with 21197 additions and 1994 deletions
+20 -17
View File
@@ -1,28 +1,31 @@
---
id: P-REINFORCE-AI-CONCUR
category: "[[10_Wiki/💡 Topics/Programming & Language]]"
confidence_score: 0.98
tags: [Concurrent Programming, Multi-threading, Parallelism, Async]
id: P-REINFORCE-AUTO-COPR-001
category: "[[10_Wiki/💡 Topics/AI]]"
confidence_score: 0.95
tags: [auto-reinforced, concurrent-programming, parallel-computing, multi-threading, scalability, software-engineering]
last_reinforced: 2026-04-20
---
# [[Concurrent-Programming]] (동시성 프로그래밍)
# [[Concurrent Programming]]
## 📌 한 줄 통찰 (The Karpathy Summary)
> "함께 달리는 기술." 여러 작업이 하나의 자원을 두고 싸우지 않게 조율하며, 한 번에 많은 일을 처리하는 오케스트레이션이다.
> "멀티태스킹의 기술: 여러 작업을 동시에 수행하는 것처럼 보이게 하거나 실제로 동시에 실행함으로써, CPU 자원을 놀리지 않고 고성능 대규모 시스템을 지탱하는 현대 소프트웨어의 필수 근육."
## 📖 구조화된 지식 (Synthesized Content)
- **Concurrecy vs Parallelism**:
- **Concurrency**: 논리적으로 여러 작업이 동시에 진행되는 것(Context Switch).
- **Parallelism**: 물리적으로 여러 CPU에서 작업이 동시에 돌아가는 것.
- **Race Condition & Deadlock**:
- 자원을 두고 경쟁할 때 데이터가 꼬이거나(Race), 서로 기다리느라 멈춰버리는(Deadlock) 현상. 이를 해결하기 위해 Mutex, Semaphore, Actor model 등이 쓰인다.
- **Asynchronous I/O**:
- 네트워크 요청처럼 오래 걸리는 일을 던져두고 다음 일을 처리하다가, 완료되면 알림을 받는 방식. (JS의 Event Loop가 대표적).
병행 프로그래밍(Concurrent Programming)은 여러 개의 연산이 겹치는 기간 동안 실행되도록 설계된 프로그래밍 패러다임입니다.
## ⚠️ 모순 및 업데이트 (RL Update)
- 동시성은 '공짜'가 아니다. 스레드나 프로세스를 전환하는 오버헤드가 더 클 수도 있다. 최근에는 Coroutine(Go, Rust)이나 가상 스레드(Java) 같이 아주 가벼운 단위의 동시성 모델이 주류로 자리 잡았다.
1. **핵심 개념**:
* **Concurrency vs Parallelism**: 병행성은 작업들이 '겹치는 시간'에 진행되는 논리적 개념이고, 병렬성은 실제로 '동시에' 수행되는 물리적 개념.
* **Race Condition**: 여러 프로세스가 공유 자원에 동시에 접근할 때 결과가 예측 불가능해지는 치명적 버그.
* **Synchronization**: 데이터 무결성을 위해 임계 구역(Critical Section)을 잠그는(Lock) 등의 조정 기술.
2. **왜 중요한가?**:
* 멀티코어 CPU 시대에 하드웨어 성능을 온전히 끌어내기 위한 유일한 방법이며, 수백만 명의 동시 접속자를 처리하는 서버 아키텍처의 핵심임. (Scalability와 연결)
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌**: 과거 프로그래밍 정책은 '스레드(Thread)'를 직접 관리하며 고통받는 정책이었으나, 현대 정책은 '코루틴(Coroutine)'이나 '액터 모델(Actor Model)' 같은 고수준 추상화 정책을 통해 안전하고 쉬운 병행성 정책을 지향함(RL Update).
- **정책 변화(RL Update)**: AI 추론 정책에서, 수만 개의 연산을 병렬로 처리하는 GPU 아키텍처 환경에 최적화된 '대규모 병렬 연산 프로그래밍 정책'이 지능화의 물리적 토대가 됨.
## 🔗 지식 연결 (Graph)
- Related: [[Distributed-Systems-Engineering]] , [[B-Tree]]
- Foundation: [[Clean-Architecture-Implementation]]
- [[Scalability]], [[Backend]], [[Blocking]], [[Technical-Architecture]], [[Optimization]]
- **Modern Tech/Tools**: Go (Goroutines), Rust (Ownership model), Node.js (Event Loop), CUDA (GPU parallelism).
---