유형: 현황 (프론트 A정합 배선 매핑 — A 라우트 전수 기준·A-시각 검증)
최종 업데이트: 2026-07-07 (submanager 74라우트 전수집계 / manager 사이드모달 정정 / dev 8라우트 실체판정 반영 — vote·live·live/[uid]·opinion-poll·daily·explore-2·feedback·m/builder)

프론트 A정합 배선 매핑 (frontend-a-parity-map)

목적: A(www.punkpoll.com)의 모든 라우트/링크를 B(v2dev)와 1:1 시각/구조 대조해, 각 페이지가 A의 UI/UX 표현 그대로인지 판정한다. "완료" = A 원본 페이지와 나란히 놓고 시각적으로 일치(A-시각 검증) 통과분만. (컴포넌트 존재·데이터 옴 만으로는 불충분.)

A 소스 = 실측: punkpoll_web(Next 14 app router) page.* 파일 전수 = 총 74 라우트. 추측 금지.

상태 범례: ✅완료(A-시각 검증 PASS·배포) / 🔧진행(수정중 or 백엔드 대기) / ⏳페이즈드(고급/후반) / ❌미착수·미검증

갭유형: 데이터표현 / 레이아웃 / 탭 / 진입(배선) / 상호작용. 담당: 데이터=백엔드 · 레이아웃/탭/진입/상호작용=프론트(dev/dev2).


A 커버리지 실측 (2026-07-07) — 매핑 ≠ 검증

구분A 라우트맵 행(매핑)A-시각 PASS(완료)
① 핵심 사용자29~137
② 푸터/정적2200 (후반)
③ 어드민210 (기능 별도완료)A-시각 미포함
④ 인증/시스템200 (M4 등)
합계74~137

정직한 답(jegwon '어느정도 커버?') — 두 지표 구분:


① 핵심 사용자 페이지 29 (A-시각 검증 우선)

A 라우트A 소스 컴포넌트B 상태갭유형담당A-시각 검증
/app/page.jsx(6줄)dev실체판정(2026-07-07 dev): A /=redirect(routes.home='/explore') 6줄 — 별도 홈 페이지 없음. B 동일(redirect /explore) = A정합 확인 완료(기존 🔧는 과잉 표기)
/explore 탐색(pages)/exploredevPASS (jegwon 확인·품질기준)
/explore-2 탐색변형(pages)/explore-2🚫레거시dev실체판정(2026-07-07 dev 정찰): 레거시/데드 — 포팅 제외. explore 의 CSR 변형(Explore2 35줄), 진입링크 0·routes.js 미정의. 근거: app/(pages)/explore-2/page.jsx
/search 검색(pages)/search/page.jsx(240줄)⏳footer종속dev실체판정(2026-07-07 dev): footer 가이드/약관 페이지 검색기(하드코딩 searchablePages·클라 키워드매칭·진입링크 0). 결과 링크가 전부 ② footer/정적 22 페이지 → footer 트랙(컷오버 후반)과 함께 포팅(지금 하면 결과 전부 404)
/channel 채널브라우즈(pages)/channel·ChannelInfo레이아웃dev2PASS (#113 프로필 오버랩·통계중앙·following)
/channel/[id] 채널상세ChannelProfile🔧레이아웃(미세)dev2메타라인·설문수 미세차(CLONE_MATRIX 기록)
/channel/[id]/manager 관리자허브Channel manager tabs🔧탭+레이아웃dev2+backend4진입 ✅(#108) / 허브 풀(대시보드·팔로워·분석·blockchain·participants·편집) A-시각 미검증
/channel/[id]/edit 채널편집ChannelEditForm🔧레이아웃dev2백엔드 #75 / 프론트 A-시각 미검증
/channel/create 채널만들기ChannelForm🔧레이아웃+기능dev2+backend1레이아웃 진행(비업로드) / 이미지 업로드+크롭 엔드포인트 대기
/poll/[id] 설문상세Poll·PollDefaultInfo·PollDetailTab레이아웃+탭devPASS (#111 좌측카드+#114 탭 A순서·게이팅·my-vote)
/token/[id] 토큰상세Token·TokenStatistics🔧데이터+레이아웃dev2+backend1메타(#116) 배포 / 차트(공급분포·통계) 엔드포인트 대기
/user/[id] MyPageProfileCard·통계·탭🔧진입+레이아웃dev2진입 ✅(#110) / 통계 pill 데이터 A정합(#115+#129) / 🔴 실세션(jegwon 2026-07-07): 숫자는 나오나 페이지 전체 표현이 A와 다름 — pill만 봤지 페이지 껍데기(ProfileCard·탭·섹션·아바타·배너) A대조 미실시 → dev2 전면 재대조 / 토큰도넛·이력링크 P1
/builder 빌더진입Poll(accordionItems·stepType)레이아웃devPASS 구조 (#117 3플랫→A 5스텝 아코디언+스텝네비)
/builder/poll 설문빌더Poll builder🔧기능devB1 구조 라이브 / B2 리워드·B3 고급(예치·배포채널·유권자등록) 페이즈드
/builder/ai-survey AI설문AiSurveyBuilder미착수devA AI 설문생성 — 미매핑
/m/builder/poll 모바일빌더m/builder/poll·MobileLogInPage⏳웹뷰전용진입dev실체판정(2026-07-07): 웹뷰/챗봇 전용 헤드리스 로그인 진입 셸(20줄) — routes.builderM, MainContent 가 Header/Footer 숨김. 포팅 = 챗봇/웹뷰 연동(M4) 시점 페이즈드
/mWallet 지갑MWallet·SBT·History🔧구조발산dev2+backend4🔴 실세션(jegwon 2026-07-07): '지갑 연결' 메시지만 — WalletGate가 A 발산(non-custodial 등록). custodial 교정 승인됨(로그인=지갑 자동) / SBT표시(#105)·Receive(#130)는 교정 위에 얹힘
/vote 투표(pages)/vote·Vote.jsx(179줄)dev실체판정(2026-07-07): '준비 중입니다' 정적 페이지(통계 0 하드코딩) — nav 링크 있음. B 이미 픽셀 재현(D-074 라이브 대조 채택)
/live 라이브(pages)/live·Live.jsx(191줄)dev#142 MERGED(reviewer 조건부 PASS) — YouTube 히어로·현황3·기능2·준비중 배너 A재현. 우측 카드=미니(placeholder 맥락 수용, SharePollCard A-exact는 live/[uid] 트랙)
/live/[surveyUid] 라이브상세app/live/[surveyUid]·SharePopupEnhanced🔧레이아웃dev#143 MERGED: 하단 프레임 3건 정합(공유 死버튼→실동작·안내 i18n·그라디언트). 잔여 = SharePollCard 561줄 A-exact(플립 카운트다운·평균색·PhoneInput 알림톡=★백엔드 EP 부재 게이트★·주최자)
/opinion-poll 여론조사(pages)/opinion-poll·OpinionPoll.jsx(121줄)dev#142 MERGED(reviewer PASS) — 통계4·기능2·준비중 배너 A재현
/daily 데일리(pages)/daily·Daily.jsx🚫데드dev실체판정(2026-07-07): 데드코드 — 포팅 제외. 진입링크 0·routes.js 미등록 고아 라우트(내용=차트+태그+폴리스트 동작하나 도달 불가)
/citizen 시민citizen미검증dev설문 변형 — 확인 후 매핑
/panel 패널panel미검증dev패널 — 확인 후 매핑
/login 로그인Login·auth🔧진입dev+backend인증 배선 동작 / A-시각(카카오/텔레그램 진입) 미검증
/l/[type]/[id] 공유딥링크share resolver미검증dev공유링크 → 상세 리다이렉트 — 미매핑
/punk/purchase PUNK구매PunkPurchase🔧레이아웃dev2+backend4buyPunk 백엔드 done / 구매 UI A-시각 미검증
/punk/purchase/return 구매완료purchase return미검증dev2결제 리턴 — 미매핑
/feedback 피드백(pages)/feedback·Feedback.jsx(131줄)🔧데이터표현dev#144 PASS(조건부) — 히어로(A자산)·특징4·CTA·목록 A재현. 잔여 = FeedbackQRCard 276줄 A-exact(QR 플립·★qrcode.react dep = dev2 #130 머지 게이트★)

컴포넌트/링크레벨(라우트 아님):


② 푸터/정적 22 (콘텐츠 — 컷오버 후반)

footer/how-to-use(+buy-tokens·create-poll·participate·voter-verification), footer/user-guide(enterprise·government·host·marketing·participant), footer/voting-system(receipt-nft·survey-system·votenft), footer/terms-privacy(+cookie·privacy·terms), footer/support(kakao·telegram), footer/about/initiative, cookie-policy, privacy-policy = 22. 상태 ❌ 미매핑. 정적 카피/레이아웃 위주라 A-시각 우선순위 낮음 — 코어 완료 후 일괄 대조.

③ 어드민 21 (기능 별도완료·관리자전용)

admin + admin/{alimtalk,alimtalk/templates,blockchain,channels,comments,costs,gas-price,notifications,payments,reports,scheduler,settings,settings/admins,settings/api-keys,settings/costs,settings/prompts,surveys,tokens,user2,users} = 21. 백엔드·관리기능 별도 완료(backend1/backend4/dev2 admin 도메인). A-시각 매핑 미포함(사용자 페이지 아님) — 별도 admin 정합 트랙.

④ 인증/시스템 2

auth/kakao/finish(카카오 OAuth 콜백 — M4 카카오 연결 시), dev/alimtalk-progress(내부 진행 페이지).


⑤ 글로벌 네비게이션·링크·모달 인벤토리 (라우트 아님 — "모든 링크" 커버)

jegwon '모든 링크' 요구 대응. A 실측(Explore) = 글로벌 네비링크 42 + 모달 15+. 라우트표(①~④)와 별개로 헤더/푸터/메뉴/모달의 이동·트리거를 전수 기록. 각 라우트 A-시각 검증 시 이 인벤토리의 해당 링크도 함께 대조.

5-A. 헤더 네비게이션 (Header/Nav — components/common/layout/header/)

링크목적지조건B 상태
로고/ (채널선택 시 /channel/[id])항상🔧
Explore/exploreprod
Channel/channel항상
Create Poll/channel/[id]/manager로그인🔧
검색 버튼태그/검색 모달 열기항상✅(#131 TagLayer 풀모달, reviewer A-시각 PASS·MERGED)
태그선택/explore?tag=검색모달✅(#131)
키워드검색/explore?q=검색모달✅ 프론트(#131) / 백엔드 searchKeyword 갭(backend1 큐)
Vote/Live/Feedback/Opinion-Poll/Panel각 라우트dev메뉴❌ (①에서 미검증)

5-B. 유저/채널/폴 메뉴 패널 (UserMenuPanel·ChannelMenuPanel·PollMenuPanel)

링크목적지조건B 상태
프로필 클릭/user/[id] or /channel/[id]/manager로그인✅ 진입(#110)
My Page/user/[id]로그인✅ 진입 / 🔧 레이아웃
Admin/admin (새탭)관리자별도 admin 트랙
채널항목/channel/[id]/manager채널보유✅ 진입(#108)
로그아웃세션종료로그인🔧 미검증
Create Channel/channel/create (비로그인→로그인모달)🔧
Create Poll/channel/[id]/manager (비로그인→로그인모달)🔧

5-C. 푸터 (Footer — 21 링크, ②정적과 연결)

How-to-use 4 · User-guide 5 · Voting-system 3 · Support 2(+이미지모달) · About/Whitepaper/Blog/X 외부4 · Legal 3 · 다크모드토글. → 전부 ❌ 미매핑(②코어 후반). 외부링크(punkpoll.io·blog·x.com)는 그대로 연결만.

5-D. 모바일 네비 (MobileNav) — 8 링크

Vote/Live 아이콘·Polls(/explore)·더보기(Feedback/Opinion-Poll/Panel/Channel/Admin)·프로필버튼(유저메뉴 팝업). B 상태 🔧 미검증(모바일 헤더 A대조 별도).

5-E. 페이지 내부 이동 링크 (라우트간)

5-F. 모달/오버레이 15+ (components/modals/)

LoginModal(카카오/텔레그램)·CommonModal·Alert·ConfirmDialog·ShareModal·SocialShareModal·SharePopupEnhanced·DetailSideModal(설문사이드·상단✅#80·하단액션바 #120으로 해소·재검증中)·FollowersSideModal·SocialGraphModal·VoterResultModal·PunkpollImageModal·IpfsModal·(Klaytn)ScopeModal·CommentModal·AlimtalkTemplateSelectModal·PanelMenuModal·DistributeModal·ChartModal. → B 상태 대부분 🔧/❌ 미검증(로그인모달·사이드모달 외 A대조 필요). 각 트리거 지점은 해당 라우트 검증 시 대조.

§⑤ 요약: 네비링크 42·모달 15+ 중 A-시각 검증 완료는 헤더 Explore/Channel·프로필/채널 진입 등 소수(①의 ✅와 중첩). 대부분 라우트 검증에 종속되어 각 라우트 ✅ 전환 시 함께 대조·누적한다. = "모든 링크"가 이 문서에 등재됨(검증은 라우트별 진행).


검증 프로세스 (jegwon 확인 답)

1. 각 B 페이지를 A punkpoll_web 실코드/실페이지와 나란히 시각 대조한다.
2. 레이아웃·섹션·탭·순서·데이터표현·진입점·내부 링크/버튼A와 시각적으로 일치하면 reviewer A-시각 검증 PASS.
3. PASS 통과분만 "완료" 판정 → jegwon 보고. (컴포넌트 존재·데이터 옴 만으로는 완료 아님.)
4. A소스 = punkpoll_web 실코드. 추측 금지.
5. 로그인 게이트 페이지(MyPage·오너세션·지갑탭 등)는 2단 판정(reviewer 확정 2026-07-07): ⓐ ✅ 코드/배포 A정합(reviewer A대조 PASS + 배포키 실측) = 검증완료(GO) / ⓑ ⏳ 실세션 픽셀(jegwon 데모/실계정 육안 1회) = 잔여(비블로킹). 자동화 후보 = 인증 픽스처 골든 캡처.

이 표(①29 라우트)를 라우트별로 A-시각 검증하며 ✅로 갱신 = A UI/UX 그대로 재현 확인 후 완료. ②③④는 코어 수렴 후 일괄. 링크레벨(페이지 내부 네비/버튼)은 각 라우트 검증 시 함께 대조해 누적.


부록: 요소 단위 클릭맵 (jegwon 구조리뷰 2026-07-07, manager-as-main)

jegwon STOP-MODE 구조 재점검. manager 메인, A 실코드로 요소별 클릭→목적지 확정. reviewer/dev2 교차검증. 팀 착수 정지 — 그린라이트 시 아래 갭 교정.

A-1. 헤더 네비 (비로그인/공통) — A 실코드 Header.jsx·Nav.jsx 확정

요소목적지근거
로고홈(/→routes.home=/explore)Header.jsx:50 href="/"
채널명(있을시)채널 상세Header.jsx:69 routes.channel.detail
검색 아이콘검색창+태그 노출, 엔터→검색결과검색 모달(태그 다수)
태그 클릭해당 태그 설문/토큰
Polls/exploreNav.jsx:190 routes.home
채널채널 브라우즈Nav.jsx:218 routes.channel.explore
Poll 만들기개인채널 관리자 빌더Nav.jsx:70/111 routes.channel.manager

A-2. 로그인 영역 드롭다운 — A 실코드 UserMenuPanel.jsx 확정

요소목적지근거
프로필 이미지마이페이지(routes.user 본인):68 handleProfileClick(본인→user)
지갑드래그 모달(WalletModal) 페이지 아님:82 UserWallet→WalletButton→WalletModal
My Page 버튼마이페이지:86 routes.user
관리자관리자 페이지 새 탭(role 게이트):95 window.open(routes.admin,_blank)
내 채널 리스트 각 채널그 채널 매니저 페이지:114 routes.channel.manager (상세 아님)
로그아웃소셜별(카카오/텔레그램) 라벨+아이콘:139-159 messengerType 분기
B 갭ⓐ지갑 /mwallet 페이지→모달 ⓑ로그아웃 단일→소셜별dev2 배정

A-3. 설문 사이드 패널 — A 실코드 DetailSideModal/VoteButton/ShareButton/ChannelProfile 확정

요소목적지근거
새창열기설문 상세 이동DetailSideModal:131 Link routes.poll
링크복사상세 URL 복사(HOST/poll/{uid}):146 handleCopyClipBoard
Vote로그인→sendMeJoinSurvey(챗봇 참여메시지) / 비로그인→로그인모달VoteButton:30-36
Vote 노출조건voteYn=N && (대기\진행)만. 대기시 안내 Alert. 이미참여/종료 숨김VoteButton:43-46
좋아요토글(POST /like). 비로그인→로그인모달ShareButton handleLike:154
댓글댓글 입력창(CommentModal)ShareButton handleComment
공유공유 모달(ShareModal)ShareButton
팔로우채널 팔로우/언팔 토글. 비로그인→로그인모달. 채널 발행자만 렌더(개인 발행자는 팔로우 버튼 없음)ChannelProfile:67 creatorSe 게이트
채널 정보 영역채널 상세(개인이면 유저 페이지). 아바타 shape 분기(채널=rounded-xl·개인=rounded-full)ChannelProfile :39-47 creatorSe 분기
B 갭Vote 버튼 /live 이동→sendMeJoinSurvey 챗봇 방식dev2 VoteButton 교정

누적 교정 백로그 (그린라이트 시)

1. dev2 — 지갑: /mwallet 페이지 → WalletModal 드래그 모달(콘텐츠 재사용, 트리거만)
2. dev2 — 로그아웃: 단일 라벨 → 소셜별(카카오/텔레그램) 라벨+아이콘 (ProfileMenu)
3. dev2 — Vote: /live 이동 → sendMeJoinSurvey(챗봇 참여메시지 전송)

A-4. 채널 브라우즈(/channel) — A 실코드 app/(pages)/channel/page.jsx 확정

요소목적지/동작근거
채널 만들기/channel/create. 비로그인→로그인모달(복귀경로 create)onClick routes.channel.create·setIsLoginModalOpen
Polls / 최근 탭정렬 재조회. Polls=인기(poll)/최근=최신(new)SORT_TABS→useLoadPolls sortOption
태그(카테고리)카테고리 필터(categoryCodeKey). 토글식(재클릭 해제)onCategoryClick·selectedCategory
채널 카드(전체)채널 상세(routes.channel.detail). 카드 전체 LinkchannelList.map Link
팔로우 버튼팔로우/언팔 토글(POST /api/channel/follow). 비로그인→로그인모달. e.preventDefault로 카드링크 분리handleSubscription
목적지 페이지(/channel/create): 커버사진·채널명·URL·카테고리·소개·링크8(웹/유튜브/트위터/인스타/페북/카톡채널/디스코드/텔레그램)·저장.

A-5. 채널 상세(/channel/[id]) — A 실코드 ChannelInfo.jsx+Channel.jsx 확정

요소목적지/동작근거
채널 전환/채널 관리 버튼ownerYn=Y만 노출. 프로필명≠채널명→'채널 전환'(setProfile 컨텍스트 전환)→라벨 '채널 관리'로 변경→클릭시 routes.channel.managerChannelInfo:347-366
1토큰채널 발행 토큰 페이지(routes.token(tokenNoList[0])):286-296
토큰 보유자우측 사이드 패널(SideModal) 보유자 테이블(주소·토큰수·더보기):298-308 openSideModal('tokenholders')
팔로워우측 사이드 패널 팔로워 테이블(주소·투표수):310-315 openSideModal('followers')
참여자우측 사이드 패널 참여자:280 openSideModal('participants')
편집채널 편집 페이지(routes.channel.edit). ownerYn=Y만Channel.jsx:65-72
공유공유 모달(QR+카카오톡+URL복사)Channel.jsx:74 ShareButton shareOnly
태그채널 설문 태그 검색(/channel/{uid}/tags)Channel.jsx TagList
설문사이드 패널(다른 페이지 동일)Channel.jsx PollList
카테고리 칩그 카테고리로 채널 브라우즈(exploreCategory):322-333
SNS 외부링크 8새탭(웹/유튜브/트위터/인스타/페북/카톡채널/디스코드/텔레그램):190-269
B 갭(Task#17)ⓐownerYn 라이브 미해결(channel_admins) ⓑheader currentProfile 컨텍스트 배선 → :348 게이트+:363 라벨분기 태워야dev2

A-6. 마이페이지(/user/[id]) — A 실코드 page.jsx+ProfileCard+TokenHistory+TokenHoldings 확정

요소목적지/동작근거
팔로잉우측 사이드 패널 팔로우 채널 리스트(ChannelProfile 목록·더보기)ProfileCard:199 onOpen→:217 SideModal
태그유저 설문 태그 검색. searchType 01(내페이지 참여)/02(타인 배포받음)page.jsx:47 TagList /user/tags/{id}
설문 카드우측 사이드 패널 설문 정보(DetailSideModal, 동일)PollListForMyPage
채널명채널 페이지 이동poll card
좋아요/댓글/공유동일 인터랙션ShareButton
토큰 탭TokenHistory(내페이지만)+TokenHoldings 도넛page.jsx:59-67
토큰 컬럼해당 토큰 페이지(routes.token, PUNK=token(0))TokenHistory:84·136
활동 컬럼txHash 있으면 Avalanche C-chain 블록탐색기 새탭 / 없으면 설문 상세TokenHistory:206-234
토큰 보유현황 토큰토큰 페이지(handleTokenClick→routes.token)TokenHoldings:79-81
B 갭(🔴)클릭맵 확정 / 페이지 표현(ProfileCard 레이아웃·탭·섹션·아바타·배너) A정합 dev2 전면 재대조 별도dev2

A-7. 채널 관리자 허브(/channel/[id]/manager) — A 실코드 전건 검증 (manager+Explore 5에이전트)

구조: 좌측 Sidebar 가 actionMenu 스위치 → 우측에 해당 뷰 렌더(page.jsx renderActionMenu). 비로그인시 홈 리다이렉트.

Sidebar(좌측 메뉴)

요소동작근거
만들기 드롭다운Poll 만들기(/builder/poll)·Poll AI(/builder/ai-survey)·라이브 투표(?type=live)·토큰 만들기(/builder/token) → 우측 Builder 뷰CREATE_MENU_LIST·handleCreateClick
대시보드Dashboard 뷰SIDE_MENU_LIST
배포Voters 뷰
블록체인 TXBlockChain 뷰
리포트Reports 뷰
빌더Builder 뷰(builderData 있을 때만 노출)
PUNK 구매와 지갑Punk 뷰
채널 페이지router.push(channel.detail) 페이지 이동handleClickMenu detail
설정→매니저Managers 뷰SETTING_LIST
채널 공개/비공개 토글POST channelVisibility (참여자>0일 때만)Sidebar:314·323
채널 삭제ConfirmDialog→DELETE (참여자==0일 때만)→홈Sidebar:112-128

대시보드(Dashboard) — 설문 관리 그리드

요소동작조건
상태 필터탭전체/준비완료/진행중/종료/작성중/숨김
그리드/리스트 토글viewMode
브라우즈 노출/숨김 토글PATCH mySurvey/visibility
수정빌더/액션메뉴 진입
⋮ 케밥제목·커버수정/알림톡템플릿설정/Poll복사/Poll정보(사이드모달)/삭제(voteCount==0)/브라우즈숨김·해제(voteCount>0)
카드·커버 클릭설문 정보 사이드모달(DetailSideModal)
태그태그 필터
투표 버튼sendMeJoinSurvey 챗봇진행중·미투표
참여 진행바결과 뷰진행중
배포 버튼ShareModal/DistributeModal작성중 아님
모니터링 버튼RealtimeMonitor진행중
참여자 아바타participants 모달

배포(Voters) — 탭 연락처/발송내역/참여자/토큰보유자/팔로워

요소동작
전화번호부 생성/편집(저장·취소)createPhoneBook/modify·delete
전화번호부 행 선택상세 아코디언
전화번호 추가·삭제·모두삭제·저장updatePhoneNumber
배포(발송)확인모달→sendPhoneDistribution(알림톡)
참여현황·미참여자 재발송participation-status·resend-non-participants
참여자/토큰보유자/팔로워: 정렬헤더(마지막투표·토큰·투표)·프로필→/user·주소→블록탐색기(avax/mina)·검색

블록체인 TX(BlockChain) — 탭 Poll배포/PUNK트랜잭션/토큰배포/토큰트랜잭션

요소동작
내용·이벤트명/poll/{uid} 또는 /token/{uid}
프로필/user/{uid}
계정주소avax.network/c-chain/address(0x)·minascan(mina) 새탭
TX 해시avax.network/c-chain/tx(0x)·minascan/tx 새탭
검색·새로고침·페이지네이션·더보기

리포트(Reports) — 탭 개요/분석

요소동작
기간 필터1주(7d)/1개월(30d)/기간설정(custom→시작·종료 DatePicker)
통계카드(총설문·총참여·토큰홀더·총구독자)표시전용

PUNK 구매와 지갑(Punk)

요소동작
지갑 버튼WalletApp 드래그 모달
패키지 라디오50/100/1000/5000 PUNK
결제수단신용카드/계좌이체(NHN KCP)
충전로그인체크→createOrder→KCP팝업→approvePayment→성공모달
환불규정모달

설정·매니저(Managers)

요소동작
매니저 초대카카오 공유 초대(callback /api/sysres/cued)
매니저 이름/user/{uid}
삭제ConfirmDialog→비활성화
B 갭(Task#17): 이 허브 전체가 채널 오너 진입에 종속. ownerYn(channel_admins)+currentProfile 컨텍스트가 A대로 배선돼야 진입·표시. 각 뷰 표현(레이아웃/차트/테이블) A정합은 dev2/backend 재대조 별도.

A-8. explore(홈 피드) — A 실코드 PollList·PollCard·CardActions·CardInfo·CardChannelInfo

요소목적지/동작조건근거
태그 필터routes.tag.explore(tag) → /explore?tag=TagList:54,78
태그 Clear(×)쿼리 제거tag/검색 활성TagList:54
설문 카드 클릭DetailSideModal(사이드 패널)PollCard:94-108
Vote 버튼sendMeJoinSurvey 챗봇 / 비로그인 로그인모달진행중·미투표CardInfo:33-103
진행률 바결과 탭 스크롤진행중CardInfo:112
종료 결과 버튼결과 탭종료CardInfo:141
좋아요POST like (로그인 필수)CardActions:158
댓글CommentModalCardActions:208
공유ShareModalCardActions:213
채널명·아이콘routes.channel.detailCardChannelInfo:8
+더보기무한스크롤 페이지네이션!isEndReachedPollList:191

A-9. 설문 상세 전체(/poll/[id]) — PollDetailTab·PollDefaultInfo·ResultDetail·ParticipantsDetail·ChannelProfile

요소목적지/동작조건근거
상단 Vote/좋아요/댓글/공유사이드패널과 동일(VoteButton·ShareButton)
탭: 결과ResultDetailresultOpenDate 이후 or 오너PollDetailTab:50-70
탭: 문항QuestionsDetail항상
탭: 참여자ParticipantsDetail항상
탭: 내 투표QuestionsDetail(myResult)voteYn=Y·로그인PollDetailTab:148
탭: 크레딧CreditDetail항상
모니터링 버튼(탭)RealtimeMonitor 팝업type=buttonPollDetailTab:177
결과 차트타입pie/bar 등 전환surveyType≠04ResultDetail:188
참여자 CID 링크VoterResultModalcid≠비공개ParticipantsDetail:169
하단 채널명/팔로우channel.detail / follow(로그인)creatorSe=channelChannelProfile:38-89
리워드 토큰 링크/token/{rewardTokenNo}종료 or voteYn=YPollDefaultInfo:109

A-10. 토큰 상세(/token/[id]) — Token.jsx·TokenStatistics·DeployTable·TokenTransactionTable

요소목적지/동작조건근거
채널명·이미지routes.channel.detailToken:228
팔로우/언팔POST follow (비로그인 로그인모달)Token:284-310
채널 전환/관리manager or setProfile(전환)ownerYn=YToken:262-281
공유/좋아요/댓글ShareButton(모달)좋아요 로그인Token:206
탭: 배포내역/거래내역/홀더DeployTable/TokenTransactionTable/홀더Token:456
검색 토글테이블 필터Token:476
홀더 프로필routes.userToken:404
배포행 이벤트명/token 또는 /pollisCustomTokenDeployTable:35
TX 해시블록탐색기 새탭TokenTransactionTable:60
공급 분포 차트statistics/daily 로드TokenStatistics:65

A-11. 빌더(/builder/poll) — 5스텝 아코디언 Poll.jsx + Overview/Questions/DeployTime/Rewards/DeployRun + Left/RightLayer

스텝/요소동작조건근거
1 커버설정제목·태그추가·커버 업로드/AI생성·다음(putBasicInfo)설문 커버필수Overview·ImageUpload
2 설문작성질문타입선택·옵션추가삭제·카드포맷·다음(validate)질문≥1Questions·MultipleChoice
3 시간설정시작·종료·결과공개 DatePicker·결과공개 라디오(즉시/기간후/비공개)·다음시작≠종료DeployTime
4 리워드·토큰참여인원·리워드토큰·총PUNK자동계산·SBT토글·유권자등록(투표)·다음잔액Rewards
5 배포배포버튼(distribution+SSE)·익명참여·알림톡 체크(투표)flagAllDeployRun:66
좌측 레이어새 설문·기존설문 편집·삭제LeftLayer
우측 ⋮정보·복사·삭제draftRightLayer

A-12. 라이브(/live·/live/[surveyUid])

요소목적지/동작조건근거
/live정적 준비중(버튼 텍스트만)+SharePollCardLive.jsx:133-179
/live/[uid] 로고router.push('/')SharePopupEnhanced:93
전화번호 폼·제출sendAlimtalk(surveyUid, phones)유효·참여시간내SharePollCard:451-527
QR 공유ShareModalonShowQRSharePopupEnhanced:120

A-13. PUNK 구매(/punk/purchase) — 채널허브 Punk와 동일 플로우

요소동작근거
패키지(50/100/1000/5000)·결제수단(카드/계좌) 선택상태PunkPurchase:418-507
충전하기createOrder→KCP팝업→approvePayment→성공모달 (로그인):325
환불규정·이용약관·개인정보모달/외부링크:533-556

A-14. 채널 생성/편집(/channel/create·/channel/[id]/edit) — 동일 ChannelForm

요소동작조건근거
배너·프로필 이미지 업로드크롭모달→getImageUrlChannelForm:218
채널명·URL(중복체크)·카테고리·소개·SNS링크입력 검증편집시 채널명 disabledChannelForm:244-347
저장POST/PATCH /api/channel/basicInfo → 채널 상세 이동프로필필수ChannelForm:349,163

A-15. 카테고리 변형 / 정적 / 인증

페이지상태근거
/panel·/opinion-poll·/vote정적 준비중(클릭요소 없음, nav링크만)Panel/OpinionPoll/Vote.jsx
/daily동적 피드(TagList+PollList+PoliticalChart, today API)Daily.jsx:14-19
/citizen홈 리다이렉트(레거시)CitizenPage:24
/feedback피드백 만들기 CTA→builder.poll + FeedbackQRListFeedback.jsx:106-125
/login카카오/텔레그램 로그인·회원가입 토글·약관/개인정보 외부링크Login.jsx:42-55

A-16. 별도 트랙(요약 표기)

전 페이지 요소단위 A-소스 커버 완료 (2026-07-07, manager-as-main + Explore 8에이전트). jegwon 지시 '이미지 없는 페이지 포함 전부'. 남은 것은 각 페이지의 '표현(레이아웃·차트·테이블) A정합' 재대조(dev/dev2/backend) — 클릭맵(구조)은 확정.