mingle-website/ja/backgrounds.html
68893236+KINDNICK@users.noreply.github.com 5a0c6a8f70 Add: DevLog 페이지 + 블로그 빌드 시스템 + 팝업 제거 + 싸인 이미지 추가
- DevLog(블로그) 인프라: build-blog.js (MD→HTML), devlog.css, devlog.js
- DevLog 목록/포스트 페이지 4개 언어 (ko/en/ja/zh)
- 글 2편 작성 + 번역: 관성식vs광학식, 광학식 파이프라인
- 전체 네비게이션에 DevLog 탭 추가 (37+ HTML)
- 메인 팝업(요금제 변경 안내) 제거 (ko/en/ja/zh)
- i18n.js: 언어별 페이지에서 번역 JSON 항상 로드하도록 수정
- 방문자 싸인 이미지 3장 추가 (webp 변환)
- sitemap, i18n JSON, package.json 업데이트

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 03:10:04 +09:00

257 lines
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="ja"><head>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-PPTNN6WD');</script>
<!-- End Google Tag Manager -->
<!-- Google tag (gtag.js) -->
<script async="" src="https://www.googletagmanager.com/gtag/js?id=G-R0PBYHVQBS"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-R0PBYHVQBS');
</script>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>backgrounds.meta.title</title>
<!-- 파비콘 -->
<link rel="icon" type="image/x-icon" href="/images/logo/mingle-logo.ico">
<link rel="shortcut icon" href="/images/logo/mingle-logo.ico">
<!-- Theme Color -->
<meta name="theme-color" content="#ff8800">
<!-- SEO -->
<meta name="description" content="backgrounds.meta.description">
<meta name="robots" content="noindex, nofollow">
<!-- 폰트 -->
<link href="https://hangeul.pstatic.net/hangeul_static/css/nanum-square.css" rel="stylesheet">
<!-- CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" integrity="sha512-Avb2QiuDEEvB4bZJYdft2mNjVShBftLGPg8YJ04IY4YZ7C7BC9XkjsTBdQ1B8TAVxT2BOxqIRkVvNs/FNRs0w==" crossorigin="anonymous" referrerpolicy="no-referrer">
<link rel="stylesheet" href="/css/common.css?v=20260313">
<link rel="stylesheet" href="/css/backgrounds.css">
<link rel="alternate" hreflang="ko" href="https://minglestudio.co.kr/backgrounds">
<link rel="alternate" hreflang="en" href="https://minglestudio.co.kr/en/backgrounds">
<link rel="alternate" hreflang="ja" href="https://minglestudio.co.kr/ja/backgrounds">
<link rel="alternate" hreflang="zh" href="https://minglestudio.co.kr/zh/backgrounds">
<link rel="alternate" hreflang="x-default" href="https://minglestudio.co.kr/backgrounds">
</head>
<body>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PPTNN6WD"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- 헤더 -->
<div id="header-placeholder">
<!-- 공통 헤더 컴포넌트 -->
<nav class="navbar" aria-label="메인 내비게이션">
<div class="nav-container">
<div class="nav-logo">
<a href="/ja/">
<img src="/images/logo/mingle-logo.webp" alt="밍글 스튜디오 로고">
<span data-i18n="header.studioName">Mingle Studio</span>
</a>
</div>
<ul id="nav-menu" class="nav-menu">
<li><a href="/ja/about" class="nav-link" data-i18n="header.nav.about">About</a></li>
<li><a href="/ja/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
<li><a href="/ja/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
<li><a href="/ja/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
<li><a href="/devlog" class="nav-link" data-i18n="header.nav.devlog">DevLog</a></li>
<li><a href="/ja/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
<li><a href="/ja/qna" class="nav-link" data-i18n="header.nav.qna">Q&amp;A</a></li>
</ul>
<div class="nav-actions">
<div class="lang-switcher">
<button class="lang-btn" aria-label="言語選択" data-i18n-aria="header.langSelect">
<span class="lang-current">KO</span>
<svg class="lang-chevron" viewBox="0 0 10 6" width="10" height="6" aria-hidden="true">
<path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
</button>
<ul class="lang-dropdown">
<li><button data-lang="ko">🇰🇷 한국어</button></li>
<li><button data-lang="en">🇺🇸 English</button></li>
<li><button data-lang="zh">🇨🇳 中文</button></li>
<li><button data-lang="ja">🇯🇵 日本語</button></li>
</ul>
</div>
<button class="theme-toggle" id="themeToggle" aria-label="다크 모드 전환" title="다크/라이트 모드 전환">
<div class="theme-toggle-thumb">
<svg class="theme-toggle-icon theme-toggle-icon--sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
<svg class="theme-toggle-icon theme-toggle-icon--moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
</div>
</button>
</div>
<button class="hamburger" aria-label="메뉴 열기" aria-expanded="false" aria-controls="nav-menu">
<span></span>
<span></span>
<span></span>
</button>
</div>
</nav>
</div>
<!-- 메인 콘텐츠 -->
<main class="backgrounds-page">
<div class="container">
<!-- 페이지 헤더 -->
<div class="page-header">
<h1>배경 씬 라이브러리</h1>
<p class="page-description">모션캡처 라이브 방송 서비스에서 사용 가능한 배경 씬 목록입니다</p>
<div class="last-updated" id="lastUpdated"></div>
</div>
<!-- 필터 & 검색 -->
<div class="filter-section">
<div class="search-box">
<input type="text" id="searchInput" placeholder="배경 이름으로 검색..." class="search-input">
<span class="search-icon"><i class="fa-solid fa-magnifying-glass" aria-hidden="true"></i></span>
</div>
<div class="filter-tags" id="filterTags">
<button class="filter-tag active" data-tag="all">전체</button>
<!-- 태그 버튼들이 동적으로 추가됨 -->
</div>
<div class="view-options">
<button class="view-btn active" data-view="grid" title="그리드 보기">
<span></span>
</button>
<button class="view-btn" data-view="list" title="리스트 보기">
<span></span>
</button>
</div>
</div>
<!-- 통계 -->
<div class="stats-bar">
<span class="stat-item">
<strong id="totalCount">0</strong>개 배경
</span>
<span class="stat-item">
<strong id="filteredCount">0</strong>개 표시 중
</span>
</div>
<!-- 배경 그리드 -->
<div class="backgrounds-grid" id="backgroundsGrid">
<!-- 배경 카드들이 동적으로 추가됨 -->
<div class="loading-placeholder">
<div class="loading-spinner"></div>
<p>배경 데이터를 불러오는 중...</p>
</div>
</div>
<!-- 데이터 없음 메시지 -->
<div class="no-data" id="noData" style="display: none;">
<div class="no-data-icon"><i class="fa-solid fa-box-open" aria-hidden="true"></i></div>
<h3>배경 데이터가 없습니다</h3>
<p>Unity에서 배경 데이터를 업로드해 주세요.</p>
</div>
<!-- 검색 결과 없음 -->
<div class="no-results" id="noResults" style="display: none;">
<div class="no-results-icon"><i class="fa-solid fa-magnifying-glass" aria-hidden="true"></i></div>
<h3>검색 결과가 없습니다</h3>
<p>다른 검색어나 필터를 시도해 보세요.</p>
</div>
</div>
</main>
<!-- 이미지 모달 -->
<div class="image-modal" id="imageModal">
<div class="modal-overlay"></div>
<div class="modal-content">
<button class="modal-close" aria-label="닫기">×</button>
<img src="" alt="" class="modal-image" id="modalImage">
<div class="modal-info">
<h3 id="modalTitle"></h3>
<p id="modalCategory"></p>
<div class="modal-tags" id="modalTags"></div>
</div>
</div>
</div>
<!-- 푸터 -->
<div id="footer-placeholder">
<!-- 공통 푸터 컴포넌트 -->
<footer class="site-footer">
<div class="container">
<div class="footer-grid">
<div class="footer-section">
<h3 class="footer-heading" data-i18n="footer.companyInfo">会社情報</h3>
<ul class="footer-list">
<li><strong data-i18n="footer.companyName">Mingle Studio</strong></li>
<li data-i18n="footer.ceo">代表: 김희진</li>
<li data-i18n="footer.businessNumber">事業者登録番号: 208-12-73755</li>
</ul>
</div>
<div class="footer-section">
<h3 class="footer-heading" data-i18n="footer.contact">お問い合わせ</h3>
<ul class="footer-list">
<li><a href="tel:+82-10-9288-9190"><i class="fa-solid fa-phone" aria-hidden="true"></i> 010-9288-9190</a></li>
<li><a href="mailto:minglestudio@minglestudio.co.kr"><i class="fa-solid fa-briefcase" aria-hidden="true"></i> <span data-i18n="footer.businessInquiry">ビジネスお問い合わせ</span></a></li>
<li><a href="mailto:help@minglestudio.co.kr"><i class="fa-solid fa-envelope" aria-hidden="true"></i> <span data-i18n="footer.reservationInquiry">ご予約お問い合わせ</span></a></li>
</ul>
</div>
<div class="footer-section">
<h3 class="footer-heading" data-i18n="footer.directions">アクセス</h3>
<ul class="footer-list">
<li><i class="fa-solid fa-location-dot" aria-hidden="true"></i> <span data-i18n="footer.address">仁川広域市富平区主夫吐路236</span></li>
<li data-i18n="footer.addressDetail">仁川テクバレーU1センター A棟 B105号</li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p data-i18n="footer.copyright">© 2025 Mingle Studio. All rights reserved.</p>
</div>
</div>
</footer>
</div>
<!-- 백업 푸터 -->
<footer class="site-footer">
<div class="container">
<div style="color:#bbb;font-size:0.98rem;">© 2025 밍글 스튜디오. All rights reserved.</div>
</div>
</footer>
<!-- JavaScript -->
<script src="/js/common.js?v=20260313"></script>
<script src="/js/backgrounds.js"></script>
</body></html>