[{"data":1,"prerenderedAt":573},["ShallowReactive",2],{"doc:\u002Fhistory\u002Fhistory.20260512":3},{"id":4,"title":5,"body":6,"description":174,"extension":566,"meta":567,"navigation":568,"path":569,"seo":570,"stem":571,"__hash__":572},"docs\u002Fhistory\u002Fhistory.20260512.md","2026-05-12 — 시안 정밀 매칭 + 문서화",{"type":7,"value":8,"toc":539},"minimark",[9,13,18,27,30,34,37,111,122,126,129,134,147,151,158,162,165,175,200,204,222,226,250,254,257,264,267,300,304,317,321,330,336,346,354,362,369,377,385,389,470,476,480,495,497,501,524,528],[10,11,5],"h1",{"id":12},"_2026-05-12-시안-정밀-매칭-문서화",[14,15,17],"h2",{"id":16},"한-줄-요약","한 줄 요약",[19,20,21,22,26],"p",{},"콘텐츠 폭 1200px 통일, GNB를 utility bar + main 2단으로 분리, 메뉴 8개로 정돈했고 디자인·기술 문서 3종을 ",[23,24,25],"code",{},"doc\u002F","에 추가했다.",[28,29],"hr",{},[14,31,33],{"id":32},"_1-콘텐츠-폭-1200px-통일","1. 콘텐츠 폭 1200px 통일",[19,35,36],{},"스크린샷 검수에서 시안 톤보다 본문이 약간 넓다는 결정.",[38,39,40,57],"table",{},[41,42,43],"thead",{},[44,45,46,50,54],"tr",{},[47,48,49],"th",{},"영역",[47,51,53],{"align":52},"right","이전",[47,55,56],{"align":52},"이후",[58,59,60,79,95],"tbody",{},[44,61,62,70,73],{},[63,64,65,66,69],"td",{},"본문 (",[23,67,68],{},".app-container",")",[63,71,72],{"align":52},"1320px",[63,74,75],{"align":52},[76,77,78],"strong",{},"1200px",[44,80,81,87,90],{},[63,82,83,84,69],{},"푸터 (",[23,85,86],{},".footer-container",[63,88,89],{"align":52},"1600px \u002F pad 60",[63,91,92],{"align":52},[76,93,94],{},"1200px \u002F pad 24",[44,96,97,103,106],{},[63,98,99,100,69],{},"GNB (",[23,101,102],{},".gnb-inner",[63,104,105],{"align":52},"화면 폭",[63,107,108,110],{"align":52},[76,109,78],{}," (max-width 추가)",[19,112,113,114,117,118,121],{},"CSS 변수 한 줄(",[23,115,116],{},"--content-max: 1200px",")로 일괄 적용. ",[23,119,120],{},"doc\u002FFRONTEND.md §3.4","도 갱신.",[14,123,125],{"id":124},"_2-gnb-메뉴-시안-정합","2. GNB 메뉴 시안 정합",[19,127,128],{},"이전 추정 메뉴를 시안 스크린샷의 실제 9개로 교체:",[19,130,131],{},[76,132,133],{},"서비스 ▾ · 메시지 발송 ▾ · 발송 조회\u002F통계 ▾ · 주소록 ▾ · 발신 정보 ▾ · 메시지관리 ▾ · 캠페인 관리1 · 캠페인 관리2 · 운영가이드",[135,136,137,141,144],"ul",{},[138,139,140],"li",{},"발송과 발송 조회\u002F통계를 별도 메뉴로 분리",[138,142,143],{},"캠페인 관리 변형 2개를 별도 메뉴로 노출",[138,145,146],{},"메뉴 자식 라벨도 시안 정본의 카테고리 표현으로 정돈",[14,148,150],{"id":149},"_3-gnb-메뉴-8개로-통합","3. GNB 메뉴 8개로 통합",[19,152,153,154,157],{},"스크린샷에서 캠페인 관리1\u002F2를 따로 두기보단 단일 \"캠페인 관리\"로 통합 결정. ",[23,155,156],{},"\u002Fcampaign3","은 변형 디자인 검토용으로 라우트만 유지하고 메뉴에서 제외.",[14,159,161],{"id":160},"_4-utility-bar-분리-헤더-2단-구조","4. Utility Bar 분리 (헤더 2단 구조)",[19,163,164],{},"GNB가 메뉴 9개 + 우측 액션으로 한 줄에 답답한 문제를 분리로 해결.",[166,167,172],"pre",{"className":168,"code":170,"language":171},[169],"language-text","┌───────────────────────────────────────────────────────────┐\n│  Utility Bar (h 32, bg gray-50)                           │\n│                          문의  충전  관 관리자 ▾           │\n├───────────────────────────────────────────────────────────┤\n│  Main GNB (h 64, bg white)                                │\n│   로고     서비스 ▾  메시지 발송 ▾  ...   운영가이드        │\n└───────────────────────────────────────────────────────────┘\n","text",[23,173,170],{"__ignoreMap":174},"",[135,176,177,191,194],{},[138,178,179,182,183,186,187,190],{},[23,180,181],{},".gnb-wrapper","(sticky) 안에 ",[23,184,185],{},".gnb-utility"," + ",[23,188,189],{},".gnb","(main) 2단",[138,192,193],{},"두 줄 모두 sticky → 사용자 메뉴 상시 접근",[138,195,196,199],{},[23,197,198],{},"\u003C 1024px","에서 utility bar 숨김, 햄버거 슬라이드 메뉴에서 액션 접근",[14,201,203],{"id":202},"_5-헤더-사이즈-미세-조정","5. 헤더 사이즈 미세 조정",[135,205,206,212,219],{},[138,207,208,209],{},"Main GNB 높이 64 → 52로 일시 줄였다가, 사용자 피드백으로 ",[76,210,211],{},"64로 복원",[138,213,214,215,218],{},"Utility Bar 높이는 44 → ",[76,216,217],{},"32"," 유지",[138,220,221],{},"Utility Bar 내부 pill 버튼·아바타·텍스트는 12px \u002F 22×22로 컴팩트 유지",[14,223,225],{"id":224},"_6-gnb-메뉴-오른쪽-정렬","6. GNB 메뉴 오른쪽 정렬",[19,227,228,231,232,235,236,239,240,231,243,235,246,249],{},[23,229,230],{},".gnb-nav-wrap","의 ",[23,233,234],{},"justify-content: center"," → ",[23,237,238],{},"flex-end",", ",[23,241,242],{},".gnb-nav",[23,244,245],{},"margin: 0 auto",[23,247,248],{},"margin: 0",". 로고와 메뉴 사이 시각적 여백 확보.",[14,251,253],{"id":252},"_7-로고-정렬-수정","7. 로고 정렬 수정",[19,255,256],{},"스크린샷 검수에서 \"맑은\"(22px\u002F900)이 \"메시징\"(20px\u002F300)보다 약간 아래로 처져 보이는 이슈.",[19,258,259,260,263],{},"원인: 한국어 폰트(Noto Sans KR)의 ascender가 SVG 아이콘 박스보다 비대칭으로 커서 ",[23,261,262],{},"align-items: center","만으로는 시각 중앙이 안 맞음.",[19,265,266],{},"해결:",[135,268,269,275,286,297],{},[138,270,271,272,274],{},"로고 전체는 ",[23,273,262],{}," (아이콘과 텍스트 그룹)",[138,276,277,278,281,282,285],{},"텍스트 그룹은 별도 wrapper(",[23,279,280],{},".gnb-logo-text-group",")에 ",[23,283,284],{},"align-items: baseline","으로 묶음",[138,287,288,289,292,293,296],{},"자식 모두 ",[23,290,291],{},"line-height: 1"," 통일, ",[23,294,295],{},"display: inline-flex"," 적용",[138,298,299],{},"아이콘 28 → 24로 축소(텍스트 22와 시각 비례)",[14,301,303],{"id":302},"_8-페이지-폭-1200px-적용","8. 페이지 폭 1200px 적용",[19,305,306,309,310,235,313,316],{},[23,307,308],{},"AppPagePlaceholder","가 화면 전체 폭을 쓰고 있어 GNB·푸터와 폭 정렬 불일치. ",[23,311,312],{},"p-6 lg:p-8",[23,314,315],{},"app-container py-8 lg:py-10","로 갱신해 47개 placeholder 페이지가 모두 1200px 안에 정렬.",[14,318,320],{"id":319},"_9-푸터-이메일-변경","9. 푸터 이메일 변경",[19,322,323,235,326,329],{},[23,324,325],{},"MALGN@MALGNSOFT.COM",[23,327,328],{},"massage@malgnsoft.com"," (실제 메시징 서비스 메일 주소). 단순 텍스트 교체.",[14,331,333,334,69],{"id":332},"_10-문서-3종-추가-doc","10. 문서 3종 추가 (",[23,335,25],{},[337,338,340,341],"h3",{"id":339},"_101-frontendmd","10.1 ",[342,343,345],"a",{"href":344},"..\u002FFRONTEND","FRONTEND.md",[135,347,348,351],{},[138,349,350],{},"프론트엔드 코딩 컨벤션 (Vue\u002FCSS\u002FTS), Nuxt UI 매핑, 아이콘 사용, 레이아웃 컴포넌트, 빌드\u002F배포, PR 체크리스트, base.css 섹션 카탈로그",[138,352,353],{},"12개 섹션",[337,355,357,358],{"id":356},"_102-stackmd","10.2 ",[342,359,361],{"href":360},"..\u002FSTACK","STACK.md",[135,363,364,367],{},[138,365,366],{},"전체 토폴로지 ASCII 다이어그램, 사용자\u002F운영자\u002FAPI 스택, 데이터\u002F스토리지\u002F큐, 외부 서비스, 개발·운영 도구, 배포, 선택 이유\u002F대안 비교, 버전 호환 표, 미정 항목",[138,368,353],{},[337,370,372,373],{"id":371},"_103-designmd","10.3 ",[342,374,376],{"href":375},"..\u002FDESIGN","DESIGN.md",[135,378,379,382],{},[138,380,381],{},"디자인 원칙, 컬러 시스템, 타이포그래피, 간격·그리드·레이아웃, 라운드·그림자·보더, 컴포넌트 패턴, 아이콘, 레이아웃 패턴, 반응형, 접근성, 톤·마이크로카피, 시안 매핑(base.css ↔ 우리 구현 매핑 + 페이지별 라인 번호 33개)",[138,383,384],{},"14개 섹션",[337,386,388],{"id":387},"_104-문서-분담","10.4 문서 분담",[38,390,391,404],{},[41,392,393],{},[44,394,395,398,401],{},[47,396,397],{},"문서",[47,399,400],{},"관점",[47,402,403],{},"시기",[58,405,406,422,438,454],{},[44,407,408,413,419],{},[63,409,410],{},[23,411,412],{},"CLAUDE.md",[63,414,415,418],{},[76,416,417],{},"Why"," — 결정 사항, 큰 그림",[63,420,421],{},"AI 에이전트 + 신규 합류자 첫 읽기",[44,423,424,429,435],{},[63,425,426],{},[23,427,428],{},"doc\u002FSTACK.md",[63,430,431,434],{},[76,432,433],{},"What"," — 무엇을 쓰는가",[63,436,437],{},"외부 검토, 의존성 업데이트",[44,439,440,445,451],{},[63,441,442],{},[23,443,444],{},"doc\u002FDESIGN.md",[63,446,447,450],{},[76,448,449],{},"Visual How"," — 토큰·컴포넌트·톤",[63,452,453],{},"새 화면 그리기",[44,455,456,461,467],{},[63,457,458],{},[23,459,460],{},"doc\u002FFRONTEND.md",[63,462,463,466],{},[76,464,465],{},"Code How"," — Vue\u002FCSS\u002FTS 컨벤션",[63,468,469],{},"코딩 중 매번",[19,471,472,475],{},[23,473,474],{},"README.md"," 없이 4개 문서가 보완하는 구조.",[14,477,479],{"id":478},"_11-doc-폴더-재배치","11. doc 폴더 재배치",[19,481,482,484,485,487,488,235,491,494],{},[23,483,345],{},"를 루트에서 ",[23,486,460],{},"로 이동하면서 내부 상대 경로 8건을 한 단계 위로 갱신 (",[23,489,490],{},"](.\u002FCLAUDE.md)",[23,492,493],{},"](..\u002FCLAUDE.md)"," 등).",[28,496],{},[14,498,500],{"id":499},"산출물-당일-추가","산출물 (당일 추가)",[135,502,503,512,518,521],{},[138,504,505,507,508,507,510],{},[23,506,460],{}," · ",[23,509,428],{},[23,511,444],{},[138,513,514,517],{},[23,515,516],{},"AppGnb.vue"," 구조 개편 (utility bar + main 2단)",[138,519,520],{},"콘텐츠 폭 1200 통일 (main.css + AppFooter + AppGnb + AppPagePlaceholder)",[138,522,523],{},"로고 baseline 정렬",[14,525,527],{"id":526},"알려진-한계","알려진 한계",[135,529,530,533,536],{},[138,531,532],{},"인증 흐름 미연결 (auth.global.ts는 항상 통과 스텁)",[138,534,535],{},"발송 페이지는 placeholder만",[138,537,538],{},"캠페인\u002FAI 템플릿 페이지 미착수",{"title":174,"searchDepth":540,"depth":540,"links":541},3,[542,544,545,546,547,548,549,550,551,552,553,563,564,565],{"id":16,"depth":543,"text":17},2,{"id":32,"depth":543,"text":33},{"id":124,"depth":543,"text":125},{"id":149,"depth":543,"text":150},{"id":160,"depth":543,"text":161},{"id":202,"depth":543,"text":203},{"id":224,"depth":543,"text":225},{"id":252,"depth":543,"text":253},{"id":302,"depth":543,"text":303},{"id":319,"depth":543,"text":320},{"id":332,"depth":543,"text":554,"children":555},"10. 문서 3종 추가 (doc\u002F)",[556,558,560,562],{"id":339,"depth":540,"text":557},"10.1 FRONTEND.md",{"id":356,"depth":540,"text":559},"10.2 STACK.md",{"id":371,"depth":540,"text":561},"10.3 DESIGN.md",{"id":387,"depth":540,"text":388},{"id":478,"depth":543,"text":479},{"id":499,"depth":543,"text":500},{"id":526,"depth":543,"text":527},"md",{},true,"\u002Fhistory\u002Fhistory.20260512",{"title":5,"description":174},"history\u002Fhistory.20260512","gFnxLWHcsh_t9kD3PeQMrhnfscUukAo4HeyLv7b0cuI",1780643216573]