[{"data":1,"prerenderedAt":4782},["ShallowReactive",2],{"doc:\u002Fwbs":3},{"id":4,"title":5,"body":6,"description":4741,"extension":4776,"meta":4777,"navigation":4778,"path":3031,"seo":4779,"stem":4780,"__hash__":4781},"docs\u002FWBS.md","WBS (Work Breakdown Structure)",{"type":7,"value":8,"toc":4740},"minimark",[9,13,36,39,44,173,183,189,194,197,287,292,294,298,347,352,354,358,362,454,458,555,559,641,645,706,710,837,839,843,847,947,951,999,1003,1036,1040,1176,1180,1297,1301,1380,1382,1386,1390,1470,1474,1665,1669,1801,1803,1807,1867,1869,1873,1886,1890,2097,2104,2675,2686,2729,2733,3047,3051,3060,3623,3629,3657,3661,4101,4109,4388,4392,4644,4646,4650],[10,11,5],"h1",{"id":12},"wbs-work-breakdown-structure",[14,15,16,20,29],"blockquote",{},[17,18,19],"p",{},"맑은메시지(가칭) — NHN Cloud Notification Hub 기반 멀티 테넌트 메시징 SaaS.",[17,21,22,23,28],{},"5단계(준비 → 정책 → 기획·설계 → 디자인 → 개발)를 가중치로 묶어 단일 사이클로 진행. 일별 변경은 ",[24,25,27],"a",{"href":26},"history\u002F","doc\u002Fhistory\u002F","에 누적 기록.",[17,30,31,35],{},[32,33,34],"strong",{},"마지막 현행화",": 2026-06-04",[37,38],"hr",{},[40,41,43],"h2",{"id":42},"진행률-스냅샷-2026-06-04-기준","진행률 스냅샷 (2026-06-04 기준)",[45,46,47,66],"table",{},[48,49,50],"thead",{},[51,52,53,57,60,63],"tr",{},[54,55,56],"th",{},"Step",[54,58,59],{},"가중치",[54,61,62],{},"진행률",[54,64,65],{},"핵심 진행 사항",[67,68,69,88,109,127,143],"tbody",{},[51,70,71,77,80,85],{},[72,73,74],"td",{},[32,75,76],{},"Step 1 · 프로젝트 준비",[72,78,79],{},"10%",[72,81,82],{},[32,83,84],{},"55%",[72,86,87],{},"R&R·텔레그램·화면설계 정본·환경 셋팅 완료. 도메인·브랜딩·계약서·마케팅 진행 중",[51,89,90,95,98,102],{},[72,91,92],{},[32,93,94],{},"Step 2 · 주요 서비스 정책 이슈 정리",[72,96,97],{},"15%",[72,99,100],{},[32,101,84],{},[72,103,104,105,108],{},"회원 구조·결제·메시지 채널·주소록 정책 90% 합의. ",[32,106,107],{},"PG = 토스(TossPayments) 확정","(6\u002F4). 후불결제·캠페인 AB 테스트 미정",[51,110,111,116,119,124],{},[72,112,113],{},[32,114,115],{},"Step 3 · 서비스 기획 (화면설계)",[72,117,118],{},"20%",[72,120,121],{},[32,122,123],{},"35%",[72,125,126],{},"BackOffice 1차 5종 70%. 2차·통계·운영가이드 미진",[51,128,129,134,136,140],{},[72,130,131],{},[32,132,133],{},"Step 4 · 디자인 \u002F 퍼블리싱",[72,135,79],{},[72,137,138],{},[32,139,118],{},[72,141,142],{},"사용자단 Relay-inspired DS 정본·디자인 가이드(\u002Fguide) 살아있는 카탈로그로 대체 운영. 정식 스타일 가이드·MD 산출물은 미작성",[51,144,145,150,153,157],{},[72,146,147],{},[32,148,149],{},"Step 5 · 서비스 개발",[72,151,152],{},"45%",[72,154,155],{},[32,156,84],{},[72,158,159,160,164,165,168,169,172],{},"UI(5-3A) 거의 완료(14✅) \u002F API(5-2) 약 72%(13✅+2🟢+3⚪) — 6\u002F4 신규 5-2-19 WBS R2 + 5-2-20 ",[161,162,163],"code",{},"\u002Fme\u002Femail-change"," + 5-2-21 NHN Notification Hub 어댑터 \u002F ",[32,166,167],{},"연동(5-3C) 약 40%(10✅+2🟢+8⚪)"," — 6\u002F4 5-3C-7(이메일·휴대폰 변경 OTP) + 5-3C-20(서비스 담당자 이메일 변경) 완료 \u002F 관리자단(5-4) ",[32,170,171],{},"핸드오프 17 페이지 화면 ✅"," + dev=screen\u002Fpartial\u002Flive 라벨 + 로고 통일 \u002F 통합·배포(5-5) Hyperdrive Tunnel 전환 + NHN Email 실 발송 ✅. 가중평균 약 55%.",[17,174,175,178,179,182],{},[32,176,177],{},"전체 가중평균: 약 47.5%"," (",[161,180,181],{},"0.10×55 + 0.15×55 + 0.20×35 + 0.10×20 + 0.45×55 ≈ 47.5",")",[17,184,185,188],{},[32,186,187],{},"상태 범례",": ✅ 완료 · 🟢 진행 중 · ⚪ 대기 · ⛔ 보류",[190,191,193],"h3",{"id":192},"김도형-담당-73-개발테스트-완료-일정-64-결정","김도형 담당 — 7\u002F3 개발·테스트 완료 일정 (6\u002F4 결정)",[17,195,196],{},"남은 task를 우선순위·블로커 의존 순으로 5주에 배분.",[45,198,199,215],{},[48,200,201],{},[51,202,203,206,209,212],{},[54,204,205],{},"주차",[54,207,208],{},"기간",[54,210,211],{},"주요 마일스톤",[54,213,214],{},"대상 task",[67,216,217,231,245,259,273],{},[51,218,219,222,225,228],{},[72,220,221],{},"W1",[72,223,224],{},"6\u002F5~6\u002F9",[72,226,227],{},"잔작업·in_progress 마무리 + P0 backbone",[72,229,230],{},"5-3C-2(로그아웃) · 5-3C-5(약관) · 5-3C-6(companyType) · 5-2-10(웹훅 전 채널)",[51,232,233,236,239,242],{},[72,234,235],{},"W2",[72,237,238],{},"6\u002F10~6\u002F15",[72,240,241],{},"사용자단 발송·NHN real 1차",[72,243,244],{},"5-3C-3(비번 재설정 OTP) · 5-3-14(시스템 페이지) · 5-2-16(envelope) · 5-5-12(NHN SMS) · 5-3C-12(발송 6채널 실 API)",[51,246,247,250,253,256],{},[72,248,249],{},"W3",[72,251,252],{},"6\u002F16~6\u002F22",[72,254,255],{},"이력\u002F통계\u002F주소록\u002F문의 + Flow 엔진",[72,257,258],{},"5-3C-13·14·16 · 5-2-11(Export worker) · 5-2-12(Flow 엔진) · 5-5-5(push\u002Frcs\u002Fkakao 어댑터)",[51,260,261,264,267,270],{},[72,262,263],{},"W4",[72,265,266],{},"6\u002F23~6\u002F29",[72,268,269],{},"캠페인·PG·관리자단 P0",[72,271,272],{},"5-2-13(캠페인) · 5-2-14(PG 토스) · 5-5-8(결제 연동) · 5-3C-15(크레딧·결제) · 5-3C-8·9·10(계정 부속) · 5-4-3·4·5·6·8(관리자 P0)",[51,274,275,278,281,284],{},[72,276,277],{},"W5",[72,279,280],{},"6\u002F30~7\u002F3",[72,282,283],{},"관리자단 잔여 + AI + 외부 의존 + 통합 테스트",[72,285,286],{},"5-4-7·9·10·11·12·13 · 5-2-15(AI 게이트웨이) · 5-5-9(AI 연동) · 5-5-6(NICE 실 모드, 외부 의존)",[14,288,289],{},[17,290,291],{},"운영성 task(5-5-1 사용자단 배포 카운터·5-5-3 API Workers 배포 카운터)는 단일 마감일이 없는 누적 지표이므로 일정 미설정.",[37,293],{},[40,295,297],{"id":296},"단계별-가중치","단계별 가중치",[45,299,300,310],{},[48,301,302],{},[51,303,304,307],{},[54,305,306],{},"단계",[54,308,309],{},"비중",[67,311,312,319,326,333,340],{},[51,313,314,317],{},[72,315,316],{},"1. 프로젝트 준비",[72,318,79],{},[51,320,321,324],{},[72,322,323],{},"2. 주요 서비스 정책 이슈 정리",[72,325,97],{},[51,327,328,331],{},[72,329,330],{},"3. 서비스 기획 (화면설계)",[72,332,118],{},[51,334,335,338],{},[72,336,337],{},"4. 디자인 \u002F 퍼블리싱",[72,339,79],{},[51,341,342,345],{},[72,343,344],{},"5. 서비스 개발",[72,346,152],{},[14,348,349],{},[17,350,351],{},"개발 비중이 큰 프로젝트라 Step 5를 45%로 가중. Step 1·2는 합의·문서 위주라 가볍게.",[37,353],{},[10,355,357],{"id":356},"step-1-프로젝트-준비-10","Step 1 — 프로젝트 준비 (10%)",[40,359,361],{"id":360},"_1-1-rr-사업-기획","1-1. R&R · 사업 기획",[45,363,364,389],{},[48,365,366],{},[51,367,368,371,374,377,380,383,386],{},[54,369,370],{},"ID",[54,372,373],{},"작업",[54,375,376],{},"상태",[54,378,379],{},"담당",[54,381,382],{},"산출물 \u002F 메모",[54,384,385],{},"목표일",[54,387,388],{},"완료일",[67,390,391,413,434],{},[51,392,393,396,399,402,405,408,411],{},[72,394,395],{},"1-1-1",[72,397,398],{},"작업 R&R 분배",[72,400,401],{},"✅",[72,403,404],{},"김덕조",[72,406,407],{},"메모 확인",[72,409,410],{},"5\u002F8",[72,412,410],{},[51,414,415,418,421,423,426,429,432],{},[72,416,417],{},"1-1-2",[72,419,420],{},"경쟁 서비스 가격 분석",[72,422,401],{},[72,424,425],{},"컨설팅팀",[72,427,428],{},"경쟁사 단가표",[72,430,431],{},"—",[72,433,431],{},[51,435,436,439,442,445,447,450,452],{},[72,437,438],{},"1-1-3",[72,440,441],{},"당사 원가 확인 및 가격 정책 결정 (단가 결정)",[72,443,444],{},"🟢",[72,446,425],{},[72,448,449],{},"기본 단가 책정(고객 모수에 따른 할인률 정책 필요), MMS는 이미지 3장까지 비용설계, 단가표(기획안)",[72,451,431],{},[72,453,431],{},[40,455,457],{"id":456},"_1-2-사업-준비","1-2. 사업 준비",[45,459,460,478],{},[48,461,462],{},[51,463,464,466,468,470,472,474,476],{},[54,465,370],{},[54,467,373],{},[54,469,376],{},[54,471,379],{},[54,473,382],{},[54,475,385],{},[54,477,388],{},[67,479,480,500,518,536],{},[51,481,482,485,488,491,493,496,498],{},[72,483,484],{},"1-2-1",[72,486,487],{},"특수한 유형의 메시징 사업자 신청",[72,489,490],{},"⚪",[72,492,425],{},[72,494,495],{},"프로젝트 추진 중간평가 이후 진행",[72,497,431],{},[72,499,431],{},[51,501,502,505,508,510,512,514,516],{},[72,503,504],{},"1-2-2",[72,506,507],{},"통신판매사업자 신청",[72,509,490],{},[72,511,425],{},[72,513,495],{},[72,515,431],{},[72,517,431],{},[51,519,520,523,526,528,530,532,534],{},[72,521,522],{},"1-2-3",[72,524,525],{},"자본 Up 방안",[72,527,490],{},[72,529,431],{},[72,531,495],{},[72,533,431],{},[72,535,431],{},[51,537,538,541,544,546,548,551,553],{},[72,539,540],{},"1-2-4",[72,542,543],{},"관련 계약서 작성",[72,545,444],{},[72,547,425],{},[72,549,550],{},"가입신청서·이용약관·개인정보처리방침·요금신고내역 초안 \u002F 1차 검토 완료 → 2차 수정본 진행 \u002F 전무님 검토 필요",[72,552,431],{},[72,554,431],{},[40,556,558],{"id":557},"_1-3-커뮤니케이션","1-3. 커뮤니케이션",[45,560,561,579],{},[48,562,563],{},[51,564,565,567,569,571,573,575,577],{},[54,566,370],{},[54,568,373],{},[54,570,376],{},[54,572,379],{},[54,574,382],{},[54,576,385],{},[54,578,388],{},[67,580,581,601,622],{},[51,582,583,586,589,591,594,597,599],{},[72,584,585],{},"1-3-1",[72,587,588],{},"그룹 텔레그램 개설",[72,590,401],{},[72,592,593],{},"김도형",[72,595,596],{},"맑은메시지 TF",[72,598,410],{},[72,600,410],{},[51,602,603,606,609,611,614,617,620],{},[72,604,605],{},"1-3-2",[72,607,608],{},"화면설계 — 피그마 정본",[72,610,401],{},[72,612,613],{},"김경은",[72,615,616],{},"피그마",[72,618,619],{},"5\u002F11",[72,621,619],{},[51,623,624,627,630,632,634,637,639],{},[72,625,626],{},"1-3-3",[72,628,629],{},"문서 공유 폴더",[72,631,490],{},[72,633,404],{},[72,635,636],{},"프로젝트 폴더",[72,638,431],{},[72,640,431],{},[40,642,644],{"id":643},"_1-4-서비스-메타-결정","1-4. 서비스 메타 결정",[45,646,647,661],{},[48,648,649],{},[51,650,651,653,655,657,659],{},[54,652,370],{},[54,654,373],{},[54,656,376],{},[54,658,379],{},[54,660,382],{},[67,662,663,677,691],{},[51,664,665,668,671,673,675],{},[72,666,667],{},"1-4-1",[72,669,670],{},"서비스 도메인 결정",[72,672,490],{},[72,674,404],{},[72,676,431],{},[51,678,679,682,685,687,689],{},[72,680,681],{},"1-4-2",[72,683,684],{},"브랜딩 (맑은메시지 외 함께 아이데이션)",[72,686,490],{},[72,688,404],{},[72,690,431],{},[51,692,693,696,699,701,704],{},[72,694,695],{},"1-4-3",[72,697,698],{},"마케팅 기획 — 기존 고객군 & 메시징 only 고객군",[72,700,490],{},[72,702,703],{},"안병훈",[72,705,431],{},[40,707,709],{"id":708},"_1-5-프로젝트-환경-셋팅","1-5. 프로젝트 환경 셋팅",[45,711,712,730],{},[48,713,714],{},[51,715,716,718,720,722,724,726,728],{},[54,717,370],{},[54,719,373],{},[54,721,376],{},[54,723,379],{},[54,725,382],{},[54,727,385],{},[54,729,388],{},[67,731,732,751,770,793,815],{},[51,733,734,737,740,742,744,747,749],{},[72,735,736],{},"1-5-1",[72,738,739],{},"커뮤니케이션 문서 폴더 운영",[72,741,401],{},[72,743,404],{},[72,745,746],{},"폴더 셋팅",[72,748,410],{},[72,750,410],{},[51,752,753,756,759,761,763,766,768],{},[72,754,755],{},"1-5-2",[72,757,758],{},"GitHub(malgnsoft) · Cloudflare 셋팅",[72,760,401],{},[72,762,593],{},[72,764,765],{},"3 레포(malgn-noti·-admin·-api) + Cloudflare Pages 2 + Workers 1",[72,767,619],{},[72,769,619],{},[51,771,772,775,778,780,782,789,791],{},[72,773,774],{},"1-5-3",[72,776,777],{},"사용자단",[72,779,401],{},[72,781,593],{},[72,783,784],{},[24,785,786],{"href":786,"rel":787},"https:\u002F\u002Fmalgn-noti.pages.dev\u002F",[788],"nofollow",[72,790,619],{},[72,792,619],{},[51,794,795,798,801,803,805,811,813],{},[72,796,797],{},"1-5-4",[72,799,800],{},"관리자단",[72,802,401],{},[72,804,593],{},[72,806,807],{},[24,808,809],{"href":809,"rel":810},"https:\u002F\u002Fmalgn-noti-admin.pages.dev\u002F",[788],[72,812,619],{},[72,814,619],{},[51,816,817,820,823,825,827,833,835],{},[72,818,819],{},"1-5-5",[72,821,822],{},"API 서버",[72,824,401],{},[72,826,593],{},[72,828,829],{},[24,830,831],{"href":831,"rel":832},"https:\u002F\u002Fmalgn-noti-api.malgnsoft.workers.dev\u002F",[788],[72,834,619],{},[72,836,619],{},[37,838],{},[10,840,842],{"id":841},"step-2-주요-서비스-정책-이슈-정리-15","Step 2 — 주요 서비스 정책 이슈 정리 (15%)",[40,844,846],{"id":845},"_2-1-프로토타입-및-문서","2-1. 프로토타입 및 문서",[45,848,849,863],{},[48,850,851],{},[51,852,853,855,857,859,861],{},[54,854,370],{},[54,856,373],{},[54,858,376],{},[54,860,379],{},[54,862,382],{},[67,864,865,887,902,917,932],{},[51,866,867,870,873,875,877],{},[72,868,869],{},"2-1-1",[72,871,872],{},"Front 프로토타입",[72,874,444],{},[72,876,404],{},[72,878,879,883,884],{},[24,880,881],{"href":881,"rel":882},"https:\u002F\u002Fmalgn-notifications.pages.dev\u002F#\u002F",[788]," — ",[32,885,886],{},"IA 정본(263 페이지)",[51,888,889,892,895,897,899],{},[72,890,891],{},"2-1-2",[72,893,894],{},"Front 메뉴 및 스펙",[72,896,490],{},[72,898,431],{},[72,900,901],{},"\u002F#\u002Fsitemap",[51,903,904,907,910,912,914],{},[72,905,906],{},"2-1-3",[72,908,909],{},"Front 페이지 리스트",[72,911,490],{},[72,913,404],{},[72,915,916],{},"\u002F#\u002Fpagelists",[51,918,919,922,925,927,929],{},[72,920,921],{},"2-1-4",[72,923,924],{},"BackOffice 프로토타입",[72,926,490],{},[72,928,613],{},[72,930,931],{},"프로토타입 만들지 말지 결정",[51,933,934,937,940,942,944],{},[72,935,936],{},"2-1-5",[72,938,939],{},"BackOffice 메뉴 및 스펙",[72,941,490],{},[72,943,431],{},[72,945,946],{},"\u002F#\u002Fbackoffice + Google Sheets",[40,948,950],{"id":949},"_2-2-주요-서비스-참조","2-2. 주요 서비스 참조",[45,952,953,967],{},[48,954,955],{},[51,956,957,959,961,963,965],{},[54,958,370],{},[54,960,373],{},[54,962,376],{},[54,964,379],{},[54,966,382],{},[67,968,969,984],{},[51,970,971,974,977,979,981],{},[72,972,973],{},"2-2-1",[72,975,976],{},"NHN Cloud Notification 서비스",[72,978,490],{},[72,980,431],{},[72,982,983],{},"통합 대상",[51,985,986,989,992,994,996],{},[72,987,988],{},"2-2-2",[72,990,991],{},"비즈 뿌리오 서비스",[72,993,490],{},[72,995,431],{},[72,997,998],{},"참조",[40,1000,1002],{"id":1001},"_2-3-캠페인-서비스","2-3. 캠페인 서비스",[45,1004,1005,1019],{},[48,1006,1007],{},[51,1008,1009,1011,1013,1015,1017],{},[54,1010,370],{},[54,1012,373],{},[54,1014,376],{},[54,1016,379],{},[54,1018,382],{},[67,1020,1021],{},[51,1022,1023,1026,1029,1031,1033],{},[72,1024,1025],{},"2-3-1",[72,1027,1028],{},"벤치마킹 조사",[72,1030,490],{},[72,1032,703],{},[72,1034,1035],{},"솔라피(CRM 결합) + 개별 문자 발송 사례",[40,1037,1039],{"id":1038},"_2-4-회원결제계약-정책","2-4. 회원·결제·계약 정책",[45,1041,1042,1060],{},[48,1043,1044],{},[51,1045,1046,1048,1050,1052,1054,1056,1058],{},[54,1047,370],{},[54,1049,373],{},[54,1051,376],{},[54,1053,379],{},[54,1055,382],{},[54,1057,385],{},[54,1059,388],{},[67,1061,1062,1082,1101,1120,1138,1157],{},[51,1063,1064,1067,1070,1072,1074,1077,1080],{},[72,1065,1066],{},"2-4-1",[72,1068,1069],{},"회원가입·판매방식 — 후불 정산 \u002F 개인 회원 추가",[72,1071,444],{},[72,1073,404],{},[72,1075,1076],{},"법인사업자\u002F개인사업자\u002F개인 3유형, 회원유형별 계약서 초안 단계별, 카드 충전식 vs 후불 결제, 계정관리>계약관리에 지급이행보증보험 첨부 인터페이스 추가",[72,1078,1079],{},"5\u002F12",[72,1081,1079],{},[51,1083,1084,1087,1090,1092,1094,1097,1099],{},[72,1085,1086],{},"2-4-2",[72,1088,1089],{},"회원 구조 — 멀티 계정 (주계정·보조계정)",[72,1091,444],{},[72,1093,404],{},[72,1095,1096],{},"법인·개인사업자만 멀티계정 추가 탭 노출, 개인은 미노출",[72,1098,1079],{},[72,1100,1079],{},[51,1102,1103,1106,1109,1111,1113,1116,1118],{},[72,1104,1105],{},"2-4-3",[72,1107,1108],{},"결제 — 자동충전",[72,1110,490],{},[72,1112,404],{},[72,1114,1115],{},"크레딧 일정금액 이하일 때 n원 자동 충전 (향후 재논의)",[72,1117,431],{},[72,1119,431],{},[51,1121,1122,1125,1128,1130,1132,1134,1136],{},[72,1123,1124],{},"2-4-4",[72,1126,1127],{},"결제내역 — 결제 페이지 추가",[72,1129,490],{},[72,1131,404],{},[72,1133,431],{},[72,1135,431],{},[72,1137,431],{},[51,1139,1140,1143,1146,1148,1150,1153,1155],{},[72,1141,1142],{},"2-4-5",[72,1144,1145],{},"결제 — 후불 결제 고려",[72,1147,490],{},[72,1149,404],{},[72,1151,1152],{},"후불결제 내부로직은 -크레딧, 후불시 사용 크레딧 표현, 다음 결제일 표현",[72,1154,431],{},[72,1156,431],{},[51,1158,1159,1162,1165,1167,1169,1172,1174],{},[72,1160,1161],{},"2-4-6",[72,1163,1164],{},"계약관리 정책",[72,1166,490],{},[72,1168,431],{},[72,1170,1171],{},"법인·개인사업자 온라인 계약 절차 후 BackOffice 승인 → 로그인 가능 (후불시 통장사본). 개인은 계약관리 없음 → 즉시 사용",[72,1173,431],{},[72,1175,431],{},[40,1177,1179],{"id":1178},"_2-5-메시지-채널-정책","2-5. 메시지 채널 정책",[45,1181,1182,1200],{},[48,1183,1184],{},[51,1185,1186,1188,1190,1192,1194,1196,1198],{},[54,1187,370],{},[54,1189,373],{},[54,1191,376],{},[54,1193,379],{},[54,1195,382],{},[54,1197,385],{},[54,1199,388],{},[67,1201,1202,1221,1240,1259,1278],{},[51,1203,1204,1207,1210,1212,1214,1217,1219],{},[72,1205,1206],{},"2-5-1",[72,1208,1209],{},"AI 문장 다듬기 기능",[72,1211,444],{},[72,1213,404],{},[72,1215,1216],{},"발송창(알림톡 제외)에 AI검토(맞춤법·문장 다듬기). 문자·RCS·이메일에 AI 문장다듬기 기능 추가",[72,1218,1079],{},[72,1220,1079],{},[51,1222,1223,1226,1229,1231,1233,1236,1238],{},[72,1224,1225],{},"2-5-2",[72,1227,1228],{},"광고용 선택 시 수신거부 전화번호 이슈",[72,1230,490],{},[72,1232,404],{},[72,1234,1235],{},"광고 선택 시 수신거부 번호 입력창 분리(맨 마지막). 내용 재확인 후 인터페이스 설계 예정",[72,1237,431],{},[72,1239,431],{},[51,1241,1242,1245,1248,1250,1252,1255,1257],{},[72,1243,1244],{},"2-5-3",[72,1246,1247],{},"순차발송",[72,1249,444],{},[72,1251,404],{},[72,1253,1254],{},"알림톡 미수신 시 SMS\u002FLMS 순차발송 기본세팅, RCS·복합·푸시는 상단 설명. 복합(플로우) 생성 관리 화면의 Default 알림톡→SMS→이메일 순 호출",[72,1256,1079],{},[72,1258,1079],{},[51,1260,1261,1264,1267,1269,1271,1274,1276],{},[72,1262,1263],{},"2-5-4",[72,1265,1266],{},"랜딩페이지 만들기 추가",[72,1268,444],{},[72,1270,404],{},[72,1272,1273],{},"랜딩페이지 관리 페이지 + 기본형·확장형 화면 추가",[72,1275,1079],{},[72,1277,1079],{},[51,1279,1280,1283,1286,1288,1290,1293,1295],{},[72,1281,1282],{},"2-5-5",[72,1284,1285],{},"발신번호 관리에 휴대폰번호 추가",[72,1287,444],{},[72,1289,404],{},[72,1291,1292],{},"유선(증명서 업로드) + 휴대폰(본인인증 PASS) 인터페이스",[72,1294,1079],{},[72,1296,1079],{},[40,1298,1300],{"id":1299},"_2-6-캠페인주소록브랜드","2-6. 캠페인·주소록·브랜드",[45,1302,1303,1321],{},[48,1304,1305],{},[51,1306,1307,1309,1311,1313,1315,1317,1319],{},[54,1308,370],{},[54,1310,373],{},[54,1312,376],{},[54,1314,379],{},[54,1316,382],{},[54,1318,385],{},[54,1320,388],{},[67,1322,1323,1342,1361],{},[51,1324,1325,1328,1331,1333,1335,1338,1340],{},[72,1326,1327],{},"2-6-1",[72,1329,1330],{},"캠페인 관리 — AB 테스트 기능",[72,1332,490],{},[72,1334,404],{},[72,1336,1337],{},"대상자에게 랜덤으로 A·B 메시지 발송 후 성과 비교. 캠페인 관리 기능 최종 정의 후 설계",[72,1339,431],{},[72,1341,431],{},[51,1343,1344,1347,1350,1352,1354,1357,1359],{},[72,1345,1346],{},"2-6-2",[72,1348,1349],{},"주소록 — CRM 기능 확대",[72,1351,444],{},[72,1353,404],{},[72,1355,1356],{},"이메일·전화번호 클릭 시 단건 발송 레이어 팝업. 연락처·그룹에 메시지채널 선택 후 바로가기. CRM 예제 화면 수집(안병훈)",[72,1358,1079],{},[72,1360,1079],{},[51,1362,1363,1366,1369,1371,1374,1376,1378],{},[72,1364,1365],{},"2-6-3",[72,1367,1368],{},"브랜드 네임",[72,1370,490],{},[72,1372,1373],{},"안병훈 외 전체",[72,1375,431],{},[72,1377,431],{},[72,1379,431],{},[37,1381],{},[10,1383,1385],{"id":1384},"step-3-서비스-기획-화면설계-or-설계-20","Step 3 — 서비스 기획 (화면설계 or 설계) (20%)",[40,1387,1389],{"id":1388},"_3-1-front","3-1. Front",[45,1391,1392,1408],{},[48,1393,1394],{},[51,1395,1396,1398,1400,1402,1404,1406],{},[54,1397,370],{},[54,1399,373],{},[54,1401,376],{},[54,1403,379],{},[54,1405,382],{},[54,1407,385],{},[67,1409,1410,1430,1447],{},[51,1411,1412,1415,1418,1420,1423,1428],{},[72,1413,1414],{},"3-1-1",[72,1416,1417],{},"프로토타입으로 대체",[72,1419,444],{},[72,1421,1422],{},"김덕조·김경은",[72,1424,1425],{},[24,1426,881],{"href":881,"rel":1427},[788],[72,1429,431],{},[51,1431,1432,1435,1438,1440,1443,1445],{},[72,1433,1434],{},"3-1-2",[72,1436,1437],{},"서비스 메뉴 콘텐츠",[72,1439,490],{},[72,1441,1442],{},"컨설팅팀·김경은",[72,1444,431],{},[72,1446,431],{},[51,1448,1449,1452,1455,1457,1459,1468],{},[72,1450,1451],{},"3-1-3",[72,1453,1454],{},"운영가이드",[72,1456,490],{},[72,1458,1422],{},[72,1460,1461,1462,1467],{},"(사용자단 ",[24,1463,1466],{"href":1464,"rel":1465},"https:\u002F\u002Fmalgn-noti.pages.dev\u002Fhelp",[788],"\u002Fhelp"," 라이브 — 컨텐츠 보강 필요)",[72,1469,431],{},[40,1471,1473],{"id":1472},"_3-2-backoffice-1차","3-2. BackOffice 1차",[45,1475,1476,1492],{},[48,1477,1478],{},[51,1479,1480,1482,1484,1486,1488,1490],{},[54,1481,370],{},[54,1483,373],{},[54,1485,376],{},[54,1487,379],{},[54,1489,382],{},[54,1491,385],{},[67,1493,1494,1512,1529,1546,1563,1580,1598,1614,1631,1649],{},[51,1495,1496,1499,1502,1504,1506,1509],{},[72,1497,1498],{},"3-2-1",[72,1500,1501],{},"공통 \u002F 로그인 \u002F 계정 관리",[72,1503,444],{},[72,1505,613],{},[72,1507,1508],{},"바로가기",[72,1510,1511],{},"5\u002F22",[51,1513,1514,1517,1520,1522,1524,1527],{},[72,1515,1516],{},"3-2-2",[72,1518,1519],{},"회원 \u002F 고객사 관리",[72,1521,444],{},[72,1523,613],{},[72,1525,1526],{},"회원 발송 이력 관리, 고객사 결제 상세, 환불신청 제외",[72,1528,1511],{},[51,1530,1531,1534,1537,1539,1541,1544],{},[72,1532,1533],{},"3-2-3",[72,1535,1536],{},"시스템 관리",[72,1538,444],{},[72,1540,613],{},[72,1542,1543],{},"운영자 계정 관리, 권한\u002F역할 관리(RBAC), 감사 로그",[72,1545,1511],{},[51,1547,1548,1551,1554,1556,1558,1560],{},[72,1549,1550],{},"3-2-4",[72,1552,1553],{},"요금 \u002F 단가 관리",[72,1555,444],{},[72,1557,613],{},[72,1559,1508],{},[72,1561,1562],{},"5\u002F29",[51,1564,1565,1568,1571,1573,1575,1578],{},[72,1566,1567],{},"3-2-5",[72,1569,1570],{},"고객지원",[72,1572,444],{},[72,1574,613],{},[72,1576,1577],{},"운영 가이드 관리 제외",[72,1579,1562],{},[51,1581,1582,1585,1588,1590,1592,1595],{},[72,1583,1584],{},"3-2-6",[72,1586,1587],{},"발송 운영 모니터링",[72,1589,490],{},[72,1591,613],{},[72,1593,1594],{},"캠페인 제외, 회원\u002F고객사 관리의 회원 발송 이력 포함",[72,1596,1597],{},"6\u002F12",[51,1599,1600,1603,1606,1608,1610,1612],{},[72,1601,1602],{},"3-2-7",[72,1604,1605],{},"발신 정보 검수",[72,1607,490],{},[72,1609,613],{},[72,1611,431],{},[72,1613,1597],{},[51,1615,1616,1619,1622,1624,1626,1628],{},[72,1617,1618],{},"3-2-8",[72,1620,1621],{},"결제 \u002F 크레딧 관리, 고객사 상세 결제 탭",[72,1623,490],{},[72,1625,613],{},[72,1627,431],{},[72,1629,1630],{},"6\u002F19",[51,1632,1633,1636,1639,1641,1643,1646],{},[72,1634,1635],{},"3-2-9",[72,1637,1638],{},"템플릿 검수 \u002F 관리",[72,1640,490],{},[72,1642,613],{},[72,1644,1645],{},"샘플 템플릿 관리, AI 템플릿 정책 관리 제외",[72,1647,1648],{},"6\u002F24",[51,1650,1651,1654,1657,1659,1661,1663],{},[72,1652,1653],{},"3-2-10",[72,1655,1656],{},"수신거부 (운영)",[72,1658,490],{},[72,1660,613],{},[72,1662,431],{},[72,1664,1648],{},[40,1666,1668],{"id":1667},"_3-3-backoffice-2차","3-3. BackOffice 2차",[45,1670,1671,1685],{},[48,1672,1673],{},[51,1674,1675,1677,1679,1681,1683],{},[54,1676,370],{},[54,1678,373],{},[54,1680,376],{},[54,1682,379],{},[54,1684,382],{},[67,1686,1687,1701,1715,1730,1745,1759,1774,1787],{},[51,1688,1689,1692,1695,1697,1699],{},[72,1690,1691],{},"3-3-1",[72,1693,1694],{},"통계 \u002F 리포트",[72,1696,490],{},[72,1698,613],{},[72,1700,431],{},[51,1702,1703,1706,1709,1711,1713],{},[72,1704,1705],{},"3-3-2",[72,1707,1708],{},"대시보드",[72,1710,490],{},[72,1712,613],{},[72,1714,431],{},[51,1716,1717,1720,1723,1725,1727],{},[72,1718,1719],{},"3-3-3",[72,1721,1722],{},"템플릿 검수 \u002F 관리 (AI 템플릿 정책 관리)",[72,1724,490],{},[72,1726,613],{},[72,1728,1729],{},"샘플 템플릿 관리, AI 템플릿 정책 관리",[51,1731,1732,1735,1738,1740,1742],{},[72,1733,1734],{},"3-3-4",[72,1736,1737],{},"발송 운영 모니터링 (캠페인)",[72,1739,490],{},[72,1741,613],{},[72,1743,1744],{},"캠페인 진행",[51,1746,1747,1750,1752,1754,1756],{},[72,1748,1749],{},"3-3-5",[72,1751,1570],{},[72,1753,490],{},[72,1755,613],{},[72,1757,1758],{},"운영 가이드 관리",[51,1760,1761,1764,1767,1769,1771],{},[72,1762,1763],{},"3-3-6",[72,1765,1766],{},"콘텐츠 \u002F 사이트 관리",[72,1768,490],{},[72,1770,613],{},[72,1772,1773],{},"시스템 설정, 점검 모드 관리, 외부 연동 설정",[51,1775,1776,1779,1781,1783,1785],{},[72,1777,1778],{},"3-3-7",[72,1780,1536],{},[72,1782,490],{},[72,1784,613],{},[72,1786,431],{},[51,1788,1789,1792,1795,1797,1799],{},[72,1790,1791],{},"3-3-8",[72,1793,1794],{},"API 관리",[72,1796,490],{},[72,1798,613],{},[72,1800,431],{},[37,1802],{},[10,1804,1806],{"id":1805},"step-4-디자인-퍼블리싱-10","Step 4 — 디자인 \u002F 퍼블리싱 (10%)",[45,1808,1809,1823],{},[48,1810,1811],{},[51,1812,1813,1815,1817,1819,1821],{},[54,1814,370],{},[54,1816,373],{},[54,1818,376],{},[54,1820,379],{},[54,1822,382],{},[67,1824,1825,1852],{},[51,1826,1827,1830,1833,1835,1838],{},[72,1828,1829],{},"4-1",[72,1831,1832],{},"디자인 스타일 가이드",[72,1834,490],{},[72,1836,1837],{},"김양현",[72,1839,1840,1841,1845,1846,1851],{},"(개발 측에서 ",[24,1842,1844],{"href":1843},"DESIGN","doc\u002FDESIGN.md"," Relay-inspired v1.0 정본 + ",[24,1847,1850],{"href":1848,"rel":1849},"https:\u002F\u002Fmalgn-noti.pages.dev\u002Fguide",[788],"\u002Fguide"," 라이브 카탈로그를 운영 — 디자인팀 정식 스타일 가이드 별도 필요)",[51,1853,1854,1857,1860,1862,1864],{},[72,1855,1856],{},"4-2",[72,1858,1859],{},"퍼블리싱 MD 파일",[72,1861,490],{},[72,1863,1837],{},[72,1865,1866],{},"(개발 측에서 Nuxt 3 + Nuxt UI v3 + Tailwind v4로 직접 퍼블리싱 운영 중)",[37,1868],{},[10,1870,1872],{"id":1871},"step-5-서비스-개발-45","Step 5 — 서비스 개발 (45%)",[14,1874,1875],{},[17,1876,1877,1878,1881,1882,1885],{},"⚠️ ",[32,1879,1880],{},"2026-06-01 재구성"," — 원본 WBS는 채널·도메인 단위로 묶여 있었으나, 실제 진행은 ",[32,1883,1884],{},"사용자단 화면이 6채널·전 도메인에 걸쳐 빠르게 완성","된 반면 관리자단은 셸·기획 단계에 머무름. 진행 그래프가 더 잘 보이도록 산출물 단위로 재정렬.",[40,1887,1889],{"id":1888},"_5-1-설계-및-준비","5-1. 설계 및 준비",[45,1891,1892,1910],{},[48,1893,1894],{},[51,1895,1896,1898,1900,1902,1904,1906,1908],{},[54,1897,370],{},[54,1899,373],{},[54,1901,376],{},[54,1903,379],{},[54,1905,382],{},[54,1907,385],{},[54,1909,388],{},[67,1911,1912,1936,1982,2009,2032,2051,2075],{},[51,1913,1914,1917,1920,1922,1924,1931,1934],{},[72,1915,1916],{},"5-1-1",[72,1918,1919],{},"아키텍처 설계",[72,1921,401],{},[72,1923,593],{},[72,1925,1926,1930],{},[24,1927,1929],{"href":1928},"STACK","malgn-noti\u002Fdoc\u002FSTACK.md"," — 3 레포 책임 분리 + Cloudflare\u002FAWS 혼합 토폴로지 + NHN 통합 모델",[72,1932,1933],{},"5\u002F14",[72,1935,1933],{},[51,1937,1938,1941,1944,1946,1948,1977,1980],{},[72,1939,1940],{},"5-1-2",[72,1942,1943],{},"데이터 모델링",[72,1945,401],{},[72,1947,593],{},[72,1949,1950,1951,1954,1955,1954,1958,1961,1962,1965,1966,1965,1969,1972,1973,1976],{},"49 테이블 데이터 모델(",[161,1952,1953],{},"TB_","·",[161,1956,1957],{},"company_id",[161,1959,1960],{},"status INT 1\u002F0\u002F-1"," + ",[161,1963,1964],{},"*_state","\u002F",[161,1967,1968],{},"*_yn",[161,1970,1971],{},"loginid","+",[161,1974,1975],{},"email"," 분리), Mermaid ERD 9종, 확장성 전략(월 RANGE 파티셔닝·Hot\u002FWarm\u002FCold·R2 오프로드)",[72,1978,1979],{},"5\u002F27",[72,1981,1979],{},[51,1983,1984,1987,1990,1992,1994,2004,2007],{},[72,1985,1986],{},"5-1-3",[72,1988,1989],{},"사용자단 디자인 시스템",[72,1991,401],{},[72,1993,593],{},[72,1995,1996,1997,1999,2000,2003],{},"Relay-inspired v1.0 (",[24,1998,1844],{"href":1843},") — ink 11단 + 그린 액센트 ",[161,2001,2002],{},"#00DC82"," + Inter + JetBrains Mono + Pretendard",[72,2005,2006],{},"5\u002F18",[72,2008,2006],{},[51,2010,2011,2014,2017,2019,2021,2027,2030],{},[72,2012,2013],{},"5-1-4",[72,2015,2016],{},"사용자단 디자인 가이드 (살아있는 카탈로그)",[72,2018,401],{},[72,2020,593],{},[72,2022,2023,2026],{},[24,2024,1850],{"href":1848,"rel":2025},[788]," — 18+ 섹션 라이브 카탈로그",[72,2028,2029],{},"5\u002F19",[72,2031,2029],{},[51,2033,2034,2037,2040,2042,2044,2047,2049],{},[72,2035,2036],{},"5-1-5",[72,2038,2039],{},"관리자단 부트스트랩 + 셸 레이아웃",[72,2041,401],{},[72,2043,593],{},[72,2045,2046],{},"Nuxt 3 + Nuxt UI v3 + LNB(256px·8그룹) + TopBar(64px) + 첫 배포",[72,2048,1979],{},[72,2050,1979],{},[51,2052,2053,2056,2059,2061,2063,2071,2073],{},[72,2054,2055],{},"5-1-6",[72,2057,2058],{},"관리자단 디자인 가이드",[72,2060,401],{},[72,2062,593],{},[72,2064,2065,2070],{},[24,2066,2069],{"href":2067,"rel":2068},"https:\u002F\u002Fmalgn-noti-admin.pages.dev\u002Fguide",[788],"admin \u002Fguide"," — 14 섹션 단일 페이지",[72,2072,1979],{},[72,2074,1979],{},[51,2076,2077,2080,2083,2085,2087,2093,2095],{},[72,2078,2079],{},"5-1-7",[72,2081,2082],{},"관리자단 페이지 기획 MD",[72,2084,401],{},[72,2086,593],{},[72,2088,2089,2092],{},[161,2090,2091],{},"malgn-noti-admin\u002Fdoc\u002Fpages\u002F"," 33개 MD (8 그룹 + 32 sub)",[72,2094,1979],{},[72,2096,1979],{},[40,2098,2100,2101,182],{"id":2099},"_5-2-api-서버-malgn-noti-api","5-2. API 서버 (",[161,2102,2103],{},"malgn-noti-api",[45,2105,2106,2124],{},[48,2107,2108],{},[51,2109,2110,2112,2114,2116,2118,2120,2122],{},[54,2111,370],{},[54,2113,373],{},[54,2115,376],{},[54,2117,379],{},[54,2119,382],{},[54,2121,385],{},[54,2123,388],{},[67,2125,2126,2153,2175,2204,2234,2259,2278,2300,2322,2347,2370,2397,2428,2447,2480,2500,2519,2553,2573,2597,2623],{},[51,2127,2128,2131,2134,2136,2138,2148,2151],{},[72,2129,2130],{},"5-2-1",[72,2132,2133],{},"Hono on Workers 부트스트랩 + Hyperdrive(Aurora) 연결",[72,2135,401],{},[72,2137,593],{},[72,2139,2140,2141,1961,2144,2147],{},"drizzle-orm\u002Fmysql2 + ",[161,2142,2143],{},"\u002Fhealth\u002Fdb",[161,2145,2146],{},"wrangler dev --remote"," + 프로덕션 배포 #1",[72,2149,2150],{},"5\u002F26",[72,2152,2150],{},[51,2154,2155,2158,2161,2163,2165,2171,2173],{},[72,2156,2157],{},"5-2-2",[72,2159,2160],{},"DB 마이그레이션 — 49 테이블 + 파티션 5종",[72,2162,401],{},[72,2164,593],{},[72,2166,2167,2170],{},[161,2168,2169],{},"0000_initial.sql"," Aurora 적용 (49 테이블 + 75 파티션 라이브)",[72,2172,2150],{},[72,2174,2150],{},[51,2176,2177,2180,2183,2185,2187,2200,2202],{},[72,2178,2179],{},"5-2-3",[72,2181,2182],{},"기초 도메인 CRUD (14 도메인)",[72,2184,401],{},[72,2186,593],{},[72,2188,2189,2192,2193,2192,2196,2199],{},[161,2190,2191],{},"\u002Fme"," ",[161,2194,2195],{},"\u002Fcontacts",[161,2197,2198],{},"\u002Fcontact-groups"," 등 + 표준 errors\u002Fpagination\u002Fauth\u002FDrizzle 스키마",[72,2201,2150],{},[72,2203,2150],{},[51,2205,2206,2209,2212,2214,2216,2230,2232],{},[72,2207,2208],{},"5-2-4",[72,2210,2211],{},"OpenAPI 문서 (Scalar UI)",[72,2213,401],{},[72,2215,593],{},[72,2217,2218,2223,2224,2226,2227,2229],{},[24,2219,2222],{"href":2220,"rel":2221},"https:\u002F\u002Fmalgn-noti-api.malgnsoft.workers.dev\u002Fdoc",[788],"\u002Fdoc"," — paths 37 \u002F schemas 45+, 루트 ",[161,2225,1965],{}," → ",[161,2228,2222],{}," 302",[72,2231,1979],{},[72,2233,1979],{},[51,2235,2236,2239,2242,2244,2246,2255,2257],{},[72,2237,2238],{},"5-2-5",[72,2240,2241],{},"인증 — signup\u002Flogin\u002FJWT\u002FPBKDF2",[72,2243,401],{},[72,2245,593],{},[72,2247,2248,2249,2226,2252,2254],{},"Phase 1·2·3 — ",[161,2250,2251],{},"\u002Fauth\u002Fsignup",[161,2253,2191],{},", JWT HS256, JWT_SECRET secret",[72,2256,2150],{},[72,2258,2150],{},[51,2260,2261,2264,2267,2269,2271,2274,2276],{},[72,2262,2263],{},"5-2-6",[72,2265,2266],{},"발송 producer — 5채널 (SMS·Email·Kakao·Push·RCS)",[72,2268,401],{},[72,2270,593],{},[72,2272,2273],{},"발신정보 검증·옵트아웃 필터·크레딧 hold·트랜잭션. 채널 branching generic화",[72,2275,1979],{},[72,2277,1979],{},[51,2279,2280,2283,2286,2288,2290,2296,2298],{},[72,2281,2282],{},"5-2-7",[72,2284,2285],{},"멱등성 — TB_IDEMPOTENCY + INSERT-then-conflict",[72,2287,401],{},[72,2289,593],{},[72,2291,2292,2295],{},[161,2293,2294],{},"0001_idempotency.sql"," race-free 패턴",[72,2297,1979],{},[72,2299,1979],{},[51,2301,2302,2305,2308,2310,2312,2318,2320],{},[72,2303,2304],{},"5-2-8",[72,2306,2307],{},"NHN 어댑터 — 5채널 (mock\u002Freal)",[72,2309,401],{},[72,2311,593],{},[72,2313,2314,2317],{},[161,2315,2316],{},"src\u002Fadapters\u002Fnhn\u002F{sms,email,kakao,push,rcs}.ts"," + types",[72,2319,1979],{},[72,2321,1979],{},[51,2323,2324,2327,2330,2332,2334,2343,2345],{},[72,2325,2326],{},"5-2-9",[72,2328,2329],{},"Cloudflare Queues + Consumer Worker",[72,2331,401],{},[72,2333,593],{},[72,2335,2336,1961,2339,2342],{},[161,2337,2338],{},"malgn-noti-dispatch",[161,2340,2341],{},"dispatch_state"," 천이",[72,2344,1979],{},[72,2346,1979],{},[51,2348,2349,2352,2355,2357,2359,2365,2368],{},[72,2350,2351],{},"5-2-10",[72,2353,2354],{},"NHN Webhook 핸들러 (SMS·RCS)",[72,2356,444],{},[72,2358,593],{},[72,2360,2361,2364],{},[161,2362,2363],{},"POST \u002Fwebhooks\u002Fnhn\u002F{sms,rcs}"," — HMAC-SHA256 + dedup_key. Email\u002FKakao\u002FPush 미",[72,2366,2367],{},"6\u002F9",[72,2369,431],{},[51,2371,2372,2375,2378,2380,2382,2392,2395],{},[72,2373,2374],{},"5-2-11",[72,2376,2377],{},"Export 잡 (다운로드 요청)",[72,2379,444],{},[72,2381,593],{},[72,2383,2384,2387,2388,2391],{},[161,2385,2386],{},"TB_EXPORT_JOB"," ✅ DDL 적용 + ",[161,2389,2390],{},"\u002Fexport-jobs"," CRUD ✅ 라이브 검증 (POST 201, GET 200). 처리 worker + R2 미",[72,2393,2394],{},"6\u002F17",[72,2396,431],{},[51,2398,2399,2402,2405,2407,2409,2423,2426],{},[72,2400,2401],{},"5-2-12",[72,2403,2404],{},"Flow 정의 (복합 발송)",[72,2406,444],{},[72,2408,593],{},[72,2410,2411,2414,2415,2418,2419,2422],{},[161,2412,2413],{},"TB_FLOW_DEFINITION\u002FRUN\u002FSTEP_RUN"," ✅ DDL 적용 (FK 6 포함) + ",[161,2416,2417],{},"\u002Fflow-definitions"," CRUD ✅ 라이브 검증 (POST 201, GET 200). 실행 엔진(",[161,2420,2421],{},"POST \u002Fsend\u002Fflow",") 미",[72,2424,2425],{},"6\u002F22",[72,2427,431],{},[51,2429,2430,2433,2436,2438,2440,2442,2445],{},[72,2431,2432],{},"5-2-13",[72,2434,2435],{},"캠페인 API (스케줄러·시뮬레이션·테스트 발송)",[72,2437,490],{},[72,2439,593],{},[72,2441,431],{},[72,2443,2444],{},"6\u002F25",[72,2446,431],{},[51,2448,2449,2452,2455,2457,2459,2476,2478],{},[72,2450,2451],{},"5-2-14",[72,2453,2454],{},"PG(결제) 어댑터 + 카드 등록·결제·취소",[72,2456,490],{},[72,2458,593],{},[72,2460,2461,2464,2465,2468,2469,1965,2472,2475],{},[32,2462,2463],{},"TossPayments 확정"," (6\u002F4). ",[161,2466,2467],{},"src\u002Fadapters\u002Fpg\u002Ftoss.ts"," 신규 작성 + ",[161,2470,2471],{},"TOSS_CLIENT_KEY",[161,2473,2474],{},"TOSS_SECRET_KEY"," secret + 콜백 webhook 예정",[72,2477,1648],{},[72,2479,431],{},[51,2481,2482,2485,2488,2490,2492,2495,2498],{},[72,2483,2484],{},"5-2-15",[72,2486,2487],{},"AI 템플릿 게이트웨이 (LLM)",[72,2489,490],{},[72,2491,593],{},[72,2493,2494],{},"제공자 미정 (Anthropic \u002F OpenAI)",[72,2496,2497],{},"7\u002F1",[72,2499,431],{},[51,2501,2502,2505,2508,2510,2512,2515,2517],{},[72,2503,2504],{},"5-2-16",[72,2506,2507],{},"NHN 실 모드 전환 + envelope 암호화",[72,2509,444],{},[72,2511,593],{},[72,2513,2514],{},"6\u002F4 §6. Notification Hub OAuth2(client_credentials → Bearer) 어댑터 재작성 완료. SMS·Email 라우트 활성화. envelope 암호화·테넌트별 자격증명은 후속",[72,2516,1597],{},[72,2518,431],{},[51,2520,2521,2524,2531,2533,2535,2548,2551],{},[72,2522,2523],{},"5-2-17",[72,2525,2526,2527,2530],{},"계약·서류 R2 라우트 (",[161,2528,2529],{},"\u002Fcontracts\u002F*",") + FILES 바인딩",[72,2532,401],{},[72,2534,593],{},[72,2536,2537,2538,1961,2541,1965,2544,2547],{},"5 라우트(list\u002Fsign\u002Ffiles list\u002Fupload\u002Fdownload\u002Fdelete) + R2 bucket ",[161,2539,2540],{},"malgn-noti-files",[161,2542,2543],{},"TB_CONTRACT",[161,2545,2546],{},"TB_CONTRACT_FILE"," schema.ts + signup auto-create + reviewing 자동 전이 + lazy backfill (6\u002F2 §11·§12·§13)",[72,2549,2550],{},"6\u002F2",[72,2552,2550],{},[51,2554,2555,2558,2561,2563,2565,2568,2571],{},[72,2556,2557],{},"5-2-18",[72,2559,2560],{},"NICE 통합인증 인프라",[72,2562,401],{},[72,2564,593],{},[72,2566,2567],{},"6\u002F1 §5 + 6\u002F2 §16 + 6\u002F4. mock 모드 — 자격증명 등록 후 콘솔 IP 정책 1007(Workers outbound IPv6 vs NICE 콘솔 IPv4) 미해결로 mock 유지",[72,2569,2570],{},"6\u002F1",[72,2572,2570],{},[51,2574,2575,2578,2581,2583,2585,2592,2595],{},[72,2576,2577],{},"5-2-19",[72,2579,2580],{},"WBS 정본 R2 저장 + GET\u002FPATCH 라우트",[72,2582,401],{},[72,2584,593],{},[72,2586,2587,2588,2591],{},"6\u002F4 §5. DB 미사용 — R2 단일 JSON(",[161,2589,2590],{},"wbs\u002Fwbs.json",", FILES 바인딩) 시드 142 task. GET 공개 + PATCH 인증 2 라우트. last-write-wins",[72,2593,2594],{},"6\u002F4",[72,2596,2594],{},[51,2598,2599,2602,2608,2610,2612,2619,2621],{},[72,2600,2601],{},"5-2-20",[72,2603,2604,2607],{},[161,2605,2606],{},"POST \u002Fme\u002Femail-change"," — 서비스 담당자 이메일 변경",[72,2609,401],{},[72,2611,593],{},[72,2613,2614,2615,2618],{},"6\u002F4. 비밀번호 + OTP(",[161,2616,2617],{},"purpose=change_email",") + email-only UPDATE (loginid 가입 시 식별자로 고정 유지). 라이브 e2e 5 시나리오 통과",[72,2620,2594],{},[72,2622,2594],{},[51,2624,2625,2628,2631,2633,2635,2671,2673],{},[72,2626,2627],{},"5-2-21",[72,2629,2630],{},"NHN Notification Hub 어댑터 신규 (OAuth + Bearer)",[72,2632,401],{},[72,2634,593],{},[72,2636,2637,2638,2641,2642,1965,2645,2648,2649,2652,2653,1965,2656,2659,2660,1961,2663,2666,2667,2670],{},"6\u002F4 §6. ",[161,2639,2640],{},"adapters\u002Fnhn\u002Foauth.ts","(토큰 발급+캐시) + ",[161,2643,2644],{},"sms.ts",[161,2646,2647],{},"email.ts"," 재작성(POST ",[161,2650,2651],{},"\u002Fmessage\u002Fv1.0\u002F{SMS|EMAIL}\u002Ffree-form-messages\u002F{purpose}","). ",[161,2654,2655],{},"contactType=PHONE_NUMBER",[161,2657,2658],{},"EMAIL_ADDRESS",", ",[161,2661,2662],{},"X-NC-APP-KEY",[161,2664,2665],{},"X-NHN-Authorization",". ",[161,2668,2669],{},"NhnCredentials"," 확장(userAccessKey\u002FsecretAccessKey + legacy secretKey 옵셔널)",[72,2672,2594],{},[72,2674,2594],{},[40,2676,2678,2679,2682,2683],{"id":2677},"_5-3-사용자단-malgn-noti-3-트랙으로-분리","5-3. 사용자단 (",[161,2680,2681],{},"malgn-noti",") — ",[32,2684,2685],{},"3 트랙으로 분리",[14,2687,2688,2695,2726],{},[17,2689,2690,2691,2694],{},"⚠️ 2026-06-02 재구성. 그동안 5-3은 ",[32,2692,2693],{},"화면(UI)만 완료된 상태도 ✅로 표기","되어 \"실제로는 안 했는데 완료처럼 보이는\" 문제가 있었다. 이를 명확히 하기 위해 한 도메인을 세 트랙으로 나눈다:",[2696,2697,2698,2708,2717],"ul",{},[2699,2700,2701,2704,2705],"li",{},[32,2702,2703],{},"A. 화면 UI 구성"," (목업 데이터로 페이지 그리기) — ",[161,2706,2707],{},"5-3A-*",[2699,2709,2710,883,2713,2716],{},[32,2711,2712],{},"B. 백엔드 API 엔드포인트",[161,2714,2715],{},"5-2-*","에 이미 정의됨 (5-2를 도메인 단위로 재정렬한 결과는 5-3M 매트릭스 참조)",[2699,2718,2719,2722,2723],{},[32,2720,2721],{},"C. 화면 ↔ API 연동"," (실 데이터 흐름 + 상태 관리 + 에러 처리) — ",[161,2724,2725],{},"5-3C-*",[17,2727,2728],{},"✅의 의미가 트랙마다 다르다는 점에 주의. 5-3A의 ✅는 \"UI 화면이 목업으로 그려짐\" 단계까지를 의미.",[190,2730,2732],{"id":2731},"_5-3a-화면-ui-구성-목업-데이터-기준","5-3A. 화면 UI 구성 (목업 데이터 기준)",[45,2734,2735,2750],{},[48,2736,2737],{},[51,2738,2739,2741,2743,2746,2748],{},[54,2740,370],{},[54,2742,373],{},[54,2744,2745],{},"UI",[54,2747,379],{},[54,2749,382],{},[67,2751,2752,2781,2799,2817,2834,2852,2869,2889,2912,2935,2956,2971,2990,3007,3022],{},[51,2753,2754,2757,2760,2762,2764],{},[72,2755,2756],{},"5-3A-1",[72,2758,2759],{},"인증·계정 — 로그인 \u002F 회원가입 5단계 \u002F 비번 재설정 \u002F 보안 인증",[72,2761,401],{},[72,2763,593],{},[72,2765,2766,2192,2769,2192,2772,2192,2775,2192,2778],{},[161,2767,2768],{},"\u002Flogin",[161,2770,2771],{},"\u002Flogin\u002Fsecurity",[161,2773,2774],{},"\u002Freset-password",[161,2776,2777],{},"\u002Freset-password\u002Fnew",[161,2779,2780],{},"\u002Fsignup",[51,2782,2783,2786,2789,2791,2793],{},[72,2784,2785],{},"5-3A-2",[72,2787,2788],{},"발송 — 6채널 (SMS\u002FRCS\u002FKakao\u002FEmail\u002FPush\u002FFlow)",[72,2790,401],{},[72,2792,593],{},[72,2794,2795,2798],{},[161,2796,2797],{},"\u002Fsend\u002F*"," + PU 풀세트",[51,2800,2801,2804,2807,2809,2811],{},[72,2802,2803],{},"5-3A-3",[72,2805,2806],{},"이력 \u002F 통계 (5채널 + 대시보드)",[72,2808,401],{},[72,2810,593],{},[72,2812,2813,2816],{},[161,2814,2815],{},"\u002Fhistory\u002F{sms,rcs,kakao,email,push,stats}"," + 비동기 다운로드 요청 UI",[51,2818,2819,2822,2825,2827,2829],{},[72,2820,2821],{},"5-3A-4",[72,2823,2824],{},"주소록 — 연락처 \u002F 그룹 \u002F 수신거부",[72,2826,401],{},[72,2828,593],{},[72,2830,2831],{},[161,2832,2833],{},"\u002Fcontacts\u002F{list,groups,optout}",[51,2835,2836,2839,2842,2844,2846],{},[72,2837,2838],{},"5-3A-5",[72,2840,2841],{},"발신 정보 — 6종",[72,2843,401],{},[72,2845,593],{},[72,2847,2848,2851],{},[161,2849,2850],{},"\u002Fsender\u002F{numbers,brands,domains,push-cert,profiles,optout-080}"," + 등록 마법사",[51,2853,2854,2857,2860,2862,2864],{},[72,2855,2856],{},"5-3A-6",[72,2858,2859],{},"템플릿 관리 — 5채널 + 발송 상세 설정",[72,2861,401],{},[72,2863,593],{},[72,2865,2866],{},[161,2867,2868],{},"\u002Fmanage\u002F{sms,rcs,kakao,email,push,settings}",[51,2870,2871,2874,2877,2879,2881],{},[72,2872,2873],{},"5-3A-7",[72,2875,2876],{},"캠페인 — 본안 + 변형 v3",[72,2878,401],{},[72,2880,593],{},[72,2882,2883,2192,2886],{},[161,2884,2885],{},"\u002Fcampaign",[161,2887,2888],{},"\u002Fcampaign3",[51,2890,2891,2894,2897,2899,2901],{},[72,2892,2893],{},"5-3A-8",[72,2895,2896],{},"크레딧 \u002F 결제 — 충전·결과·내역·영수증·카드",[72,2898,401],{},[72,2900,593],{},[72,2902,2903,2192,2906,2192,2909],{},[161,2904,2905],{},"\u002Fcharge",[161,2907,2908],{},"\u002Fcharge\u002Fresult",[161,2910,2911],{},"\u002Faccount\u002F{credit,cards}",[51,2913,2914,2917,2920,2922,2924],{},[72,2915,2916],{},"5-3A-9",[72,2918,2919],{},"문의 — 작성 \u002F 완료 \u002F 내 문의 \u002F 상세",[72,2921,401],{},[72,2923,593],{},[72,2925,2926,2192,2929,2192,2932],{},[161,2927,2928],{},"\u002Finquiry",[161,2930,2931],{},"\u002Finquiry\u002Fcomplete",[161,2933,2934],{},"\u002Faccount\u002Finquiries(\u002Fdetail)",[51,2936,2937,2940,2943,2945,2947],{},[72,2938,2939],{},"5-3A-10",[72,2941,2942],{},"나의 페이지 — 9 라우트",[72,2944,401],{},[72,2946,593],{},[72,2948,2949,2952,2953],{},[161,2950,2951],{},"\u002Faccount\u002F*"," 9종 + ",[161,2954,2955],{},"AppMyPageShell",[51,2957,2958,2961,2964,2966,2968],{},[72,2959,2960],{},"5-3A-11",[72,2962,2963],{},"메시지 관리 랜딩페이지",[72,2965,401],{},[72,2967,593],{},[72,2969,2970],{},"목록 · 기본형\u002F확장형 등록 폼 · 미리보기",[51,2972,2973,2976,2979,2981,2983],{},[72,2974,2975],{},"5-3A-12",[72,2977,2978],{},"공개 랜딩페이지 + 운영 가이드",[72,2980,401],{},[72,2982,593],{},[72,2984,2985,2987,2988],{},[161,2986,1965],{},"(공개) + ",[161,2989,1466],{},[51,2991,2992,2995,2998,3000,3002],{},[72,2993,2994],{},"5-3A-13",[72,2996,2997],{},"디자인 가이드 (라이브 카탈로그)",[72,2999,401],{},[72,3001,593],{},[72,3003,3004,3006],{},[161,3005,1850],{}," — 18+ 섹션",[51,3008,3009,3012,3015,3017,3019],{},[72,3010,3011],{},"5-3A-14",[72,3013,3014],{},"시스템 페이지 — 404 \u002F system error",[72,3016,444],{},[72,3018,593],{},[72,3020,3021],{},"단독 일부 라이브. 점검 \u002F 네트워크 \u002F 인증 메일 템플릿 미",[51,3023,3024,3027,3033,3035,3037],{},[72,3025,3026],{},"5-3A-15",[72,3028,3029,3032],{},[161,3030,3031],{},"\u002Fwbs"," 페이지 — R2 정본 비동기 로드 + 인라인 편집 모달",[72,3034,401],{},[72,3036,593],{},[72,3038,3039,3040,2666,3043,3046],{},"6\u002F4 §5. 임베디드 STAGES 제거 → top-level await ",[161,3041,3042],{},"api(\u002Fwbs)",[161,3044,3045],{},"AppModal"," 편집 다이얼로그(owner·note·href·targetDate·completionDate). 비로그인 읽기 전용 + \"로그인하면 편집 가능\" 힌트",[190,3048,3050],{"id":3049},"_5-3m-화면-api-연동-매트릭스-3-트랙-한눈에","5-3M. 화면 ↔ API 연동 매트릭스 (3 트랙 한눈에)",[14,3052,3053],{},[17,3054,3055,3056,3059],{},"각 도메인의 진척을 ",[32,3057,3058],{},"UI \u002F API \u002F 연동"," 3 트랙으로 분리해 한 행에. ✅=완료, 🟢=진행 중·부분, ⚪=미.",[45,3061,3062,3084],{},[48,3063,3064],{},[51,3065,3066,3069,3072,3075,3081],{},[54,3067,3068],{},"도메인",[54,3070,3071],{},"UI (5-3A)",[54,3073,3074],{},"API 엔드포인트 (5-2)",[54,3076,3077,3080],{},[32,3078,3079],{},"연동"," (5-3C)",[54,3082,3083],{},"비고",[67,3085,3086,3114,3133,3151,3169,3187,3205,3228,3244,3262,3285,3319,3341,3357,3380,3398,3431,3450,3469,3487,3506,3525,3547,3567,3589,3607],{},[51,3087,3088,3094,3096,3109,3111],{},[72,3089,3090,3093],{},[32,3091,3092],{},"인증·계정"," (로그인\u002F가입\u002Fme)",[72,3095,401],{},[72,3097,3098,3099,1954,3101,1954,3104,1954,3106,182],{},"✅ (",[161,3100,2251],{},[161,3102,3103],{},"\u002Fauth\u002Flogin",[161,3105,2191],{},[161,3107,3108],{},"\u002Fauth\u002Femail-code\u002F*",[72,3110,401],{},[72,3112,3113],{},"6\u002F1 §4·§5 완료. JWT 쿠키 + 부트스트랩 플러그인. signup OTP 인증 실 API 연동.",[51,3115,3116,3121,3123,3128,3130],{},[72,3117,3118],{},[32,3119,3120],{},"발송 SMS\u002FLMS\u002FMMS",[72,3122,401],{},[72,3124,3098,3125,182],{},[161,3126,3127],{},"POST \u002Fsend\u002Fsms",[72,3129,490],{},[72,3131,3132],{},"producer 라이브, 실 NHN 자격증명 미 → mock fallback",[51,3134,3135,3140,3142,3147,3149],{},[72,3136,3137],{},[32,3138,3139],{},"발송 RCS",[72,3141,401],{},[72,3143,3098,3144,182],{},[161,3145,3146],{},"POST \u002Fsend\u002Frcs",[72,3148,490],{},[72,3150],{},[51,3152,3153,3158,3160,3165,3167],{},[72,3154,3155],{},[32,3156,3157],{},"발송 알림톡\u002F친구톡",[72,3159,401],{},[72,3161,3098,3162,182],{},[161,3163,3164],{},"POST \u002Fsend\u002Fkakao",[72,3166,490],{},[72,3168],{},[51,3170,3171,3176,3178,3183,3185],{},[72,3172,3173],{},[32,3174,3175],{},"발송 Email",[72,3177,401],{},[72,3179,3098,3180,182],{},[161,3181,3182],{},"POST \u002Fsend\u002Femail",[72,3184,490],{},[72,3186],{},[51,3188,3189,3194,3196,3201,3203],{},[72,3190,3191],{},[32,3192,3193],{},"발송 Push",[72,3195,401],{},[72,3197,3098,3198,182],{},[161,3199,3200],{},"POST \u002Fsend\u002Fpush",[72,3202,490],{},[72,3204],{},[51,3206,3207,3212,3214,3224,3226],{},[72,3208,3209],{},[32,3210,3211],{},"발송 Flow",[72,3213,401],{},[72,3215,3216,3217,3220,3221,3223],{},"🟢 (",[161,3218,3219],{},"POST \u002Fflow-definitions"," CRUD ✅, ",[161,3222,2421],{}," 실행 엔진 미)",[72,3225,490],{},[72,3227],{},[51,3229,3230,3235,3237,3240,3242],{},[72,3231,3232],{},[32,3233,3234],{},"이력\u002F통계",[72,3236,401],{},[72,3238,3239],{},"🟢 (목록 라우트 부분, 통계 라우트 미)",[72,3241,490],{},[72,3243],{},[51,3245,3246,3251,3253,3258,3260],{},[72,3247,3248],{},[32,3249,3250],{},"다운로드 요청 (Export)",[72,3252,401],{},[72,3254,3216,3255,3257],{},[161,3256,2390],{}," CRUD ✅, 처리 worker + R2 미)",[72,3259,490],{},[72,3261],{},[51,3263,3264,3270,3272,3281,3283],{},[72,3265,3266,3269],{},[32,3267,3268],{},"주소록"," (연락처\u002F그룹\u002F수신거부)",[72,3271,401],{},[72,3273,3098,3274,1954,3276,1954,3278,182],{},[161,3275,2195],{},[161,3277,2198],{},[161,3279,3280],{},"\u002Foptout-entries",[72,3282,490],{},[72,3284],{},[51,3286,3287,3293,3295,3315,3317],{},[72,3288,3289,3292],{},[32,3290,3291],{},"발신 정보"," (6종)",[72,3294,401],{},[72,3296,3098,3297,1954,3300,1954,3303,1954,3306,1954,3309,1954,3312,182],{},[161,3298,3299],{},"\u002Fsender-phones",[161,3301,3302],{},"\u002Frcs-brands",[161,3304,3305],{},"\u002Femail-domains",[161,3307,3308],{},"\u002Fpush-certs",[161,3310,3311],{},"\u002Fkakao-sender-profiles",[161,3313,3314],{},"\u002Foptout-080-numbers",[72,3316,490],{},[72,3318],{},[51,3320,3321,3327,3329,3337,3339],{},[72,3322,3323,3326],{},[32,3324,3325],{},"템플릿"," (5채널 + settings)",[72,3328,401],{},[72,3330,3098,3331,1954,3334,182],{},[161,3332,3333],{},"\u002Ftemplates",[161,3335,3336],{},"\u002Fcompany-settings",[72,3338,490],{},[72,3340],{},[51,3342,3343,3348,3350,3353,3355],{},[72,3344,3345],{},[32,3346,3347],{},"캠페인",[72,3349,401],{},[72,3351,3352],{},"⚪ (스케줄러·시뮬레이션·테스트)",[72,3354,490],{},[72,3356],{},[51,3358,3359,3364,3366,3376,3378],{},[72,3360,3361],{},[32,3362,3363],{},"크레딧·결제",[72,3365,401],{},[72,3367,3216,3368,3371,3372,3375],{},[161,3369,3370],{},"\u002Fcredit-ledger"," 읽기, ",[161,3373,3374],{},"\u002Fpayment-methods"," 일부, PG 어댑터 미)",[72,3377,490],{},[72,3379],{},[51,3381,3382,3387,3389,3394,3396],{},[72,3383,3384],{},[32,3385,3386],{},"문의",[72,3388,401],{},[72,3390,3098,3391,182],{},[161,3392,3393],{},"\u002Finquiries",[72,3395,490],{},[72,3397],{},[51,3399,3400,3406,3408,3422,3424],{},[72,3401,3402,3405],{},[32,3403,3404],{},"나의 페이지"," — 회원 정보 변경",[72,3407,401],{},[72,3409,3098,3410,3413,3414,3413,3417,3413,3420,182],{},[161,3411,3412],{},"GET \u002Fme"," · ",[161,3415,3416],{},"PATCH \u002Fme",[161,3418,3419],{},"PATCH \u002Fme\u002Fcompany",[161,3421,2606],{},[72,3423,401],{},[72,3425,3426,3427,3430],{},"6\u002F2 §6 + 6\u002F4. 서비스 담당자 이메일 변경(OTP + 비밀번호 검증, ",[32,3428,3429],{},"loginid 유지",") 실 API 연동",[51,3432,3433,3438,3440,3446,3448],{},[72,3434,3435,3437],{},[32,3436,3404],{}," — 비밀번호 변경",[72,3439,401],{},[72,3441,3442,3443,182],{},"⚪ (",[161,3444,3445],{},"POST \u002Fauth\u002Fpassword",[72,3447,490],{},[72,3449],{},[51,3451,3452,3457,3459,3464,3466],{},[72,3453,3454,3456],{},[32,3455,3404],{}," — 보안로그인 (2FA)",[72,3458,401],{},[72,3460,3442,3461,182],{},[161,3462,3463],{},"PATCH \u002Fme\u002Fsecurity",[72,3465,490],{},[72,3467,3468],{},"TB_VERIFICATION 재사용",[51,3470,3471,3476,3478,3483,3485],{},[72,3472,3473,3475],{},[32,3474,3404],{}," — 멀티 계정 (담당자 초대)",[72,3477,401],{},[72,3479,3442,3480,182],{},[161,3481,3482],{},"\u002Fmanager-invites",[72,3484,490],{},[72,3486],{},[51,3488,3489,3494,3496,3501,3503],{},[72,3490,3491,3493],{},[32,3492,3404],{}," — 계약 관리",[72,3495,401],{},[72,3497,3098,3498,3500],{},[161,3499,2529],{}," 5 라우트 + R2)",[72,3502,401],{},[72,3504,3505],{},"6\u002F2 §11~§15. 이용계약·서명·R2 업로드·미리보기·삭제·휴대폰 본인인증 모두 실 API. 운영자 승인 화면만 미",[51,3507,3508,3513,3515,3521,3523],{},[72,3509,3510],{},[32,3511,3512],{},"비밀번호 재설정",[72,3514,401],{},[72,3516,3442,3517,3520],{},[161,3518,3519],{},"POST \u002Fauth\u002Fpassword\u002Freset"," — OTP 인프라 재활용)",[72,3522,490],{},[72,3524],{},[51,3526,3527,3532,3535,3542,3544],{},[72,3528,3529],{},[32,3530,3531],{},"로그아웃",[72,3533,3534],{},"(GNB 데모 토글)",[72,3536,3537,3538,3541],{},"(클라이언트 쿠키 삭제만, ",[161,3539,3540],{},"TB_SESSION"," 미)",[72,3543,490],{},[72,3545,3546],{},"GNB 미연동",[51,3548,3549,3554,3557,3562,3564],{},[72,3550,3551],{},[32,3552,3553],{},"약관 동의 적재",[72,3555,3556],{},"(Step 3 화면용 체크박스)",[72,3558,3442,3559,182],{},[161,3560,3561],{},"POST \u002Fauth\u002Fagree-terms",[72,3563,490],{},[72,3565,3566],{},"TB_TERMS·TB_TERMS_AGREEMENT",[51,3568,3569,3574,3577,3584,3586],{},[72,3570,3571],{},[32,3572,3573],{},"사업자등록증 심사 승인 게이트",[72,3575,3576],{},"✅ (배너 + 미들웨어)",[72,3578,3579,3580,3583],{},"✅ (DB 4단계 + ",[161,3581,3582],{},"requireApproved"," 18 라우트 + reviewing 자동 전이)",[72,3585,401],{},[72,3587,3588],{},"6\u002F2 §7~§10·§12·§13·§14. 운영자단 승인 UI만 미",[51,3590,3591,3595,3597,3603,3605],{},[72,3592,3593],{},[32,3594,2963],{},[72,3596,401],{},[72,3598,3442,3599,3602],{},[161,3600,3601],{},"\u002Flanding-pages"," 부분)",[72,3604,490],{},[72,3606],{},[51,3608,3609,3614,3616,3619,3621],{},[72,3610,3611],{},[32,3612,3613],{},"시스템 페이지",[72,3615,444],{},[72,3617,3618],{},"(정적)",[72,3620,431],{},[72,3622],{},[17,3624,3625,3628],{},[32,3626,3627],{},"진척 합계"," (트랙별, 2026-06-04 기준):",[2696,3630,3631,3641,3651],{},[2699,3632,3633,3634,3637,3638,3640],{},"UI(5-3A) — 14 ✅ + 1 🟢 = ",[32,3635,3636],{},"거의 완료"," (6\u002F4 신규 5-3A-15 ",[161,3639,3031],{}," 페이지 R2 비동기 로드 + 인라인 편집)",[2699,3642,3643,3644,3647,3648,3650],{},"API(5-2) — 13 ✅ + 2 🟢 + 3 ⚪ = ",[32,3645,3646],{},"약 72%"," (6\u002F4 신규 5-2-19 WBS R2 + 5-2-20 ",[161,3649,163],{}," + 5-2-21 NHN Notification Hub 어댑터)",[2699,3652,3653,3656],{},[32,3654,3655],{},"연동(5-3C) — 10 ✅ + 2 🟢 + 8 ⚪ = 약 40%"," (인증·계정 \u002F 이메일 OTP \u002F login-by-email \u002F companyType \u002F 회원정보 \u002F 계약 관리 \u002F 승인 게이트 \u002F 계약 서명 본인인증 \u002F 사업자등록증 reviewing 자동전이 \u002F 서비스 담당자 이메일 변경)",[190,3658,3660],{"id":3659},"_5-3c-화면-api-연동-개별-작업-항목-진행-중","5-3C. 화면 ↔ API 연동 (개별 작업 항목, 진행 중)",[45,3662,3663,3677],{},[48,3664,3665],{},[51,3666,3667,3669,3671,3673,3675],{},[54,3668,370],{},[54,3670,373],{},[54,3672,376],{},[54,3674,379],{},[54,3676,382],{},[67,3678,3679,3702,3723,3741,3761,3779,3796,3814,3842,3861,3880,3899,3923,3938,3953,3967,3981,3998,4020,4035,4057],{},[51,3680,3681,3684,3692,3694,3696],{},[72,3682,3683],{},"5-3C-1",[72,3685,3686,3687,1961,3690,182],{},"인증·계정 (",[161,3688,3689],{},"\u002Fauth\u002F*",[161,3691,2191],{},[72,3693,401],{},[72,3695,593],{},[72,3697,3698,3699],{},"6\u002F1 §4 완료. JWT 쿠키 + 부트스트랩 플러그인 + ",[161,3700,3701],{},"last-company-id",[51,3703,3704,3707,3712,3714,3716],{},[72,3705,3706],{},"5-3C-1a",[72,3708,3709,3710,182],{},"이메일 OTP (",[161,3711,3108],{},[72,3713,401],{},[72,3715,593],{},[72,3717,3718,3719,3722],{},"6\u002F1 §5 완료. ",[161,3720,3721],{},"signup.vue"," Step 3에서 실 API 호출",[51,3724,3725,3728,3731,3733,3735],{},[72,3726,3727],{},"5-3C-2",[72,3729,3730],{},"로그아웃 — GNB 실 연결",[72,3732,490],{},[72,3734,593],{},[72,3736,3737,3740],{},[161,3738,3739],{},"useAuthStore().logout()"," 호출로 GNB 데모 토글 교체",[51,3742,3743,3746,3749,3751,3753],{},[72,3744,3745],{},"5-3C-3",[72,3747,3748],{},"비밀번호 재설정 — OTP 인프라 재활용",[72,3750,490],{},[72,3752,593],{},[72,3754,3755,1961,3758,3760],{},[161,3756,3757],{},"purpose='reset_password'",[161,3759,3519],{}," 신설",[51,3762,3763,3766,3772,3774,3776],{},[72,3764,3765],{},"5-3C-4",[72,3767,3768,3771],{},[161,3769,3770],{},"POST \u002Fauth\u002Flogin-by-email"," — companyId UX 개선",[72,3773,401],{},[72,3775,593],{},[72,3777,3778],{},"6\u002F2 §2. 고객사 ID 필드 제거",[51,3780,3781,3784,3789,3791,3793],{},[72,3782,3783],{},"5-3C-5",[72,3785,3786,3787,182],{},"약관 동의 적재 (",[161,3788,3561],{},[72,3790,490],{},[72,3792,593],{},[72,3794,3795],{},"TB_TERMS_AGREEMENT",[51,3797,3798,3801,3807,3809,3811],{},[72,3799,3800],{},"5-3C-6",[72,3802,3803,3806],{},[161,3804,3805],{},"companyType"," 전달·저장 + 화면 분기",[72,3808,444],{},[72,3810,593],{},[72,3812,3813],{},"6\u002F2 §7. signup 전달·저장 ✅. 개인 메뉴 미노출 분기 미",[51,3815,3816,3819,3827,3829,3831],{},[72,3817,3818],{},"5-3C-7",[72,3820,3821,1961,3823,3826],{},[161,3822,3416],{},[161,3824,3825],{},"\u002Faccount\u002Fsettings"," (회원 정보 변경)",[72,3828,401],{},[72,3830,593],{},[72,3832,3833,3834,1954,3836,1954,3839,3841],{},"6\u002F2 §6 + 6\u002F4. ",[161,3835,3416],{},[161,3837,3838],{},"\u002Fme\u002Fcompany",[161,3840,2606],{},". 서비스 담당자 이메일 변경(loginid 유지·email만)·결제 이메일 변경·광고수신 토글 모두 실 API. 비밀번호 변경은 5-3C-8 별도",[51,3843,3844,3847,3855,3857,3859],{},[72,3845,3846],{},"5-3C-8",[72,3848,3849,1961,3851,3854],{},[161,3850,3445],{},[161,3852,3853],{},"\u002Faccount\u002Fpassword"," (비밀번호 변경)",[72,3856,490],{},[72,3858,593],{},[72,3860],{},[51,3862,3863,3866,3874,3876,3878],{},[72,3864,3865],{},"5-3C-9",[72,3867,3868,3871,3872],{},[161,3869,3870],{},"\u002Faccount\u002Fsecurity"," (2FA) + ",[161,3873,3463],{},[72,3875,490],{},[72,3877,593],{},[72,3879,3468],{},[51,3881,3882,3885,3892,3894,3896],{},[72,3883,3884],{},"5-3C-10",[72,3886,3887,1961,3890],{},[161,3888,3889],{},"\u002Faccount\u002Fmulti",[161,3891,3482],{},[72,3893,490],{},[72,3895,593],{},[72,3897,3898],{},"초대 토큰·수락 흐름",[51,3900,3901,3904,3913,3915,3917],{},[72,3902,3903],{},"5-3C-11",[72,3905,3906,1961,3909,3912],{},[161,3907,3908],{},"\u002Faccount\u002Fcontract",[161,3910,3911],{},"\u002Fcontracts\u002F*\u002Ffiles"," (R2 업로드)",[72,3914,401],{},[72,3916,593],{},[72,3918,3919,3920,3922],{},"6\u002F2 §11~§15. ",[161,3921,2529],{}," 5 라우트 + R2 + 미리보기·삭제·휴대폰 본인인증 서명 + 사업자등록증 자동 reviewing 전이",[51,3924,3925,3928,3931,3933,3935],{},[72,3926,3927],{},"5-3C-12",[72,3929,3930],{},"발송 6채널 — UI에 실 API 호출 (Idempotency-Key 헤더 포함)",[72,3932,490],{},[72,3934,593],{},[72,3936,3937],{},"NHN Notification Hub 자격증명 + 어댑터 재작성 필요 (6\u002F2 §16)",[51,3939,3940,3943,3946,3948,3950],{},[72,3941,3942],{},"5-3C-13",[72,3944,3945],{},"이력\u002F통계 — 목록·통계 라우트 연동",[72,3947,490],{},[72,3949,593],{},[72,3951,3952],{},"API 일부 미구현이라 5-2 동시 진행 필요",[51,3954,3955,3958,3961,3963,3965],{},[72,3956,3957],{},"5-3C-14",[72,3959,3960],{},"주소록·발신 정보·템플릿 — CRUD 연동 (API 모두 ✅이므로 프런트 작업)",[72,3962,490],{},[72,3964,593],{},[72,3966],{},[51,3968,3969,3972,3975,3977,3979],{},[72,3970,3971],{},"5-3C-15",[72,3973,3974],{},"크레딧·결제 — 충전 흐름은 PG 어댑터 미정 (블로커)",[72,3976,490],{},[72,3978,593],{},[72,3980],{},[51,3982,3983,3986,3992,3994,3996],{},[72,3984,3985],{},"5-3C-16",[72,3987,3988,3989,3991],{},"문의 — ",[161,3990,3393],{}," 연동",[72,3993,490],{},[72,3995,593],{},[72,3997],{},[51,3999,4000,4003,4006,4008,4010],{},[72,4001,4002],{},"5-3C-17",[72,4004,4005],{},"사업자등록증 심사 승인 게이트 (DB + 미들웨어 + 배너 + 라우트 가드)",[72,4007,401],{},[72,4009,593],{},[72,4011,4012,4013,4015,4016,4019],{},"6\u002F2 §7~§10·§12·§13·§14. 4단계 enum(pending\u002Freviewing\u002Fapproved\u002Frejected) + ",[161,4014,3582],{}," 18 라우트 + ",[161,4017,4018],{},"AppApprovalBanner"," 3분기 + lazy backfill",[51,4021,4022,4025,4028,4030,4032],{},[72,4023,4024],{},"5-3C-18",[72,4026,4027],{},"사업자등록증 첨부 시 reviewing 자동 전이 + 파일 행 배지 + 반려 시 삭제",[72,4029,401],{},[72,4031,593],{},[72,4033,4034],{},"6\u002F2 §12·§14",[51,4036,4037,4040,4050,4052,4054],{},[72,4038,4039],{},"5-3C-19",[72,4041,4042,4043,4046,4047,182],{},"계약서 전자서명 다이얼로그 — 휴대폰 본인인증 sub-step (",[161,4044,4045],{},"phone-code"," purpose=",[161,4048,4049],{},"contract_sign",[72,4051,401],{},[72,4053,593],{},[72,4055,4056],{},"6\u002F2 §15. 공인인증서 탭 제거 + dialog open 시 fetchMe 강제 hydrate",[51,4058,4059,4062,4065,4067,4069],{},[72,4060,4061],{},"5-3C-20",[72,4063,4064],{},"서비스 담당자 이메일 변경 — 실 OTP API 연동",[72,4066,401],{},[72,4068,593],{},[72,4070,4071,4072,2192,4075,1965,4078,4081,4082,4085,4086,4088,4089,4092,4093,2226,4096,2666,4098],{},"6\u002F4. ",[161,4073,4074],{},"AppEmailChangeDialog",[161,4076,4077],{},"sendCode",[161,4079,4080],{},"confirmCode","를 ",[161,4083,4084],{},"\u002Fauth\u002Femail-code\u002F{send,verify}","(",[161,4087,2617],{},")로 교체. confirm payload ",[161,4090,4091],{},"{newEmail,code,password}",". auth store ",[161,4094,4095],{},"changeEmail()",[161,4097,2606],{},[32,4099,4100],{},"결제 이메일 변경은 기존 흐름 유지",[40,4102,4104,4105,4108],{"id":4103},"_5-4-관리자단-malgn-noti-admin-화면-개발","5-4. 관리자단 (",[161,4106,4107],{},"malgn-noti-admin",") 화면 개발",[45,4110,4111,4125],{},[48,4112,4113],{},[51,4114,4115,4117,4119,4121,4123],{},[54,4116,370],{},[54,4118,373],{},[54,4120,376],{},[54,4122,379],{},[54,4124,382],{},[67,4126,4127,4142,4160,4175,4189,4203,4217,4232,4246,4260,4275,4289,4303,4317,4336,4365],{},[51,4128,4129,4132,4135,4137,4139],{},[72,4130,4131],{},"5-4-1",[72,4133,4134],{},"셸 + LNB(8 그룹) + TopBar + 디자인 가이드",[72,4136,401],{},[72,4138,593],{},[72,4140,4141],{},"부트스트랩·라이브",[51,4143,4144,4147,4150,4152,4154],{},[72,4145,4146],{},"5-4-2",[72,4148,4149],{},"페이지 기획 MD (33종)",[72,4151,401],{},[72,4153,593],{},[72,4155,4156,4159],{},[161,4157,4158],{},"doc\u002Fpages\u002F"," — P0: 14 \u002F P1: 13 \u002F P2: 5",[51,4161,4162,4165,4168,4170,4172],{},[72,4163,4164],{},"5-4-3",[72,4166,4167],{},"회원·고객사 관리 (P0)",[72,4169,490],{},[72,4171,593],{},[72,4173,4174],{},"회원 발송 이력 \u002F 고객사 결제 상세 \u002F 환불",[51,4176,4177,4180,4183,4185,4187],{},[72,4178,4179],{},"5-4-4",[72,4181,4182],{},"시스템 관리 (P0) — 운영자 계정 \u002F RBAC \u002F 감사 로그",[72,4184,490],{},[72,4186,593],{},[72,4188,431],{},[51,4190,4191,4194,4197,4199,4201],{},[72,4192,4193],{},"5-4-5",[72,4195,4196],{},"요금 \u002F 단가 관리 (P0)",[72,4198,490],{},[72,4200,593],{},[72,4202,431],{},[51,4204,4205,4208,4211,4213,4215],{},[72,4206,4207],{},"5-4-6",[72,4209,4210],{},"고객지원 (P0)",[72,4212,490],{},[72,4214,593],{},[72,4216,1577],{},[51,4218,4219,4222,4225,4227,4229],{},[72,4220,4221],{},"5-4-7",[72,4223,4224],{},"발송 운영 모니터링 (P1)",[72,4226,490],{},[72,4228,593],{},[72,4230,4231],{},"캠페인 제외",[51,4233,4234,4237,4240,4242,4244],{},[72,4235,4236],{},"5-4-8",[72,4238,4239],{},"발신 정보 검수 (P0)",[72,4241,490],{},[72,4243,593],{},[72,4245,431],{},[51,4247,4248,4251,4254,4256,4258],{},[72,4249,4250],{},"5-4-9",[72,4252,4253],{},"결제 \u002F 크레딧 관리 + 고객사 상세 결제 탭 (P0)",[72,4255,490],{},[72,4257,593],{},[72,4259,431],{},[51,4261,4262,4265,4268,4270,4272],{},[72,4263,4264],{},"5-4-10",[72,4266,4267],{},"템플릿 검수·관리 (P0)",[72,4269,490],{},[72,4271,593],{},[72,4273,4274],{},"샘플·AI 템플릿 정책 제외",[51,4276,4277,4280,4283,4285,4287],{},[72,4278,4279],{},"5-4-11",[72,4281,4282],{},"수신거부(운영) (P1)",[72,4284,490],{},[72,4286,593],{},[72,4288,431],{},[51,4290,4291,4294,4297,4299,4301],{},[72,4292,4293],{},"5-4-12",[72,4295,4296],{},"통계 \u002F 리포트 + 대시보드 (P2)",[72,4298,490],{},[72,4300,593],{},[72,4302,431],{},[51,4304,4305,4308,4311,4313,4315],{},[72,4306,4307],{},"5-4-13",[72,4309,4310],{},"콘텐츠 \u002F 사이트 관리 + 시스템 관리 + API 관리 (P2)",[72,4312,490],{},[72,4314,593],{},[72,4316,431],{},[51,4318,4319,4322,4325,4327,4329],{},[72,4320,4321],{},"5-4-14",[72,4323,4324],{},"핸드오프 정본 17 페이지 풀세트 (화면만, API 연동 후속)",[72,4326,401],{},[72,4328,593],{},[72,4330,4331,4332,4335],{},"6\u002F4 §3. ",[161,4333,4334],{},"handoff_noti_admin","(3,129줄 jsx) → Vue 1:1 포팅. 셸 완전 재정비 + 공유 컴포넌트 14종 + 차트 4종 + 17 페이지(대시보드·고객사·고객사 상세·계정·모니터링·발신번호·발신프로필·템플릿검수·결제·채널단가·충전쿠폰·1:1문의·FAQ·공지·통계·운영자·권한그룹·API). 18 라우트 라이브 200",[51,4337,4338,4341,4347,4349,4351],{},[72,4339,4340],{},"5-4-15",[72,4342,4343,4344,182],{},"페이지 진척 상태 라벨 (",[161,4345,4346],{},"dev=screen\u002Fpartial\u002Flive",[72,4348,401],{},[72,4350,593],{},[72,4352,4071,4353,4356,4357,4360,4361,4364],{},[161,4354,4355],{},"AppPageHeader"," prop ",[161,4358,4359],{},"dev"," 3단계. 화면(neutral·flask)·일부 연동(warning·construction)·연동(미표시). 17 페이지 모두 ",[161,4362,4363],{},"dev=\"screen\"","으로 명시",[51,4366,4367,4370,4373,4375,4377],{},[72,4368,4369],{},"5-4-16",[72,4371,4372],{},"로고\u002F브랜드 — 사용자단 로고로 통일 + \"관리자\" 식별 태그",[72,4374,401],{},[72,4376,593],{},[72,4378,4379,4380,4383,4384,4387],{},"6\u002F4. 기존 파랑 그라데이션 박스 폐기 → ",[161,4381,4382],{},"AppLogoMark","(말풍선+스파클) + \"맑은 message\" + ",[161,4385,4386],{},"primary-50"," 배경 \"관리자\" 배지",[40,4389,4391],{"id":4390},"_5-5-통합배포","5-5. 통합·배포",[45,4393,4394,4408],{},[48,4395,4396],{},[51,4397,4398,4400,4402,4404,4406],{},[54,4399,370],{},[54,4401,373],{},[54,4403,376],{},[54,4405,379],{},[54,4407,382],{},[67,4409,4410,4425,4440,4458,4486,4508,4523,4544,4561,4575,4601,4626],{},[51,4411,4412,4415,4418,4420,4422],{},[72,4413,4414],{},"5-5-1",[72,4416,4417],{},"사용자단 Cloudflare Pages 배포 #1~#80+ alias 다수",[72,4419,444],{},[72,4421,593],{},[72,4423,4424],{},"매 마일스톤 직후 배포 (6\u002F4 누적 #80+ alias 다수)",[51,4426,4427,4430,4433,4435,4437],{},[72,4428,4429],{},"5-5-2",[72,4431,4432],{},"관리자단 Cloudflare Pages 첫 Nuxt 배포",[72,4434,401],{},[72,4436,593],{},[72,4438,4439],{},"정적 placeholder → 실 Nuxt 앱 (#1)",[51,4441,4442,4445,4448,4450,4452],{},[72,4443,4444],{},"5-5-3",[72,4446,4447],{},"API Workers 배포 #1~#25+",[72,4449,444],{},[72,4451,593],{},[72,4453,4454,4455],{},"6\u002F4 최신 Version ",[161,4456,4457],{},"1ca0446e-ed3f-4079-be5f-3407f4550ba7",[51,4459,4460,4463,4474,4476,4478],{},[72,4461,4462],{},"5-5-4",[72,4464,4465,4466,4469,4470,4473],{},"DDL — ",[161,4467,4468],{},"0001","~",[161,4471,4472],{},"0005"," 라이브 적용",[72,4475,401],{},[72,4477,593],{},[72,4479,4480,4481,1965,4483,4485],{},"0001 idempotency \u002F 0002 export_flow \u002F 0003 loginid global unique \u002F 0004 nice_auth \u002F 0005 company_approval. ",[161,4482,2543],{},[161,4484,2546],{},"은 §11에서 schema.ts 정의(라이브에 이미 존재)",[51,4487,4488,4491,4494,4496,4498],{},[72,4489,4490],{},"5-5-5",[72,4492,4493],{},"NHN Notification Hub 실 자격증명 등록 + 어댑터 재작성",[72,4495,444],{},[72,4497,593],{},[72,4499,4500,4503,4504,4507],{},[32,4501,4502],{},"6\u002F4: SMS·Email 어댑터 Notification Hub로 재작성 완료"," + Email real 발송 검증 통과. SMS는 NHN 콘솔 발신번호 등록 + ",[161,4505,4506],{},"SMS_FROM"," secret 대기. push\u002Frcs\u002Fkakao 어댑터 마이그레이션 후속",[51,4509,4510,4513,4516,4518,4520],{},[72,4511,4512],{},"5-5-6",[72,4514,4515],{},"NICE 통합인증 실 모드 전환",[72,4517,490],{},[72,4519,593],{},[72,4521,4522],{},"6\u002F4 재시도 → 여전히 1007 (Workers outbound IPv6 vs NICE 콘솔 IPv4 등록). 사용자 콘솔 IP 정책 해결 대기",[51,4524,4525,4528,4534,4536,4538],{},[72,4526,4527],{},"5-5-7",[72,4529,4530,4531,4533],{},"R2 bucket ",[161,4532,2540],{}," 신규 + FILES 바인딩",[72,4535,401],{},[72,4537,593],{},[72,4539,4540,4541,4543],{},"6\u002F2 §11. 사업자등록증·대부업등록증·보험증권 첨부용. 6\u002F4 §5에서 ",[161,4542,2590],{}," 시드 추가",[51,4545,4546,4549,4552,4554,4556],{},[72,4547,4548],{},"5-5-8",[72,4550,4551],{},"PG 카드 결제 연동",[72,4553,490],{},[72,4555,593],{},[72,4557,4558,4560],{},[32,4559,2463],{},"(6\u002F4). 미구현",[51,4562,4563,4566,4569,4571,4573],{},[72,4564,4565],{},"5-5-9",[72,4567,4568],{},"AI 템플릿 게이트웨이 연동",[72,4570,490],{},[72,4572,593],{},[72,4574,431],{},[51,4576,4577,4580,4583,4585,4587],{},[72,4578,4579],{},"5-5-10",[72,4581,4582],{},"Hyperdrive Cloudflare Tunnel(Access) 전환",[72,4584,401],{},[72,4586,593],{},[72,4588,4589,4590,2226,4593,4596,4597,4600],{},"6\u002F4 §2. id ",[161,4591,4592],{},"a2ba…",[161,4594,4595],{},"439b…"," 신규 origin ",[161,4598,4599],{},"malgn-dev-db.apiserver.kr"," + access_client_id. Aurora SG egress IP 화이트리스트 운영 부담 해소. 정본 3개(API CLAUDE.md §3·§8·§12, SCALABILITY.md §6 신규 절, MIGRATION.md §1) 동기화. 라이브 검증 통과",[51,4602,4603,4606,4609,4611,4613],{},[72,4604,4605],{},"5-5-11",[72,4607,4608],{},"NHN Email 실 발송 활성화",[72,4610,401],{},[72,4612,593],{},[72,4614,4071,4615,4618,4619,1965,4622,4625],{},[161,4616,4617],{},"message@malgnsoft.com"," 발신 도메인 NHN Notification Hub 콘솔 등록 + ",[161,4620,4621],{},"EMAIL_FROM",[161,4623,4624],{},"EMAIL_FROM_NAME"," secret 등록. NHN 직접 호출 SUCCESS · messageId 발급 확인",[51,4627,4628,4631,4634,4636,4638],{},[72,4629,4630],{},"5-5-12",[72,4632,4633],{},"NHN SMS 실 발송 활성화",[72,4635,490],{},[72,4637,593],{},[72,4639,4640,4641,4643],{},"어댑터·인증·페이로드 검증 완료. NHN 콘솔 발신번호 등록 + ",[161,4642,4506],{}," secret 설정 + 라이브 e2e 1건 대기",[37,4645],{},[40,4647,4649],{"id":4648},"알려진-한계-다음-단계","알려진 한계 \u002F 다음 단계",[2696,4651,4652,4665,4673,4682,4688,4694,4703,4709,4722,4727],{},[2699,4653,4654,4660,4661,4664],{},[4655,4656,4657],"del",{},[32,4658,4659],{},"DDL 적용 보류"," — 2026-06-01 라이브 적용 확인 + e2e 검증 완료. 라이브 정본이 더 정교한 인덱스\u002FFK로 적용돼 있어 ",[161,4662,4663],{},"0002_export_flow.sql"," 파일도 정본에 맞춰 동기화 — 신규 환경에서도 동일 적용 가능.",[2699,4666,4667,4672],{},[32,4668,4669,4671],{},[161,4670,2146],{}," 의존성 다중화"," — 1105 같은 dev\u002Fpreview 장애가 또 일어나면 또 막힘. Cloudflare Tunnel·RDS Proxy·bastion 등 후보 중 하나 도입 검토 (CLAUDE.md §12 TODO).",[2699,4674,4675,883,4678,4681],{},[32,4676,4677],{},"Drizzle schema.ts 정합화",[161,4679,4680],{},"src\u002Fdb\u002Fschema.ts","의 export\u002Fflow 테이블 정의는 인덱스\u002FFK 미선언(컬럼만). 동작 영향은 없으나 위생적으로 명시화 후속.",[2699,4683,4684,4687],{},[32,4685,4686],{},"김도형 담당 마감 = 7\u002F3"," (개발·테스트 통합 완료 목표) — 남은 task는 위 W1~W5 일정에 분배.",[2699,4689,4690,4693],{},[32,4691,4692],{},"백엔드 연동 점진 진행 중"," — 인증·계정·계약·승인 게이트·서비스 담당자 이메일 변경까지 실 API. 발송 6채널·이력\u002F통계·주소록·발신정보·템플릿·캠페인은 여전히 목업.",[2699,4695,4696,4699,4700,4702],{},[32,4697,4698],{},"관리자단 화면 vs 연동 분리"," — 6\u002F4 핸드오프 17 페이지 화면(",[161,4701,4363],{},")은 모두 완료. API 연동·관리자 인증\u002FRBAC·실데이터 바인딩은 미. 대시보드 차트 4종은 더미 데이터.",[2699,4704,4705,4708],{},[32,4706,4707],{},"NHN real 모드"," — Email ✅ 라이브 발송. SMS는 발신번호 등록 대기. push\u002Frcs\u002Fkakao 어댑터는 Notification Hub로 마이그레이션 미.",[2699,4710,4711,4714,4715,4717,4718,4721],{},[32,4712,4713],{},"PG"," — TossPayments 확정. ",[161,4716,2467],{}," + 카드 등록\u002F결제\u002F취소\u002Fwebhook 미구현. ",[32,4719,4720],{},"AI 템플릿"," 게이트웨이도 미.",[2699,4723,4724,4726],{},[32,4725,3613],{}," — 시안의 \"쏠쏠 브랜드\" 단독 404·점검·네트워크 페이지를 맑은 브랜드로 재작업 필요.",[2699,4728,4729,4732,4733,1961,4736,4739],{},[32,4730,4731],{},"Step 4 정식 디자인 산출물"," — 디자인팀 정식 스타일 가이드 + 퍼블리싱 MD는 미작성. 현재는 개발 측 ",[24,4734,4735],{"href":1843},"DESIGN.md",[24,4737,1850],{"href":1848,"rel":4738},[788]," 카탈로그로 대체.",{"title":4741,"searchDepth":4742,"depth":4742,"links":4743},"",3,[4744,4748,4749,4750,4751,4752,4753,4754,4755,4756,4757,4758,4759,4760,4761,4762,4763,4764,4766,4772,4774,4775],{"id":42,"depth":4745,"text":43,"children":4746},2,[4747],{"id":192,"depth":4742,"text":193},{"id":296,"depth":4745,"text":297},{"id":360,"depth":4745,"text":361},{"id":456,"depth":4745,"text":457},{"id":557,"depth":4745,"text":558},{"id":643,"depth":4745,"text":644},{"id":708,"depth":4745,"text":709},{"id":845,"depth":4745,"text":846},{"id":949,"depth":4745,"text":950},{"id":1001,"depth":4745,"text":1002},{"id":1038,"depth":4745,"text":1039},{"id":1178,"depth":4745,"text":1179},{"id":1299,"depth":4745,"text":1300},{"id":1388,"depth":4745,"text":1389},{"id":1472,"depth":4745,"text":1473},{"id":1667,"depth":4745,"text":1668},{"id":1888,"depth":4745,"text":1889},{"id":2099,"depth":4745,"text":4765},"5-2. API 서버 (malgn-noti-api)",{"id":2677,"depth":4745,"text":4767,"children":4768},"5-3. 사용자단 (malgn-noti) — 3 트랙으로 분리",[4769,4770,4771],{"id":2731,"depth":4742,"text":2732},{"id":3049,"depth":4742,"text":3050},{"id":3659,"depth":4742,"text":3660},{"id":4103,"depth":4745,"text":4773},"5-4. 관리자단 (malgn-noti-admin) 화면 개발",{"id":4390,"depth":4745,"text":4391},{"id":4648,"depth":4745,"text":4649},"md",{},true,{"title":5,"description":4741},"WBS","D1Ttn0SbJXP4yJQCcpjMvjzaXxSHLgIzRb35M2GHqqE",1780643216573]