[{"data":1,"prerenderedAt":948},["ShallowReactive",2],{"doc:\u002Fhistory\u002Fhistory.20260605":3},{"id":4,"title":5,"body":6,"description":940,"extension":941,"meta":942,"navigation":943,"path":944,"seo":945,"stem":946,"__hash__":947},"docs\u002Fhistory\u002Fhistory.20260605.md","2026-06-05 — malgn-noti-mng 관리 레포 신설: 문서 집약 + Nuxt 문서\u002F이력 브라우저 앱 + 현황판 + Cloudflare 배포",{"type":7,"value":8,"toc":924},"minimark",[9,13,65,68,73,118,122,157,161,284,288,380,384,458,462,559,570,742,749,890,894],[10,11,5],"h1",{"id":12},"_2026-06-05-malgn-noti-mng-관리-레포-신설-문서-집약-nuxt-문서이력-브라우저-앱-현황판-cloudflare-배포",[14,15,16,20,21,25,26,29,30,33,34,37,38,41,42,45,46,52,53,56,57,60,61,64],"p",{},[17,18,19],"strong",{},"한 줄 요약",": 맑은노티 프로젝트를 관리할 신규 레포 ",[22,23,24],"code",{},"malgn-noti-mng","를 GitHub에 연결하고, ",[22,27,28],{},"malgn-noti","의 ",[22,31,32],{},"doc\u002F"," 트리(공통 참조·도메인 정본·작업 이력)를 집약한 뒤, malgn-noti와 ",[17,35,36],{},"동일 스택","(Nuxt 3 + Tailwind v4 + Nuxt UI v3) + ",[22,39,40],{},"@nuxt\u002Fcontent"," 기반 ",[17,43,44],{},"문서\u002F이력 브라우저 앱","으로 구현해 Cloudflare Pages에 정적 배포(",[47,48,49],"a",{"href":49,"rel":50},"https:\u002F\u002Fmalgn-noti-mng.pages.dev",[51],"nofollow","). 추가로 malgn-noti ",[22,54,55],{},"\u002Fwbs","를 읽기 전용 **\"맑은노티 현황판\"(",[22,58,59],{},"\u002Fboard",")**으로 이식하고 대시보드에 WBS 현황 요약을 추가(공개 API ",[22,62,63],{},"GET \u002Fwbs"," 조회). 앞으로의 작업 이력은 이 레포에서 작성·갱신한다.",[66,67],"hr",{},[69,70,72],"h2",{"id":71},"_1-레포-연결-문서-집약","1. 레포 연결 + 문서 집약",[74,75,76,92,107],"ul",{},[77,78,79,80,82,83,86,87,91],"li",{},"빈 ",[22,81,24],{}," 폴더를 ",[22,84,85],{},"git init","(main) 후 원격 ",[47,88,89],{"href":89,"rel":90},"https:\u002F\u002Fgithub.com\u002Fmalgnsoft\u002Fmalgn-noti-mng.git",[51]," 연결, 첫 커밋·푸시.",[77,93,94,97,98,101,102,106],{},[22,95,96],{},"malgn-noti\u002Fdoc\u002F"," 트리 전체(24개 md)를 ",[22,99,100],{},"malgn-noti-mng\u002Fdoc\u002F","로 복사 — 공통 참조(DESIGN\u002FFRONTEND\u002FSTACK\u002FWBS), 도메인 정본(MEMBERSHIP\u002FNICE_AUTH\u002FPAGES\u002Fpages\u002F",[103,104,105],"em",{},"), 일자별 작업 이력(history\u002F"," 14개 + README).",[77,108,109,110,113,114,117],{},"세션 중 생성된 ",[22,111,112],{},".claude\u002F"," 로컬 권한 설정은 문서 레포에 부적합 → ",[22,115,116],{},".gitignore"," 처리.",[69,119,121],{"id":120},"_2-claudemd-병합현행화-양쪽-동일-유지","2. CLAUDE.md 병합·현행화 (양쪽 동일 유지)",[74,123,124,137],{},[77,125,126,128,129,132,133,136],{},[22,127,28],{},"의 CLAUDE.md를 기본으로, 관리 레포 설명을 ",[17,130,131],{},"§11","로 통합. 두 레포의 CLAUDE.md를 ",[17,134,135],{},"항상 동일","하게 유지하는 규칙 명시.",[77,138,139,142,143,145,146,152,153,156],{},[17,140,141],{},"작업 이력 작성처 변경(§7.1·§11)",": 앞으로 history는 ",[22,144,28],{},"가 아니라 ",[17,147,148,151],{},[22,149,150],{},"malgn-noti-mng\u002Fdoc\u002Fhistory\u002F","에서 작성·갱신","하고, 작성 후 이 레포에 커밋·푸시한다. 이에 따라 ",[22,154,155],{},"malgn-noti\u002Fdoc\u002Fhistory\u002F"," 폴더와 15개 파일은 삭제(사본은 본 레포에 보존).",[69,158,160],{"id":159},"_3-nuxt-문서이력-브라우저-앱-스캐폴딩","3. Nuxt 문서\u002F이력 브라우저 앱 스캐폴딩",[74,162,163,173,208,221,246,265],{},[77,164,165,168,169,172],{},[17,166,167],{},"스택",": malgn-noti 미러링 — Nuxt 3(compat v4) + Nuxt UI v3(Reka UI + Tailwind v4) + Pinia + ESLint(@nuxt\u002Feslint), pnpm. ",[22,170,171],{},"@nuxtjs\u002Ftailwindcss"," 미설치 원칙 동일.",[77,174,175,178,179,181,182,185,186,189,190,192,193,196,197,200,201,29,204,207],{},[17,176,177],{},"+ @nuxt\u002Fcontent v3",": ",[22,180,32],{}," 마크다운 렌더링. ",[22,183,184],{},"content.config.ts","에서 소스 ",[22,187,188],{},"cwd","를 ",[22,191,32],{},"로 매핑(단일 ",[22,194,195],{},"docs"," 컬렉션). SQLite 어댑터 ",[22,198,199],{},"better-sqlite3","는 ",[22,202,203],{},"package.json",[22,205,206],{},"pnpm.onlyBuiltDependencies","로 네이티브 빌드 허용.",[77,209,210,178,213,216,217,220],{},[17,211,212],{},"디자인 시스템 이식",[22,214,215],{},"app\u002Fassets\u002Fcss\u002Fmain.css","(Relay-inspired v1.0, 1911줄) + ",[22,218,219],{},"app\u002Fapp.config.ts","(zinc)를 malgn-noti에서 그대로 복사 → 형제 앱과 시각 일관성.",[77,222,223,178,226,229,230,233,234,237,238,241,242,245],{},[17,224,225],{},"화면",[22,227,228],{},"\u002F","(대시보드 — 문서 바로가기 + 최근 이력), ",[22,231,232],{},"\u002Fdocs","(문서 목록) + ",[22,235,236],{},"\u002Fdocs\u002F[...slug]","(마크다운 렌더, ContentRenderer), ",[22,239,240],{},"\u002Fhistory","(작업 이력 타임라인). 공용 훅 ",[22,243,244],{},"composables\u002FuseDocs.ts","(history 판별·날짜 포맷).",[77,247,248,249,251,252,251,254,256,257,260,261,264],{},"로컬 검증: 콘텐츠 24개 파싱, ",[22,250,228],{},"·",[22,253,232],{},[22,255,240],{}," 200, ",[22,258,259],{},"\u002Fdocs\u002Fdesign"," 등 렌더 확인, ",[22,262,263],{},"pnpm lint"," 통과.",[77,266,267,268,271,272,275,276,279,280,283],{},"환경 노트: 이 샌드박스에서 macOS 기본 ",[22,269,270],{},"$TMPDIR","(",[22,273,274],{},"\u002Fvar\u002Ffolders\u002F...",")가 길어 Nuxt vite-node Unix 소켓이 104자 제한 초과 → ",[22,277,278],{},"connect EINVAL"," 500. ",[22,281,282],{},"TMPDIR=\u002Ftmp\u002Fmtmp pnpm dev","로 우회(환경 한정 이슈, 설정엔 미반영).",[69,285,287],{"id":286},"_4-cloudflare-pages-정적-배포","4. Cloudflare Pages 정적 배포",[74,289,290,301,355,373],{},[77,291,292,293,300],{},"@nuxt\u002Fcontent(better-sqlite3)는 Cloudflare 런타임 DB가 없으므로 ",[17,294,295,296,299],{},"정적 프리렌더(",[22,297,298],{},"nuxt generate",") → Pages"," 방식 채택. nitro 프리렌더로 전 페이지 HTML 생성.",[77,302,303,304],{},"프리렌더 이슈 2건 해결:\n",[305,306,307,334],"ol",{},[77,308,309,312,313,251,316,251,319,322,323,326,327,329,330,333],{},[17,310,311],{},"마크다운 내부 상대 링크 크롤",": 문서의 ",[22,314,315],{},".\u002FFRONTEND.md",[22,317,318],{},"..\u002F..\u002Fapp\u002F...",[22,320,321],{},".\u002FCLAUDE.md"," 등 원본 레포 기준 링크를 크롤러가 따라가 404 → 빌드 실패. ",[17,324,325],{},"crawlLinks 끄고"," ",[22,328,32],{}," 트리를 재귀 순회해 정규 라우트만 직접 열거(",[22,331,332],{},"nuxt.config.ts",").",[77,335,336,339,340,343,344,346,347,350,351,354],{},[17,337,338],{},"대소문자 구분",": macOS(케이스 무시)에선 안 보였으나, 크롤이 만든 ",[22,341,342],{},"docs\u002FDESIGN\u002F"," 대문자 디렉터리 때문에 Cloudflare(케이스 구분)에서 소문자 ",[22,345,259],{},"이 404. 라우트를 ",[17,348,349],{},"전부 소문자로 정규화","해 해결. 파일명 점(",[22,352,353],{},"history.20260604",")으로 크롤러가 라우트를 건너뛰던 문제도 같은 열거 방식으로 회피.",[77,356,357,358,360,361,364,365,368,369,372],{},"Pages 프로젝트 ",[22,359,24],{}," 생성(production-branch=main) 후 ",[22,362,363],{},".output\u002Fpublic"," 배포. 재배포로 57개 정규 라우트 전부 라이브 200 확인(",[22,366,367],{},"\u002Fdocs\u002F*"," 9개 문서 + ",[22,370,371],{},"\u002Fdocs\u002Fhistory\u002F*"," 16개 이력 + 인덱스).",[77,374,375,376,333],{},"인증: wrangler OAuth(",[47,377,379],{"href":378},"mailto:info@malgnsoft.com","info@malgnsoft.com",[69,381,383],{"id":382},"_5-현황판board-대시보드-wbs-현황-요약","5. 현황판(\u002Fboard) + 대시보드 WBS 현황 요약",[74,385,386,400,417,434,444,452],{},[77,387,388,389,391,392,395,396,399],{},"malgn-noti ",[22,390,55],{}," 페이지를 ",[22,393,394],{},"malgn-noti-mng\u002Fboard","에 **\"맑은노티 현황판\"**으로 이식. mng는 인증\u002F편집이 없는 정적 사이트이므로 ",[17,397,398],{},"읽기 전용","(편집 모달·auth·toast 제거), 자체 sticky 헤더 대신 mng 기본 레이아웃(GNB) 사용.",[77,401,402,403,271,405,408,409,412,413,416],{},"데이터는 공개 API ",[22,404,63],{},[22,406,407],{},"malgn-noti-api.malgnsoft.workers.dev",")를 ",[22,410,411],{},"useFetch","로 조회 — 프리렌더 시 빌드 타임에 베이크 + 클라이언트에서 라이브 갱신. ",[22,414,415],{},"runtimeConfig.public.apiBaseUrl"," 추가.",[77,418,419,420,423,424,427,428,430,431,433],{},"공용화: ",[22,421,422],{},"composables\u002FuseWbs.ts","(조회 + 가중평균·상태 카운트·날짜 포맷·그룹화) + ",[22,425,426],{},"components\u002FAppWbsOverview.vue","(hero stats 3종 + 단계별 진행률 리스트). 대시보드(",[22,429,228],{},")와 현황판(",[22,432,59],{},")이 동일 컴포넌트 공유.",[77,435,436,439,440,443],{},[17,437,438],{},"대시보드에 \"프로젝트 현황\" 요약 추가","(첨부 이미지 내용 — 전체 진행률·완료·진행 중·단계별 진행률) + GNB에 \"현황판\" 링크. 개요 행 클릭 → ",[22,441,442],{},"\u002Fboard#stage-\u003Cid>"," 상세로 이동.",[77,445,446,448,449,451],{},[22,447,59],{}," 프리렌더 라우트 추가. 라이브 검증: ",[22,450,59],{}," 200, \"맑은노티 현황판\"·Step 1~5·47.5%\u002F55%\u002F35% 베이크 확인, 대시보드 현황 요약 노출.",[77,453,454,457],{},[17,455,456],{},"WBS 문서 페이지는 별도"," — 현황판은 진행률 뷰이고, WBS 정본 문서는 추후 별도 구성.",[69,459,461],{"id":460},"_6-boardmd-신설-step-5-세부-항목-단순화-재정의","6. BOARD.md 신설 — Step 5 세부 항목 단순화 재정의",[74,463,464,483,497,500,506,529,546],{},[77,465,466,467,470,471,474,475,482],{},"현황판 Step 5(92개 세부 task)를 ",[17,468,469],{},"큰 카테고리로 묶어 단순화","한 정본 ",[22,472,473],{},"doc\u002FBOARD.md"," 작성. 문서 뷰어에서 ",[47,476,479],{"href":477,"rel":478},"https:\u002F\u002Fmalgn-noti-mng.pages.dev\u002Fdocs\u002Fboard",[51],[22,480,481],{},"\u002Fdocs\u002Fboard","로 노출.",[77,484,485,486,489,490,489,493,496],{},"대상 4개 영역 재정의: ",[17,487,488],{},"API 서버 + API 엔드포인트 → \"API 백엔드\"로 통합","(6 카테고리), ",[17,491,492],{},"사용자단 ↔ API 연동",[17,494,495],{},"관리자단 화면","(6 카테고리). 각 카테고리에 종합 상태(✅\u002F🟡\u002F⚪) + 기존 task id 매핑(추적용).",[77,498,499],{},"그 외 영역(설계·준비, 사용자단 목업 UI, 통합·배포)은 현 상태만 참고 표로 기록.",[77,501,502,505],{},[17,503,504],{},"WBS 상세(작업 단위·일정·의존성)는 간트 차트로 별도 구성 예정"," — BOARD.md는 카테고리 단위 현황 정본, 세부 진척은 향후 간트 WBS가 정본.",[77,507,508,514,515,517,518,521,522,228,525,528],{},[17,509,510,511,513],{},"현황판(",[22,512,59],{},") 페이지도 BOARD.md 렌더로 전환"," — 기존 공개 API ",[22,516,63],{},"(옛 92항목 상세) 기반에서 BOARD.md(단순화 카테고리) ",[22,519,520],{},"ContentRenderer"," 렌더로 교체해 정본 일원화. ",[22,523,524],{},"useWbs",[22,526,527],{},"AppWbsOverview"," 의존 제거(대시보드 현황 요약은 그대로 유지).",[77,530,531,537,538,200,540,542,543,545],{},[17,532,533,534,536],{},"(후속) ",[22,535,59],{},"는 원래 시각적 보드로 되돌림"," — 사용자가 시각적 현황판을 선호. ",[22,539,59],{},[22,541,63],{}," 기반 보드(전체 진행률 + 단계 행 + 상세) 유지, BOARD.md 정본은 ",[22,544,481],{},"로 분리.",[77,547,548,551,552,555,556,558],{},[17,549,550],{},"(후속) BOARD.md를 현황판 전체 미러로 현행화"," — WBS.md처럼 현황판의 ",[17,553,554],{},"모든 내용","(진행률 스냅샷 + 전체 5단계 155 태스크 상세 표 + Step 5 단순화 카테고리 부록)을 담도록 ",[22,557,63],{}," 라이브 데이터에서 생성. 데이터 기준 2026-06-04 \u002F 문서 현행화 2026-06-05.",[69,560,562,563,566,567,569],{"id":561},"_7-현황판-데이터-자립-자체-d1-apiboard-외부-get-wbs-의존-제거","7. 현황판 데이터 자립 — 자체 D1 + ",[22,564,565],{},"\u002Fapi\u002Fboard"," (외부 ",[22,568,63],{}," 의존 제거)",[74,571,572,596,624,645,674,681,696],{},[77,573,574,575,578,579,581,582,271,585,588,589,592,593,595],{},"외부 ",[22,576,577],{},"malgn-noti-api","의 공개 ",[22,580,63],{}," 의존을 끊고, ",[17,583,584],{},"malgn-noti-mng 자체 Cloudflare D1",[22,586,587],{},"malgn-noti-project",", id ",[22,590,591],{},"3c8c37e3…",") + 내부 API ",[22,594,565],{},"로 전환.",[77,597,598,271,601,604,605,608,609,612,613,616,617,271,620,623],{},[17,599,600],{},"스키마",[22,602,603],{},"server\u002Fdb\u002Fschema.sql","): ",[22,606,607],{},"board_meta","(프로젝트·현행화일) + ",[22,610,611],{},"stage","(단계) + ",[22,614,615],{},"task","(작업) 3 테이블. ",[17,618,619],{},"시드",[22,621,622],{},"server\u002Fdb\u002Fseed.sql","): 5단계 115 태스크(Step 5는 단순화 카테고리 반영) — 원격 D1에 적용.",[77,625,626,326,629,632,633,636,637,640,641,644],{},[17,627,628],{},"서버 라우트",[22,630,631],{},"server\u002Fapi\u002Fboard.get.ts",": D1(",[22,634,635],{},"DB"," 바인딩) 조회 → ",[22,638,639],{},"{ data: WbsDocument }"," 조립. D1 없는 로컬 dev는 ",[22,642,643],{},"server\u002Futils\u002FboardSeed.ts"," 폴백.",[77,646,647,650,651,653,654,657,658,661,662,665,666,668,669,251,671,673],{},[17,648,649],{},"배포 전환",": 정적 ",[22,652,298],{}," → ",[17,655,656],{},"Cloudflare Pages Functions(SSR)",". ",[22,659,660],{},"nitro.preset='cloudflare-pages'",", ",[22,663,664],{},"wrangler.toml","에 D1 바인딩(",[22,667,635],{},"). ",[22,670,228],{},[22,672,59],{},"는 런타임 D1 조회(SSR), 문서·이력은 프리렌더 유지.",[77,675,676,200,678,680],{},[22,677,524],{},[22,679,565],{}," 조회로 변경(외부 baseURL·클라이언트 단순화 로직 제거 — 단순화는 D1 시드에 반영).",[77,682,683,684,686,687,690,691,251,693,695],{},"검증: ",[22,685,565],{}," 200 + D1 값 변경(",[22,688,689],{},"last_updated",")이 즉시 반영됨을 확인(폴백 아님). ",[22,692,228],{},[22,694,59],{},"·문서·이력 전부 200.",[77,697,698,701,702,705,706,709,710,271,713,716,717,720,721,271,724,727,728,731,732,228,735,228,738,741],{},[17,699,700],{},"(후속) Drizzle ORM 도입"," — 브라우저↔D1 직결은 불가(서버 한 겹 필수)임을 정리하고, raw SQL 대신 ",[17,703,704],{},"Drizzle","로 D1 직접 쿼리. ",[22,707,708],{},"server\u002Fdb\u002Fschema.ts","(스키마 정본) + ",[22,711,712],{},"server\u002Futils\u002Fdb.ts",[22,714,715],{},"useDb()"," 공용) + ",[22,718,719],{},"board.get.ts"," 리팩터. 마이그레이션은 ",[22,722,723],{},"drizzle-kit",[22,725,726],{},"server\u002Fdb\u002Fmigrations\u002F",")으로 일원화(수기 ",[22,729,730],{},"schema.sql"," 제거). ",[22,733,734],{},"db:generate",[22,736,737],{},"db:apply",[22,739,740],{},"db:seed"," 스크립트 추가.",[69,743,745,746,748],{"id":744},"_8-간트-wbs-신규wbs-엑셀-스타일","8. 간트 WBS 신규(",[22,747,55],{},") — 엑셀 스타일",[74,750,751,760,767,778,781,792,807,820,838,864,877],{},[77,752,753,754,189,757,759],{},"별도 예고했던 ",[17,755,756],{},"간트 차트 WBS",[22,758,55],{},"로 신규 구현(엑셀 스타일 그리드 + 일 단위 간트).",[77,761,762,763,766],{},"대상: ",[17,764,765],{},"Step 1 · 3 · 5",", 화면 단위로 최대 분해(이미지의 Step 5 화면 항목 + Step 1·3 항목, 총 61개).",[77,768,769,770,773,774,777],{},"컬럼: 구분(병합 표시) · 작업(화면) · 담당 · ",[17,771,772],{},"시작일"," · ",[17,775,776],{},"종료일","(기존 목표일) · 진척율. 좌측 열은 가로 스크롤 시 고정(sticky).",[77,779,780],{},"간트: 시작일~종료일에 해당하는 날짜 칸을 자동 채색(진척율만큼 완료=진한 초록, 잔여=연한 초록), 주말(토·일) 칸 적색 틴트 + 오늘(2026-06-05) 마커. 월 헤더 + 일\u002F요일 헤더.",[77,782,783,784,787,788,791],{},"데이터는 정적 모듈(",[22,785,786],{},"app\u002Futils\u002FwbsData.ts",")이라 프리렌더. 시작일은 작업 기간 기준 부여(추정), 종료일·진척율은 소스(이미지\u002F보드) 기준. GNB에 ",[22,789,790],{},"WBS"," 메뉴 추가.",[77,793,794,178,797,799,800,803,804,333],{},[17,795,796],{},"신규 레포",[22,798,24],{}," (GitHub ",[22,801,802],{},"malgnsoft\u002Fmalgn-noti-mng",", branch ",[22,805,806],{},"main",[77,808,809,178,812,815,816,819],{},[17,810,811],{},"프로덕션",[47,813,49],{"href":49,"rel":814},[51]," (배포마다 ",[22,817,818],{},"https:\u002F\u002F\u003Cid>.malgn-noti-mng.pages.dev"," alias).",[77,821,822,825,826,829,830,833,834,837],{},[17,823,824],{},"커밋",": 문서 집약 ",[22,827,828],{},"0db385a"," · history 작성처 변경 ",[22,831,832],{},"bebb5b8"," · 앱 스캐폴딩 ",[22,835,836],{},"5ac81c6"," · 프리렌더 대소문자 fix(이번).",[77,839,840,178,843,845,846,848,849,661,852,661,855,661,858,661,861,863],{},[17,841,842],{},"주요 파일",[22,844,332],{},"(프리렌더 라우트 열거 + apiBaseUrl), ",[22,847,184],{},"(doc\u002F 매핑), ",[22,850,851],{},"app\u002Fpages\u002F{index,board,docs\u002Findex,docs\u002F[...slug],history\u002Findex}.vue",[22,853,854],{},"app\u002Flayouts\u002Fdefault.vue",[22,856,857],{},"app\u002Fcomposables\u002F{useDocs,useWbs}.ts",[22,859,860],{},"app\u002Fcomponents\u002FAppWbsOverview.vue",[22,862,203],{},"(@nuxt\u002Fcontent + better-sqlite3 + pnpm.onlyBuiltDependencies).",[77,865,866,178,869,873,874,876],{},[17,867,868],{},"현황판",[47,870,871],{"href":871,"rel":872},"https:\u002F\u002Fmalgn-noti-mng.pages.dev\u002Fboard",[51]," (맑은노티 현황판, 읽기 전용, ",[22,875,63],{}," 라이브).",[77,878,879,178,882,887,888,333],{},[17,880,881],{},"현황판 정본 문서",[47,883,885],{"href":884},"..\u002FBOARD",[22,886,473],{}," — Step 5 세부 항목 단순화 재정의 (",[22,889,481],{},[69,891,893],{"id":892},"다음-단계-알려진-한계","다음 단계 \u002F 알려진 한계",[74,895,896,906,909,918],{},[77,897,898,899,901,902,905],{},"문서 마크다운 내부의 원본 레포 상대 링크(",[22,900,315],{}," 등)는 이 앱에서 클릭 시 404 — 앱 라우트(",[22,903,904],{},"\u002Fdocs\u002F...",")로 재작성하거나 무효화 필요.",[77,907,908],{},"문서 상세에 좌측 TOC\u002F사이드바, 전체 검색 미구현.",[77,910,911,912,914,915,917],{},"콘텐츠 현행화는 수동 복사(§11 규칙) — ",[22,913,96],{}," 갱신 시 ",[22,916,100],{},"로 동기화하는 절차 자동화 미정.",[77,919,920,921,923],{},"배포는 로컬 ",[22,922,298],{}," 산출물 수동 업로드 — CI(예: GitHub 연동 자동 빌드) 미설정.",{"title":925,"searchDepth":926,"depth":926,"links":927},"",3,[928,930,931,932,933,934,935,937,939],{"id":71,"depth":929,"text":72},2,{"id":120,"depth":929,"text":121},{"id":159,"depth":929,"text":160},{"id":286,"depth":929,"text":287},{"id":382,"depth":929,"text":383},{"id":460,"depth":929,"text":461},{"id":561,"depth":929,"text":936},"7. 현황판 데이터 자립 — 자체 D1 + \u002Fapi\u002Fboard (외부 GET \u002Fwbs 의존 제거)",{"id":744,"depth":929,"text":938},"8. 간트 WBS 신규(\u002Fwbs) — 엑셀 스타일",{"id":892,"depth":929,"text":893},"한 줄 요약: 맑은노티 프로젝트를 관리할 신규 레포 malgn-noti-mng를 GitHub에 연결하고, malgn-noti의 doc\u002F 트리(공통 참조·도메인 정본·작업 이력)를 집약한 뒤, malgn-noti와 동일 스택(Nuxt 3 + Tailwind v4 + Nuxt UI v3) + @nuxt\u002Fcontent 기반 문서\u002F이력 브라우저 앱으로 구현해 Cloudflare Pages에 정적 배포(https:\u002F\u002Fmalgn-noti-mng.pages.dev). 추가로 malgn-noti \u002Fwbs를 읽기 전용 **\"맑은노티 현황판\"(\u002Fboard)**으로 이식하고 대시보드에 WBS 현황 요약을 추가(공개 API GET \u002Fwbs 조회). 앞으로의 작업 이력은 이 레포에서 작성·갱신한다.","md",{},true,"\u002Fhistory\u002Fhistory.20260605",{"title":5,"description":940},"history\u002Fhistory.20260605","OKAZdTTg_ULqwtqD-oKXV-M0UvuQqYJkfLidG7MC3to",1780639567004]