계산기 5개 페이지 광고 중복 노출 제거
목차
광고 stacking 위반을 정리했다. 한 화면에 여러 광고가 동시에 노출되는 구조를 걷어내고, "한 화면 1광고" 룰을 사이트 전반에 적용한 작업이다.
왜 이게 문제였나
페이지별로 광고 컴포넌트를 자유롭게 배치하다 보면 어느 순간 stacking 이 발생한다. Layout.astro 에 레이아웃 수준의 광고가 이미 들어가 있는데, 각 페이지 파일에서 또 광고를 박아 넣으면 한 화면에 광고가 중첩된다. 처음엔 "페이지마다 맥락이 다르니까" 라는 이유로 개별 배치를 허용했는데, 그게 쌓이면서 결국 레이아웃 광고 + 페이지 광고가 동시에 뜨는 상황이 됐다.
이런 구조는 보통 두 가지 경로로 생긴다.
- 레이아웃 파일에 글로벌 광고를 넣은 사람과 페이지 파일에 광고를 넣은 사람이 다른 경우 — 서로 인지 없이 각자 작업
- 초기엔 레이아웃 광고가 없었는데, 나중에 글로벌로 추가하면서 기존 페이지 광고를 청소하지 않은 경우
이번엔 후자였다. Layout.astro 에 공통 광고 슬롯을 나중에 밀어 넣으면서, 기존에 각 페이지가 직접 가지고 있던 광고 코드를 그대로 방치했다. 결과적으로 annual-leave, car-tax, earned-income-tax, hourly, income-tax 다섯 페이지 모두 stacking 상태로 서비스되고 있었다.
어떻게 정리했나
구조를 다시 잡는 방향은 단순했다. 광고의 진실 공급원(source of truth)을 Layout.astro 하나로 고정하고, 각 페이지에서 개별적으로 광고를 삽입하는 코드를 제거하는 것.
변경 파일 구조로 보면 이렇다.
| 파일 | 역할 | 이번 변경 |
|---|---|---|
src/layouts/Layout.astro |
전체 페이지의 공통 껍데기 | 광고 슬롯 위치/구조 확정 |
src/pages/annual-leave.astro |
연차 계산기 페이지 | 개별 광고 코드 제거 |
src/pages/car-tax.astro |
자동차세 계산기 페이지 | 개별 광고 코드 제거 |
src/pages/earned-income-tax.astro |
근로소득세 계산기 페이지 | 개별 광고 코드 제거 |
src/pages/hourly.astro |
시급 계산기 페이지 | 개별 광고 코드 제거 |
src/pages/income-tax.astro |
소득세 계산기 페이지 | 개별 광고 코드 제거 |
페이지 쪽은 전부 제거 방향이고, 레이아웃 쪽에서 한 번 관리하는 구조로 수렴시켰다.
코드 패턴으로 보면 대략 이런 흐름이다.
<!-- Before: income-tax.astro 같은 페이지에 광고 직접 박혀 있음 -->
<Layout title="소득세 계산기">
<AdBanner slot="top" /> <!-- 여기서도 광고 -->
<Calculator />
</Layout>
<!-- Layout.astro 안에도 이미 광고 있는 상황 -->
<slot name="top" />
<DefaultAdBanner /> <!-- 레이아웃 글로벌 광고 -->
<slot />
<!-- After: 페이지에서 광고 제거, 레이아웃이 단독 관리 -->
<Layout title="소득세 계산기">
<Calculator />
</Layout>
<!-- Layout.astro: 여기서만 광고 -->
<AdBanner />
<slot />
회고
사실 이런 stacking 이슈는 "광고 정책 위반"이라고 하면 다들 심각하게 듣는데, 실제로는 레이아웃 설계 원칙의 문제다. 글로벌 컴포넌트가 생겼을 때 기존 코드를 같이 청소하지 않으면 이런 중복이 남는다. 광고 뿐 아니라 네비게이션, 푸터, 분석 스크립트 같은 글로벌 요소에서도 똑같이 발생하는 패턴이다.
이번에 다섯 페이지를 한꺼번에 정리하면서 느낀 건, 레이아웃 파일을 건드릴 때는 영향 받는 페이지 전수 확인이 필수라는 거다. Layout.astro 는 모든 페이지의 부모니까, 여기에 뭔가를 추가하는 순간 사이트 전체에 즉시 적용된다. 추가할 때 신중한 만큼, 기존에 같은 역할을 하던 코드가 페이지 레벨에 남아 있지 않은지도 함께 훑어야 한다.
앞으로 광고 슬롯을 바꾸거나 추가할 때는 Layout.astro 한 곳만 건드리면 된다. 페이지 파일들이 광고를 직접 알 필요가 없는 구조가 됐으니, 유지보수 부담이 꽤 줄었다.
끝.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.