Phase 1 (์ผ๋ฐํ + 11 ํ์ด์ง + SEO) ํ์ Phase 2. ์ฌ์ฉ์ ๋ช ๋ น(CEO ์์ ๊ถํ)์ ๋ฐ๋ผ 8 ํ๋ณด ์ค 7๊ฐ ์์จ ์งํ (Cloudflare๋ DNS ๋ณ๊ฒฝ ์ฌ์ฉ์ ์ก์ ). 8 task ๋ชจ๋ PASS โ ์ด๋ฏธ์ง dedup / Tailwind ๋น๋ / Partner DB / ๋ถ์ endpoint / WebP ๋ณํ / ์ธ์ด๋ณ prerender / Conversion ์น์ + E2E ๊ฒ์ฆ.
| ํญ๋ชฉ | ๊ฒฐ๊ณผ |
|---|---|
| ์ด๋ฏธ์ง sha256 dedup | gallery 64์ฅ unique (์ค๋ณต 0) |
| Tailwind CDN โ ๋น๋ | 13 ํ์ด์ง ์ ์ฉ, CDN ์์กด 0, tw.min.css 125KB (gzip ~30KB ๊ฐ๋ฅ) |
| Partner ํ ํฐ DBํ | starium_partner_tokens ํ ์ด๋ธ + admin endpoint 3์ข (list/create/revoke), ๊ธฐ์กด env ํ ํฐ ๋ง์ด๊ทธ๋ ์ด์ (90์ผ ๋ง๋ฃ) + access count ์ถ์ |
| ๋ถ์ /api/event | starium_global_events ํ ์ด๋ธ + POST endpoint (rate 60/min/IP) + stats ์ง๊ณ endpoint (CEO ์ธ์ฆ) + ํด๋ผ์ด์ธํธ ์ถ์ (page_view, file_download, lang_switch, inquiry_submit) |
| WebP ๋ณํ | gallery 63์ฅ ๋ณํ (6.78 โ 4.36 MB, -36%), 117 picture/source ์ ์ฉ |
| ์ธ์ด๋ณ prerender | 11 ร 3 = 33 ํ์ด์ง (๊ฐ ~10KB, ๋์ 15KB ๋๋น -35%) |
| Conversion ์น์ | Trust 4 ์นด๋ + Channels QR 3 (Kakao/WeChat/LINE placeholder) + Cases 3 placeholder |
| sitemap.xml | 45 URLs (๋ฉ์ธ 1 + ๋์ 11 + ์ธ์ด๋ณ 33) |
| ํธ๋ ์ด๋ฉ / ์๋น์ค | ๋ชจ๋ active |
npm i -D tailwindcss@3 + content scan + safelist (7 ์์ ร 9 shade ์ ๊ท์) + minify โ /starium-global/assets/tw.min.css 125 KBstarium_partner_tokens ํ
์ด๋ธ (token PK, partner_name, expires_at, revoked_at, access_count) + DB ๊ฒ์ฆ์ผ๋ก ๋ณ๊ฒฝ (env fallback ๋ณด์กด) + admin 3 endpointstarium_global_events ํ
์ด๋ธ + POST /starium-global/api/event + GET /api/starium-global/stats (CEO ์ธ์ฆ) + 12 ํ์ด์ง ํด๋ผ์ด์ธํธ ์ถ์ ์คํฌ๋ฆฝํธ<picture> ์ ์ฉ (๋ฉ์ธ 43 + 11 ํ๋ก๊ทธ๋จ + partner 17)/starium-global/{ko,zh,en}/programs/{11 ์ฌ๋ฌ๊ทธ}.html/starium-global/assets/tw.min.css/starium-global/assets/qr/{kakao,wechat,line}-placeholder.png/starium-global/assets/gallery/*.webp/tmp/sg-build/build-pages-prerender.py/opt/star365-ceo/server.mjs: +partner DB ๋ผ์ฐํธ ๋ณ๊ฒฝ + admin 3 endpoint + /api/event endpoint + stats endpoint + sitemap 45 URLs + asset regex(.css/.avif/.svg ์ถ๊ฐ) + ์ธ์ด๋ณ route (~150 LOC ์ถ๊ฐ)<img> โ <picture> / ์ถ์ ์คํฌ๋ฆฝํธ ์ฃผ์
starium_partner_tokens (10 ์ปฌ๋ผ, 2 ์ธ๋ฑ์ค, 1 row ๋ง์ด๊ทธ๋ ์ด์
) โ paperclip star365_hub DBstarium_global_events (10 ์ปฌ๋ผ, 3 ์ธ๋ฑ์ค) โ paperclip star365_hub DBpage_view: ํ์ด์ง ์ง์
(๋ฉ์ธ + 11 ๋์ + 33 prerender = 45 ํ์ด์ง ๋ชจ๋)file_download: PDF/PPTX/PPT/XLSX ํด๋ฆญ ์ (ํ์ผ๋ช
๋ฉํ)lang_switch: ์ธ์ด ํ ๊ธ (ko/zh/en/mn)inquiry_submit: form#inquiry-form submit (inquiry endpoint์ ๋ณ๊ฐ)CEO_KEY=$(cat /root/.ceo_access_key)
# ์ ๊ท ํ ํฐ ๋ฐ๊ธ
curl -sk -X POST https://ceo.star365.site/api/starium-partners \
-H "X-CEO-Key: $CEO_KEY" -H 'Content-Type: application/json' \
-d '{"partner_name":"Hyunbu Group 2026-05-18","expires_in_days":30}'
# ํ ํฐ list
curl -sk -H "X-CEO-Key: $CEO_KEY" https://ceo.star365.site/api/starium-partners
# ํ ํฐ ํ์
curl -sk -X DELETE -H "X-CEO-Key: $CEO_KEY" https://ceo.star365.site/api/starium-partners/2
curl -sk -H "X-CEO-Key: $CEO_KEY" "https://ceo.star365.site/api/starium-global/stats?since=24+hours" | python3 -m json.tool
curl -sk -H "X-CEO-Key: $CEO_KEY" "https://ceo.star365.site/api/starium-global/stats?since=7+days" | python3 -m json.tool
/opt/star365-hq/docs/04-report/starium-global-phase2-20260509.md (ํ ํ์ผ)starium-global-phase2-20260509.md (๋ณ๋ ํ์ผ)