[SJSP-001] 파편화된 다중 운영 데이터의 중앙화: 게임 루틴 & 콘텐츠 트래커 (v12.0 Final)
업무 외 취미 활동으로 바이브코딩을 활용해 다중 게임의 일간·주간 루틴 관리, 2차원 플레이 패턴 분석, 일일 과금 가계부를 하나로 통합한 서버리스 웹 앱 구축 및 고도화 기록
SJSP (Sungjo Side Project) 제1호: 업무 외 취미 활동으로 바이브코딩을 활용해 다중 게임의 일간·주간 루틴 관리, 2차원 플레이 패턴 분석, 일일 과금 가계부를 하나로 통합한 서버리스 웹 앱 구축 및 고도화 기록입니다.
1. 프로젝트 개요 (Overview)
- 프로젝트명: 게임 루틴 & 콘텐츠 트래커 (Game Routine & Content Tracker)
- 고도화 이력: 초기 MVP(v1.0)부터 실사용 피드백과 데이터 검증을 거쳐 v12.0 FINAL까지 12차례 메이저 업데이트 완료
- 기술 스택: Google Sheets (5-Sheet DB) + Google Apps Script + HTML5 / Tailwind CSS / Chart.js (단일 파일 아키텍처)
- 인프라 운영비: 0원 (Serverless)
2. 핵심 시스템 설계 및 데이터 정합성 전략 (Architecture)
실사용 과정에서 발생하는 데이터 누락이나 통계 착시를 막기 위해, 운영·데이터 관점의 4가지 핵심 설계 원칙을 적용했습니다.
① 5-Sheet 도메인 분리 & Soft-Delete 패턴
- 설정(
Config), 플레이 로그(Play_Logs), 지출 내역(Spend_Logs), 회고록(Daily_Journal), 대시보드 영역을 엄격히 분리했습니다. - 특정 게임이나 콘텐츠를 중단하더라도 데이터를 물리 삭제(
deleteRow)하지 않고활성화 = FALSE기반 Soft-Delete(중단/복귀)로 처리하여 과거 누적 통계의 무결성을 100% 보존합니다.
② 커스텀 리셋 경계 엔진 & 마감 임박순 자동 정렬
- KST 기준일 시프트: 자정(
00:00)이 아닌 게임별 고유 리셋 시각(04시~06시)을 역산해 논리적 기준일(yyyy-MM-dd (요일))을 산출합니다. 주간·월간 초기화 1일 전에는⏰ 오늘 리셋임박 배지가 자동 점등됩니다. - 일정 이원화 및 D-3 필터: 직접 체크하는 한정(DDay)과 상시 배너 이벤트(Event)를 분리하고, 종료일 임박순으로 자동 정렬합니다. 오픈 4일 이상 남은 미래 일정은
[🗓️ 진행 예정]모달로 격리해 메인 화면의 시각적 피로도를 제거했습니다.
③ 요일×시간대 2D 히트맵 & 클릭 드릴다운
7요일 × 24시간컬러 타일 히트맵을 도입해 주력 접속 패턴을 입체적으로 시각화했습니다.- 마우스 호버 시 긴 텍스트로 인한 줄바꿈 떨림(Hover Jitter)을 막기 위해 안내 바를 고정 1줄(
truncate)로 설계했으며, 특정 타일을 클릭하면 해당 시간대의 최신 상세 기록 모달을 즉시 조회할 수 있습니다.
④ 통계 왜곡 방지 및 경과 일수 기준 일평균 산출
- 주기별 분해 차트: 일회성 ‘한정’ 건수가 많아 꾸준한 ‘일간·주간’ 루틴보다 과도하게 부각되는 착시를 막기 위해, 전체 합산 도넛 차트 ↔ 주기별 누적 막대 차트 전환 기능을 제공합니다.
- 현실적 지출 단가 계산: 기간별 일평균 과금액은 단순 접속일이 아닌 선택 기간 내 실제 경과한 달력 일수로 나누어 왜곡 없는 지출 지표를 제공합니다.
3. 고도화 여정 및 주요 개선 사례 (v1.0 → v12.0)
| 단계 | 주요 고도화 내용 | 해결한 문제 및 인사이트 |
|---|---|---|
| STEP 1 (v1.0 ~ v7.0) | 루틴 트래커에 건별 과금 가계부와 데일리 회고록 결합 | 성격이 다른 플레이·지출·소감 데이터를 독립 시트로 분리해 올인원 허브 구축 |
| STEP 2 (v8.0 ~ v11.5) | 중복 # 태그 폐기, 일정 이원화, 모달·드롭다운 UI 다이어트 | 불필요한 입력 폼과 중복 태그를 걷어내고 [⚙️ 설정] 드롭다운으로 수납해 메인 스크롤 최소화 |
| STEP 3 (v11.7 ~ v12.0) | 마감 임박순 자동 정렬, 2D 히트맵 드릴다운, 기간 지정 일별/월별 자동 축 전환 | 실데이터 누적 후 발견된 통계 착시와 호버 떨림 현상을 개선해 데이터 해상도 완성 |
4. 회고 및 확장성 (Retrospective)
- 기획과 데이터 스키마의 중요성: 기능을 무작정 덧붙이는 것보다, 현장에서 직관적으로 쓸 수 있는 미니멀한 UX와 예외 케이스를 통제하는 탄탄한 데이터 구조가 시스템의 완성도를 결정한다는 점을 확인했습니다.
- 재사용 가능한 표준 프레임워크화: 본 프로젝트에서 검증된 서버리스 데이터 설계 및 프론트엔드 최적화 원칙은 향후 진행할 후속 프로젝트(
SJSP-002등)의 표준 템플릿으로 자산화했습니다.
📎 Related Archive & Guide
본 프로젝트의 상세 아키텍처 설계 원칙과 트러블슈팅 비하인드, 후속 프로젝트용 표준 프롬프트는 아래 회고록 문서에서 확인하실 수 있습니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.