배포 플랫폼 중립 통합 대시보드 설계. 공개 시점 기준 prior art 선언을 겸함
여러 호스팅(Vercel, Cloudflare Pages 등)에 흩어진 개인 프로젝트를 단일 화면에서 상태·배포·트래픽으로 조회하는 최소 설계. 숨겨진 관리자 경로와 공개 랜딩을 한 앱에 공존시키는 구조.
260414_log_2
Hooks
1인 빌더가 운영하는 웹 프로젝트 N개(N=3~20)가 서로 다른 배포 플랫폼(Vercel, Cloudflare Pages, Netlify, 자가 호스팅 등)에 분산되어 있을 때 각 플랫폼의 대시보드는 고립되어 있고 사이트 수가 늘수록 인지 부담이 제곱으로 증가한다.
본 문서는 위 문제에 대한 최소 구조를 기술하며, 공개 시점(2026-04-14) 이후 동일 구조에 대한 사후 특허 독점 시도를 차단하기 위한 선행 기술(prior art) 로 기능한다.
하나의 배포 단위(Next.js 앱) 안에 공개 랜딩과 숨겨진 관리자 뷰가 공존한다. 관리자 뷰는 URL 추측 불가 수준의 경로(
/admin)를 사용하되 인증은 생략하고,robots.txt의disallow와 페이지 메타의noindex로 크롤링만 차단한다.
"큐레이션된 프로젝트 목록"과 "자동 발견된 플랫폼 프로젝트 목록"을 분리 유지한다.
위 항목들에 대해 제3자가 사후 특허를 취득하더라도, 본 문서의 공개 시점 이후 해당 특허는 선행 기술 존재로 무효 주장이 가능하다.
문제 정의
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