From d7639225f7a60e67c1937e9f9fa84c9a5fe70ad6 Mon Sep 17 00:00:00 2001 From: ByungCheol Date: Sun, 28 Jun 2026 16:38:07 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=B9=B4=EC=B9=B4=EC=98=A4=20=EC=95=A0?= =?UTF-8?q?=EB=93=9C=ED=95=8F=20=EA=B4=91=EA=B3=A0=20=E2=80=94=20=EC=9B=B9?= =?UTF-8?q?=20=EC=95=88=EB=82=B4=20=ED=95=98=EB=8B=A8=20+=20=EC=95=B1=20?= =?UTF-8?q?=ED=95=98=EB=8B=A8=EB=82=B4=EB=B9=84=20=EC=9C=84=20(=EC=9C=A0?= =?UTF-8?q?=EB=A3=8C=20=EC=A0=9C=EC=99=B8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - AdBanner 컴포넌트(애드핏 DAN-n0I5XRBOwAdSFbEX, 728x90), 유료 회원에겐 미표시 - 웹 안내 페이지 하단 배치 - 앱 셸 하단 내비 바로 위 고정 배치(본문 하단 여백 보정) Co-Authored-By: Claude Opus 4.8 --- src/App.vue | 22 +++++++++++++- src/components/AdBanner.vue | 49 ++++++++++++++++++++++++++++++++ src/components/WebOnlyNotice.vue | 9 ++++++ 3 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 src/components/AdBanner.vue diff --git a/src/App.vue b/src/App.vue index c3d7bc7..42950b5 100644 --- a/src/App.vue +++ b/src/App.vue @@ -4,6 +4,7 @@ import { RouterView, useRoute, useRouter } from 'vue-router' import AppHeader from '@/components/layout/AppHeader.vue' import AppSidebar from '@/components/layout/AppSidebar.vue' import AppBottomNav from '@/components/layout/AppBottomNav.vue' +import AdBanner from '@/components/AdBanner.vue' import LoginModal from '@/components/LoginModal.vue' import SignupModal from '@/components/SignupModal.vue' import WebOnlyNotice from '@/components/WebOnlyNotice.vue' @@ -20,6 +21,8 @@ const router = useRouter() // 로그인 또는 둘러보기(데모) 상태면 사이드바/전체 셸 표시 const authed = computed(() => auth.isAuthenticated || demo.on) +// 광고: 유료(PREMIUM) 회원에게는 표시하지 않음 +const showAds = computed(() => !auth.isPremium) function leaveDemo() { exitDemo() @@ -63,7 +66,7 @@ watch(() => route.fullPath, () => ui.closeSidebar())