๐Ÿ“– star365 Docs
โ† ๋ณด๊ณ ์„œ ๋ชฉ๋ก

Stage8 ๋ผ์ด๋ธŒ ๋ฐœ์‚ฌ ์ฒดํฌ๋ฆฌ์ŠคํŠธ (D-10h)

์ž‘์„ฑ: 2026-04-28 10:35 KST ยท ์ž‘์„ฑ์ž: ์ž„์‹œ CEO (Claude Opus 4.7) ๋Œ€์ƒ: stage8 ์‹ ๊ทœ MLM ์„œ๋ฒ„ (66.42.34.229) ยท ๋ผ์ด๋ธŒ GO ์‹œ๊ฐ: D-10h


1. ๋ณ€๊ฒฝ ์š”์•ฝ (D-10h sprint)

ํŠธ๋ž™ ์‚ฐ์ถœ๋ฌผ ์ƒํƒœ
A. ๋žœ๋”ฉ stage8.club / www.stage8.club ์ •์  ๋งˆ์ผ€ํŒ… ํŽ˜์ด์ง€ + nginx ๋ถ„๊ธฐ โœ… 200, 13,294B
B. Mall ๋“ฑ๊ธ‰ํ˜œํƒ MyStageBenefits ์ปดํฌ๋„ŒํŠธ + 1127_mall_stage_benefits 8 row seed + frontend rebuild โœ… ์ฝ˜์†” ์—๋Ÿฌ 0, ์นด๋“œ 8๊ฐœ ๋ Œ๋”
B-fix Product.findAll LIMIT/OFFSET ํ˜ธํ™˜์„ฑ fix + /products/recent alias โœ… 200 (DB ๋นˆ ์ƒํƒœ ์ •์ƒ)
C. ํšŒ๊ท€ Playwright 5๋„๋ฉ”์ธ sweep + mall deep โœ… 5/5 PASS
D. ๋ฐฑ์—… DB dump 381KB / Docker prelaunch tag 3๊ฐœ / git tag 3๊ฐœ โœ… ๋กค๋ฐฑ ๊ฐ€๋Šฅ

user.stage8.club / santa.stage8.club / NextAuth / DB schema ๋ฏธ์ˆ˜์ • โ€” ๋ผ์ด๋ธŒ ์•ˆ์ „.


2. D-10h..D-0 ์ฒดํฌ๋ฆฌ์ŠคํŠธ

์ธํ”„๋ผ ํ—ฌ์Šค (๋ผ์ด๋ธŒ 1h ์ „ ์žฌ์‹คํ–‰)

ssh root@66.42.34.229 'systemctl is-active nginx docker; pm2 jlist | jq "[.[] | select(.pm2_env.status==\"online\")] | length"; docker ps -q | wc -l'
# ๊ธฐ๋Œ€: nginx active / docker active / PM2 5 / Docker 3

๋„๋ฉ”์ธ ์‘๋‹ต

for u in stage8.club www.stage8.club user.stage8.club mall.stage8.club santa.stage8.club; do
  curl -sk -o /dev/null -w "$u %{http_code}\n" https://$u/
done
# ๊ธฐ๋Œ€:
# stage8.club 200 (์ •์  ๋žœ๋”ฉ)
# www.stage8.club 200 (์ •์  ๋žœ๋”ฉ)
# user.stage8.club 200 (NextAuth /login redirect ํ›„ 200)
# mall.stage8.club 200 (mall HomePage)
# santa.stage8.club 200 (admin /login redirect ํ›„ 200)

SSL ๋งŒ๋ฃŒ

openssl x509 -in /etc/letsencrypt/live/mall.stage8.club/fullchain.pem -noout -enddate
# ๋งŒ๋ฃŒ โ‰ฅ 30์ผ์ด๋ฉด OK. SAN: stage8.club, www.stage8.club, user.stage8.club, mall.stage8.club, santa.stage8.club

ํ•ต์‹ฌ ์‚ฌ์šฉ์ž ํ๋ฆ„ (์ˆ˜๋™ 1ํšŒ)

# ํ๋ฆ„ ๊ธฐ๋Œ€
1 stage8.club ๋ฐฉ๋ฌธ โ†’ "ํšŒ์›๊ฐ€์ž…" ํด๋ฆญ user.stage8.club/register ์ด๋™
2 stage8.club โ†’ "$100 ์นด๋“œ ๊ตฌ๋งค" ํด๋ฆญ mall.stage8.club ์ด๋™
3 ํšŒ์›๊ฐ€์ž… (์ด๋ฉ”์ผ+์•ฝ๊ด€) dashboard ์ง„์ž…, board=0
4 mall.stage8.club ๋ฐฉ๋ฌธ (๋น„๋กœ๊ทธ์ธ) "8๋‹จ๊ณ„ ํšŒ์› ์ „์šฉ ํ˜œํƒ" ์„น์…˜ ๋…ธ์ถœ, "๋กœ๊ทธ์ธํ•˜๊ณ  ๋‚ด Stage ํ™•์ธ" CTA
5 mall ๋กœ๊ทธ์ธ ํ›„ ํ™ˆ "ํ˜„์žฌ Stage N ยท ํšŒ์› ์ „์šฉ ํ˜œํƒ" ํ—ค๋” + ํ˜„์žฌ Stage ์นด๋“œ ํ•˜์ด๋ผ์ดํŠธ
6 Stage 1 ๊ฒฐ์ œ ($30 ์นด๋“œ ๊ตฌ๋งค) ๊ฒฐ์ œ ํ›„ cash_point ์ฐจ๊ฐ, board=1, 4๋‹จ๊ณ„ commission ๋ถ„๋ฐฐ
7 Avatar Package $7,680 ๊ฒฐ์ œ 4 ๋ถ„์‹  ์ž๋™ ์ƒ์„ฑ, ๋ถ„์‹  ์ž๋™ Stage ๊ฒฐ์ œ
8 mall์—์„œ ์ƒํ’ˆ ๊ตฌ๋งค (ํ˜„์žฌ 1127_mall_products 0 row โ€” ๋ผ์ด๋ธŒ ์‹œ ์‹œ๋“œ ํ•„์š”)

ํŠธ๋ ˆ์ด๋”ฉ ๋ฌด์˜ํ–ฅ ํ™•์ธ

# stage8 ์„œ๋ฒ„์—๋Š” ํŠธ๋ ˆ์ด๋”ฉ ์„œ๋น„์Šค ์—†์Œ (gunja-pair-hedge, gate-pair-hedge๋Š” kahan/gate)
# 4์„œ๋ฒ„ ํŠธ๋ ˆ์ด๋”ฉ ํ—ฌ์Šค
ssh -p 7405 root@66.42.42.24 'systemctl is-active gunja-pair-hedge gunja-multi-tenant'
ssh root@167.179.73.229 'systemctl is-active gate-pair-hedge'
# ๊ธฐ๋Œ€: active active active

3. ์‚ฌ์šฉ์ž (C) ๊ฒฐ์ • ํ›„์† โ€” Q2 + Q3 ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ

Q2. getAllProducts SAMPLE data ์ œ๊ฑฐ (โœ… ์™„๋ฃŒ)

Q3. ๋กœ๊ทธ์ธ ์ƒํƒœ ๋ณธ์ธ ์‹ค์ฆ (โœ… ๊ฒ€์ฆํ™˜๊ฒฝ ํ•œ์ •)

G2. mall ์ž์ฒด ๋กœ๊ทธ์ธ โ†’ user.stage8.club ์œ„์ž„ (โœ… ์‹ ๊ทœ fix)

๊ฒ€์ฆ ํ•œ๊ณ„ (์ •์ง)

  1. ๋กœ๊ทธ์ธ ์ƒํƒœ mall = ์ž„์‹œ ํ† ํฐ ์ฃผ์ž… ์ธ๊ณต ํ™˜๊ฒฝ์—์„œ๋งŒ ๊ฒ€์ฆ. ์‹ค ์‚ฌ์šฉ์ž๊ฐ€ user.stage8.club NextAuth ๋กœ๊ทธ์ธ ํ›„ mall.stage8.club๋กœ ์ด๋™ํ•ด๋„ mall์€ ๋น„๋กœ๊ทธ์ธ (SSO ๋ฏธ๊ตฌํ˜„). MyStageBenefits/StagesPage์˜ ๋กœ๊ทธ์ธ ๋ชจ๋“œ๋Š” ๋ผ์ด๋ธŒ ํ›„ SSO ํ†ตํ•ฉ sprint ํ•„์š”
  2. ์šด์˜ ์‹œ๋‚˜๋ฆฌ์˜ค (๊ฒ€์ฆ ๊ฐ€๋Šฅ): stage8.club ๋žœ๋”ฉ โ†’ mall.stage8.club/stages (๋น„๋กœ๊ทธ์ธ ์นดํƒˆ๋กœ๊ทธ) โ†’ "Stage X ๊ฒฐ์ œํ•˜๊ธฐ" โ†’ user.stage8.club/mall (NextAuth ๋กœ๊ทธ์ธ ํ›„ ๊ฒฐ์ œ)
  3. ๋ชจ๋ฐ”์ผ viewport, cross-browser, Docker rollback dry-run, DB restore dry-run ๋ชจ๋‘ ๋ฏธ์ˆ˜ํ–‰

๊ทธ ์™ธ ์ž”์—ฌ (์‚ฌ์šฉ์ž ๊ฒฐ์ •)

A. mall stage benefits API ์‘๋‹ต์— benefits_description ๋ˆ„๋ฝ

B. SSL ์ธ์ฆ์„œ ๋งŒ๋ฃŒ

C. DB ๋ฐฑ์—… VIEW 2๊ฐœ ๋ˆ„๋ฝ

D. mall โ†” user.stage8.club SSO ํ†ตํ•ฉ (๋ผ์ด๋ธŒ ํ›„ sprint)


4. ๋กค๋ฐฑ ์ž์‚ฐ (/opt/backup/prelaunch-20260428/)

์ž์‚ฐ ์šฉ๋„
stage8_main.sql (381 KB, 22 INSERTs) DB full restore
nginx-sites-enabled.tar.gz nginx ์„ค์ • ์›๋ณต
Docker tag :prelaunch-20260428 (frontend/backend/auth-api) ์ปจํ…Œ์ด๋„ˆ ์ฆ‰์‹œ ๋กค๋ฐฑ
git tag prelaunch-20260428 (stage8-user, stage8-mall, stage8-auth) ์ฝ”๋“œ ์›๋ณต
/etc/nginx/_backups/*.bak-prelaunch-* nginx vhost ๋ฐฑ์—…๋ณธ
HomePage.tsx.bak-prelaunch-20260428, Product.js.bak-*, routes/products.js.bak-* ํ•ต์‹ฌ ํŒŒ์ผ ์›๋ณธ

์ฆ‰์‹œ ๋กค๋ฐฑ ๋ช…๋ น (์ด์Šˆ ๋ฐœ์ƒ ์‹œ)

# 1) Docker ์ด๋ฏธ์ง€ ๋กค๋ฐฑ (frontend)
ssh root@66.42.34.229 '
  docker tag opt-stage8-mall-frontend:prelaunch-20260428 opt-stage8-mall-frontend:latest
  cd /opt && docker compose up -d --no-deps stage8-mall-frontend
'

# 2) Docker ์ด๋ฏธ์ง€ ๋กค๋ฐฑ (backend)
ssh root@66.42.34.229 '
  docker tag opt-stage8-mall-backend:prelaunch-20260428 opt-stage8-mall-backend:latest
  cd /opt && docker compose up -d --no-deps stage8-mall-backend
'

# 3) nginx ๋ถ„๊ธฐ ์›๋ณต (๋žœ๋”ฉ โ†’ user ์ฝ”๋“œ ๋…ธ์ถœ๋กœ ํšŒ๊ท€)
ssh root@66.42.34.229 '
  cp /etc/nginx/_backups/stage8.club.conf.bak-prelaunch-* /etc/nginx/sites-available/stage8.club.conf
  nginx -t && systemctl reload nginx
'

# 4) DB ๋ณต๊ตฌ (ํ•„์š” ์‹œ)
ssh root@66.42.34.229 '
  mysql stage8_main < /opt/backup/prelaunch-20260428/stage8_main.sql
'

5. ๋ผ์ด๋ธŒ ์ง์ „ (D-1h) ์ ๊ฒ€ ์ž๋™ํ™”

/opt/star365-hq/stage8-landing/qa/sweep.mjs ์žฌ์‹คํ–‰์œผ๋กœ ํšŒ๊ท€ ํ™•์ธ:

cd /opt/star365-hq/stage8-landing/qa && node sweep.mjs | tail -10
# ๊ธฐ๋Œ€: 5/5 โœ…, miss:0, cerr:0, nfail:0

6. ๋ผ์ด๋ธŒ ํ›„ 24h ๋ชจ๋‹ˆํ„ฐ๋ง

์ง€ํ‘œ ์ž„๊ณ„๊ฐ’ ์ถœ์ฒ˜
stage8.club ๊ฐ€์šฉ์„ฑ 99% curl 5๋ถ„ polling
mall API 5xx < 1% docker logs opt-stage8-mall-backend-1 | grep error | wc -l
nginx 4xx ๋น„์œจ < 5% /var/log/nginx/access.log
PM2 5/5 online 100% pm2 jlist
Docker 3/3 healthy 100% docker ps
MySQL connection error 0 docker logs ... 2>&1 | grep ECONN
์‹ ๊ทœ ํšŒ์›๊ฐ€์ž… tracking 1127_users row delta

7. ๊ฒฐ๋ก 

โœ… GO ๊ถŒ์žฅ (D-10h ์‹œ์ , ์ž„์‹œ CEO ํŒ์ •)

โš ๏ธ ๋ผ์ด๋ธŒ D-1h ์ถ”๊ฐ€ ์ž‘์—… ๊ถŒ์žฅ:

  1. 1127_mall_products ์‹ค ์ƒํ’ˆ ์‹œ๋“œ (ํ˜„์žฌ 0 row)
  2. getAllProducts controller sample data โ†’ Product.findAll ์ „ํ™˜ ๊ฒฐ์ •
  3. sweep.mjs 1ํšŒ ๋” ์‹คํ–‰ํ•˜์—ฌ ํšŒ๊ท€ ์žฌํ™•์ธ
  4. ์ฒซ ํšŒ์›๊ฐ€์ž… 1๊ฑด ์‚ฌ์šฉ์ž ๋ณธ์ธ ์‹ค์ฆ

โ€” ์ž„์‹œ CEO ๋ณด๊ณ  ๋.