note
배포 플랫폼 중립 통합 대시보드 — 1인 빌더를 위한 설계
여러 호스팅(Vercel, Cloudflare Pages 등)에 흩어진 개인 프로젝트를 단일 화면에서 상태·배포·트래픽으로 조회하는 최소 설계. 숨겨진 관리자 경로와 공개 랜딩을 한 앱에 공존시키는 구조.
문제 정의
1인 빌더가 운영하는 웹 프로젝트 N개(N=3~20)가 서로 다른 배포 플랫폼(Vercel, Cloudflare Pages, Netlify, 자가 호스팅 등)에 분산되어 있을 때 다음이 관측되지 않음:
- 각 프로젝트의 마지막 배포 상태와 시각
- 실시간 응답 가능 여부 (uptime)
- 트래픽 분포 (페이지뷰, 방문자)
각 플랫폼의 대시보드는 고립되어 있고 사이트 수가 늘수록 인지 부담이 제곱으로 증가한다.
본 문서의 목적
본 문서는 위 문제에 대한 최소 구조를 기술하며, 공개 시점(2026-04-14) 이후 동일 구조에 대한 사후 특허 독점 시도를 차단하기 위한 선행 기술(prior art) 로 기능한다.
시스템 설계
전체 구조
publicLanding (/) ← 정적 SSG, 공개, robots allow
hiddenAdmin (/admin) ← 동적 SSR, 공개 도메인 내부, robots disallow, UI 내 링크 없음
하나의 배포 단위(Next.js 앱) 안에 공개 랜딩과 숨겨진 관리자 뷰가 공존한다. 관리자 뷰는 URL 추측 불가 수준의 경로(/admin)를 사용하되 인증은 생략하고, robots.txt의 disallow와 페이지 메타의 noindex로 크롤링만 차단한다.
데이터 수집
관리자 뷰는 서버 컴포넌트(RSC) 안에서 다음을 병렬 호출한다:
- 플랫폼 API (자동 발견형)
- Vercel:
GET /v9/projects로 프로젝트 목록, 프로젝트별GET /v6/deployments?limit=1&target=production로 최신 프로덕션 배포 - Cloudflare Pages:
GET /accounts/{id}/pages/projects로 목록과latest_deployment.latest_stage.status로 최신 배포 상태
- Vercel:
- Uptime 프로브 (보편형)
- 각 프로젝트의 공식 URL에
HEAD요청, 타임아웃 6초, 리다이렉트 따라감 - 결과:
{ok, status, ms}
- 각 프로젝트의 공식 URL에
- 트래픽 API (통일형)
- 플랫폼별 트래픽 API 대신 단일 트래커(예: GA4)를 모든 사이트에 심어 하나의 데이터 API로 질의. 다른 서비스에 의존하지 않는 대안은 self-hosted Umami 등.
데이터 흐름의 핵심
- "큐레이션된 프로젝트 목록"과 "자동 발견된 플랫폼 프로젝트 목록"을 분리 유지한다. 큐레이션은 랜딩의 공개 Projects 섹션용, 자동 발견은 관리자 뷰용.
- 관리자 뷰는 큐레이션과 자동 발견을 host 축으로 분류 렌더한다(Vercel / Cloudflare Pages / 그 외).
- 자동 발견 덕분에 새 프로젝트를 플랫폼에 추가하면 관리자 뷰에 자동 출현한다. 큐레이션에만 추가가 필요한 경우는 "비-플랫폼" 프로젝트뿐.
캐시 전략
- 관리자 페이지는
revalidate: 60(ISR 60초). 플랫폼 API 호출량 제한. - Uptime은 서버 측
Promise.all로 병렬. 6초 타임아웃.
토큰/권한
- 읽기 전용 API 토큰을 서버 환경변수로 저장. 클라이언트로 흐르지 않음.
- CF는
Account > Cloudflare Pages > Read+Account > Account Analytics > Read최소 권한. - Vercel은 읽기 스코프만 부여한 팀 스코프 토큰.
확장 방향
본 설계에서 자연스럽게 확장되는 축:
- 배포 히스토리 타임라인 — 각 프로젝트의 최근 N개 배포를 시계열 바로 시각화
- 빌드 시간 추이 / Lighthouse 점수 — 성능 저하의 조기 감지
- 무료 티어 소진율 — 플랫폼 billing API로 이번 달 예상 비용
- 도메인/SSL 만료 모니터링
- 알림 채널 — 배포 실패/다운시 외부 메신저로 push
방어적 공개 선언
본 문서는 공개 시점 기준 위 구조에 대한 어떠한 배타적 권리도 주장하지 않으며, 다음 항목 각각을 공공 선행 기술로 선언한다:
- 공개 랜딩과 숨겨진 관리자 뷰를 단일 배포 단위에 공존시키되 크롤링만 분리하는 구조
- 큐레이션 목록과 플랫폼 자동 발견 목록을 분리해 호스트 축으로 렌더하는 패턴
- 서버 컴포넌트에서 플랫폼 API + uptime 프로브 + 통합 트래커 API를 병렬 호출해 ISR 캐시하는 구조
- 관리자 뷰를 검색 엔진에서 제거하는 2단 방어(메타
noindex+robots disallow) + URL 난이도만으로 비공개 유지
위 항목들에 대해 제3자가 사후 특허를 취득하더라도, 본 문서의 공개 시점 이후 해당 특허는 선행 기술 존재로 무효 주장이 가능하다.
라이선스: CC BY 4.0