Schedule · 앞으로의 단계

앞으로 언제 · 무엇을

2026-08-17 기준: zenith-sdk 이름 교체 진행. L3(자체 프로그램+공개 SDK) 착수. 남은 큰 축은 한번에 주문 가능한 부하(2일)·다크 테마(1일)·컷오버.

이 페이지는 남은 일을 단계·기간으로 잡는 로드맵입니다.
다음 단계
운영 하드닝
업무일 0.5일 잔여 (RPC 통일 반영)

프로덕션 전 키·RPC·관측. UI 주문은 유저 Phantom — trade-api에 WALLET_SECRET_KEY 불필요. 서버 키는 load-test 전용.

마일스톤 일정표

#마일스톤기간상태요약산출물전제
01프로토타입 · 사양 고정완료완료UI·사양을 고정해 이관 기준을 만들었던 단계
  • FS-01~11 화면 프로토타입
  • 기능 사양 · 스토리보드 · 아키텍처 문서
—
02플랫폼 이관 · 실연동완료완료동접 대비 서비스 분리 후 Railway dev에 올린 단계
  • web / trade-api / realtime / ingest 분리
  • 실데이터 SSE·주문·fills·Online
  • Railway dev Online
—
03지갑 MetaMask → Phantom 교체완료 (iOS 딥링크 제외)완료1단계 지갑을 Phantom(PC 확장 + Android 인앱)으로 통일. 모바일 첫 연결 승인·서명 세션 이슈(v0.1.6)까지 반영
  • Select Wallet · 연결/복원/해제 — Phantom 단일 경로
  • 주문·취소 prepare 트랜잭션 Phantom 서명
  • 모바일 첫 연결: 주입 connect 우선 · 승인 시트 (Railway v0.1.6+)
  • PC·Android 스모크 — iOS는 m3d에서 완료
  • 제품 정책 확정(Phantom PC+모바일 통일 · checkpoints c0200)
  • 플랫폼 이관·실연동 완료
04차트 스키마 candle_bars 전환완료완료기간 조회를 위해 시리즈+bars[] 대신 봉 1문서(candle_bars)로 전환. API 응답 shape 유지
  • ingest·trade-api → candle_bars upsert/조회
  • 레거시 candle_series 1회 마이그레이션 폴백
  • pair/marketId 라벨 · Railway v0.1.7 배포
  • 문서 /scripts · checkpoints c0910
  • Mongo 접근
  • 차트 API·웹 계약 유지
05DOGEK 마켓 DB 과거 데이터 심기완료완료백필 CLI로 fills·candle_bars를 채우고 로컬·dev에서 차트·테이프까지 검증 완료
  • scripts/backfill-fills.ts — 체인 fills + candle_bars 재구성
  • 로컬·Railway dev Mongo 백필 · 차트·테이프 스모크
  • 운영 Mongo 재확인은 컷오버(m7) 전
  • candle_bars 전환 완료 (m3c)
  • MONGO_URL · SOLANA_RPC_URL(Helius 권장)
06동시접속 SSE 부하테스트 (~900명)완료완료load-sse --full-tab로 Trade UI와 동일 SSE를 실측. realtime 1대 운영 한도 ≈ full-tab 900유저
  • scripts/load-sse.ts · --full-tab · --ramp 100/2s · hold 60s
  • 500명 100% · 1000명 94.6% (Railway dev) — /load-test-report
  • 1대당 ~900유저(SSE≈4500) 가정 · Online 뻥튀기 시 realtime 재시작
  • realtime · Redis · REALTIME_URL
07아이폰 최적화완료완료iOS Safari·Phantom 인앱에서 지갑 연결·서명·레이아웃을 맞춤. 대상은 아이폰 X 이후(c4500). Blowfish Request blocked는 Phantom 측(c4700)
  • iOS Safari Trade UI · 세이프 에어리어 · 아이폰 X 주문칸 압축
  • Phantom iOS 인앱 연결·주문 서명 경로
  • 모바일 뷰포트·터치 · iOS 16+(Phantom 스토어)
  • Phantom PC·Android 경로 완료 (m3b)
  • 실기기 또는 시뮬레이터 접근
08운영 하드닝업무일 0.5일 잔여 (RPC 통일 반영)운영프로덕션 전 키·RPC·관측. UI 주문은 유저 Phantom — trade-api에 WALLET_SECRET_KEY 불필요. 서버 키는 load-test 전용.
  • WALLET_SECRET_KEY — load-test만 (주문 부하). trade-api는 Phantom 경로
  • 유료 Solana RPC(Helius) — trade-api·ingest·load-test 적용
  • 알림·로그 최소 세트 (Telegram trade-api·ingest)
  • Open Orders → trade-api 내부 URL (realtime)
  • Helius 플랜(Pro 권장)·production 변수는 컷오버/한번에 주문 부하와 병행
  • Railway 프로젝트 접근권한
  • RPC 벤더 계정
09Manifest SDK → Zenith SDK업무일 1일진행중앱이 @bonasa-tech/manifest-sdk 대신 zenith-sdk를 import 하게 바꾼다. 온체인 프로그램 포크는 포함하지 않음
  • zenith-sdk 패키지(래퍼·이름) · web/trade-api/load-orders import 교체
  • 로컬·dev 주문·취소 스모크
  • 플랫폼 이관 완료 (m2)
  • 공개 npm·L3 포크는 별도 결정 (이 1일에 넣지 않음)
10Zenith 자체 프로그램 + 공개 zenith-sdk진행중 (배포·npm·Solscan은 계정)진행중Manifest Core·Wrapper를 포크해 새 프로그램 ID로 메인넷에 올리고, 그 ID가 박힌 @zenith/zenith-sdk를 공개한다
  • zenith-program GPL 포크 · Core HQY4XUKnn… · Wrapper CxbMmW7SWZ…
  • 메인넷 deploy · create-zenith-markets · LISTED_MARKETS 교체
  • npm publish @zenith/zenith-sdk · Solscan Public name Zenith
  • GPL-3.0 소스 공개 수용
  • npm @zenith 조직 · 솔라나 deploy 키·SOL
  • 기존 Manifest 북 이전 없음
11한번에 주문가능한 부하테스트업무일 2일예정load-orders 1건 성공·동시 100건은 Helius 429. 스로틀(15~30초)·플랜(Pro 권장) 후 1000건 재시도
  • 1건 dogek-sol 성공 (Helius)
  • 동시 100건: sent≈2 fail≈98 (429) — RPS 병목 확인
  • 동시성 제한·15~30초 분산 후 1000건 · /load-test-report 주문 실측
  • WALLET_SECRET_KEY · Helius (Professional 권장, checkpoints c3100)
  • Railway load-test · SOL 가스비
12다크 테마 추가업무일 1일예정라이트/다크를 사용자가 고르게 한다. CSS 변수 + 차트 색만 바꾸고 셸·차트는 remount하지 않음
  • html[data-theme] 토큰 · localStorage · 헤더 토글
  • lightweight-charts applyOptions (배경·그리드·캔들)
  • 라이트 가정 hex(#fff mix, Buy/Sell 글자) 토큰화
  • 트레이드 UI 레이아웃 고정
  • m6 QA 직전에 넣어 라이트/다크를 한 번에 검수
13테스트 및 수정약 1주예정E2E·시나리오 검증과 발견 이슈 수정을 묶어, 컷오버 전에 품질을 맞추는 단계
  • 핵심 시나리오 점검 (호가 SSE · 주문/취소 · fills · Open Orders · Online · 차트)
  • 모바일 Phantom · 아이폰(m3d) · candle_bars 기간 조회
  • 부하·시드·하드닝 이후 이슈 트래킹·수정
  • 스모크 체크리스트 갱신 · 잔여 버그 정리
  • 운영 하드닝 · 주문 부하 진행(또는 병행)
  • 다크 테마(m5dark) — QA에 라이트/다크를 같이 넣음
  • DOGEK 시드·동시접속 실측 반영
14프로덕션 컷오버업무일 1일 (테스트·수정 이후)예정production 환경과 공개 도메인으로 넘기는 단계
  • production 환경 생성·배포
  • 커스텀 도메인 · TLS
  • 스모크 체크리스트 통과 (호가·주문·체결·Online)
  • 운영 Mongo DOGEK 백필 완료 확인
  • 운영 하드닝 완료
  • 부하테스트 · 테스트/수정 결과 검토
  • 도메인 DNS 권한
일정 가정
업무일 기준 · 주말·외부 대기(키 발급, DNS)는 별도
홀딩 항목(Balances ops UI)은 일정에 넣지 않음 — 재개 시 일정 재산정
차트 정본은 candle_bars(봉 1문서). 레거시 candle_series는 마이그레이션 후 폐기 가능
DOGEK 과거 fills·candle_bars 백필 — 완료 (운영 Mongo 재확인은 컷오버 전)
동시접속: load-sse --full-tab · realtime 1대 운영 한도 ≈900유저(SSE≈4500) — 실측 완료
한번에 주문 가능한 부하: load-orders · 업무일 2일 · Helius RPS≠주문수 · 15~30초 스로틀 · Professional 권장 (checkpoints c3100)
zenith-sdk 1일: import 이름 교체. L3(자체 프로그램+공개 npm)는 m5l3 — GPL·호가 0부터·Solscan 메일
다크 테마: 업무일 1일 — m6 QA 직전. CSS 토큰 + 차트 색 동기화 (화면 remount 없음)
아이폰(Safari/Phantom 딥링크) 최적화 — 완료 (m3d)
확정 캘린더가 아니라 여유를 둔 추정
관련 링크이동
기능 사양서/spec →
Railway web (dev)열기 ↗