---
id: wiki-2026-0508-support-insulated
title: Support Insulated
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Combined Arms Support, Insulated Support, Force Protection Support]
duplicate_of: none
source_trust_level: A
confidence_score: 0.85
verification_status: applied
tags: [military-strategy, combined-arms, game-balance, systems-design]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: conceptual
  framework: combined-arms
---

# Support Insulated

## 매 한 줄
> **"매 support unit 의 frontline 의 noise로부터 insulate — clean line of fire/sight 의 보장"**. 매 combined arms doctrine + game design balance 에서 등장하는 concept. 매 artillery·healer·sniper·ranger 같은 high-impact-but-fragile unit 의 enabler 의 지원 (tank, screen, terrain) 으로 protected 의 핵심 principle.

## 매 핵심

### 매 origin: combined arms
- **Frontline (DPS/Tank)**: 매 melee 충돌 의 absorb.
- **Support (insulated)**: 매 backline 에서 force multiplier 의 제공.
- **Insulation 의 mechanism**: physical screening (tank line), terrain (hill, choke), CC (crowd control), stealth.

### 매 game design 측면
- **MOBA**: ADC 가 frontline tank/initiator 의 뒤에서 DPS 의 출력 — 매 insulation 의 fail = team loss.
- **RTS**: artillery 가 infantry screen 의 뒤에서 siege — 매 insulation 의 break = 즉사.
- **MMO raid**: healer 가 tank·DPS 의 wall 뒤 — 매 add 의 healer 도달 = wipe.
- **Tactical (XCOM-like)**: sniper high-ground + overwatch — 매 flank 의 expose = death.

### 매 system design analogy
- **Microservice**: critical service (payment) 의 rate-limit·circuit-breaker 의 뒤 insulate.
- **Database**: primary 의 read replica + connection pool 의 buffer 로 insulate.
- **AI inference**: GPU 의 queue·batcher 의 spike 로부터 insulate.

### 매 응용
1. **Game balance design**: support 의 power 의 insulation requirement 의 비례 — 매 strong support → harder to keep insulated.
2. **Military logistics**: forward operating base 의 layered defense (perimeter + QRF).
3. **System architecture**: critical path service 의 bulkhead pattern.

## 💻 패턴

### 1. Bulkhead pattern (system insulation)
```python
import asyncio

class Bulkhead:
    def __init__(self, max_concurrent: int):
        self.sem = asyncio.Semaphore(max_concurrent)

    async def call(self, func, *args, **kwargs):
        async with self.sem:
            return await func(*args, **kwargs)

# critical service 의 own bulkhead — noisy neighbor 의 isolate
payment_bh = Bulkhead(max_concurrent=10)
search_bh = Bulkhead(max_concurrent=50)
```

### 2. Circuit breaker (insulation from cascading failure)
```python
import time
from enum import Enum

class State(Enum):
    CLOSED = 1
    OPEN = 2
    HALF_OPEN = 3

class CircuitBreaker:
    def __init__(self, threshold=5, timeout=30):
        self.failures = 0
        self.threshold = threshold
        self.timeout = timeout
        self.state = State.CLOSED
        self.opened_at = 0

    def call(self, func, *args):
        if self.state == State.OPEN:
            if time.time() - self.opened_at > self.timeout:
                self.state = State.HALF_OPEN
            else:
                raise RuntimeError("circuit open")
        try:
            result = func(*args)
            self.failures = 0
            self.state = State.CLOSED
            return result
        except Exception:
            self.failures += 1
            if self.failures >= self.threshold:
                self.state = State.OPEN
                self.opened_at = time.time()
            raise
```

### 3. Game support unit balance (config)
```yaml
units:
  artillery:
    damage: 200
    range: 800
    hp: 60          # fragile — needs insulation
    insulation_requirement: high
    counters: [flanker, assassin]

  tank:
    damage: 30
    range: 50
    hp: 600         # insulator
    role: screen

  healer:
    heal_per_sec: 80
    hp: 80
    insulation_requirement: critical
    line_of_sight_required: true
```

### 4. Threat model (insulation breach detection)
```python
def insulation_breach(support_unit, enemies):
    """Returns True if any enemy has clear path to support."""
    for enemy in enemies:
        path = a_star(enemy.pos, support_unit.pos, blockers=allied_tanks)
        if path and path.length < enemy.move_range + enemy.attack_range:
            return True
    return False
```

### 5. Layered defense (FOB pattern)
```
[ outer perimeter: sensors + mines ]
       |
[ middle: infantry + AT ]
       |
[ inner: command + logistics ]
       |
[ core: support assets — artillery, comm, medical ]
```

## 매 결정 기준
| 상황 | Approach |
|---|---|
| Support 의 high power | insulation requirement 의 proportional 의 raise |
| Insulation 의 break easy | support 의 buff or move backward |
| System critical path | bulkhead + circuit breaker + retry budget |
| Frontline 의 collapse | support 의 retreat option (mobility) 의 보장 |

**기본값**: support unit 의 power × fragility × insulation requirement 의 triangle 의 balance 의 유지.

## 🔗 Graph
- 부모: [[Combined Arms (제병협동) 전술|Combined-Arms]] · [[게임 밸런싱|Game-Balance]]
- 변형: [[Synergy]]
- 응용: [[Circuit-Breaker]]
- Adjacent: [[Layered-Architecture]]

## 🤖 LLM 활용
**언제**: balance 의 playtest scenario 의 generate, system architecture 의 review (insulation gap 찾기).
**언제 X**: real-time game decision (latency), military doctrine (LLM 의 specificity 의 부족).

## ❌ 안티패턴
- **Support 의 power up without insulation cost**: 매 game balance 의 break.
- **Insulation 의 single layer**: 매 one penetration → total collapse.
- **System critical path 의 bulkhead 의 부재**: 매 noisy neighbor → cascading failure.
- **Support mobility 의 무시**: 매 retreat option 의 없 = trapped.

## 🧪 검증 / 중복
- Verified (combined arms doctrine, FM 3-0, Riot Games balance philosophy, Netflix Hystrix patterns).
- 신뢰도 A-.

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — combined-arms support insulation + system bulkhead analogy |
