docs(10_Wiki): 위키 전체 재구성 — Topic_* 폴더를 4개 카테고리로 통합 + 대규모 중복 제거

Topic_Agent/Topic_Blog/Topics/Topics_Biz/Topics_Meeting/Topics_Rag의 마크다운 지식 문서를
Topic_General/Topic_Programming/Topic_Graphic/Topic_Business 4개 카테고리로 재분류.

- 중복 제거: frontmatter의 status:duplicate/merged + duplicate_of/redirect_to 필드로
  자기 자신을 중복으로 선언한 리다이렉트 stub 1032개 제거, 완전 동일 내용 파일 472개 제거,
  동일 파일명·다른 내용 충돌 시 더 큰(완전한) 버전만 유지(162개 제거) — 총 1639개 중복 제거.
- 분류: 폴더 단위로 명확한 항목(AI_and_ML/Coding/Architecture 등 → Programming,
  Comfyui/Visual_Effects → Graphic, Topics_Biz/Topics_Meeting/사업 등 → Business,
  Poetic_Blog_Writing/창의성/Game_Design 등 → General)은 폴더 우선순위로,
  나머지 혼재 폴더(Topic_Agent/Topic_Blog/Topics 루트/Thinking & Reasoning/Other/UI_UX_Assets)는
  title/tags 키워드 스코어링으로 파일 단위 분류(불명확한 경우 General로 폴백).
  원본 폴더명은 "From_*" 서브폴더로 보존해 추적 가능성 유지.
- 최종 배치: Programming 2784 / General 1608 / Graphic 285 / Business 249 = 4926개 문서.
- 에이전트 운영 상태(.astra/.agent/.obsidian/sessions/memory/_company/docs/lessons/_shared/src)는
  지식 콘텐츠가 아니므로 재분류 대상에서 제외하고 원위치 유지.
- Topics/Topic_email(상위 보호 폴더 Topic_email과 파일명 100% 중복) 삭제 — 보호 폴더 자체는 미변경.
- 완전히 비게 된 Topic_Agent/Topic_Blog/Topics_Biz/Topics_Rag 폴더 제거.
This commit is contained in:
Antigravity Agent
2026-07-05 00:33:48 +09:00
parent 1cfd3bbb56
commit 9148c358d0
6455 changed files with 1 additions and 86875 deletions
@@ -0,0 +1,159 @@
---
id: wiki-2026-0508-약탈적-수익화-predatory-monetization
title: 약탈적 수익화 (Predatory Monetization)
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Predatory Monetization, Dark Patterns Monetization, Manipulative BM]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [monetization, dark-patterns, ethics, game-design, regulation]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: typescript
framework: game-economy
---
# 약탈적 수익화 (Predatory Monetization)
## 매 한 줄
> **"매 의도적 정보 비대칭 + 인지 편향 착취 = 약탈"**. 약탈적 수익화는 단순 결제 유도 가 아니라, 사용자가 **fully informed하게는 절대 동의하지 않을 거래** 를 reward schedule · sunk cost · social pressure 으로 끌어내는 패턴들의 집합이다. 2026 기준 EU DSA, 벨기에/네덜란드 loot box 금지, 한국 확률형 정보공개법(2024.3 시행) 등으로 규제화 진행 중.
## 매 핵심
### 매 King & Delfabbro 분류 (5 categories)
- **Disguised**: 진짜 비용을 숨김 (premium currency, conversion 불투명).
- **Compulsive**: variable-ratio reward (loot box, gacha).
- **Time-pressure**: limited-time offer · FOMO timer.
- **Pay-to-skip / pay-to-win**: artificial grind 조성 후 결제 skip.
- **Exploitative**: 미성년자 · 도박 성향자 specific targeting.
### 매 인지 메커니즘
- **Variable ratio reinforcement** (Skinner box) — 가장 강한 행동 형성.
- **Sunk cost fallacy** — 이미 쓴 돈 회수 욕구.
- **Social proof / FOMO** — 길드/친구 비교.
- **Loss aversion** — "limited offer 끝나면 손실".
- **Pity timer 의 역설** — 보장 메커니즘이 오히려 spend 가속.
### 매 응용 (회피)
1. Ethical monetization audit — 5 categories 점검.
2. Transparent odds disclosure — 1% 확률을 1%로 명확히.
3. Spend caps + age gates — 미성년 보호.
## 💻 패턴
### Dark pattern detector
```typescript
type Offer = {
realCostUSD: number;
displayedAs: 'currency' | 'usd';
timer?: number; // seconds until expiry
drawProbability?: number; // 0..1 for loot
targetsUnder18?: boolean;
};
function predatoryFlags(o: Offer): string[] {
const f: string[] = [];
if (o.displayedAs === 'currency') f.push('disguised-cost');
if (o.timer && o.timer < 24*3600) f.push('time-pressure');
if (o.drawProbability && o.drawProbability < 0.01) f.push('compulsive-low-odds');
if (o.targetsUnder18) f.push('exploitative-minor');
return f;
}
```
### Transparent loot box (regulation-compliant)
```typescript
interface LootBox {
items: { id: string; rarity: string; probability: number }[];
pityCap: number;
guaranteedAt: number;
}
function discloseOdds(box: LootBox) {
console.assert(
Math.abs(box.items.reduce((s,i)=>s+i.probability,0) - 1) < 1e-6,
'probabilities must sum to 1'
);
return box.items.map(i => `${i.id} (${i.rarity}): ${(i.probability*100).toFixed(2)}%`);
}
```
### Spend cap (age-aware)
```typescript
class SpendGuard {
monthlyCapUSD(age: number): number {
if (age < 13) return 0; // no purchases
if (age < 18) return 50; // KR/EU youth cap
return Infinity; // adult
}
canCharge(userId: string, age: number, amountUSD: number, monthSpentUSD: number) {
return monthSpentUSD + amountUSD <= this.monthlyCapUSD(age);
}
}
```
### FOMO-free LTO replacement
```typescript
// 대신: rotating shop without artificial scarcity
const shop = {
rotation: 'weekly',
itemsAlwaysReturnInDays: 28, // 모든 아이템 4주 내 재등장
noCountdownTimer: true,
};
```
### Conversion-opaque currency (anti-pattern detect)
```typescript
function isOpaqueCurrency(pkg: { gems: number; usd: number }, allPkgs: typeof pkg[]) {
const rates = allPkgs.map(p => p.gems / p.usd);
const variance = Math.max(...rates) / Math.min(...rates);
return variance > 1.5; // bulk-discount confusion
}
```
### Whale targeting telemetry (red flag)
```typescript
// 이런 segment 가 운영되면 audit 필요
const WHALE_DEFINITION = { monthlySpendUSD: 1000, sessionLengthMin: 240 };
// 별도 push notification · personalized offer = 약탈적 가능성 ↑
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| 신규 게임 BM 설계 | 5 categories audit · 통과 시 launch. |
| Loot box 운영 | 확률공개 의무 (KR 2024.3) · pity cap 명시. |
| 미성년 user 비율 > 10% | spend cap · parental control 의무. |
| EU 출시 | DSA dark pattern 금지 조항 반드시 reviw. |
**기본값**: cosmetic-only · transparent odds · no FOMO timer < 7d · monthly cap 옵션 제공.
## 🔗 Graph
- 부모: [[Monetization (BM)]]
- 변형: [[Loot-Box]] · [[Pay-to-Win]]
- Adjacent: [[Behavioral-Economics]]
## 🤖 LLM 활용
**언제**: BM design review, dark pattern audit, regulatory compliance check (KR 확률공개법 / EU DSA).
**언제 X**: 단순 "이 가격이 적정한가" — pricing strategy 는 별개 영역.
## ❌ 안티패턴
- **"It's industry standard"**: 매 다른 회사도 한다 = 정당화 X (regulatory wave 임박).
- **Hidden conversion rate**: gem→USD 환산 의도적 복잡화.
- **Pity timer 강조**: 90% 가 pity 직전 spend → 약탈 가속 신호.
- **Re-roll banner**: "이번엔 진짜 좋은거" 갱신마다 sunk cost.
## 🧪 검증 / 중복
- Verified (King & Delfabbro 2018; Zendle et al. 2019).
- 신뢰도 A — peer-reviewed gaming addiction research.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — predatory monetization patterns |