서버비 0원으로 월 8,000 트래픽 감당하기: Cloudflare Workers + Notion 도입기

2025. 12. 3. 19:46·개발기

IT 동아리 모음 사이트인 TECA의 개발부터 운영, 그리고 트래픽이 터지기까지의 약 8개월간 있었던 일을 요약한 게시글 입니다.

🚀 프로젝트 시작 동기

"IT 동아리 정보 모아둔 곳 없을까?"

사실 시작은 아주 단순했다. 아는 형이 IT 동아리 정보를 한눈에 보고 싶다며, 노션으로 같이 정리해보자고 제안했다. 평소 "불편하면 만든다"는 주의라 바로 수락했고, 간단한 사이드 프로젝트 정도여서 하루 만에 노션 페이지 정리(웹/모바일 뷰 분리)를 끝냈다. (웹에 맞는 화면과 모바일에 맞는 화면이 다르고 노션은 반응형이 안되다 보니 각각에 맞는 노션페이지를 만들어주었다.)

하지만 개발자로서 욕심이 생겼다. 그냥 노션 링크(notion.site/...)를 던져주는 건 너무 멋이 없지 않나? 제대로 된 도메인도 달고 싶고, PC로 들어오면 PC 뷰를, 폰으로 들어오면 모바일 뷰를 보여주고 싶었다.


🛠️ 기술 스택 선정: 왜 Cloudflare Workers인가?

가장 큰 고민은 "단순 리다이렉팅과 뷰 분기를 위해 서버를 띄워야 하나?" 였다.

  • AWS EC2 + Nginx: 가장 익숙하지만, 고작 분기 처리 하나 때문에 24시간 서버를 켜두는 건 리소스 낭비(Over-engineering) 같았다.
  • AWS Lambda: 서버리스라 좋지만, 콜드 스타트(Cold Start)로 인한 지연 시간이 조금 걸렸다. (물론 계속 로딩 해주어 이를 막는 기술이 있지만 이것을 구축하느라 드는 시간 또한 내키지 않았다..)

그래서 찾은 정답: Cloudflare Workers ⚡

  • Serverless: 서버 관리 스트레스 Zero.
  • Low Latency: 엣지 컴퓨팅이라 콜드 스타트가 거의 없다.
  • Cost: 하루 10만 건까지 무료. (사이드 프로젝트에 차고 넘친다)

결국 서버비 0원으로 성능과 비용을 모두 잡을 수 있는 Cloudflare Workers를 채택했다.


💻 주요 개발 내용 & 트러블 슈팅

1. 경량 트래픽 라우팅 (Web vs Mobile)

노션은 반응형이 안된다. 그래서 우리는 아예 PC용 페이지와 모바일용 페이지를 따로 만들었다. Workers 스크립트에서 User-Agent 헤더를 뜯어보고, 모바일 기기면 모바일 페이지로, 아니면 PC 페이지로 납치(?)하는 로직을 짰다.

모바일인지 확인하고 그에 따라 URL을 설정해주었다.
그 후 해당 URL로 리다이렉트를 시켜주었다.

2. 보안: 봇(Bot) 트래픽과의 전쟁 🛡️

운영하다 보니 로그에 이상한 게 찍혔다. ./env, ./github 같은 경로를 찌르는 악성 봇들이었다. 내 소중한 무료 트래픽 할당량을 갉아먹는 주범이었다.

직접 차단 로직을 짤까 하다가, Cloudflare WAF(웹 방화벽)와 봇 차단 모드를 켰다. 결과적으로 불필요한 요청 40% 감소. 클릭 몇 번으로 보안과 비용을 동시에 잡았다.

간단히 봇 차단을 했다. (SEO용 봇을 물론 차단하지 않았다)

3. SEO(검색 엔진 최적화): 구글 상단 노출의 비밀 🔍

노션의 최대 단점은 SEO가 약하다는 것. Workers가 중간에서 응답 HTML을 가로채 Meta 태그와 Open Graph(OG) 태그를 동적으로 주입하도록 구현했다. 기술적으로는 완벽했다. 하지만... 검색 결과 4페이지 구석에 처박혀 있었다. (눈물)

📉 위기와 반전: 이력서 한 줄의 나비효과

초반에 에브리타임(홍대, 상명대 등)에 홍보해서 일일 500명까지 찍었지만, 검색으로 들어오는 자동 유입이 없으니 사용자가 없어지고 트래픽이 바닥을 쳤다.

반전은 5개월 뒤, 예상치 못한 곳에서 터졌다. 같이 만든 형이 동아리 면접 준비를 하면서 이력서 포트폴리오 란에 이렇게 적었다.

"구글에 [2025 IT 동아리 모음]을 검색해보세요"

면접관들이 실제로 검색을 시작했다. '목적성 있는 검색 트래픽'이 발생하자 구글 알고리즘이 반응했다. "어? 이거 사람들이 진짜 찾아서 들어가는 사이트네?"

미리 준비해 둔 SEO 구조 + 실제 유입이 만나자 순위가 수직 상승했다. 4페이지 → 1페이지 최상단 등극! 🥇

it 동아리 검색 시 우리 사이트가 맨 앞으로 나온다!


🥳 성과 및 회고

결과적으로 현재 월 요청 수 8,000건, MAU 1,000명을 달성했다.

지난 시간을 돌이켜보면, 서버 유지비가 없었기에 트래픽이 저조한 시기에도 부담 없이 사이트를 켜둘 수 있었고, 덕분에 형의 이력서라는 우연한 기회가 찾아왔을 때 사이트가 성장을 할 수 있었다. 기술적인 구현뿐만 아니라 '존버' 또한 전략임을 깨닫는 등 여러모로 값진 인사이트를 얻은 프로젝트였다.

이번에 얻은 인사이트와 경험을 바탕으로, 앞으로도 비용 걱정 없이 다양한 기술을 접목해 보며 재밌는 도전을 이어갈 예정이다!

개발 시작 부터 지금까지 검색 수
현재 한달 동안 들어오는 트래픽

 

우리의 사이트가 궁금하다면 아래 링크를 참고하자!

 

IT 연합 동아리 모음 — IT 동아리 추천/모음/순위

대학생 대상 IT 연합 동아리 정보를 한눈에 확인하세요. 모집 분야, 활동 기간, 지원 자격 등을 보기 쉽게 정리했습니다.

teca-official.co.kr

 

읽어주셔서 감사합니다! 궁금한 점은 댓글로 남겨주세요. 👋

저작자표시 (새창열림)

'개발기' 카테고리의 다른 글

[LangChain] 복잡한 SQL, AI/LLM으로 해결하기: Text-to-SQL 4가지 방식 성능/비용 비교  (1) 2025.12.09
'개발기' 카테고리의 다른 글
  • [LangChain] 복잡한 SQL, AI/LLM으로 해결하기: Text-to-SQL 4가지 방식 성능/비용 비교
Jamey
Jamey
  • Jamey
    컴공 대학생의 이야기
    Jamey
  • 전체
    오늘
    어제
    • 분류 전체보기 (36)
      • 개발 공부 (33)
        • k8s (24)
        • kafka (8)
        • AI (1)
      • 개발기 (2)
      • 프로젝트 홍보 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    Linux
    Kubernetes
    consumer
    Rag
    serialDB
    AI
    llm최적화
    Jenkins
    토픽
    cloudflare workers
    Kafka
    topic
    Producer
    current offset
    카프카
    Graphana
    K8S
    langchain
    조인 쿼리
    sql자동화
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Jamey
서버비 0원으로 월 8,000 트래픽 감당하기: Cloudflare Workers + Notion 도입기
상단으로

티스토리툴바