🔥 Firebase 활용

조회수와 좋아요 버튼 만드는 법
Firebase로 실시간 카운터 구현하기

📅 2026년 6월 7일 ✍️ 뚝딱닷컴 ⏱️ 5분 읽기 👁 -

📖 블로그 글에 조회수와 좋아요를 달았다

글을 쓰고 나면 항상 궁금해진다. 누가 읽었을까. 얼마나 읽었을까. 조회수가 없으면 그냥 혼자 쓴 글처럼 느껴진다.

그래서 달았다. 블로그 글 상단에 조회수, 하단에 좋아요 버튼. 페이지에 접속하면 조회수가 올라가고, 버튼을 누르면 좋아요가 쌓인다. 누군가 읽고 반응을 남길 수 있게.

💡

이 기능은 서버 없이 Firebase 하나로 작동한다. 백엔드 개발자 없어도, 코딩 몰라도 된다. AI한테 시키면 된다.

⚙️ 어떻게 작동하나?

핵심은 Firebase Firestore다. 구글이 만든 실시간 데이터베이스 서비스다. 페이지별로 문서(document)를 하나씩 만들고, 거기에 조회수와 좋아요 숫자를 저장한다.

작동 방식은 단순하다.

별도 서버나 데이터베이스 설치가 필요 없다. Firestore가 그 역할을 대신한다.

📦 준비물

딱 두 가지다.

📌

이미 구글 로그인이나 게시판 등으로 Firebase를 쓰고 있다면 Firestore가 이미 활성화돼 있을 것이다. 그러면 바로 사용 가능하다.

🪜 만드는 순서

네 단계면 끝난다. AI한테 맡기면 실제 작업은 거의 없다.

1
Firebase 콘솔에서 Firestore 활성화 console.firebase.google.com 접속 → 내 프로젝트 선택 → 왼쪽 메뉴 "Firestore Database" → "데이터베이스 만들기" 클릭. 프로덕션 모드로 시작해도 된다.
2
보안 규칙에 blog_stats 컬렉션 추가 Firestore 보안 규칙을 수정해서 blog_stats 컬렉션을 로그인 없이 읽고 쓸 수 있게 열어준다. 아래 규칙 코드 참고.
3
HTML에 조회수/좋아요 코드 삽입 AI한테 "Firebase Firestore로 조회수 카운터와 좋아요 버튼 만들어줘"라고 하면 된다. Firebase 프로젝트 설정값(apiKey, projectId 등)만 알려주면 완성 코드를 받는다.
4
배포 수정된 HTML 파일을 Netlify에 다시 올리면 끝. 접속하는 순간부터 조회수가 쌓이기 시작한다.

🔐 Firebase 보안 규칙 설정

기본 Firestore 규칙은 로그인한 사용자만 읽고 쓸 수 있게 막혀 있다. 조회수와 좋아요는 로그인 없이도 작동해야 하니까 규칙을 수정해야 한다.

Firestore 콘솔 → "규칙" 탭에서 아래처럼 수정한다. 기존 규칙 전체를 지우고 붙여넣으면 된다.

Firestore 보안 규칙
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

    // 기존 규칙 (로그인 필요한 컬렉션)
    match /{document=**} {
      allow read, write: if request.auth != null;
    }

    // blog_stats 컬렉션은 누구나 읽기/쓰기 허용
    match /blog_stats/{docId} {
      allow read, write: if true;
    }
  }
}
⚠️

blog_stats 컬렉션만 열어두는 게 핵심이다. 나머지 컬렉션(사용자 데이터, 게시판 등)은 그대로 로그인 필요 상태로 유지해야 한다. 전체를 if true로 열면 보안에 문제가 생긴다.

🛡️ 중복 방지 — 좋아요는 한 번만

좋아요 버튼을 계속 누를 수 있으면 숫자가 의미 없어진다. localStorage를 이용해서 한 번 누른 사람은 다시 누르지 못하게 처리한다.

원리는 간단하다. 좋아요를 누르면 브라우저에 "이 글 좋아요 눌렀음"이라는 표시를 저장한다. 다음에 다시 방문하면 그 표시를 확인해서 버튼을 비활성 상태로 보여준다.

💡

localStorage는 브라우저별로 저장된다. 같은 사람이 다른 기기나 다른 브라우저로 접속하면 다시 누를 수 있다. 완벽한 방지는 아니지만, 일반적인 블로그 수준에서는 충분하다.

📋 모든 블로그 글에 한 번에 적용하는 법

글이 여러 개라면 하나씩 넣는 게 번거롭다. AI한테 한 번에 시키면 된다.

🤖

"blog 폴더 안의 모든 html 파일에 조회수와 좋아요 버튼 추가해줘. Firebase 프로젝트 정보는 이거야: [apiKey, projectId 등]"
이렇게 한 번 요청하면 AI가 모든 파일에 자동으로 적용해준다.

주의할 점이 하나 있다. 각 글마다 Firestore 문서 ID가 달라야 한다. 보통 파일명을 그대로 문서 ID로 쓰면 된다. 예를 들어 netlify-free-deploy.html이면 문서 ID는 netlify-free-deploy로 설정한다.

문서 ID가 겹치면 어떻게 되나요?
두 페이지가 같은 Firestore 문서를 공유하게 된다. 한 글의 조회수가 오르면 다른 글도 같이 오른다. 반드시 페이지별로 다른 문서 ID를 써야 한다.
localhost에서 테스트할 수 있나요?
가능하다. 단, Firebase 콘솔에서 승인된 도메인에 localhost가 포함돼 있어야 한다. Firestore 규칙이 열려 있으면 로컬에서도 카운터가 정상 작동한다.

✅ 마무리 — 조회수가 쌓이면 보이는 것들

조회수를 달고 나면 달라지는 게 있다. 어떤 글이 많이 읽히는지 파악할 수 있다. 좋아요가 많은 글이 뭔지도 보인다. 다음에 쓸 글의 주제를 고를 때 참고가 된다.

숫자가 0에서 1로 바뀌는 순간도 나름 뿌듯하다. 누군가 내 글을 읽었다는 증거니까.

Firebase 설정부터 조회수·좋아요 코드 삽입까지 전체 과정을 교재에서 확인할 수 있어요.

📖 뚝딱닷컴 교재 보기