G7 비즈니스 광고 템플릿 - Glitter Business Ad

비즈니스 사이트 구조에 광고 설정과 사용자 동의 관리 흐름을 통합한 GnuBoard7 사용자 템플릿.

2026-08-31 (월) 00:24:35 조회 119
문의하기
G7 비즈니스 광고 템플릿 - Glitter Business Ad
PHP 8.2+ Laravel 12+ React 19 TypeScript JSON Layout Engine Tailwind CSS Vite Static Build Delivery G7 Extension Point glitter-advertising sirsoft-gdpr sirsoft-board i18n AdSense Integration CSP Nonce Consent Runtime

개요

광고 설정과 사용자 동의 관리 흐름을 통합한 그누보드7 비즈니스 사용자 템플릿.

**Glitter Business Ad (v0.1.15)**는 기업, 기관, 브랜드, 프로젝트 소개 사이트를 빠르게 구축하기 위해 제작된 GnuBoard7 기반 User Template입니다.

일반적인 비즈니스 사이트의 정보 구조를 기본으로 제공하면서,

  • 사이트 수준 광고 설정
  • 사용자 동의 상태 확인
  • 광고 실행 조건 판단
  • GnuBoard7 인증 시스템 연동
  • 관리형 페이지 연동
  • GnuBoard7 확장 시스템 연동

을 하나의 템플릿 흐름 안에서 연결할 수 있도록 설계되었습니다.

이 템플릿은 단순히 광고 영역이 포함된 디자인 스킨이 아니라,

  • 비즈니스 사이트 정보 구조
  • JSON Layout 기반 화면 구성
  • glitter-advertising 광고 설정 연동
  • glitter-gdpr 사용자 동의 연동
  • sirsoft-page 관리형 페이지 연동
  • GnuBoard7 Core 인증 계약 기반 로그인 / 회원가입
  • 광고 실행을 위한 fail-closed 구조
  • bundled 배포 및 prebuilt asset 구조

까지 함께 제공하는 GnuBoard7 비즈니스 템플릿을 목표로 합니다.


특징

비즈니스 사이트 기본 정보 구조

현재 공개 템플릿은 다음 6개 주요 페이지를 기본으로 제공합니다.

  • Home — Hero, Introduction, Services, Selected Projects, Latest News, CTA
  • About — sirsoft-page의 about 페이지를 사용하는 관리형 소개 페이지
  • Services — 서비스 개요, 작업 방식, 적용 범위
  • Projects — 프로젝트 유형, 사례 구성 방식, 평가 기준
  • News — sirsoft-board 공개 게시글 기반 최신 소식
  • Contact — sirsoft-page의 contact 페이지를 사용하는 관리형 안내 페이지

Home / Services / Projects는 템플릿이 기본 정보 구조를 제공합니다.

About / Contact는 sirsoft-page의 published public page API를 통해 사이트 관리자가 콘텐츠를 관리할 수 있습니다.

또한 /page/:slug generic route를 제공하여 개인정보처리방침과 같은 관리형 페이지를 동일한 Glitter presentation 안에서 표시할 수 있습니다.

페이지 콘텐츠 자체는 템플릿 배포물이 아니라 설치 후 사이트 관리자가 관리하는 데이터입니다.

광고 설정 통합

광고 관련 사이트 설정은 별도의 glitter-advertising 플러그인을 통해 관리합니다.

템플릿 자체에서 Publisher 설정을 임의로 소유하지 않고 다음과 같이 역할을 분리합니다.

glitter-advertising
        ↓
Advertising Configuration
        ↓
Glitter Business Ad
        ↓
Advertising Runtime

이를 통해 광고 설정과 실제 화면 배치를 분리할 수 있습니다.

사용자 동의 관리 통합

사용자 동의 상태는 독립 플러그인 glitter-gdpr의 Public Consent Runtime Contract를 통해 확인합니다.

현재 템플릿은 다음 public runtime contract를 사용합니다.

getSnapshot()
refresh()
subscribe()

광고 실행 흐름은 다음과 같은 구조를 전제로 합니다.

Advertising Configuration
        ↓
Consent State
        ↓
Production Gate
        ↓
Advertising Loader
        ↓
Ad Slot

마케팅 동의 상태나 runtime provider를 확인할 수 없는 경우 광고를 임의로 허용하지 않는 fail-closed 방향을 사용합니다.

현재 최소 요구 버전은 glitter-gdpr >=0.1.4입니다.

glitter-gdpr는 public consent banner와 selective consent UI에 필요한 스타일과 정책을 플러그인 자체에서 소유하며, 활성 사용자 템플릿의 Tailwind CSS 생성 결과나 장식용 Icon 컴포넌트에 의존하지 않고 public overlay를 제공할 수 있습니다.

광고 설정 Provider는 glitter-advertising >=1.0.1을 최소 요구 버전으로 사용합니다.

개인정보처리방침 및 관리형 페이지

Glitter Business Ad v0.1.15는 sirsoft-page >=1.1.0과 연동되는 generic managed-page route를 제공합니다.

/page/:slug

예를 들어 glitter-gdpr의 기본 개인정보처리방침 slug가 privacy인 경우 다음 URL을 사용합니다.

/page/privacy

이 경로는 sirsoft-page의 published public page API에서 해당 slug의 페이지를 가져와 Glitter Business Ad의 presentation 안에서 렌더링합니다.

관리형 HTML 콘텐츠는 sanitized rendering을 거치며, 존재하지 않거나 게시되지 않은 페이지 또는 API 오류에는 안전한 fallback 상태를 제공합니다.

개인정보처리방침을 포함한 실제 페이지 내용은 템플릿에 고정하지 않으며 사이트 관리자가 sirsoft-page에서 작성하고 관리합니다.

GnuBoard7 인증 연동

GnuBoard7 Core의 기존 authentication API 및 action contract를 사용하여 로그인과 회원가입 UI를 제공합니다.

/login
/register

Guest 상태에서는 로그인 / 회원가입 navigation을 제공하고, 인증된 사용자는 사용자 identity를 표시하는 Account Menu를 사용할 수 있습니다.

Account Menu는 다음 원칙을 따릅니다.

  • nickname → name → localized Account 순으로 표시
  • 관리자에게만 Admin 링크 표시
  • GnuBoard7 Core logout action 사용
  • keyboard navigation 지원
  • outside-click 닫기 지원
  • 별도의 인증 시스템을 구현하지 않음

AdSense 실행 구조

템플릿에는 실제 광고 슬롯과 SDK loader를 구성할 수 있는 AdSense 연동 구조가 포함되어 있습니다.

다만 Production AdSense는 기본적으로 비활성화되어 있습니다.

따라서 템플릿을 설치하거나 활성화하는 것만으로 Google AdSense SDK 요청이나 실제 광고 노출이 시작되지는 않습니다.

다음 세 상태는 서로 다른 조건입니다.

Marketing Consent Granted
        ≠
AdSense SDK Loaded
        ≠
Production Serving Enabled

실제 운영 광고를 사용하려면 별도의 광고 Provider 설정과 Publisher 정보, 동의 정책 및 운영 환경 검토가 필요합니다.

GnuBoard7 JSON Layout Engine 기반

  • JSON 선언형 UI
  • React 기반 렌더링
  • partial 기반 화면 구성
  • 동적 데이터 바인딩
  • i18n 기반 다국어 대응
  • G7 표준 template lifecycle
  • extension point 기반 확장 구조

고정 사용자 노출 문장은 Layout에 직접 작성하지 않고 translation key를 사용합니다.

Global Overlay 확장 구조

템플릿에는 GnuBoard7 확장 기능이 전역 UI를 제공할 수 있도록 user_global_overlay extension point가 포함되어 있습니다.

이를 통해 템플릿이 특정 consent UI를 직접 소유하지 않고도 활성 플러그인이 배너나 전역 overlay를 제공할 수 있습니다.

현재 glitter-gdpr의 public consent overlay도 이 구조를 통해 템플릿과 정책 책임을 분리합니다.

반응형 공개 템플릿

  • 모바일 / 태블릿 / 데스크톱 대응
  • 공개 비즈니스 사이트용 Header / Footer
  • 반응형 Navigation
  • 인증 상태 기반 Header UI
  • Home 중심 Landing 구조
  • About / Services / Projects / News / Contact 정보 구조
  • generic managed-page presentation
  • Korean / English 다국어 지원

News 연동

News 영역은 sirsoft-board의 guest-safe 최근 게시글 API를 사용합니다.

  • Home — 최근 게시글 최대 3개 표시
  • News — 최근 게시글 목록 표시
  • 비회원이 읽을 수 있는 게시글만 사용
  • 게시글이 없으면 localized empty state 표시
  • API 요청 실패 시 빈 배열 기반 fallback 유지

특정 게시판 레코드는 템플릿 설치 dependency가 아닙니다.

현재 별도의 게시글 상세 presentation layer는 포함하지 않습니다.

데이터 및 콘텐츠 분리 구조

템플릿이 직접 제공하는 화면과 사이트 관리자가 관리하는 콘텐츠의 책임을 분리합니다.

  • Home / Services / Projects — 템플릿 중심 reference structure
  • About / Contact — sirsoft-page published content
  • /page/:slug — generic sirsoft-page managed content
  • News — sirsoft-board 공개 데이터
  • API 실패 시 fallback 렌더링
  • optional field 누락 대응
  • 빈 데이터 상태 지원
  • host-specific 데이터에 대한 의존 최소화
  • guest-safe 공개 렌더링

Prebuilt Runtime Assets

Release package에는 일반 설치 환경에서 바로 사용할 수 있도록 다음 runtime asset이 포함됩니다.

dist/css/components.css
dist/js/components.iife.js

따라서 일반 GnuBoard7 설치 서버에서는 Node/npm이나 frontend build 환경이 필요하지 않습니다.


권장 사용 대상

  • 기업 홈페이지
  • 기관 및 조직 소개 사이트
  • 브랜드 사이트
  • 프로젝트 소개 사이트
  • 서비스 소개 사이트
  • 광고 기반 콘텐츠 사이트
  • 사용자 동의 기반 광고 운영 사이트
  • 관리형 정보 / 정책 페이지가 필요한 사이트
  • GnuBoard7 비즈니스 템플릿 개발 참고 프로젝트

기술 기반

영역 구성
Platform GnuBoard7
Backend Laravel 12
Frontend React 19
Rendering JSON Layout Engine
Styling Tailwind CSS
Build Vite
Runtime Static Build Delivery
Board sirsoft-board
Managed Pages sirsoft-page
Advertising Config glitter-advertising
Consent Provider glitter-gdpr
Authentication GnuBoard7 Core Auth Contract

개발 원칙

  • Bundled Source 기반 개발
  • G7 Core 수정 없이 동작
  • JSON Layout 중심 구조
  • i18n 우선 설계
  • 광고 설정과 광고 실행 책임 분리
  • 사용자 동의 정책과 템플릿 책임 분리
  • 관리형 콘텐츠와 템플릿 presentation 책임 분리
  • G7 Core 인증 계약 재사용
  • Fail-closed 광고 실행
  • GnuBoard7 lifecycle 준수
  • Extension Point 기반 확장
  • prebuilt dist 포함 배포 구조 유지
  • host credential 및 환경 비밀정보 미포함

현재 상태

Initial Public Release

현재 버전:

v0.1.15

현재 기준:

  • 공개 비즈니스 사이트 주요 정보 구조 제공
  • bundled 배포 가능 구조 확보
  • 반응형 UI 구성
  • Korean / English 다국어 지원
  • sirsoft-board >=1.1.0 기반 News 연동
  • sirsoft-page >=1.1.0 기반 관리형 페이지 연동
  • /about / /contact published page 연동
  • generic /page/:slug managed-page route 제공
  • /page/privacy 개인정보처리방침 presentation 지원
  • GnuBoard7 Core 계약 기반 로그인 / 회원가입 UI
  • 인증 상태 기반 Header 및 Account Menu 제공
  • glitter-advertising >=1.0.1 기반 광고 설정 Provider 연동
  • glitter-gdpr >=0.1.4 Public Consent Runtime 연동
  • Global Overlay extension point 제공
  • prebuilt runtime asset 포함
  • Production AdSense 기본 비활성화

현재 알려진 제한 사항:

  • 자동화된 browser E2E는 일부 실행 환경의 browser system dependency 제약을 받을 수 있음
  • 별도의 clean third-party G7 host 최초 설치 검증 미완료
  • 관리자 ZIP Upload 전체 browser E2E 검증 미완료
  • 게시판 상세 presentation layer 미포함

의존성 필수 확장

Glitter Business Ad는 다음 GnuBoard7 확장을 필요로 합니다.

게시판 모듈

sirsoft-board >=1.1.0

News와 공개 게시글 데이터 연동을 제공합니다.

페이지 모듈

sirsoft-page >=1.1.0

About, Contact 및 /page/:slug 형태의 관리형 페이지 데이터를 제공합니다.

페이지의 실제 콘텐츠는 설치 후 사이트 관리자가 작성하고 게시합니다.

광고 설정 플러그인

glitter-advertising >=1.0.1

사이트 수준 Advertising Configuration과 Provider Contract를 제공합니다.

GitHub:

https://github.com/glitter-node/glitter-advertising

사용자 동의 관리 플러그인

glitter-gdpr >=0.1.4

Consent UX, Policy 및 Public Consent Runtime Contract를 제공합니다.

glitter-gdpr는 기존 맞춤 GDPR 구현에서 독립 플러그인으로 분리되어 Glitter.kr에서 별도로 유지보수합니다.

GitHub:

https://github.com/glitter-node/glitter-gdpr

GnuBoard7

>= 7.0.9

권장 설치 순서는 다음과 같습니다.

sirsoft-board
      ↓
sirsoft-page
      ↓
glitter-advertising
      ↓
glitter-gdpr
      ↓
Glitter Business Ad

필수 dependency가 설치되고 활성화된 정상 G7 lifecycle을 통해 템플릿을 설치하는 것을 권장합니다.


관리자 페이지에서 설치

1. 필수 확장 설치

먼저 필요한 모듈과 플러그인을 설치하고 활성화합니다.

sirsoft-board

GnuBoard7에서 제공되는 sirsoft-board >=1.1.0이 설치 및 활성화되어 있어야 합니다.

sirsoft-page

GnuBoard7에서 제공되는 sirsoft-page >=1.1.0이 설치 및 활성화되어 있어야 합니다.

glitter-advertising

관리자 → 플러그인 관리 → 수동 설치 → GitHub

https://github.com/glitter-node/glitter-advertising

최소 요구 버전은 >=1.0.1입니다.

glitter-gdpr

관리자 → 플러그인 관리 → 수동 설치 → GitHub

https://github.com/glitter-node/glitter-gdpr

최소 요구 버전은 >=0.1.4입니다.

glitter-gdpr와 기존 sirsoft-gdpr은 서로 다른 플러그인 identifier를 사용하는 독립 확장입니다.

동일 사이트에서 두 consent enforcement 플러그인을 동시에 활성화하여 중복 enforcement가 발생하지 않도록 실제 활성 플러그인 상태를 확인하는 것을 권장합니다.

2. Glitter Business Ad 설치

관리자 → 템플릿 관리 → 수동 설치 → GitHub

아래 저장소 URL을 입력합니다.

https://github.com/glitter-node/glitter-business_advertising

설치 완료 후 Glitter Business Ad 템플릿을 활성화합니다.

3. ZIP 패키지 설치

각각의 모듈과 플러그인, 템플릿 Release ZIP 패키지를 다운로드한 후,

관리자 → 모듈/플러그인/템플릿 관리 → 수동 설치 → 파일 업로드

경로를 통해 설치할 수도 있습니다.

Release archive는 다음과 같은 single wrapper root 구조를 사용합니다.

glitter-business_advertising/
  template.json
  layouts/
  lang/
  dist/
  ...

4. CLI 활성화

필요한 경우 다음 명령으로 활성화할 수 있습니다.

php artisan template:activate glitter-business_advertising

일반적인 GnuBoard7 환경에서는 해당 설치 환경의 PHP CLI 경로에 맞게 실행하면 됩니다.

5. 설치 후 캐시 관련 문제가 발생하는 경우

템플릿 업데이트 후 public template config가 이전 버전을 반환하는 cache stale 현상이 일부 G7 환경에서 관찰된 바 있습니다.

이 경우 관리자 캐시 삭제 또는 해당 G7 환경의 template cache 상태를 확인하십시오.


광고 사용 시 주의

Glitter Business Ad는 설치 즉시 광고를 노출하는 AdSense 스킨이 아닙니다.

각 계층의 역할은 다음과 같습니다.

glitter-advertising
    Advertising Configuration

glitter-gdpr
    Consent Management

Glitter Business Ad
    Placement / Integration

GnuBoard7 Host
    Security / Runtime Environment

실제 광고를 운영하려면 다음 항목을 별도로 검토해야 합니다.

  • 광고 Provider 활성화
  • 올바른 Publisher 정보
  • 사용자 Marketing Consent
  • 사이트 개인정보 보호 정책
  • CSP 및 외부 Script 정책
  • 실제 운영 환경에서의 광고 Network 검증

Production AdSense는 기본값으로 비활성화되어 있습니다.


실 운영 AdSense 설정

Glitter Business Ad는 안전한 초기 배포를 위해 Production AdSense를 기본적으로 비활성화합니다.

G7 관리자에서 AdSense를 활성화하고 올바른 Publisher Client ID를 설정하더라도 Google AdSense SDK가 바로 로드되지는 않습니다.

실제 광고가 실행되려면 다음 조건을 모두 충족해야 합니다.

glitter-advertising 설정
        ↓
AdSense Enabled = true
        ↓
유효한 Publisher Client ID
        ↓
Production AdSense Gate = enabled
        ↓
glitter-gdpr
        ↓
Marketing Consent = granted
        ↓
AdSense SDK Loader
        ↓
AdSenseSlot 초기화

광고 설정, 사용자 동의, Production SDK 실행 허용은 서로 다른 상태로 관리합니다.

Marketing Consent Granted
        ≠
AdSense SDK Loaded
        ≠
Production Serving Enabled

1. Google AdSense 준비

먼저 실제 운영할 사이트가 Google AdSense에서 광고를 제공할 수 있는 상태인지 확인하고 Publisher Client ID와 광고 단위 정보를 준비합니다.

Publisher Client ID는 다음 형식입니다.

ca-pub-0000000000000000

Glitter Business Ad 배포 패키지에는 실제 Publisher Client ID나 사이트별 Ad Unit ID가 포함되어 있지 않습니다.

각 사이트 운영자가 자신의 AdSense 계정에서 발급받은 값을 사용해야 합니다.

2. glitter-advertising 설정

G7 관리자에서 플러그인 관리 → Glitter 광고 설정 → 설정으로 이동합니다.

다음 값을 구성합니다.

AdSense 사용
    활성화

AdSense 게시자 클라이언트 ID
    ca-pub-xxxxxxxxxxxxxxxx

AdSense 게시자 클라이언트 ID는 ca-pub- 뒤에 16자리 숫자가 오는 형식이어야 합니다.

이 단계는 사이트 수준의 광고 설정을 활성화하는 과정입니다.

설정을 활성화하더라도 Production AdSense SDK가 자동으로 실행되지는 않습니다.

glitter-advertising은 Advertising Contract v1을 통해 이 설정을 광고를 사용하는 템플릿이나 모듈에 제공합니다.

3. Production AdSense Gate 활성화

Glitter Business Ad v0.1.15는 배포 안전성을 위해 Production AdSense Gate를 source에서 기본적으로 닫아 두고 있습니다.

실제 파일은 다음과 같습니다.

templates/_bundled/glitter-business_advertising/src/adsense/configuration.ts

Release 기본값:

export const ADSENSE_PRODUCTION_ENABLED = false;

실 운영 AdSense를 사용하려는 배포자는 실제 운영 환경과 정책을 확인한 후 이 값을 명시적으로 변경합니다.

export const ADSENSE_PRODUCTION_ENABLED = true;

이 값은 사이트 관리자용 광고 설정과 의도적으로 분리된 compile-time 안전장치입니다.

각 구성요소의 책임은 다음과 같습니다.

glitter-advertising
    사이트 광고 설정

ADSENSE_PRODUCTION_ENABLED
    템플릿의 Production SDK 실행 허용

glitter-gdpr
    현재 방문자의 Marketing Consent

AdSenseSlot
    실제 광고 위치

따라서 관리자 화면에서 AdSense를 활성화하는 것만으로 Production SDK가 실행되지는 않습니다.

주의

Production Gate를 활성화하는 것만으로 광고 운영 준비가 완료되는 것은 아닙니다.

실제 사이트의 개인정보처리방침, 사용자 동의 정책, CSP 및 외부 script 정책, Google AdSense 사이트 상태를 먼저 확인해야 합니다.

4. Frontend Production Build 및 템플릿 반영

Production Gate를 변경하면 bundled template source에서 frontend asset을 다시 빌드해야 합니다.

프로젝트 경로:

cd /volume1/Gnuboard/7/GlitterBusinessAd/templates/_bundled/glitter-business_advertising

검증 및 빌드:

npm run type-check
npm run test:run
npm run build

빌드 결과는 다음 위치에 생성됩니다.

dist/css/components.css
dist/js/components.iife.js

이후 프로젝트 루트에서 G7 production build와 template lifecycle을 적용합니다.

cd /volume1/Gnuboard/7/GlitterBusinessAd

/usr/local/bin/php83 artisan template:build glitter-business_advertising --production
/usr/local/bin/php83 artisan template:update glitter-business_advertising --source=bundled --force
/usr/local/bin/php83 artisan template:cache-clear glitter-business_advertising

활성 상태와 asset route는 다음과 같이 확인할 수 있습니다.

/usr/local/bin/php83 artisan template:list --hidden
/usr/local/bin/php83 artisan route:list --path=api/templates/assets

bundled source와 실제 활성 템플릿의 JavaScript asset이 같은지도 확인할 수 있습니다.

sha256sum \
  templates/_bundled/glitter-business_advertising/dist/js/components.iife.js \
  templates/glitter-business_advertising/dist/js/components.iife.js

두 SHA-256 값이 같으면 빌드된 bundled asset이 활성 템플릿에 동일하게 반영된 상태입니다.

실제 JavaScript asset은 다음 API를 통해 제공됩니다.

/api/templates/assets/glitter-business_advertising/js/components.iife.js

활성 템플릿 디렉터리는 배포 결과이므로 직접 수정하지 않습니다. 변경은 항상 templates/_bundled/glitter-business_advertising/에서 시작하고 G7 template lifecycle을 통해 반영합니다.

5. AdSense Slot 설정

실제 광고 위치에는 Google AdSense에서 발급받은 Ad Unit ID가 필요합니다.

AdSenseSlot은 다음 광고 단위 정보를 사용합니다.

slotId
format
fullWidthResponsive

slotId에는 자신의 Google AdSense 광고 단위 ID를 사용합니다.

실제 운영 Ad Unit ID를 템플릿 배포 패키지의 기본값으로 포함하지 않는 것을 권장합니다.

6. Marketing Consent 확인

광고 설정과 Production Gate가 모두 활성화되어 있어도 glitter-gdpr에서 현재 방문자의 Marketing Consent가 확인되지 않으면 AdSense SDK를 로드하지 않습니다.

Production AdSense의 실행 조건은 다음과 같습니다.

AdSense Enabled = true
        +
Production Gate = enabled
        +
Marketing Consent = granted
        +
Publisher Client ID = valid
        +
AdSenseSlot = mounted
        ↓
AdSense SDK Loading

다음 상태에서는 광고를 로드하지 않습니다.

Consent = unknown
→ 광고 로드하지 않음

Marketing = false
→ 광고 로드하지 않음

Consent Renewal Required
→ 광고 로드하지 않음

Consent Provider Error
→ 광고 로드하지 않음

동의 상태를 확인할 수 없거나 광고 설정이 유효하지 않은 경우 이를 임의로 허용 상태로 간주하지 않습니다.

7. 개인정보처리방침 확인

실 운영 전에 /page/privacy에 해당 사이트의 개인정보처리방침이 게시되어 있는지 확인합니다.

/page/privacy

개인정보처리방침 내용은 Glitter Business Ad 배포 패키지에 고정되어 있지 않습니다.

사이트 운영자가 sirsoft-page 등을 통해 실제 서비스에서 사용하는 광고·분석 도구와 개인정보 처리 방식에 맞게 작성하고 게시해야 합니다.

8. CSP 및 외부 Script 정책 확인

Google AdSense는 외부 script와 network resource를 사용하므로 실제 G7 host의 CSP 및 보안 정책과 충돌하지 않는지 확인해야 합니다.

Glitter Business Ad와 glitter-advertising은 사이트 전체의 CSP 정책을 임의로 변경하지 않습니다.

CSP와 외부 script 허용 정책은 G7 Core 또는 실제 운영 host에서 관리합니다.

현재 G7에서는 strict CSP 환경에서 확장 기능이 공통으로 사용할 수 있는 request-scoped CSP nonce 전달 경로가 공식화되어 있지 않습니다. 관련 개선 사항은 GnuBoard7의 다음 이슈에서 논의되고 있습니다.

G7 측 답변에 따르면 CSP nonce 지원은 장기 과제로 검토되고 있으며, 그 전까지 strict CSP 환경에서는 웹서버의 script-src 허용목록과 G7의 trusted_script_hosts를 이용해 외부 SDK 출처를 관리하는 방식이 권장됩니다.

따라서 AdSense를 사용하는 실제 운영 환경에서는 G7 Core의 CSP 지원 상태와 host의 script-src 정책을 함께 확인해야 합니다.

9. 실제 운영 환경 검증

Production 전환 전 다음 항목을 확인합니다.

  • glitter-advertising 활성 상태
  • glitter-gdpr 활성 상태
  • 다른 consent provider와 중복된 동의 정책 적용이 없는지 확인
  • AdSense Enabled 설정
  • Publisher Client ID
  • Production AdSense Gate
  • 실제 Ad Unit ID
  • /page/privacy 개인정보처리방침
  • Marketing Consent 전 AdSense SDK가 로드되지 않는지 확인
  • Marketing Consent 후 필요한 광고 요청이 시작되는지 확인
  • 동의 철회 후 새로운 광고 실행이 차단되는지 확인
  • CSP 및 browser console 오류
  • Google AdSense에서 사이트 및 광고 상태 확인

운영 활성화 요약

1. Google AdSense 사이트 준비
        ↓
2. Publisher Client ID / Ad Unit ID 준비
        ↓
3. glitter-advertising 설정
        ↓
4. 개인정보처리방침 및 동의 정책 확인
        ↓
5. Production AdSense Gate 명시적 활성화
        ↓
6. Frontend Production Build
        ↓
7. G7 Template Lifecycle 적용
        ↓
8. AdSenseSlot에 실제 Ad Unit 적용
        ↓
9. CSP / 외부 Script 정책 확인
        ↓
10. Marketing Consent 전후 동작 검증
        ↓
11. Production Serving

Glitter Business Ad는 광고 설정값이 존재한다는 이유만으로 Production AdSense를 자동으로 활성화하지 않습니다.

사이트 운영자가 광고 설정, 개인정보 보호 정책, 사용자 동의, Production Gate와 실제 광고 단위를 확인한 뒤 명시적으로 운영 상태로 전환하도록 구성되어 있습니다.

Release로 다시 배포하거나 기본 안전 상태로 복원할 때는 다음 값을 유지합니다.

export const ADSENSE_PRODUCTION_ENABLED = false;

패키지 구조

glitter-business_advertising/
├── template.json
├── routes.json
├── components.json
├── layouts/
├── lang/
├── dist/
├── src/
├── static/
├── __tests__/
├── package.json
├── package-lock.json
├── tsconfig.json
├── vite.config.ts
├── vitest.config.ts
├── CHANGELOG.md
├── LICENSE
└── README.md

Release package에는 prebuilt runtime asset과 source, 테스트 및 build 설정이 함께 포함됩니다.

다음 항목은 배포 package에 포함하지 않습니다.

  • .git
  • node_modules
  • .env
  • credentials
  • runtime cache/session/storage
  • 설치된 template 복사본
  • public/build
  • host-specific filesystem path
  • database / Redis / server configuration

저장소

glitter-advertising

https://github.com/glitter-node/glitter-advertising

glitter-gdpr

https://github.com/glitter-node/glitter-gdpr

Glitter Business Ad

https://github.com/glitter-node/glitter-business_advertising

Release

Glitter Business Ad v0.1.15

https://github.com/glitter-node/glitter-business_advertising/releases/tag/v0.1.15

Release package:

glitter-business_advertising-v0.1.15.zip
glitter-business_advertising-v0.1.15.tar.gz

v0.1.15 주요 변경

  • canonical /page/:slug browser route 추가
  • glitter-gdpr의 privacy-policy 링크가 Glitter presentation 안에서 정상적으로 처리되도록 개선
  • /page/privacy를 포함한 sirsoft-page 기반 표준 managed-page URL 지원
  • 존재하지 않거나 게시되지 않은 managed page에 대한 안전한 fallback 유지

v0.1.14

  • sirsoft-page >=1.1.0 dependency 추가
  • /about과 /contact를 published public page API contract에 연결
  • managed HTML 콘텐츠에 sanitized rendering 적용
  • Glitter-owned routing, navigation 및 presentation 책임 유지

v0.1.10 ~ v0.1.13

  • GnuBoard7 Core authentication contract 기반 /login / /register 추가
  • guest / authenticated Header navigation 추가
  • authenticated Account Menu 추가
  • 관리자에게만 Admin route 노출
  • Core logout action 연동
  • 인증 상태 초기화 시 guest auth page가 사라지는 lifecycle 문제 수정
  • Header navigation scroll container에 의해 Account Menu가 clipping되는 문제 수정

v0.1.7 ~ v0.1.9

  • 기존 sirsoft-gdpr dependency를 독립 glitter-gdpr lineage로 교체
  • consent runtime lookup을 __GlitterGdpr public contract로 전환
  • selective consent layout에 필요한 Checkbox component 등록
  • 실제 glitter-gdpr public overlay component와 template runtime registry의 compatibility regression test 추가
  • 최소 consent plugin dependency를 glitter-gdpr >=0.1.4로 확정

광고 실행 구조의 핵심 원칙은 유지됩니다.

Production AdSense는 계속 기본 비활성화 상태이며, Marketing Consent가 허용되었다는 사실만으로 SDK loading 또는 Production Serving이 자동 활성화되지 않습니다.


템플릿 정보

항목 값
Display Name Glitter Business Ad
Template ID glitter-business_advertising
Version 0.1.15
Type User Template
GnuBoard7 >=7.0.9
Locale Korean / English
Board Module sirsoft-board >=1.0.3
Page Module sirsoft-page >=1.1.0
Advertising Plugin glitter-advertising >=1.0.1
Consent Plugin glitter-gdpr >=0.1.4
Production AdSense Disabled by default
Vendor Glitter.kr
Author Glitter.kr
License MIT

라이선스

MIT License

Copyright (c) 2026 Glitter.kr


Glitter Business Ad는 단순히 광고 영역을 추가한 비즈니스 스킨이 아니라,

GnuBoard7의 비즈니스 사이트 구조 위에서 콘텐츠, 인증, 광고 설정, 사용자 동의, 광고 실행 책임을 서로 분리하면서 연결하기 위한 통합 User Template

을 목표로 합니다.


댓글 (0)

로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!