🍪 GDPR · 개인정보보호 · 애드센스

쿠키 동의 배너
만들기 완전 정복

법적으로 필요하고, 애드센스 요건이기도 한 쿠키 동의 배너.
HTML+CSS+JS로 직접 만들고, 색상과 위치도 내 마음대로 바꿔봐요.

⏱️ 약 10분 📅 2026년 4월 🏷️ GDPR · 쿠키 · 애드센스 👶 입문 난이도
① 개념

쿠키 동의 배너가 왜 필요한가요?

법적 규정 + 애드센스 요건 + 사용자 신뢰 — 세 가지 이유가 있어요

쿠키(Cookie)는 웹사이트가 사용자 브라우저에 저장하는 작은 데이터 파일이에요. 로그인 상태 유지, 장바구니 기억, 방문 기록 저장 등에 사용돼요. Google Analytics와 애드센스도 쿠키를 사용해서 방문자를 추적해요.

GDPR(유럽 개인정보보호법)은 쿠키를 사용하기 전에 반드시 사용자 동의를 받도록 규정해요. 유럽 방문자가 한 명이라도 있다면 적용될 수 있어요. 한국의 개인정보보호법도 유사한 기준을 따르고 있어요. 게다가 Google 애드센스는 쿠키 동의 배너를 공식 요건으로 명시하고 있어요.

⚖️

법적 의무

GDPR(유럽), CCPA(미국 캘리포니아), 한국 개인정보보호법 — 글로벌 방문자가 있다면 쿠키 동의는 필수예요.

💰

애드센스 요건

구글은 개인 맞춤형 광고를 위해 쿠키 동의가 필요해요. 없으면 광고 수익에 영향을 줄 수 있어요.

🤝

사용자 신뢰

쿠키 배너가 있으면 "이 사이트는 투명하게 운영된다"는 신뢰감을 줘요. 브랜드 이미지에도 도움돼요.

💾

localStorage 활용

사용자의 동의 여부를 localStorage에 저장해서, 한 번 동의하면 다시 묻지 않게 구현할 수 있어요.

② 배너 유형

쿠키 배너 3가지 유형

사이트 성격에 맞는 스타일을 골라보세요

사이트 콘텐츠
영역

📌 하단 바 (추천)

화면 하단에 고정되는 얇은 바 형태. 콘텐츠를 많이 가리지 않아 UX가 가장 좋아요. 대부분의 사이트에서 사용하는 표준 형태예요.

사이트 콘텐츠
영역

🔝 상단 바

화면 상단에 고정되는 형태. 즉시 눈에 띄어 동의율이 높지만, 헤더 네비게이션과 겹칠 수 있어요.

사이트 콘텐츠 영역
🍪 쿠키 설정

💬 팝업 / 코너

화면 코너에 작게 떠있는 팝업 형태. 콘텐츠를 전혀 가리지 않지만 놓치기 쉬워요. 재방문자에게 재표시할 때 적합해요.

③ 코드

복붙용 완성 쿠키 배너 코드

localStorage에 동의 저장 + 재방문 시 배너 숨김까지 완성

HTML+CSS+JS — </body> 위에 삽입
<!-- 🍪 쿠키 동의 배너 -->
<div id="cookie-banner" role="dialog" aria-label="쿠키 동의">
  <p class="cookie-text">
    🍪 이 사이트는 서비스 개선과 맞춤 광고를 위해 쿠키를 사용해요.
    <a href="privacy.html">개인정보처리방침</a>
  </p>
  <div class="cookie-btns">
    <button onclick="cookieDecline()">필수만 허용</button>
    <button class="accept" onclick="cookieAccept()">✓ 모두 동의</button>
  </div>
</div>

<style>
#cookie-banner {
  display: none; /* JS로 표시 */
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: #1e293b;
  border-top: 2px solid #4f46e5;
  padding: 14px 20px;
  z-index: 9999;
  align-items: center;
  gap: 16px; flex-wrap: wrap;
}
#cookie-banner.show { display: flex; }
.cookie-text { flex: 1; font-size: .85rem; color: #cbd5e1; }
.cookie-text a { color: #818cf8; }
.cookie-btns { display: flex; gap: 8px; }
.cookie-btns button {
  padding: 8px 16px; border-radius: 6px;
  font-size: .82rem; font-weight: 600;
  border: 1px solid #475569; background: transparent;
  color: #94a3b8; cursor: pointer;
}
.cookie-btns .accept {
  background: #4f46e5; border-color: #4f46e5; color: #fff;
}
</style>

<script>
(function() {
  if (localStorage.getItem('cookie-consent')) return;
  setTimeout(function() {
    document.getElementById('cookie-banner').classList.add('show');
  }, 800);
})();

function cookieAccept() {
  localStorage.setItem('cookie-consent', 'all');
  hideBanner();
}
function cookieDecline() {
  localStorage.setItem('cookie-consent', 'essential');
  hideBanner();
}
function hideBanner() {
  const b = document.getElementById('cookie-banner');
  b.style.transition = 'opacity .3s';
  b.style.opacity = '0';
  setTimeout(function() { b.classList.remove('show'); b.style.opacity = ''; }, 320);
}
</script>
④ 만들어보기

실시간 배너 커스터마이저

색상과 위치를 바꾸면 배너가 실시간으로 바뀌어요

미리보기

🍪 이 사이트는 서비스 개선과 맞춤 광고를 위해 쿠키를 사용해요. 개인정보처리방침

🤖 AI 프롬프트 TIP

"내 사이트에 쿠키 동의 배너를 추가해줘. 하단에 고정되는 다크 스타일로, '필수만 허용'과 '모두 동의' 버튼이 있어야 해. 동의하면 30일간 다시 안 물어봐야 해."

⑤ FAQ

자주 묻는 질문

애드센스 없으면 쿠키 배너가 필요 없나요?
애드센스와 무관하게, Google Analytics를 쓰거나 외부 스크립트(채팅 위젯, 소셜 공유 버튼 등)를 사용하면 쿠키 배너가 필요할 수 있어요. 특히 유럽(GDPR), 미국 캘리포니아(CCPA) 방문자가 있다면요.

실무적으로는 "혹시 모르니 달아두는" 게 나아요. 배너가 있다고 해서 패널티가 없지만, 없어서 법적 문제가 생길 수 있어요. 특히 애드센스 심사를 준비 중이라면 배너는 필수예요.
사용자가 '필수만 허용'을 누르면 어떻게 처리하나요?
엄밀하게는 동의를 거부한 사용자에게는 추적 쿠키(GA, 애드센스)를 심으면 안 돼요. 이를 완벽히 구현하려면 GA4의 Consent Mode, 애드센스의 Non-personalized ads 설정이 필요해요.

소규모 개인 사이트에서 간단하게 구현할 경우, 최소한 사용자의 선택을 localStorage.getItem('cookie-consent')로 확인하고, 'essential'이면 GA 이벤트 전송을 막는 방식을 쓸 수 있어요.

if (localStorage.getItem('cookie-consent') === 'all') { /* GA 코드 */ }
localStorage vs 쿠키, 어디에 저장해야 하나요?
아이러니하게도 쿠키 동의 여부를 저장하는 데 쿠키를 쓰는 경우가 많아요. 하지만 localStorage가 더 간단하고, 동의 저장 자체는 개인정보 수집이 아니라 기능성 저장이에요.

차이점:
localStorage: 만료 기간 없음(수동 삭제 전까지), 서버로 전송 안 됨, 조작이 쉬움
• 쿠키: 만료 기간 설정 가능(예: 30일), HTTP 요청 시 서버로 자동 전송

"30일 후 다시 물어보기" 같은 만료 기간이 필요하다면 쿠키에, 그냥 "한 번 선택하면 기억"이라면 localStorage가 더 적합해요.
배너를 다시 표시하게 하려면 어떻게 하나요?
브라우저 개발자도구(F12) → Application 탭 → Local Storage → 해당 사이트의 cookie-consent 항목을 삭제하면 돼요. 또는 아래 코드를 콘솔에서 실행하면 바로 배너가 다시 나와요.

localStorage.removeItem('cookie-consent'); location.reload();

사용자에게 "쿠키 설정 변경" 버튼을 제공하고 싶다면, 푸터에 이 함수를 호출하는 링크를 달면 돼요. 서비스형 CMP(Cookiebot, OneTrust 등)를 쓰면 이런 기능이 자동으로 제공돼요.
이 배너가 법적 효력이 있나요?
직접 만든 간단한 배너도 법적 효력이 있어요. 중요한 건 사용자가 선택권을 가진다는 점이에요. "모두 동의"와 "거부/필수만" 옵션이 동등하게 제공돼야 하고, 동의 전에 쿠키가 심기면 안 돼요.

더 엄격한 GDPR 준수를 위해서는:
• 각 쿠키 카테고리별 설정 (필수 / 분석 / 광고)
• 동의 철회 기능
• 동의 기록 보관

이런 기능이 필요하다면 Cookiebot, CookieYes 같은 전문 CMP 서비스를 고려해보세요. 무료 플랜도 있어요.
⑥ 다음 단계

이런 것도 배워봐요