1. 짤랭의 데이터 수집 구조 개요
짤랭(JjalRank)의 핵심 엔진은 Python 기반의 웹 스크래핑 모듈로 구성됩니다. 매시간 정해진 스케줄에 따라 국내 13개 주요 커뮤니티의 베스트 게시판을 자동으로 파싱하여, 각 게시글의 제목, 썸네일 이미지/영상 URL, 댓글 수, 게시 시각, 원본 URL을 추출합니다. 수집된 원시 데이터는 곧바로 Supabase 클라우드 PostgreSQL 데이터베이스에 적재됩니다.
수집 과정에서 가장 중요한 기술적 고려 사항 중 하나는 HTTP 레퍼러(Referer) 처리입니다. 국내 커뮤니티들은 외부 도메인에서의 이미지 직접 링크를 차단하는 핫링크 프로텍션(Hotlink Protection)을 적용하고 있습니다. 이를 우회하기 위해 짤랭 프론트엔드 전반에 referrerpolicy="no-referrer"를 적용하여, 이미지 요청 시 레퍼러 정보가 전달되지 않도록 설계했습니다.
2. 트렌드 스코어(Trend Score)란 무엇인가
단순히 댓글 수가 많은 게시글이 '인기글'이 되는 것은 아닙니다. 짤랭은 각 커뮤니티의 게시물을 비교 가능한 단일 지표로 환산하기 위해 트렌드 스코어(Trend Score)를 사용합니다. 이 스코어는 다음 요소들의 가중 합산으로 계산됩니다.
- 댓글 수(Comment Count): 사용자 반응의 기본 지표. 가중치 40%
- 게시 후 경과 시간(Time Decay): 최신 게시물에 유리하도록 로그 스케일로 감가. 가중치 30%
- 미디어 포함 여부(Media Bonus): 이미지/영상 포함 게시물에 가산점. 가중치 20%
- 커뮤니티 정규화 지수(Community Normalization): 커뮤니티 규모 편차 보정. 가중치 10%
이 스코어 체계를 통해 댓글 수가 절대적으로 많은 대형 커뮤니티의 평범한 게시물이, 소형 커뮤니티에서 폭발적 반응을 얻은 게시물을 밀어내는 왜곡 현상을 방지합니다.
3. Supabase 데이터베이스 뷰를 활용한 실시간 정렬
짤랭의 백엔드는 Supabase(오픈소스 Firebase 대안)를 기반으로 합니다. 핵심 데이터 정렬 로직은 클라이언트 측 JavaScript가 아닌 Supabase PostgreSQL의 데이터베이스 뷰(Database View)에서 처리됩니다. 현재 운영 중인 뷰는 두 가지입니다.
- latest_community_posts: 게시 시각(created_at) 기준 최신순 정렬
- popular_community_posts: 트렌드 스코어 및 댓글 수 기준 인기순 정렬
이 방식의 핵심 장점은 클라이언트가 단순히 뷰를 조회하는 것만으로 최적화된 정렬 결과를 받을 수 있어, 불필요한 클라이언트 측 연산을 없애고 초기 로딩 속도를 크게 향상시킨다는 점입니다.
4. Zero-Build Edge SSR — Cloudflare Pages Functions 활용
짤랭의 또 다른 기술적 특징은 Zero-Build Edge SSR(서버 사이드 렌더링) 전략입니다. 일반적인 웹 서비스는 콘텐츠가 업데이트될 때마다 사이트 전체를 새로 빌드·배포해야 합니다. 그러나 짤랭은 Cloudflare Pages Functions를 사용하여 게시물 상세 페이지(/post/:id)와 동적 사이트맵(/sitemap.xml)을 전 세계 Cloudflare 엣지 서버에서 실시간으로 렌더링합니다.
이 방식의 이점은 세 가지입니다. 첫째, 월간 빌드 한도를 소진하지 않으면서 실시간 데이터를 반영한 페이지를 제공할 수 있습니다. 둘째, 각 게시물 상세 페이지에 올바른 Open Graph 태그와 JSON-LD 구조화 데이터가 동적으로 삽입되어 SNS 공유 시 풍부한 미리보기를 지원합니다. 셋째, 구글 검색 봇이 각 게시물 페이지를 독립적인 콘텐츠 페이지로 인식하여 SEO 인덱싱 범위가 대폭 확장됩니다.
5. 앞으로의 알고리즘 발전 방향
현재 트렌드 스코어는 댓글 수와 게시 시각 중심의 정량 지표에 의존합니다. 향후 짤랭이 개발하고자 하는 알고리즘 고도화 방향은 크게 두 가지입니다. 첫 번째는 감성 분석(Sentiment Analysis)의 도입으로, 댓글의 내용을 NLP(자연어 처리)로 분석하여 긍정·부정·웃음 반응의 비율을 점수화하는 것입니다. 단순히 댓글이 많은 게시물보다 웃음 반응 댓글이 높은 게시물을 우선 랭킹에 올리는 방식입니다.
두 번째는 커뮤니티 간 교차 바이럴(Cross-Community Virality) 지수입니다. 같은 게시물이나 밈이 여러 커뮤니티에서 동시에 언급될 때, 이를 '교차 바이럴'로 감지하여 추가 가산점을 부여하는 방식입니다. 이는 특정 커뮤니티 내에서의 인기를 넘어 대한민국 인터넷 전반에서 화제가 된 콘텐츠를 정확히 추려내는 데 핵심적인 역할을 할 것입니다.