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:
@@ -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 |
|
||||
Reference in New Issue
Block a user