---
id: wiki-2026-0508-fomo-fear-of-missing-out
title: FOMO (Fear of Missing Out)
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [FOMO, Fear of Missing Out, 포모]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [game-design, monetization, psychology, behavioral]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: design
  framework: live-ops
---

# FOMO (Fear of Missing Out)

## 매 한 줄
> **"매 놓칠지 모른다는 불안이 행동을 유발한다"**. 매 FOMO는 social media + game design + monetization의 핵심 lever — limited-time event, exclusive cosmetic, battle pass의 driving force. 2026 mobile gaming revenue의 60%+가 매 FOMO mechanic 기반.

## 매 핵심

### 매 심리학 base
- **Loss aversion** (Kahneman): 매 loss는 gain보다 2x painful
- **Social comparison** (Festinger): 매 peer가 가진 것 → 매 desire
- **Scarcity heuristic**: 매 rare = valuable 의 자동 추론
- 매 FOMO는 매 evolved survival instinct (놓치면 자원 부족)의 hijack

### 매 Game Design lever
- **Time-gated content**: 매 event 7일, 매 daily login bonus
- **Limited cosmetics**: 매 "이 skin은 다시는 안 나옴" claim
- **Battle pass FOMO**: 매 시즌 끝나면 보상 영원히 lost
- **Push notification**: 매 "친구가 1위!" — direct social FOMO

### 매 응용
1. Fortnite item shop (24h rotation).
2. Genshin Impact limited banner (5-star character 일정 기간만).
3. Duolingo streak (매 끊기면 손실감).
4. Instagram/TikTok stories (24h disappearance).

## 💻 패턴

### Limited-Time Event Logic (Unity C#)
```csharp
public class LimitedEvent : MonoBehaviour
{
    public DateTime startUtc;
    public DateTime endUtc;
    public Reward exclusiveReward;

    void Update()
    {
        var now = DateTime.UtcNow;
        if (now < startUtc) ShowCountdown(startUtc - now, "starts in");
        else if (now < endUtc) ShowCountdown(endUtc - now, "ends in");
        else HideEvent();
    }

    void ShowCountdown(TimeSpan ts, string prefix)
    {
        // 매 urgency UI: red text, ticking sound
        countdownText.text = $"{prefix} {ts.Hours}h {ts.Minutes}m";
        countdownText.color = ts.TotalHours < 1 ? Color.red : Color.white;
    }
}
```

### Battle Pass Tier (TypeScript)
```typescript
interface BattlePass {
  seasonEndUtc: Date;
  tiers: Tier[];
  userXP: number;
}

function unclaimedRewards(bp: BattlePass): number {
  const currentTier = Math.floor(bp.userXP / 1000);
  return bp.tiers
    .slice(0, currentTier + 1)
    .filter(t => !t.claimed && !t.locked)
    .length;
}

// 매 push notification trigger
if (unclaimedRewards(bp) > 0 && hoursUntilEnd(bp) < 48) {
  sendPush(`${unclaimedRewards(bp)} 보상이 곧 사라집니다!`);
}
```

### Streak Reset Warning (Python)
```python
from datetime import datetime, timedelta

def check_streak_at_risk(user):
    last_active = user.last_login
    now = datetime.utcnow()
    deadline = last_active + timedelta(hours=24)
    hours_left = (deadline - now).total_seconds() / 3600
    
    if 0 < hours_left < 4 and user.streak_days >= 7:
        send_notification(
            user,
            f"매 {user.streak_days}일 연속 기록이 {int(hours_left)}시간 후 끊깁니다"
        )
```

### Gacha Pity System (showing scarcity)
```python
class GachaBanner:
    def __init__(self):
        self.pity_counter = 0
        self.featured_5star_rate = 0.006
        self.hard_pity = 90
    
    def pull(self) -> Item:
        self.pity_counter += 1
        if self.pity_counter >= self.hard_pity:
            self.pity_counter = 0
            return self.featured_5star
        if random.random() < self.featured_5star_rate:
            self.pity_counter = 0
            return self.featured_5star
        return random_lower_rarity()
    
    def banner_ends_in_days(self) -> int:
        return (self.end_date - datetime.now()).days
```

### Social FOMO Push (FCM)
```python
def notify_friend_milestone(user_id: int, friend_id: int, achievement: str):
    user = get_user(user_id)
    friend = get_user(friend_id)
    fcm.send(
        token=user.fcm_token,
        title=f"{friend.name}님이 {achievement} 달성!",
        body="매 친구를 따라잡으세요",
        data={"deeplink": f"profile/{friend_id}"}
    )
```

## 매 결정 기준
| 상황 | FOMO 강도 |
|---|---|
| Casual mobile game | Low — soft daily login bonus |
| Live-service multiplayer | Medium — battle pass, seasonal events |
| Gacha / collection RPG | High — limited banners, time-gated chars |
| Premium single-player | None — ethical: 매 player time respect |

**기본값**: 매 ethical FOMO (notify, don't manipulate). 매 dark pattern 회피 — regulatory risk (EU, Belgium loot box bans).

## 🔗 Graph
- 부모: [[Game Design]]
- 변형: [[Loss Aversion]]

## 🤖 LLM 활용
**언제**: 매 retention strategy 설계, event scheduling, push notification copy 생성.
**언제 X**: 매 vulnerable population (kids, gambling-prone) target — ethical/legal risk.

## ❌ 안티패턴
- **Predatory FOMO**: 매 minor / addiction-prone 대상 dark pattern → 매 lawsuit, regulation.
- **Notification spam**: 매 매일 5+ FOMO push → 매 uninstall.
- **Fake scarcity**: 매 "limited" 인데 매번 재출시 → 매 trust erosion.
- **No off-ramp**: 매 streak 끊고 싶을 때 vacation mode 없음.

## 🧪 검증 / 중복
- Verified (Przybylski et al., "Motivational, emotional, and behavioral correlates of fear of missing out", 2013).
- Verified (Belgium Gambling Commission loot box ruling, 2018).
- 신뢰도 A.

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — game design + monetization mechanics |
