개발일지
프로젝트
기술
블로그 관리자 페이지 개선: 인기 페이지와 방문자 통계 업데이트
cocodedot28@gmail.com
2025. 07. 22. 오후 03:02
3분 읽기
17회 조회
1
광고
오늘은 관리자 대시보드를 개선했습니다. 특히 인기 페이지 표시 방식과 30일 방문자 통계 부분을 중점적으로 업데이트했습니다.
✅ 개선 개요
관리자 대시보드의 가독성과 분석 정확도를 높이기 위해 다음 세 가지 핵심 영역을 중심으로 개선 작업을 진행했습니다.
- 인기 페이지 표시 방식
- 30일 방문자 통계 활성화
- 날짜 포맷 형식 개선
🔧 주요 개선사항
1. 인기 페이지 표시 방식 개선
항목 | 개선 전 | 개선 후 |
---|---|---|
표시 방식 | URL 그대로 표시 ex. /posts/nextjs-tutorial | 포스트 제목으로 표시 ex. Next.js 튜토리얼: 완벽 가이드 |
콘텐츠 필터링 | 전체 페이지 포함 | 포스트(/posts/ )만 필터링 |
데이터 | 방문수만 표시 | 방문수 + 순방문자 수 함께 표시 |
💡 개선 효과: 관리자가 글 제목만 보고도 인기 콘텐츠를 직관적으로 파악 가능
2. 30일 방문자 통계 활성화
🔎 문제점
- 기존엔 7일 데이터만 확인 가능
- 30일 데이터는 API 응답 누락으로 비정상 표시
🛠 해결 방법
- API 응답 구조 수정
- 7일/30일 구분 탭 제공
- 각 기간별 인기 페이지 제공
🎯 결과
- 기간별 분석 가능 → 일주일 트렌드 vs 한 달간 성과 비교 가능
- 로딩 속도 개선 → 불필요한 재요청 방지
3. 날짜 표시 형식 개선
구분 | 변경 전 | 변경 후 |
---|---|---|
일별 / 주별 | 모호한 형식 | 7/21 , 7/22 등 명확한 숫자 기반 |
월별 | 비일관성 있음 | 2025년 7월 형식으로 통일 |
📅 포맷 함수 개선 예시
const formatDate = (dateStr: string) => {
if (activeTab === 'monthly') {
return `${year}년 ${month}월`
}
return `${month}/${day}` // 일별, 주별
}
💻 기술적 변경사항
📍 인기 페이지 API 개선
const result = await Promise.all(
data.map(async (item) => {
if (!pathname.startsWith('/posts/')) return null
const { data: post } = await supabase
.from('posts')
.select('title')
.eq('slug', slug)
.single()
return {
pathname: item.pathname,
title: post?.title || pathname,
totalVisits: parseInt(item.total_visits),
uniqueVisitors: parseInt(item.unique_visitors),
}
})
)
📍 날짜 포맷 로직 개선
formatDate()
함수 내 조건 처리 추가- 각 탭 별로 날짜 형식 차별화 처리
👀 개선 요약

관점 | 개선 효과 |
---|---|
관리자 | - URL 대신 제목으로 표기되어 가독성 향상 - 30일 통계로 정확한 분석 가능 - 날짜가 직관적으로 표시됨 |
개발자 | - 중복 코드 제거 및 리팩토링 - TypeScript 안정성 확보 - API 성능 및 응답 개선 |
🔚 마무리
이번 개선으로 블로그 관리의 효율성과 분석력이 향상되었습니다. 특히 인기 페이지 제목화는 실무 관점에서도 매우 유용하며, 30일 방문자 데이터 시각화는 중장기 콘텐츠 전략 수립에도 도움이 됩니다.
감사합니다! 🚀
광고
태그
#관리자대시보드
#방문자통계
#인기포스트
#7일 인기글
#30일 인기글