๐ŸŽฒ ํ™•๋ฅ  ์ฒดํ—˜ ์นด์ง€๋…ธ - ๋ฃฐ๋ ›/์Šฌ๋กฏ/์ฃผ์‚ฌ์œ„ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ - ๋ฐ”์ด๋ธŒ์ฝ”๋”ฉ ๋ ˆ์‹œํ”ผ
์ž…๋ฌธ PHP g5se AI: Claude

๐ŸŽฒ ํ™•๋ฅ  ์ฒดํ—˜ ์นด์ง€๋…ธ - ๋ฃฐ๋ ›/์Šฌ๋กฏ/์ฃผ์‚ฌ์œ„ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ

๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ช… g5se-probability-casino
์กฐํšŒ์ˆ˜ 112 0๊ฑด ์ œ์ถœ

๋ฌธ์ œ ์„ค๋ช…

๐ŸŽฐ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

์ˆ˜ํ•™ ์‹œ๊ฐ„์— ๋ฐฐ์šด ํ™•๋ฅ ์„ ์ง์ ‘ ์ฒดํ—˜ํ•ด๋ณด๋Š” ๋ฏธ๋‹ˆ ์นด์ง€๋…ธ ๊ฒŒ์ž„ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค. ๋ฃฐ๋ ›, ์Šฌ๋กฏ๋จธ์‹ , ์ฃผ์‚ฌ์œ„ ๊ฒŒ์ž„์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฆ๊ธฐ๋ฉด์„œ ๊ฐ ๊ฒŒ์ž„์˜ ๋‹น์ฒจ ํ™•๋ฅ ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "ํ–‰์šด์˜ ์—ฌ์‹ ์ด ๋‚ด ํŽธ์ผ๊นŒ?" โ€” ์žฌ๋ฏธ์žˆ๊ฒŒ ๋†€๋ฉด์„œ ํ™•๋ฅ ์˜ ์„ธ๊ณ„๋ฅผ ํƒํ—˜ํ•˜์„ธ์š”!

โœจ ํ•ต์‹ฌ ๊ธฐ๋Šฅ

ํ•„์ˆ˜ ๊ตฌํ˜„

  • ๋ฃฐ๋ › ๊ฒŒ์ž„: 0~36๋ฒˆ ์ˆซ์žํŒ์— ๋ฐฐํŒ… ํ›„ ๊ณต ๋Œ๋ฆฌ๊ธฐ. ์ƒ‰์ƒ(๋นจ๊ฐ•/๊ฒ€์ •), ํ™€์ง, ๊ตฌ๊ฐ„ ๋ฐฐํŒ… ์ง€์›
  • ์Šฌ๋กฏ๋จธ์‹ : 3๊ฐœ ๋ฆด ํšŒ์ „ ํ›„ ์กฐํ•ฉ ํ™•์ธ. 777 ์žญํŒŸ, ๊ฐ™์€ ๊ทธ๋ฆผ 3๊ฐœ, 2๊ฐœ ์ผ์น˜ ๋“ฑ ๋“ฑ๊ธ‰๋ณ„ ๋ฐฐ๋‹น
  • ์ฃผ์‚ฌ์œ„ ๊ฒŒ์ž„: 2๊ฐœ ์ฃผ์‚ฌ์œ„ ํ•ฉ ๋งž์ถ”๊ธฐ. 7/11 ๋”๋ธ” ๋ณด๋„ˆ์Šค, ์Šค๋„ค์ดํฌ ์•„์ด์ฆˆ(1+1) ํŠน์ˆ˜ ๊ทœ์น™
  • ๊ฒŒ์ž„๋ณ„ ํ™•๋ฅ  ํ‘œ์‹œ: ๊ฐ ๋ฐฐํŒ… ์˜ต์…˜์˜ ์ด๋ก ์  ํ™•๋ฅ ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ์ •๋ณด ํŒจ๋„
  • ํ”Œ๋ ˆ์ด ๊ธฐ๋ก: ์ตœ๊ทผ 10ํšŒ ๊ฒŒ์ž„ ๊ฒฐ๊ณผ ํžˆ์Šคํ† ๋ฆฌ (๋‹น์ฒจ ์—ฌ๋ถ€, ๋ฐฐ๋‹น๋ฅ  ํฌํ•จ)
  • ์นฉ ์‹œ์Šคํ…œ: ๊ฐ€์ƒ ์นฉ 1000๊ฐœ ์ง€๊ธ‰. ๋ฐฐํŒ… ํ›„ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์นฉ ์ฆ๊ฐ. ํŒŒ์‚ฐ ์‹œ ๋ฆฌ์…‹ ๋ฒ„ํŠผ

๋ณด๋„ˆ์Šค ๊ธฐ๋Šฅ

  • ํ†ต๊ณ„ ๋Œ€์‹œ๋ณด๋“œ: ์ด ๊ฒŒ์ž„ ์ˆ˜, ์Šน๋ฅ , ์ตœ๋Œ€ ์—ฐ์Šน, ๋ˆ„์  ์ˆ˜์ต๋ฅ  ์ฐจํŠธ
  • ๋Ÿญํ‚ค ์ŠคํŠธ๋ฆญ ์•Œ๋ฆผ: 3์—ฐ์Šน ์‹œ "๐Ÿ”ฅ ํ–‰์šด์˜ ์—ฐ์†!" ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ
  • ์‚ฌ์šด๋“œ ํšจ๊ณผ: ๋ฃฐ๋ › ํšŒ์ „์Œ, ์Šฌ๋กฏ ์ •์ง€์Œ, ๋‹น์ฒจ ํŒกํŒŒ๋ ˆ (Web Audio API)
  • ๋‹คํฌ๋ชจ๋“œ ํ† ๊ธ€: modern shell ํ† ํฐ ๊ธฐ๋ฐ˜ ์ž๋™ ์ „ํ™˜

๐ŸŽฏ ํ•™์Šต ๋ชฉํ‘œ

  • g5se ํด๋” ๊ธฐ๋ฐ˜ ์ž๋™ ๋ผ์šฐํŒ… ์ฒดํ—˜ (app/modules/probability-casino/index.php โ†’ /probability-casino)
  • modern shell ํ†ตํ•ฉ์œผ๋กœ ์‚ฌ์ดํŠธ ์ผ๊ด€์„ฑ ์œ ์ง€ (nav/footer/๋‹คํฌ๋ชจ๋“œ ํ† ๊ธ€ ์ž๋™ ์ ์šฉ)
  • SQLite DB ์—†์ด ๋ธŒ๋ผ์šฐ์ € sessionStorage๋กœ ๊ฒŒ์ž„ ์ƒํƒœ ๊ด€๋ฆฌ (์ƒˆ๋กœ๊ณ ์นจ ์‹œ ์นฉ ์œ ์ง€)
  • CSS ๋ณ€์ˆ˜ ํ™œ์šฉํ•œ ๋‹คํฌ๋ชจ๋“œ ๋Œ€์‘ ๋””์ž์ธ
  • ์ˆœ์ˆ˜ JavaScript๋กœ ๋žœ๋ค ๋กœ์ง & ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ตฌํ˜„ (์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ถˆํ•„์š”)

๐Ÿš€ ๊ธฐ๋Œ€ ํšจ๊ณผ

์ž…๋ฌธ์ž๋„ AI์™€ ํ•จ๊ป˜๋ผ๋ฉด 30๋ถ„ ์•ˆ์— ์ž‘๋™ํ•˜๋Š” ๋ฏธ๋‹ˆ ์นด์ง€๋…ธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™•๋ฅ  ์ด๋ก ์„ ๊ฒŒ์ž„์œผ๋กœ ์ฒดํ—˜ํ•˜๋ฉฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์žฌ๋ฏธ๋ฅผ ๋А๊ปด๋ณด์„ธ์š”!

์ œ์•ฝ ์กฐ๊ฑด

  • โ€ข g5se ์„ค์น˜๋ณธ ์œ„์—์„œ ์ž‘์—… (https://github.com/gnuboard/g5se main ๋ธŒ๋žœ์น˜ ๊ธฐ์ค€)
  • โ€ข ํด๋” ์ž๋™ ๋ผ์šฐํŒ… ์‚ฌ์šฉ: app/modules/probability-casino/index.php โ†’ /probability-casino (๋ผ์šฐํŠธ ๋“ฑ๋ก ๋ถˆํ•„์š”)
  • โ€ข modern shell ํ•„์ˆ˜ ์ ์šฉ (_head.inc.php + m-shell + _nav.inc.php + m-container + _footer.inc.php + tail.sub.php)
  • โ€ข ๋””์ž์ธ ํ† ํฐ ์‚ฌ์šฉ (๋ฐฐ๊ฒฝ var(--m-surface), ํ…์ŠคํŠธ var(--m-text), ๊ทธ๋ฆผ์ž var(--m-shadow) ๋“ฑ) โ€” ๋‹คํฌ๋ชจ๋“œ ์ž๋™ ๋Œ€์‘
  • โ€ข DB ์‚ฌ์šฉ ๊ธˆ์ง€ โ€” ๊ฒŒ์ž„ ์ƒํƒœ๋Š” ๋ธŒ๋ผ์šฐ์ € sessionStorage๋กœ ๊ด€๋ฆฌ (์นฉ ์ž”์•ก, ํ”Œ๋ ˆ์ด ํžˆ์Šคํ† ๋ฆฌ)
  • โ€ข ์ˆœ์ˆ˜ PHP + HTML/CSS/JS๋กœ ๊ตฌํ˜„ (Laravel/Composer/React/Vue/npm ๊ธˆ์ง€)
  • โ€ข ์™ธ๋ถ€ CDN ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ๊ธˆ์ง€ โ€” ์ˆœ์ˆ˜ ๋ฐ”๋‹๋ผ JS๋กœ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ตฌํ˜„
  • โ€ข ์ถœ๋ ฅ ์ด์Šค์ผ€์ดํ”„ ํ•„์ˆ˜ (์‚ฌ์šฉ์ž ์ž…๋ ฅ ์—†์œผ๋ฏ€๋กœ ์ฃผ๋กœ ํ•˜๋“œ์ฝ”๋”ฉ๋œ ํ…์ŠคํŠธ)
  • โ€ข ๋ฃฐ๋ ›/์Šฌ๋กฏ/์ฃผ์‚ฌ์œ„ ๊ฐ๊ฐ ํƒญ ๋˜๋Š” ๋ฒ„ํŠผ์œผ๋กœ ์ „ํ™˜ ๊ฐ€๋Šฅํ•˜๊ฒŒ UI ๊ตฌ์„ฑ
  • โ€ข ํ™•๋ฅ  ๊ณ„์‚ฐ ๋กœ์ง์„ ๋ช…ํ™•ํžˆ ์ฃผ์„์œผ๋กœ ์„ค๋ช… (๊ต์œก ๋ชฉ์ )

ํ”„๋กฌํ”„ํŠธ ๋ ˆ์‹œํ”ผ

์•„๋ž˜ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ AI์—๊ฒŒ ๋ณด๋‚ด๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋ณต์‚ฌ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜์„ธ์š”.

1
Step 1
g5se๊ฐ€ ์„ค์น˜๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ(๋ฃจํŠธ์— `index.php`, `app/` ํด๋”๊ฐ€ ์žˆ๋Š” ๊ณณ)์—์„œ ์ž‘์—…์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. (g5se ์„ค์น˜๋Š” https://github.com/gnuboard/g5se ์ฐธ๊ณ )

**1๋‹จ๊ณ„: ํ”„๋กœ์ ํŠธ ํด๋” ์ƒ์„ฑ & modern shell ๊ณจ๊ฒฉ ๊ตฌ์„ฑ**

์•„๋ž˜ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”:

**ํŒŒ์ผ: `app/modules/probability-casino/index.php`**

```php
<?php
include_once('./_common.php');

// ํŽ˜์ด์ง€ ๋ฉ”ํƒ€ ์ •๋ณด
$g5['title'] = 'ํ™•๋ฅ  ์ฒดํ—˜ ์นด์ง€๋…ธ';

require_once(G5_THEME_PATH.'/modern/_head.inc.php');
include_once('./head.sub.php');
?>
<div class="m-shell">
    <?php require G5_THEME_PATH.'/modern/_nav.inc.php'; ?>
    <main class="m-container" style="padding: 32px 20px 48px;">
        <div class="casino-header" style="text-align: center; margin-bottom: 40px;">
            <h1 style="font-size: 2.5rem; font-weight: 700; margin-bottom: 12px;">๐ŸŽฒ ํ™•๋ฅ  ์ฒดํ—˜ ์นด์ง€๋…ธ</h1>
            <p style="color: var(--m-text-muted); font-size: 1.1rem;">ํ–‰์šด์˜ ์—ฌ์‹ ์ด ๋‚ด ํŽธ์ผ๊นŒ? ๋ฃฐ๋ ›ยท์Šฌ๋กฏยท์ฃผ์‚ฌ์œ„๋กœ ํ™•๋ฅ ์˜ ์„ธ๊ณ„๋ฅผ ํƒํ—˜ํ•˜์„ธ์š”!</p>
        </div>

        <!-- ์นฉ ์ž”์•ก ํ‘œ์‹œ -->
        <div class="chip-balance" style="background: var(--m-surface); padding: 20px; border-radius: var(--m-radius-lg); box-shadow: var(--m-shadow); margin-bottom: 32px; text-align: center;">
            <div style="font-size: 0.9rem; color: var(--m-text-muted); margin-bottom: 8px;">๋ณด์œ  ์นฉ</div>
            <div id="chipAmount" style="font-size: 2.5rem; font-weight: 700; color: #f59e0b;">1000</div>
            <button id="resetChips" style="margin-top: 12px; padding: 8px 20px; background: #ef4444; color: white; border: none; border-radius: 8px; cursor: pointer; font-weight: 600;">์นฉ ๋ฆฌ์…‹</button>
        </div>

        <!-- ๊ฒŒ์ž„ ํƒญ -->
        <div class="game-tabs" style="display: flex; gap: 12px; margin-bottom: 32px; justify-content: center;">
            <button class="tab-btn active" data-game="roulette" style="padding: 12px 24px; background: var(--m-surface); border: 2px solid #3b82f6; border-radius: 12px; cursor: pointer; font-weight: 600; color: var(--m-text); transition: all 0.2s;">๐ŸŽก ๋ฃฐ๋ ›</button>
            <button class="tab-btn" data-game="slot" style="padding: 12px 24px; background: var(--m-surface); border: 2px solid transparent; border-radius: 12px; cursor: pointer; font-weight: 600; color: var(--m-text); transition: all 0.2s;">๐ŸŽฐ ์Šฌ๋กฏ๋จธ์‹ </button>
            <button class="tab-btn" data-game="dice" style="padding: 12px 24px; background: var(--m-surface); border: 2px solid transparent; border-radius: 12px; cursor: pointer; font-weight: 600; color: var(--m-text); transition: all 0.2s;">๐ŸŽฒ ์ฃผ์‚ฌ์œ„</button>
        </div>

        <!-- ๊ฒŒ์ž„ ์˜์—ญ (๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ๊ตฌํ˜„) -->
        <div id="gameArea" style="background: var(--m-surface); padding: 32px; border-radius: var(--m-radius-lg); box-shadow: var(--m-shadow); min-height: 400px;">
            <p style="text-align: center; color: var(--m-text-muted);">๊ฒŒ์ž„์„ ์„ ํƒํ•˜์„ธ์š”</p>
        </div>

        <!-- ํ”Œ๋ ˆ์ด ํžˆ์Šคํ† ๋ฆฌ -->
        <div class="play-history" style="margin-top: 32px; background: var(--m-surface); padding: 24px; border-radius: var(--m-radius-lg); box-shadow: var(--m-shadow);">
            <h3 style="font-size: 1.3rem; font-weight: 700; margin-bottom: 16px;">๐Ÿ“Š ์ตœ๊ทผ ํ”Œ๋ ˆ์ด ๊ธฐ๋ก</h3>
            <div id="historyList" style="color: var(--m-text-muted);">์•„์ง ํ”Œ๋ ˆ์ดํ•œ ๊ฒŒ์ž„์ด ์—†์Šต๋‹ˆ๋‹ค</div>
        </div>
    </main>
    <?php require G5_THEME_PATH.'/modern/_footer.inc.php'; ?>
</div>

<style>
.tab-btn.active {
    border-color: #3b82f6 !important;
    background: rgba(59, 130, 246, 0.1) !important;
}
.tab-btn:hover {
    background: rgba(59, 130, 246, 0.05) !important;
}
</style>

<script>
// sessionStorage์—์„œ ์นฉ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
let chips = parseInt(sessionStorage.getItem('casinoChips')) || 1000;
document.getElementById('chipAmount').textContent = chips;

// ์นฉ ๋ฆฌ์…‹
document.getElementById('resetChips').addEventListener('click', () => {
    chips = 1000;
    sessionStorage.setItem('casinoChips', chips);
    document.getElementById('chipAmount').textContent = chips;
    alert('์นฉ์ด 1000๊ฐœ๋กœ ๋ฆฌ์…‹๋˜์—ˆ์Šต๋‹ˆ๋‹ค!');
});

// ํƒญ ์ „ํ™˜
const tabs = document.querySelectorAll('.tab-btn');
tabs.forEach(tab => {
    tab.addEventListener('click', () => {
        tabs.forEach(t => t.classList.remove('active'));
        tab.classList.add('active');
        const game = tab.dataset.game;
        loadGame(game);
    });
});

function loadGame(game) {
    const area = document.getElementById('gameArea');
    area.innerHTML = `<p style="text-align: center; color: var(--m-text-muted);">${game} ๊ฒŒ์ž„ ๋กœ๋”ฉ ์ค‘...</p>`;
    // ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ๊ฒŒ์ž„๋ณ„ UI ๊ตฌํ˜„
}

// ํžˆ์Šคํ† ๋ฆฌ ์ถ”๊ฐ€ ํ•จ์ˆ˜
function addHistory(game, result, bet, win) {
    const history = JSON.parse(sessionStorage.getItem('casinoHistory') || '[]');
    history.unshift({ game, result, bet, win, time: new Date().toLocaleTimeString() });
    if (history.length > 10) history.pop();
    sessionStorage.setItem('casinoHistory', JSON.stringify(history));
    renderHistory();
}

function renderHistory() {
    const history = JSON.parse(sessionStorage.getItem('casinoHistory') || '[]');
    const list = document.getElementById('historyList');
    if (history.length === 0) {
        list.innerHTML = '<p style="color: var(--m-text-muted);">์•„์ง ํ”Œ๋ ˆ์ดํ•œ ๊ฒŒ์ž„์ด ์—†์Šต๋‹ˆ๋‹ค</p>';
        return;
    }
    list.innerHTML = history.map(h => `
        <div style="padding: 12px; margin-bottom: 8px; background: rgba(59, 130, 246, 0.05); border-radius: 8px; display: flex; justify-content: space-between; align-items: center;">
            <span>${h.time} | ${h.game}</span>
            <span style="font-weight: 600; color: ${h.win > 0 ? '#10b981' : '#ef4444'};">${h.result} (${h.win > 0 ? '+' : ''}${h.win} ์นฉ)</span>
        </div>
    `).join('');
}

renderHistory();
</script>

<?php include_once('./tail.sub.php'); ?>
```

์ด ํŒŒ์ผ์€ `/probability-casino` URL๋กœ ์ž๋™ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค (ํด๋” ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…). modern shell๋กœ ์‚ฌ์ดํŠธ nav/footer๊ฐ€ ์ž๋™์œผ๋กœ ๋ถ™๊ณ , ์นฉ ์ž”์•ก๊ณผ ํžˆ์Šคํ† ๋ฆฌ๋Š” sessionStorage๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋Œ€ ๊ฒฐ๊ณผ: ๋ธŒ๋ผ์šฐ์ €์—์„œ `/probability-casino` ์ ‘์† ์‹œ ์นด์ง€๋…ธ ํ—ค๋”, ์นฉ ์ž”์•ก(1000), ๊ฒŒ์ž„ ํƒญ(๋ฃฐ๋ ›/์Šฌ๋กฏ/์ฃผ์‚ฌ์œ„), ๋นˆ ๊ฒŒ์ž„ ์˜์—ญ, ํžˆ์Šคํ† ๋ฆฌ ์„น์…˜์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํƒญ ํด๋ฆญ ์‹œ active ์Šคํƒ€์ผ์ด ์ „ํ™˜๋˜๋ฉฐ '๊ฒŒ์ž„ ๋กœ๋”ฉ ์ค‘...' ๋ฉ”์‹œ์ง€๊ฐ€ ๋œน๋‹ˆ๋‹ค. ์นฉ ๋ฆฌ์…‹ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ 1000์œผ๋กœ ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค. modern shell ๋•๋ถ„์— ์‚ฌ์ดํŠธ ์ „์ฒด nav/footer/๋‹คํฌ๋ชจ๋“œ ํ† ๊ธ€์ด ์ž๋™์œผ๋กœ ๋”ฐ๋ผ์˜ต๋‹ˆ๋‹ค.

2
Step 2
**2๋‹จ๊ณ„: ๋ฃฐ๋ › ๊ฒŒ์ž„ ๊ตฌํ˜„**

`app/modules/probability-casino/index.php`์˜ `loadGame()` ํ•จ์ˆ˜๋ฅผ ์•„๋ž˜์ฒ˜๋Ÿผ ์ˆ˜์ •ํ•˜๊ณ , ๋ฃฐ๋ › ๊ฒŒ์ž„ ๋กœ์ง์„ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”.

**์ˆ˜์ •ํ•  ๋ถ€๋ถ„: `<script>` ํƒœ๊ทธ ์•ˆ์˜ `loadGame()` ํ•จ์ˆ˜**

```javascript
function loadGame(game) {
    const area = document.getElementById('gameArea');
    if (game === 'roulette') {
        area.innerHTML = `
            <h2 style="text-align: center; font-size: 1.8rem; font-weight: 700; margin-bottom: 24px;">๐ŸŽก ๋ฃฐ๋ › ๊ฒŒ์ž„</h2>
            <div style="text-align: center; margin-bottom: 24px;">
                <div id="rouletteWheel" style="width: 200px; height: 200px; margin: 0 auto; border-radius: 50%; background: conic-gradient(#ef4444 0deg 180deg, #1f2937 180deg 360deg); display: flex; align-items: center; justify-content: center; font-size: 3rem; font-weight: 700; color: white; box-shadow: 0 8px 24px rgba(0,0,0,0.3); transition: transform 2s cubic-bezier(0.25, 0.1, 0.25, 1);">?</div>
            </div>
            <div style="margin-bottom: 24px;">
                <label style="display: block; margin-bottom: 8px; font-weight: 600;">๋ฐฐํŒ… ๊ธˆ์•ก</label>
                <input type="number" id="rouletteBet" value="10" min="1" max="${chips}" style="width: 100%; padding: 12px; border: 2px solid var(--m-text-muted); border-radius: 8px; background: var(--m-surface); color: var(--m-text); font-size: 1rem;">
            </div>
            <div style="margin-bottom: 24px;">
                <label style="display: block; margin-bottom: 8px; font-weight: 600;">๋ฐฐํŒ… ํƒ€์ž…</label>
                <select id="rouletteBetType" style="width: 100%; padding: 12px; border: 2px solid var(--m-text-muted); border-radius: 8px; background: var(--m-surface); color: var(--m-text); font-size: 1rem;">
                    <option value="red">๋นจ๊ฐ• (ํ™•๋ฅ  48.6%, ๋ฐฐ๋‹น 2๋ฐฐ)</option>
                    <option value="black">๊ฒ€์ • (ํ™•๋ฅ  48.6%, ๋ฐฐ๋‹น 2๋ฐฐ)</option>
                    <option value="even">์ง์ˆ˜ (ํ™•๋ฅ  48.6%, ๋ฐฐ๋‹น 2๋ฐฐ)</option>
                    <option value="odd">ํ™€์ˆ˜ (ํ™•๋ฅ  48.6%, ๋ฐฐ๋‹น 2๋ฐฐ)</option>
                    <option value="low">๋‚ฎ์€ ์ˆ˜(1-18) (ํ™•๋ฅ  48.6%, ๋ฐฐ๋‹น 2๋ฐฐ)</option>
                    <option value="high">๋†’์€ ์ˆ˜(19-36) (ํ™•๋ฅ  48.6%, ๋ฐฐ๋‹น 2๋ฐฐ)</option>
                    <option value="zero">0๋ฒˆ (ํ™•๋ฅ  2.7%, ๋ฐฐ๋‹น 35๋ฐฐ)</option>
                </select>
            </div>
            <button id="spinRoulette" style="width: 100%; padding: 16px; background: linear-gradient(135deg, #3b82f6, #8b5cf6); color: white; border: none; border-radius: 12px; font-size: 1.2rem; font-weight: 700; cursor: pointer; transition: transform 0.2s;">๐ŸŽก ๋ฃฐ๋ › ๋Œ๋ฆฌ๊ธฐ</button>
            <div id="rouletteResult" style="margin-top: 24px; padding: 16px; border-radius: 8px; text-align: center; font-weight: 600; display: none;"></div>
        `;

        document.getElementById('spinRoulette').addEventListener('click', () => {
            const bet = parseInt(document.getElementById('rouletteBet').value);
            const betType = document.getElementById('rouletteBetType').value;
            if (bet > chips) {
                alert('์นฉ์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค!');
                return;
            }
            chips -= bet;
            sessionStorage.setItem('casinoChips', chips);
            document.getElementById('chipAmount').textContent = chips;

            // ๋ฃฐ๋ › ํšŒ์ „ ์• ๋‹ˆ๋ฉ”์ด์…˜
            const wheel = document.getElementById('rouletteWheel');
            wheel.style.transform = `rotate(${Math.random() * 3600 + 720}deg)`;

            setTimeout(() => {
                // ๊ฒฐ๊ณผ ๊ณ„์‚ฐ (0~36)
                const result = Math.floor(Math.random() * 37);
                const isRed = [1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36].includes(result);
                const isEven = result > 0 && result % 2 === 0;
                const isLow = result >= 1 && result <= 18;

                let win = 0;
                let match = false;
                if (betType === 'red' && isRed) { match = true; win = bet * 2; }
                else if (betType === 'black' && !isRed && result !== 0) { match = true; win = bet * 2; }
                else if (betType === 'even' && isEven) { match = true; win = bet * 2; }
                else if (betType === 'odd' && !isEven && result !== 0) { match = true; win = bet * 2; }
                else if (betType === 'low' && isLow) { match = true; win = bet * 2; }
                else if (betType === 'high' && result >= 19) { match = true; win = bet * 2; }
                else if (betType === 'zero' && result === 0) { match = true; win = bet * 35; }

                chips += win;
                sessionStorage.setItem('casinoChips', chips);
                document.getElementById('chipAmount').textContent = chips;

                wheel.textContent = result;
                wheel.style.background = result === 0 ? '#10b981' : (isRed ? '#ef4444' : '#1f2937');
                wheel.style.transform = 'rotate(0deg)';

                const resultDiv = document.getElementById('rouletteResult');
                resultDiv.style.display = 'block';
                if (match) {
                    resultDiv.style.background = 'rgba(16, 185, 129, 0.2)';
                    resultDiv.style.color = '#10b981';
                    resultDiv.innerHTML = `๐ŸŽ‰ ๋‹น์ฒจ! ${result}๋ฒˆ | +${win - bet} ์นฉ`;
                } else {
                    resultDiv.style.background = 'rgba(239, 68, 68, 0.2)';
                    resultDiv.style.color = '#ef4444';
                    resultDiv.innerHTML = `๐Ÿ˜ข ๊ฝ! ${result}๋ฒˆ | -${bet} ์นฉ`;
                }

                addHistory('๋ฃฐ๋ ›', `${result}๋ฒˆ`, bet, win - bet);
            }, 2000);
        });
    } else if (game === 'slot') {
        area.innerHTML = '<p style="text-align: center; color: var(--m-text-muted);">์Šฌ๋กฏ๋จธ์‹  ์ค€๋น„ ์ค‘...</p>';
    } else if (game === 'dice') {
        area.innerHTML = '<p style="text-align: center; color: var(--m-text-muted);">์ฃผ์‚ฌ์œ„ ๊ฒŒ์ž„ ์ค€๋น„ ์ค‘...</p>';
    }
}

// ์ดˆ๊ธฐ ๋กœ๋“œ (๋ฃฐ๋ ›)
loadGame('roulette');
```

๋ฃฐ๋ › ํœ ์ด 2์ดˆ๊ฐ„ ํšŒ์ „ํ•˜๊ณ , 0~36 ์ค‘ ๋žœ๋ค ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. ๋ฐฐํŒ… ํƒ€์ž…์— ๋”ฐ๋ผ ๋‹น์ฒจ ์—ฌ๋ถ€์™€ ๋ฐฐ๋‹น๊ธˆ์ด ๊ณ„์‚ฐ๋˜๋ฉฐ, ์นฉ ์ž”์•ก๊ณผ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ์ž๋™ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋Œ€ ๊ฒฐ๊ณผ: ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ ๋ฃฐ๋ › ๊ฒŒ์ž„์ด ์ž๋™์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ฐฐํŒ… ๊ธˆ์•ก๊ณผ ํƒ€์ž…์„ ์„ ํƒํ•œ ํ›„ '๋ฃฐ๋ › ๋Œ๋ฆฌ๊ธฐ' ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํœ ์ด 2์ดˆ๊ฐ„ ํšŒ์ „ํ•˜๊ณ  ๊ฒฐ๊ณผ ๋ฒˆํ˜ธ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋‹น์ฒจ ์‹œ ์ดˆ๋ก์ƒ‰ ๋ฐฐ๊ฒฝ์— '๐ŸŽ‰ ๋‹น์ฒจ!' ๋ฉ”์‹œ์ง€์™€ ๋ฐฐ๋‹น๊ธˆ์ด, ๊ฝ์ผ ์‹œ ๋นจ๊ฐ„์ƒ‰ ๋ฐฐ๊ฒฝ์— '๐Ÿ˜ข ๊ฝ!' ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์นฉ ์ž”์•ก์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฆ๊ฐํ•˜๊ณ , ํžˆ์Šคํ† ๋ฆฌ์— ํ”Œ๋ ˆ์ด ๊ธฐ๋ก์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

3
Step 3
**3๋‹จ๊ณ„: ์Šฌ๋กฏ๋จธ์‹  & ์ฃผ์‚ฌ์œ„ ๊ฒŒ์ž„ ๊ตฌํ˜„**

`loadGame()` ํ•จ์ˆ˜์— ์Šฌ๋กฏ๋จธ์‹ ๊ณผ ์ฃผ์‚ฌ์œ„ ๊ฒŒ์ž„ ๋กœ์ง์„ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”.

**์ˆ˜์ •ํ•  ๋ถ€๋ถ„: `loadGame()` ํ•จ์ˆ˜์˜ `else if (game === 'slot')` ๋ฐ `else if (game === 'dice')` ๋ธ”๋ก**

```javascript
} else if (game === 'slot') {
    area.innerHTML = `
        <h2 style="text-align: center; font-size: 1.8rem; font-weight: 700; margin-bottom: 24px;">๐ŸŽฐ ์Šฌ๋กฏ๋จธ์‹ </h2>
        <div style="display: flex; gap: 16px; justify-content: center; margin-bottom: 24px;">
            <div id="reel1" style="width: 100px; height: 120px; background: linear-gradient(135deg, #f59e0b, #eab308); border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 3rem; box-shadow: var(--m-shadow); transition: transform 0.5s;">๐Ÿ’</div>
            <div id="reel2" style="width: 100px; height: 120px; background: linear-gradient(135deg, #f59e0b, #eab308); border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 3rem; box-shadow: var(--m-shadow); transition: transform 0.5s;">๐Ÿ‹</div>
            <div id="reel3" style="width: 100px; height: 120px; background: linear-gradient(135deg, #f59e0b, #eab308); border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 3rem; box-shadow: var(--m-shadow); transition: transform 0.5s;">๐ŸŠ</div>
        </div>
        <div style="margin-bottom: 24px;">
            <label style="display: block; margin-bottom: 8px; font-weight: 600;">๋ฐฐํŒ… ๊ธˆ์•ก</label>
            <input type="number" id="slotBet" value="10" min="1" max="${chips}" style="width: 100%; padding: 12px; border: 2px solid var(--m-text-muted); border-radius: 8px; background: var(--m-surface); color: var(--m-text); font-size: 1rem;">
        </div>
        <button id="spinSlot" style="width: 100%; padding: 16px; background: linear-gradient(135deg, #f59e0b, #eab308); color: white; border: none; border-radius: 12px; font-size: 1.2rem; font-weight: 700; cursor: pointer;">๐ŸŽฐ ๋ฆด ๋Œ๋ฆฌ๊ธฐ</button>
        <div id="slotResult" style="margin-top: 24px; padding: 16px; border-radius: 8px; text-align: center; font-weight: 600; display: none;"></div>
        <div style="margin-top: 16px; padding: 16px; background: rgba(59, 130, 246, 0.1); border-radius: 8px; font-size: 0.9rem; color: var(--m-text-muted);">
            <strong>๋ฐฐ๋‹นํ‘œ:</strong><br>
            ๐ŸŽฐ 777 (์žญํŒŸ): 100๋ฐฐ<br>
            ๐Ÿ’๐Ÿ’๐Ÿ’ / ๐Ÿ‹๐Ÿ‹๐Ÿ‹ / ๐ŸŠ๐ŸŠ๐ŸŠ: 20๋ฐฐ<br>
            ๊ฐ™์€ ๊ทธ๋ฆผ 2๊ฐœ: 3๋ฐฐ
        </div>
    `;

    const symbols = ['๐Ÿ’', '๐Ÿ‹', '๐ŸŠ', '๐ŸŽฐ'];
    document.getElementById('spinSlot').addEventListener('click', () => {
        const bet = parseInt(document.getElementById('slotBet').value);
        if (bet > chips) {
            alert('์นฉ์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค!');
            return;
        }
        chips -= bet;
        sessionStorage.setItem('casinoChips', chips);
        document.getElementById('chipAmount').textContent = chips;

        // ๋ฆด ์• ๋‹ˆ๋ฉ”์ด์…˜
        const reels = [document.getElementById('reel1'), document.getElementById('reel2'), document.getElementById('reel3')];
        reels.forEach((reel, i) => {
            reel.style.transform = 'translateY(-50px)';
            setTimeout(() => {
                const result = symbols[Math.floor(Math.random() * symbols.length)];
                reel.textContent = result;
                reel.style.transform = 'translateY(0)';
            }, 300 * (i + 1));
        });

        setTimeout(() => {
            const r1 = reels[0].textContent;
            const r2 = reels[1].textContent;
            const r3 = reels[2].textContent;
            let win = 0;
            let msg = '';

            if (r1 === '๐ŸŽฐ' && r2 === '๐ŸŽฐ' && r3 === '๐ŸŽฐ') {
                win = bet * 100;
                msg = '๐ŸŽ‰ ์žญํŒŸ! 777';
            } else if (r1 === r2 && r2 === r3) {
                win = bet * 20;
                msg = '๐ŸŽŠ 3๊ฐœ ์ผ์น˜!';
            } else if (r1 === r2 || r2 === r3 || r1 === r3) {
                win = bet * 3;
                msg = 'โœจ 2๊ฐœ ์ผ์น˜!';
            } else {
                msg = '๐Ÿ˜ข ๊ฝ!';
            }

            chips += win;
            sessionStorage.setItem('casinoChips', chips);
            document.getElementById('chipAmount').textContent = chips;

            const resultDiv = document.getElementById('slotResult');
            resultDiv.style.display = 'block';
            if (win > 0) {
                resultDiv.style.background = 'rgba(16, 185, 129, 0.2)';
                resultDiv.style.color = '#10b981';
                resultDiv.innerHTML = `${msg} | +${win - bet} ์นฉ`;
            } else {
                resultDiv.style.background = 'rgba(239, 68, 68, 0.2)';
                resultDiv.style.color = '#ef4444';
                resultDiv.innerHTML = `${msg} | -${bet} ์นฉ`;
            }

            addHistory('์Šฌ๋กฏ๋จธ์‹ ', `${r1}${r2}${r3}`, bet, win - bet);
        }, 1200);
    });
} else if (game === 'dice') {
    area.innerHTML = `
        <h2 style="text-align: center; font-size: 1.8rem; font-weight: 700; margin-bottom: 24px;">๐ŸŽฒ ์ฃผ์‚ฌ์œ„ ๊ฒŒ์ž„</h2>
        <div style="display: flex; gap: 16px; justify-content: center; margin-bottom: 24px;">
            <div id="dice1" style="width: 80px; height: 80px; background: white; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 2.5rem; box-shadow: var(--m-shadow); transition: transform 0.5s;">๐ŸŽฒ</div>
            <div id="dice2" style="width: 80px; height: 80px; background: white; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 2.5rem; box-shadow: var(--m-shadow); transition: transform 0.5s;">๐ŸŽฒ</div>
        </div>
        <div style="margin-bottom: 24px;">
            <label style="display: block; margin-bottom: 8px; font-weight: 600;">๋ฐฐํŒ… ๊ธˆ์•ก</label>
            <input type="number" id="diceBet" value="10" min="1" max="${chips}" style="width: 100%; padding: 12px; border: 2px solid var(--m-text-muted); border-radius: 8px; background: var(--m-surface); color: var(--m-text); font-size: 1rem;">
        </div>
        <div style="margin-bottom: 24px;">
            <label style="display: block; margin-bottom: 8px; font-weight: 600;">์˜ˆ์ธก ํ•ฉ</label>
            <input type="number" id="diceGuess" value="7" min="2" max="12" style="width: 100%; padding: 12px; border: 2px solid var(--m-text-muted); border-radius: 8px; background: var(--m-surface); color: var(--m-text); font-size: 1rem;">
        </div>
        <button id="rollDice" style="width: 100%; padding: 16px; background: linear-gradient(135deg, #10b981, #14b8a6); color: white; border: none; border-radius: 12px; font-size: 1.2rem; font-weight: 700; cursor: pointer;">๐ŸŽฒ ์ฃผ์‚ฌ์œ„ ๊ตด๋ฆฌ๊ธฐ</button>
        <div id="diceResult" style="margin-top: 24px; padding: 16px; border-radius: 8px; text-align: center; font-weight: 600; display: none;"></div>
        <div style="margin-top: 16px; padding: 16px; background: rgba(59, 130, 246, 0.1); border-radius: 8px; font-size: 0.9rem; color: var(--m-text-muted);">
            <strong>๋ฐฐ๋‹นํ‘œ:</strong><br>
            ํ•ฉ ๋งž์ถ”๊ธฐ: 5๋ฐฐ<br>
            ์Šค๋„ค์ดํฌ ์•„์ด์ฆˆ(1+1): 30๋ฐฐ<br>
            ๋”๋ธ”(๊ฐ™์€ ์ˆซ์ž 2๊ฐœ): 10๋ฐฐ
        </div>
    `;

    document.getElementById('rollDice').addEventListener('click', () => {
        const bet = parseInt(document.getElementById('diceBet').value);
        const guess = parseInt(document.getElementById('diceGuess').value);
        if (bet > chips) {
            alert('์นฉ์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค!');
            return;
        }
        chips -= bet;
        sessionStorage.setItem('casinoChips', chips);
        document.getElementById('chipAmount').textContent = chips;

        // ์ฃผ์‚ฌ์œ„ ์• ๋‹ˆ๋ฉ”์ด์…˜
        const dice1El = document.getElementById('dice1');
        const dice2El = document.getElementById('dice2');
        dice1El.style.transform = 'rotate(360deg)';
        dice2El.style.transform = 'rotate(-360deg)';

        setTimeout(() => {
            const d1 = Math.floor(Math.random() * 6) + 1;
            const d2 = Math.floor(Math.random() * 6) + 1;
            const sum = d1 + d2;
            dice1El.textContent = d1;
            dice2El.textContent = d2;
            dice1El.style.transform = 'rotate(0deg)';
            dice2El.style.transform = 'rotate(0deg)';

            let win = 0;
            let msg = '';
            if (d1 === 1 && d2 === 1) {
                win = bet * 30;
                msg = '๐Ÿ ์Šค๋„ค์ดํฌ ์•„์ด์ฆˆ!';
            } else if (d1 === d2) {
                win = bet * 10;
                msg = '๐ŸŽ‰ ๋”๋ธ”!';
            } else if (sum === guess) {
                win = bet * 5;
                msg = 'โœ… ํ•ฉ ๋งž์ถค!';
            } else {
                msg = '๐Ÿ˜ข ๊ฝ!';
            }

            chips += win;
            sessionStorage.setItem('casinoChips', chips);
            document.getElementById('chipAmount').textContent = chips;

            const resultDiv = document.getElementById('diceResult');
            resultDiv.style.display = 'block';
            if (win > 0) {
                resultDiv.style.background = 'rgba(16, 185, 129, 0.2)';
                resultDiv.style.color = '#10b981';
                resultDiv.innerHTML = `${msg} ${d1}+${d2}=${sum} | +${win - bet} ์นฉ`;
            } else {
                resultDiv.style.background = 'rgba(239, 68, 68, 0.2)';
                resultDiv.style.color = '#ef4444';
                resultDiv.innerHTML = `${msg} ${d1}+${d2}=${sum} | -${bet} ์นฉ`;
            }

            addHistory('์ฃผ์‚ฌ์œ„', `${d1}+${d2}=${sum}`, bet, win - bet);
        }, 800);
    });
}
```

์Šฌ๋กฏ๋จธ์‹ ์€ 3๊ฐœ ๋ฆด์ด ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฉˆ์ถ”๋ฉฐ ์กฐํ•ฉ์„ ํ™•์ธํ•˜๊ณ , ์ฃผ์‚ฌ์œ„๋Š” 2๊ฐœ๊ฐ€ ํšŒ์ „ํ•˜๋ฉฐ ํ•ฉ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ฒŒ์ž„์˜ ๋ฐฐ๋‹นํ‘œ๊ฐ€ ํ™”๋ฉด์— ํ‘œ์‹œ๋˜์–ด ํ™•๋ฅ ์„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Œ€ ๊ฒฐ๊ณผ: ์Šฌ๋กฏ๋จธ์‹  ํƒญ ํด๋ฆญ ์‹œ 3๊ฐœ ๋ฆด์ด ํ‘œ์‹œ๋˜๊ณ , ๋ฆด ๋Œ๋ฆฌ๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฉˆ์ถ”๋ฉฐ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. 777 ์žญํŒŸ, 3๊ฐœ ์ผ์น˜, 2๊ฐœ ์ผ์น˜์— ๋”ฐ๋ผ ๋ฐฐ๋‹น๊ธˆ์ด ์ง€๊ธ‰๋ฉ๋‹ˆ๋‹ค. ์ฃผ์‚ฌ์œ„ ํƒญ ํด๋ฆญ ์‹œ 2๊ฐœ ์ฃผ์‚ฌ์œ„์™€ ์˜ˆ์ธก ํ•ฉ ์ž…๋ ฅ๋ž€์ด ๋‚˜ํƒ€๋‚˜๊ณ , ๊ตด๋ฆฌ๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ฃผ์‚ฌ์œ„๊ฐ€ ํšŒ์ „ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์Šค๋„ค์ดํฌ ์•„์ด์ฆˆ(1+1), ๋”๋ธ”(๊ฐ™์€ ์ˆซ์ž), ํ•ฉ ๋งž์ถ”๊ธฐ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ฐฐ๋‹น์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒŒ์ž„ ๊ฒฐ๊ณผ๊ฐ€ ํžˆ์Šคํ† ๋ฆฌ์— ๋ˆ„์ ๋ฉ๋‹ˆ๋‹ค.

์ œ์ถœ๋œ ์ž‘ํ’ˆ (0)

๋กœ๊ทธ์ธ ํ›„ ์ œ์ถœ

์•„์ง ์ œ์ถœ๋œ ์ž‘ํ’ˆ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋„์ „์ž๊ฐ€ ๋˜์–ด๋ณด์„ธ์š”!

๋Œ“๊ธ€ (0)

๋กœ๊ทธ์ธ ํ›„ ๋Œ“๊ธ€์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์•„์ง ๋Œ“๊ธ€์ด ์—†์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋Œ“๊ธ€์„ ๋‚จ๊ฒจ๋ณด์„ธ์š”!