유형: 현황 (기능별 리팩토링 체크리스트 — 완료 판정 원장/run-of-record)
최종 업데이트: 2026-07-07 (manager · reviewer granularity 입력 반영 · 진행따라 갱신)
웹뷰: https://chat.punkpoll.com/doc/checklist
기능별 리팩토링 체크리스트 (V3 완료 원장)
단위 = 클릭요소/기능 (페이지 아님) — reviewer 원칙: G4(死클릭 0)·G5(픽셀)는 요소 단위로만 검증 가능. "설문상세 페이지 done"이 아니라 "VoteButton done / 좋아요토글 done / 참여자셀→VoterResultModal done" 각각. 페이지 단위 done%는 死클릭을 숨겨 V2 실패를 재현하므로 금지.
각 행 = 클릭요소/기능. A출처=A file:line provenance. G1~G6=측정모델(/doc/measure) 이진 게이트(전부 통과=done). 상태 ▢대기 ◐부분 ✓통과. 담당 producer=구현+G1+G5캡처 / verifier=reviewer.
행 소스 = 전 페이지 클릭맵(/doc/parity-map A-1~A-16). 아래는 클릭 집중 페이지의 요소 전개. 나머지 페이지 요소도 P2 착수 시 parity-map에서 행으로 전개(전부 요소 단위). 현재 전부 ▢(V3 착수 전). run-of-record = submanager 원장.
provenance(A출처)+G2 A대조 = reviewer 확립(2026-07-07): 아래 프론트 요소는 A 실코드로 대조 완료(◐=A동작 확립). B 구현 시 각 행 G2=B가 이 A동작과 일치하는지 reviewer 최종 판정.
A. 헤더/전역 (출처: Header.jsx·Nav.jsx·UserMenuPanel.jsx)
| 클릭요소 | A출처 | 목적지/동작 | G1 | G2 | G3 | G4 | G5 | 담당 | done |
| 로고 | Header:50 | 홈(/explore) | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
| 검색 아이콘 | Header | 검색창+태그 | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
| 태그 클릭 | — | 태그 설문/토큰 | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
| Polls | Nav:190 | /explore | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
| 채널 | Nav:218 | 채널 브라우즈 | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
| Poll 만들기 | Nav:233 | 로그인→/builder / 비로그인→LoginModal | ▢ | ◐ | ▢ | ▢ | ▢ | dev | ▢ |
| vote/live/feedback/opinion-poll/panel | Nav:248·265·282·299·316 | 각 정적/피드 페이지 | ▢ | ◐ | ▢ | ▢ | ▢ | dev | ▢ |
| 프로필 이미지 | UserMenu:68 | 마이페이지 | ▢ | ▢ | ▢ | ▢ | ▢ | dev2 | ▢ |
| 지갑 | UserMenu:82 | WalletModal(모달) | ▢ | ▢ | ▢ | ▢ | ▢ | dev2 | ▢ |
| My Page 버튼 | UserMenu:86 | 마이페이지 | ▢ | ▢ | ▢ | ▢ | ▢ | dev2 | ▢ |
| 관리자(role) | UserMenu:95 | admin 새탭 | ▢ | ▢ | ▢ | ▢ | ▢ | dev2 | ▢ |
| 내 채널 리스트 | UserMenu:114 | 채널 매니저 | ▢ | ▢ | ▢ | ▢ | ▢ | dev2 | ▢ |
| 로그아웃(소셜별) | UserMenu:139 | 카카오/텔레그램 로그아웃 | ▢ | ▢ | ▢ | ▢ | ▢ | dev2 | ▢ |
B. explore 피드 + 설문 사이드패널 (출처: PollCard·CardActions·DetailSideModal·VoteButton)
| 클릭요소 | A출처 | 목적지/동작 | G1 | G2 | G3 | G4 | G5 | 담당 | done |
| 설문 카드 | PollCard:94 | 사이드패널(DetailSideModal) | ▢ | ▢ | ▢ | ▢ | ▢ | dev/dev2 | ▢ |
| Vote 버튼 | VoteButton:30 | 로그인→챗봇 / 비로그인→로그인모달 | ▢ | ▢ | ▢ | ▢ | ▢ | dev2 | ▢ |
| 좋아요 토글 | CardActions:158 | POST like(로그인게이트) | ▢ | ▢ | ▢ | ▢ | ▢ | dev2 | ▢ |
| 댓글 | CardActions:208 | CommentModal | ▢ | ▢ | ▢ | ▢ | ▢ | dev2 | ▢ |
| 공유 | CardActions:213 | ShareModal | ▢ | ▢ | ▢ | ▢ | ▢ | dev2 | ▢ |
| 채널명 | CardChannelInfo:8 | 채널 상세 | ▢ | ▢ | ▢ | ▢ | ▢ | dev2 | ▢ |
| 새창열기(패널) | DetailSideModal:131 | 설문 상세 | ▢ | ▢ | ▢ | ▢ | ▢ | dev2 | ▢ |
| 링크복사(패널) | DetailSideModal:146 | URL 복사 | ▢ | ▢ | ▢ | ▢ | ▢ | dev2 | ▢ |
| 팔로우(패널) | ChannelProfile | 팔로우 토글(로그인게이트) | ▢ | ▢ | ▢ | ▢ | ▢ | dev2 | ▢ |
| 태그 필터 | TagList:78 | /explore?tag= | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
| +더보기 | PollList:191 | 무한스크롤 | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
C. 설문 상세 6탭 (출처: PollDetailTab·ResultDetail·ParticipantsDetail)
| 클릭요소 | A출처 | 목적지/동작 | G1 | G2 | G3 | G4 | G5 | 담당 | done |
| 결과 탭 | PollDetailTab:50 | ResultDetail(게이팅) | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
| 문항 탭 | PollDetailTab | QuestionsDetail | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
| 참여자 탭 | PollDetailTab | ParticipantsDetail | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
| 내 투표 탭 | PollDetailTab:148 | myResult(voteYn게이트) | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
| 크레딧 탭 | PollDetailTab | CreditDetail | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
| 모니터링 버튼 | PollDetailTab:177 | RealtimeMonitor(차트효과) | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
| 결과 차트타입 | ResultDetail:188 | pie/bar 전환 | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
| 참여자 CID셀 | ParticipantsDetail:169 | VoterResultModal | ▢ | ▢ | ▢ | ▢ | ▢ | dev | ▢ |
D. 채널/마이페이지/빌더 (요소 전개 — parity-map A-4~A-6·A-11)
채널 브라우즈(만들기·정렬·태그·카드·팔로우) · 채널 상세(전환/관리·토큰·보유자패널·팔로워패널·편집·공유·태그·SNS8) · 마이페이지(팔로잉패널·태그·설문카드·토큰컬럼·활동→탐색기·보유토큰) · 빌더 5스텝(각 스텝 다음·업로드·AI·태그·문항추가·시간·리워드·배포) · 관리자 허브 7뷰(각 뷰 내부 요소=대시보드 토글/수정/⋮/배포/모니터링·배포 탭·블록체인 해시·리포트 기간·PUNK 충전·매니저) — 각 요소 행 P2 전개(parity-map 근거).
E. 백엔드 파이프라인 (기능 단위·G4=파이프 실행)
| 기능 | A출처(통폐합) | G1 | G2 | G3 | G4 | 담당 | done |
| 메신저 게이트웨이(카카오+텔레그램) | kakaoChatBot+telegramBot 통합 | ▢ | ▢ | ▢ | ▢ | backend1 | ▢ |
| 인증(OAuth·nullifier=resolveAUser) | auth-gateway | ▢ | ▢ | ▢ | ▢ | backend1 | ▢ |
| 설문 CRUD·조회 | punkpoll_api→core-api | ▢ | ▢ | ▢ | ▢ | backend1 | ▢ |
| 설문 배포 workflow | SysRequest 분리 | ▢ | ▢ | ▢ | ▢ | backend1 | ▢ |
| 참여 수집·콜백 | SysResponse | ▢ | ▢ | ▢ | ▢ | backend1 | ▢ |
| 참여내용 IPFS(즉시CID·멱등) | punkpoll-ipfs | ▢ | ▢ | ▢ | ▢ | backend1 | ▢ |
| 소셜 enrich(좋아요·댓글·팔로우) | api comment/channel | ▢ | ▢ | ▢ | ▢ | backend1 | ▢ |
| 결제(PUNK·KCP·정산대사) | api payment | ▢ | ▢ | ▢ | ▢ | backend2 | ▢ |
| 패널 관리 | punkpollUtil | ▢ | ▢ | ▢ | ▢ | backend1 | ▢ |
F. 온체인 (오퍼레이션 단위·G6=실 Fuji 트레이스, producer=backend4/verifier=reviewer)
G6는 reviewer 독립 Fuji RPC 트레이스로 판정(backend4 주장≠근거). 6/8 이미 G6 ✓(T5 실증). G1~G4(V3 재구조 배선)는 P2 재검증.
| 오퍼레이션 | A출처 | G1 | G2 | G3 | G4 | G6 | producer | done |
| deploy(per-survey SurveyNFTV2 factory) | blockchainApi.deploySurveyContract | ▢ | ▢ | ▢ | ▢ | ✓ | backend4 | ◐(G6✓) |
| deposit(approve→depositRewardTokens) | contractService.depositReward | ▢ | ▢ | ▢ | ▢ | ✓ | backend4 | ◐(G6✓) |
| participate(register+backendSigner sig) | txSender/contractService | ▢ | ▢ | ▢ | ▢ | ✓ | backend4 | ◐(G6✓) |
| reward(1인1 hasClaimedReward) | _rewardUser | ▢ | ▢ | ▢ | ▢ | ✓ | backend4 | ◐(G6✓) |
| SBT mint(mintReceipt+IPFS) | receiptSbtService | ▢ | ▢ | ▢ | ▢ | ✓ | backend4 | ◐(G6✓) |
| settle(잉여 owner반환·항등식) | contractService.settle | ▢ | ▢ | ▢ | ▢ | ✓ | backend4 | ◐(G6✓) |
| custodial provision(서버생성·KEK) | blockchainApi wallet gen | ▢ | ▢ | ▢ | ▢ | ▢ | backend4 | ▢ (G6 부분·픽스처 대기) |
| FT 토큰 전송(TransferWorker) | blockchainApi Avalanche ERC20(A현재) | ▢ | ▢ | ▢ | ▢ | ▢ | backend4 | ▢ (G6 실증 대기) |
| 운영복원력(TX복구4·RPC·멀티feePayer) | txSender+blockchainApi | ▢ | ▢ | ▢ | ▢ | ▢ | backend4 | ▢ (프로덕션 컷오버 게이트) |
진행률: done 0 (P2 착수 전). 프론트 요소 행은 parity-map 전 요소로 P2에서 완전 전개(死클릭 0 보장 위해 요소 단위 필수). 온체인 8기능 G6·백엔드 9기능 G4·프론트 요소 수백.
공통 부채(전 행 적용): SQL injection→파라미터 바인딩 · 개인키평문→custodial · 하드코딩키→resolveAUser · .jsx→.tsx · 거대파일 분리 · 폴링→store구독.