AllGrabbinFoundly기록
  • 0. Web Analytics 서비스를 시작한 이유Foundly
  • 0. 기획 의도Grabbin
  • 1. Grabbin을 만들기 까지 (feat. 5번의 뒤엎음) - Just memoGrabbin
  • 1. 웹 분석 도메인에 대한 이해: 기본 지표Foundly
  • 2. 사이트 등록 시 timezone을 받도록 설계한 이유Foundly
  • 2. 어떤 기술을 사용할까?Grabbin
  • 3. D1과 ClickHouse의 역할 분리Foundly
  • 3. Multirepo vs Monorepo - 아키텍처 의사 결정Grabbin
  • 4. Queue를 둔 이유: 분석 요청을 API 응답과 분리Foundly
  • 4. 다양한 위젯 시스템을 효과적으로 확장하는 방법 - 아키텍처 의사 결정Grabbin
  • 5. 분석 데이터 전송: fetch·sendBeaconFoundly
  • 5. 서버 위치는 프론트/DB 중 어디에 가깝게? - 아키텍처 의사 결정Grabbin
  • 6. collect.js 와 /collect: 서로 다른 Worker에서 처리하는 이유Foundly
  • 6. 미디어 업로드: 서버 vs presigned URL - 아키텍처 의사 결정Grabbin
  • 7. Query String으로 상태 관리: 라이브러리는 최후의 옵션Foundly
  • 7. 응답은 기다리되, 경험은 즉각적으로 — UX 의사 결정 & 기능 설계Grabbin
  • 8. Dynamic Width/Height View - UX 의사 결정Grabbin
  • 8. 시간별 집계 테이블 설계: 일별·월별 테이블을 사용하지 않는 이유Foundly
  • 9. 원본 이벤트/세션/시간별 집계 테이블을 나눈 이유Foundly
  • 9. 이미지 크롭의 필요성 - UX 의사 결정 & 기능 설계Grabbin
  • 10. 위젯 디테일 - UX 의사 결정Grabbin
  • 10. 화면에서 session을 visit으로 부르기로 한 이유Foundly
  • 11. 그 외 사소한 디테일 - UX 의사 결정Grabbin
  • 11. 중복 이벤트/늦게 들어오는 이벤트의 처리Foundly
  • 12. collect.js 실행 흐름 — 실제 시나리오와 상태 변화Foundly
  • 12. 계정 삭제 - UX 의사 결정Grabbin
  • etcFoundly
  • Queue 배치 수집 미적용과 부분 실패 처리 정책 개선 및 테스트 결과Foundly
  • route handler 사용 목적: 굳이 사용해야 할까?Grabbin
  • 개발하면서 알게된 것들기록
  • 새롭게 알게된 개념 정리Foundly
  • 세션 체류 시간(Duration) 설계 실패 → 변경Foundly
  • 이미지 업로드 & 고아 파일 정리 설계Grabbin
Oct 20, 2026