전략센터·통합포털 재구성 기획서

strategy.html 13개 섹션 → 5개, index.html 16개 섹션 → 6개. 나머지를 별도 페이지로 분리. 2026-08-30

0. 문제 진단

페이지현재 섹션 수줄 수문제
strategy.html13개807줄은폐 행위자 + 내부자 위험 + 독립검증 + 환각 + FTPL + GFM-K + dPq + 에이전트 + 개인 업무가 한 페이지
index.html16개353줄사건 + 구독 + 배포 + 사건저장소 + dPq + 책임 + 유지관리 + 독립검증 + 집단행위자 + GWS + 분야별 + 이력 + 핫이슈 + 연준 + 윤리

핵심 문제: 한 페이지에 너무 많은 내용 → 방문자가 뭘 봐야 할지 모른다

strategy.html은 "전략센터"인데 보안·감사·검증·환각·토큰절약·주가예측·에이전트 협력까지 다 들어있음. index.html은 "통합포털 첫 페이지"인데 유지관리·독립검증·집단행위자·연준·윤리까지 다 들어있음.

1. 재구성 원칙

3가지 원칙

2. strategy.html 재구성 — 13개 → 5개

2.1 유지할 5개 섹션 (strategy.html에 남김)

#섹션내용판정
1오늘의 전략센터오늘 할 일, 마감, 우선 목표유지
26대 전략 목표G1~G6 진행률, KPI유지
3개인 업무이메일, 할 일, 일정, 연락처, 문서유지
4dPq AI 제품 현황검증 건수, 매출, B2B, 구독자, CIVIL 6특허, 자료실유지 (요약만)
5에이전트 협력 + AI 협업 공간7 에이전트 상태, 협업 탭유지 (2개를 1개로 통합)

2.2 분리할 8개 섹션 (별도 페이지로 이동)

#현재 섹션이동할 페이지판정비고
1은폐 메가 행위자 추출finance.html (이미 은폐 패널 있음)기존 페이지finance.html에 이미 은폐 패널이 있으므로 링크만
2내부자 위험 현황판insider-risk.html 신규신규 생성A+C 6신호, 감사 로그, 등급 분포
3독립검증 현황판verify.html (이미 있음)기존 페이지링크만 추가
4환각 제거율 현황판hallucination-dashboard.html 신규신규 생성혼동 행렬, 빅테크 비교표, 탐지 방법
5FTPL 토큰·시간 절약 현황판gfmk-dashboard.html (이미 있음)기존 페이지GFM-K 대시보드에 FTPL 섹션 추가
6GFM-K 5단 흐름gfmk-dashboard.html (이미 있음)기존 페이지링크만
7마감 임박개인 업무 섹션에 통합통합별도 섹션에서 개인 업무 안으로
8dPq AI 제품 상세dpq-strategy.html + dpq-launch-plan.html (이미 있음)기존 페이지strategy.html에는 요약만, 상세는 별도

strategy.html 재구성 후

13개 섹션 → 5개 섹션. 줄 수 807 → 약 350줄 예상. 나머지 8개는 기존 페이지(4개) + 신규 페이지(2개) + 통합(1개) + 별도(1개)로 분리.

3. index.html 재구성 — 16개 → 6개

3.1 유지할 6개 섹션 (index.html에 남김)

#섹션내용판정
1최근 사건 타임라인실시간 사건유지
2구독 안내Free/Premium/Pro/Pro+/B2B 5계층유지
3분야별 독립 앱8개 분야 카드유지
4개발 완료 이력17단계유지
5핫이슈 → 역사기록 링크history.html 링크유지
6모든 앱에 적용하는 원칙핵심 원칙 요약유지

3.2 분리할 10개 섹션 (별도 페이지로 이동)

#현재 섹션이동할 페이지판정비고
1배포 운영상태maintenance.html (이미 있음)기존링크만
2중앙 사건저장소 + 운행엔진operations.html (이미 있음)기존링크만
3dPq 제품 (출처 범위)dpq-strategy.html (이미 있음)기존링크만
4책임·판정 (Control Core)control.html (이미 있음)기존링크만
5유지관리 기반팩maintenance.html (이미 있음)기존링크만
6독립검증verify.html (이미 있음)기존링크만
7집단행위자 신뢰 판별actor-trust.html (이미 있음)기존링크만
8GWS 주식 파동 신호gws.html (이미 있음)기존링크만
9연준 통화정책fed.html (이미 있음)기존링크만
10콘텐츠 윤리 평가guide.html 또는 별도이동guide.html이 있으므로 링크

index.html 재구성 후

16개 섹션 → 6개 섹션. 줄 수 353 → 약 180줄 예상. 나머지 10개는 전부 기존 페이지에 링크만 추가.

4. 신규 생성 페이지

페이지내용예상 줄 수
insider-risk.html내부자 위험 6신호, 감사 로그, 등급 분포, 4역할 분리, 윤리 경계~200줄
hallucination-dashboard.html혼동 행렬, 4개 메트릭, 빅테크 비교표, 탐지 방법 11유형~200줄

기존 페이지에 링크만 추가 (신규 생성 없음)

나머지 16개 섹션은 전부 이미 존재하는 페이지(operations, maintenance, verify, control, actor-trust, gws, fed, finance, gfmk-dashboard, dpq-strategy, dpq-launch-plan)로 이동하므로 신규 페이지 2개만 생성하면 됨.

5. 재구성 후 전체 구조

5.1 strategy.html (5개 섹션, ~350줄)

5.2 index.html (6개 섹션, ~180줄)

5.3 별도 페이지 링크 (strategy.html + index.html에서 링크)

링크페이지내용
은폐 메가 행위자finance.html8분야 은폐 패널
내부자 위험insider-risk.html 신규A+C 6신호
독립검증verify.html10축 4등급
환각 탐지hallucination-dashboard.html 신규11유형 100%
FTPL 절약gfmk-dashboard.html29.6% 절약
GFM-K 5단gfmk-dashboard.html20종목 8단계
dPq 전략dpq-strategy.html삽입형 인프라
출시 계획dpq-launch-plan.html1·2·3차
사건저장소operations.html운행엔진
책임·판정control.htmlControl Core
유지관리maintenance.html기반팩
집단행위자actor-trust.html신뢰 판별
GWSgws.html파동 신호
연준fed.html통화정책

6. 작업 순서

순서작업예상 시간
1insider-risk.html 신규 생성 (strategy.html에서 이동)30분
2hallucination-dashboard.html 신규 생성 (strategy.html에서 이동)30분
3strategy.html에서 8개 섹션 제거 + 링크 추가30분
4index.html에서 10개 섹션 제거 + 링크 추가20분
5smoke.mjs / deployment.mjs 화면 수 업데이트 (+2)5분
6test/all.mjs 통과 확인10분
7git commit5분

8. 프론트엔드·백엔드·DB 재구성

현재 문제: server.mjs 1개에 3,626줄, 63개 API가 한 파일에 있음

일반 포털은 routes/ + services/ + middleware/로 분리. DB 스키마는 schema.sql로 문서화. 현재는 전부 server.mjs 1개에 있고, 스키마 문서가 없음.

8.1 프론트엔드 (assets/) 재구성

현재줄 수문제재구성
domain-data.js2,996줄8분야 데이터 + 분류 함수 + 167행위자가 한 파일분야별로 분리: assets/data-finance.js, assets/data-defense.js 등 (8개)
groupality-core.js2,894줄모든 화면의 렌더링 함수가 한 파일화면별로 분리: assets/core-strategy.js, assets/core-verify.js 등
strategy.js868줄전략센터 전용 로직✅ 이미 분리됨 — 유지
app.css2,077줄전체 스타일✅ 유지 (분리 불필요)
기타 JS (10개)1,103줄화면별 JS✅ 이미 분리됨 — 유지

프론트엔드 분리 우선순위: 낮음

domain-data.js와 groupality-core.js가 크지만, 31개 HTML이 모두 두 파일을 로드하므로 분리하면 모든 HTML의 script 태그를 수정해야 함. 1차 재구성에서는 HTML 섹션 분리만 하고, 프론트엔드 JS 분리는 2차로 미룸.

8.2 백엔드 (server.mjs) 재구성 — 3,626줄 → 라우터 분리

현재줄 수API 수재구성
server.mjs (전체)3,626줄63개5개 라우터로 분리

분리 계획

라우터파일API 그룹예상 줄 수
coreroutes/core.mjs정적 파일 서빙, 인증(JWT), 사용자 관리, 기본 CRUD~400줄
eventsroutes/events.mjs사건 수집, 검증, 판정, 이력, 핫이슈~600줄
verifyroutes/verify.mjs독립검증 10축, 표본감사, 보고서, GWS 신호~500줄
dpqroutes/dpq.mjsdPq 출처증적, FTPL, 환각 탐지, gfmk-stats, 내부자 위험~600줄
adminroutes/admin.mjs배포, 유지관리, 백업, 감사 로그~300줄
server.mjs (메인)server.mjsHTTP 서버 생성, 라우터 로드, 정적 파일~200줄

백엔드 분리 우선순위: 중간

server.mjs 3,626줄은 너무 크지만, Pure Node.js 22 (npm 의존성 0) 원칙을 유지하려면 라우터 분리는 ESM import로 가능. 1차에서는 HTML 섹션 분리 후, 2차로 server.mjs 라우터 분리.

8.3 데이터베이스 (DB) 스키마 문서화

DB 파일크기테이블스키마 문서
groupality-v03.db11MBevents, source_items, dpq_reviews, audit_log, users, verifications 등신규 필요
gfm-k.db1.8MBgfmk_observations, gfmk_labels, gfmk_states, gfmk_transitions, gfmk_directions, gfmk_market_eval, gfmk_signals, gfmk_sealed_thresholds, gfmk_audit (9개)신규 필요

스키마 문서화 계획

파일내용
db/gfmk-schema.sqlgfm-k.db 9 테이블 DDL + 인덱스 + D1-09 봉인 임계값 29개
db/portal-schema.sqlgroupality-v03.db 전체 테이블 DDL + 인덱스
db/ERD.md테이블 관계도 (ERD) — 텍스트 기반

DB 스키마 문서화 우선순위: 높음

gfm-k.db는 gfmk-schema.mjs에 DDL이 있으므로 추출 가능. portal DB는 server.mjs에서 CREATE TABLE 문을 추출. 이것은 즉시 실행 가능.

8.4 gfmk-*.mjs 코어 모듈을 server.mjs API에 연결

코어 모듈현재재구성
gfmk-pipeline.mjsCLI 실행만 (node gfmk-pipeline.mjs)/api/gfmk/run (POST) — 파이프라인 실행 API
gfmk-dashboard.html정적 HTML/api/gfmk/stats (GET) — 이미 있음 (gfmk-stats)
gfmk-ftpl.mjs파이프라인 내부만/api/ftpl-stats (GET) — 이미 있음
gfmk-dpq-gate.mjs파이프라인 내부만/api/dpq/gate (POST) — dPq 게이트 실행 API
gfmk-features.mjs파이프라인 내부만/api/gfmk/features/:code (GET) — 특징 계산 API
gfmk-state-model.mjs파이프라인 내부만/api/gfmk/state/:code (GET) — 상태 분류 API

코어 모듈 API 연결 우선순위: 낮음

gfmk-*.mjs는 CLI로 실행되므로 당장 API가 필요하지 않음. B2B Embed(전산망 삽입) 시에 API 연결이 필요. 1차에서는 HTML 섹션 분리 후, 3차(B2B Embed 준비)에 API 연결.

9. 재구성 우선순위

우선순위작업시간시기
1순위 (즉시)HTML 섹션 분리 (strategy 13->5, index 16->6) + 신규 2개2시간지금
2순위 (즉시)DB 스키마 문서화 (gfmk-schema.sql + portal-schema.sql)1시간지금
3순위 (2차)server.mjs 라우터 분리 (3,626줄 -> 5개 라우터)4시간다음 세션
4순위 (2차)assets/ JS 분리 (domain-data, groupality-core)3시간다음 세션
5순위 (3차)gfmk-*.mjs API 연결 (routes/dpq.mjs)2시간B2B Embed 준비 시

1차 재구성 (지금 실행): HTML 섹션 분리 + DB 스키마 문서화

HTML 섹션 분리(2시간) + DB 스키마 문서화(1시간) = 3시간. 이것만 해도 전략센터와 통합포털이 "일반 포털" 수준으로 깔끔해짐. server.mjs 라우터 분리와 assets JS 분리는 다음 세션에서.

10. GPT 자문 보강 — 일반 포털 수준 누락 11가지

GPT 평가: 7/10 — 테스트 시스템 동기화가 빠져 있어 실행 시 4개 테스트 실패

치명적 2개 + 중요 5개 + 보강 4개 = 11가지 누락. 이것을 보강하지 않으면 99/99 테스트 통과 불가.

10.1 치명적 누락 2개 (즉시 수정)

#항목설명수정 파일우선순위
1navItems 25->27 + 테스트 카운트domain-data.js의 navItems에 신규 2개 메류 추가, smoke.mjs 33->35, deployment.mjs 34->36 수정assets/domain-data.js, test/smoke.mjs, test/deployment.mjs치명
2신규 HTML 템플릿 요건charset="utf-8", assets/domain-data.js + assets/groupality-core.js 연결, <meta name="description"> 필수 — smoke.mjs가 검증insider-risk.html, hallucination-dashboard.html치명

10.2 중요 누락 5개

#항목설명수정 파일우선순위
3apps 배열 14->16domain-data.js의 apps에 신규 2개 등록, deployment.mjs가 14개 검증assets/domain-data.js, test/deployment.mjs높음
4CHANGELOG.md + VERSION 갱신MINOR 버전 증가 (기능 추가) — AGENTS.md 규칙 준수CHANGELOG.md, VERSION필수
5DB 백업 선행스키마 문서화 전 data/backups/에 백업 생성 — AGENTS.md 규칙data/backups/필수
6API <-> 신규 페이지 매핑insider-risk: /api/insider-risk (기존 3개 엔드포인트), hallucination: 기존 환각 APIinsider-risk.html, hallucination-dashboard.html중간
7404.html 추가일반 포털 기본 — 사용자 친화적 404 페이지, server.mjs가 파일 못 찾을 때 404 반환404.html (신규), server.mjs낮음

10.3 보강 필요 4개

#항목설명우선순위
8모바일 반응형 검증섹션 분리 후 모바일 레이아웃 확인 — app.css 2,077줄, 분리 후 레이아웃 변경 시 모바일 깨짐 가능중간
9라우터 분리 ESM import 패턴공통 의존성(db, json, rateLimit) 주입 방식 — import 경로와 fileURLToPath 처리 명시중간
10SSE 연결 유지 확인strategy.html과 index.html이 실시간 사건 타임라인을 위해 SSE 사용 — 분리 후 연결 유지 확인낮음
11모바일 빈 데이터/오류 상태AGENTS.md 규칙: "UI 변경은 모바일 화면과 키보드 접근성, 빈 데이터, 오류 상태를 함께 확인"중간

10.4 수정된 작업 순서 (GPT 자문 반영)

순서작업파일우선순위예상 시간
0DB 백업 선행 (AGENTS.md 규칙)data/backups/필수5분
1insider-risk.html 신규 생성 (템플릿: charset, script, meta)insider-risk.html치명30분
2hallucination-dashboard.html 신규 생성 (동일 템플릿)hallucination-dashboard.html치명30분
3404.html 추가 (일반 포털 기본)404.html, server.mjs높음15분
4navItems 25->27 + apps 14->16 업데이트assets/domain-data.js치명15분
5smoke.mjs 33->35, deployment.mjs 34->36 + navItems 27 검증test/smoke.mjs, test/deployment.mjs치명10분
6strategy.html 8개 섹션 제거 + 링크 추가strategy.html높음30분
7index.html 10개 섹션 제거 + 링크 추가index.html높음20분
8DB 스키마 문서화 (gfmk-schema.sql + portal-schema.sql)db/gfmk-schema.sql, db/portal-schema.sql높음40분
9모바일 반응형 검증 (분리 후 레이아웃)strategy.html, index.html중간15분
10SSE 연결 유지 확인 (사건 타임라인)strategy.html, index.html낮음10분
11CHANGELOG.md + VERSION 갱신 (MINOR)CHANGELOG.md, VERSION필수10분
12test/all.mjs 통과 확인test/all.mjs치명10분
13git commit--5분

총 예상 시간: 4시간 10분 (이전 2시간 -> GPT 자문 반영 후 4시간 10분)

10.5 수정된 화면 수 변화 (GPT 자문 반영)

항목이전이후변화
HTML 파일 수3437 (+insider-risk, +hallucination-dashboard, +404)+3
smoke.mjs userPages33 (login 제외)35 (login + 404 제외)+2
deployment.mjs pages3437+3
navItems2527+2
apps1416+2
strategy.html 섹션135-8
index.html 섹션166-10

신규 HTML 템플릿 요건 (smoke.mjs 통과용)

신규 3개 HTML(insider-risk, hallucination-dashboard, 404)은 다음을 포함해야 함:

11. Claude 디자인·UX/UI 보강

Claude 분석 결과: 기존 디자인 자산이 풍부함 — 재구성 시 재사용

11.1 시각적 위계 (Visual Hierarchy)

페이지1순위 (hero)2순위3순위
strategy.html오늘의 전략센터 — hero card, 큰 글씨, 오늘 할 일 3개6대 전략 목표 — progress bar 6개 (G1~G6 진행률 색상)개인 업무 — 탭(이메일/할일/일정/문서), dPq 요약 카드, 에이전트 상태
index.html사건 타임라인 — SSE live feed, 최근 5개 사건구독 안내 — 5계층 가격 카드 (Free/Premium/Pro/Pro+/B2B)분야별 앱 8개 아이콘 그리드, 개발 이력, 핫이슈 링크, 원칙

11.2 사용자 여정 (User Journey)

단계페이지행동유도
1. 첫 방문index.html사건 타임라인 확인'처음 오셨나요? 사이트 이해하기 ->' 배지 → guide.html
2. 이해하기guide.html핵심 개념, 사용 방법, FAQ'전략 보기 ->' 버튼 → strategy.html
3. 전략 확인strategy.html6대 목표, dPq 제품 현황'dPq 제품 자세히 ->' → dpq-strategy.html
4. 구독dpq-launch-plan.html5계층 가격, 30일 무료'무료 30일 시작 ->' 버튼

온보딩 배지 (index.html에 추가)

index.html 첫 번째 섹션 상단에 '처음 오셨나요? 사이트 이해하기 ->' 배지 추가 — guide.html로 유도. 기존 guide.html이 온보딩 역할을 하므로 신규 페이지 불필요.

11.3 빈 데이터/오류 상태 (Empty/Error States)

상태표시CSS 클래스적용 페이지
로딩 중'데이터를 불러오는 중…' + 스피너.ops-empty (기존)전체 (이미 사용 중)
데이터 없음'데이터가 없습니다' + 안내 문구.ops-empty .empty (추가)신규 2개 + 기존
오류 발생'오류가 발생했습니다' + 재시도 버튼.ops-empty .error (추가)신규 2개 + 기존
서버 미연결'서버에 연결할 수 없습니다' + 안내.ops-empty .offline (추가)전체 (SSE 연결 실패 시)

11.4 404 페이지 디자인

요소내용
제목'페이지를 찾을 수 없습니다' — 큰 글씨, 다크 테마
설명'요청하신 페이지가 존재하지 않거나 이동되었습니다'
주요 링크 3개통합포털(index.html) · 사이트 이해하기(guide.html) · 전략센터(strategy.html)
검색'원하는 것을 찾아보세요' 입력창 (선택)
스타일다크 테마(#0d1117 배경), 카드(#161b22), 액센트(#2ee5b5), border-radius 15px

11.5 구독 가격 카드 디자인 (index.html)

계층카드 색상배지가격 표시
Free회색없음₩0/월
Premium청록(--teal)없음₩99,000/월
Pro파랑(--blue)없음₩290,000/월
Pro+액센트(--accent)'가장 인기'₩490,000/월
B2B Embed보라(--purple)'기업용'₩500만/월~

11.6 모바일 반응형 (760px 이하)

요소데스크톱모바일 (760px 이하)
카드 그리드2~4열1열 세로 배열
메뉴상단 바 + 드롭다운햄버거 메뉴
전체 표시가로 스크롤 (overflow-x: auto)
가격 카드5개 가로1개 세로 (스크롤)
사건 타임라인실시간 SSE동일 (SSE 유지)
progress bar6개 가로6개 세로 (또는 3x2)

모바일 재검증 필요 (섹션 분리 후)

app.css에 24개 미디어 쿼리가 있지만, strategy.html에서 8개 섹션 제거 후 레이아웃이 변경되면 모바일에서 깨질 수 있음. 분리 후 760px에서 직접 확인 필요.

11.7 다크 테마 디자인 시스템

요소라이트 모드다크 모드사용
배경--paper #f3f0e8--paper #0f1715strategy/index/신규: 다크 고정
카드--surface #fffdf8--surface #1a2422동일
텍스트--ink #17201f--ink #e0e6e4동일
액센트--teal #167d73--teal #2ee5b5배지, 링크, 강조
경고--red #b64b42--red #e46b61RISK, 오류
정보--amber #c78328--amber #f0883eHOLD, 알림

11.8 디자인 보강 종합

#보강 항목적용 위치우선순위
1시각적 위계 (hero card → progress bar → 탭)strategy.html, index.html높음
2사용자 여정 4단계 (index → guide → strategy → 구독)index.html 배지, guide.html 버튼높음
3온보딩 배지 ('처음 오셨나요?')index.html 상단중간
4빈/오류 상태 4종 (로딩/없음/오류/서버미연결)신규 2개 + 기존중간
5404 페이지 (다크 테마 + 3 링크)404.html높음
6구독 가격 카드 5개 ('가장 인기' = Pro+)index.html높음
7모바일 760px 재검증 (카드 세로, 햄버거, 표 스크롤)strategy.html, index.html중간
8다크 테마 고정 (신규 2개 + 404)insider-risk, hallucination-dashboard, 404높음
항목이전이후변화
HTML 파일 수3335 (+2 신규)+2
smoke.mjs userPages3234+2
deployment.mjs pages3335+2
strategy.html 섹션135-8
index.html 섹션166-10
strategy.html 줄 수807~350-457
index.html 줄 수353~180-173

기대 효과

본 기획서: 전략센터·통합포털 재구성 기획서 · 2026-08-30 · 심봉 자율결정

작업: 신규 2개 페이지(insider-risk, hallucination-dashboard) + strategy.html 8개 섹션 분리 + index.html 10개 섹션 분리 + 링크 추가
예상 시간: 약 2시간
테스트: 35화면, smoke.mjs 34, deployment.mjs 35