---
code: "SCH-25"
id: "c-sch-ia"
tab: "schemas"
kind: "schema"
title: "Site IA · 사이트 정보구조"
library: "SVG"
deps: ["svg"]
load: "low"
pasteKind: "schema-svg"
family: "tree"
dataShape: "3-cell diagram with 위→아래 분기 axis"
tasks: ["structure ideas", "explain process", "choose communication frame"]
tags: ["tree", "위→아래 분기", "3cells", "IA", "사이트맵", "정보구조", "UX"]
gallery: "https://graph.heal7.com/#SCH-25"
js: "/sku/SCH-25.js"
---

# [SCH-25] Site IA · 사이트 정보구조

> AI 붙여넣기 카드. 갤러리 런타임(`main.js`)이 아니라 이 파일을 가져와라.

## 언제 가져가나
홈→섹션→페이지 트리 — 웹사이트 정보구조의 가장 표준적인 시각화.

**응용** 웹·앱 IA 설계, 사이트맵 기획, 검색 카테고리 트리.

## 데이터 모양
- family: `tree`
- dataShape: 3-cell diagram with 위→아래 분기 axis
- tasks: structure ideas, explain process, choose communication frame
- tags: tree, 위→아래 분기, 3cells, IA, 사이트맵, 정보구조, UX

- schema.type: `tree`
- schema.cells: `3`
- schema.axis: `위→아래 분기`


## 의존
svg · load `low` · library `SVG`

## 붙여넣는 법
1. 라이브러리 없음. svg viewBox 0 0 400 240
2. 아래 body 를 svg 안에 넣는다
3. 색 변수(`${gold}` 등)는 T 토큰으로 치환한다

```js
const T = {
  "bg": "transparent",
  "fg": "#ece8f5",
  "sub": "#a59bbd",
  "grid": "rgba(255,255,255,.08)",
  "gold": "#e8c069",
  "royal": "#6b8cff",
  "rose": "#e07a9f",
  "teal": "#6dd2c4",
  "plum": "#b487e8"
};
const gold = T.gold, royal = T.royal, rose = T.rose, teal = T.teal, plum = T.plum, fg = T.fg, sub = T.sub;
const stroke = 'rgba(255,255,255,.18)';
const fill1 = 'rgba(232,192,105,.10)';
const fill2 = 'rgba(107,140,255,.10)';
const host = document.querySelector('#chart');
const body = `
    <rect x="170" y="20" width="60" height="32" rx="6" fill="rgba(232,192,105,.20)" stroke="${gold}" stroke-width="1.5"/>
    <text x="200" y="40" text-anchor="middle" fill="${gold}" font-size="12" font-weight="700">홈</text>
    ${[
      [60, 'Product', royal,  ['소개','특징','가격']],
      [160,'Resources', plum, ['블로그','가이드','API']],
      [260,'Company', rose,   ['About','채용','문의']]
    ].map(([x,lab,c,leaves])=>`
      <line x1="200" y1="52" x2="${x+40}" y2="90" stroke="${stroke}" stroke-width="1" opacity=".7"/>
      <rect x="${x}" y="90" width="80" height="28" rx="6" fill="${fill1}" stroke="${c}" stroke-width="1.5"/>
      <text x="${x+40}" y="108" text-anchor="middle" fill="${fg}" font-size="11" font-weight="600">${lab}</text>
      ${leaves.map((leaf,k)=>{
        const ly = 145 + k*22;
        return `<line x1="${x+40}" y1="118" x2="${x+40}" y2="${ly+10}" stroke="${stroke}" stroke-width="1" opacity=".4"/>
                <rect x="${x+8}" y="${ly}" width="64" height="18" rx="3" fill="rgba(255,255,255,.04)" stroke="${stroke}" stroke-width="1"/>
                <text x="${x+40}" y="${ly+13}" text-anchor="middle" fill="${sub}" font-size="9.5">${leaf}</text>`;
      }).join('')}
    `).join('')}
  `;
host.innerHTML = '<svg viewBox="0 0 400 240" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" style="overflow:visible">' + (typeof body === 'string' ? body : '') + '</svg>';
```

## 원본 factory (갤러리 정본 발췌)
- file: `frontend/js/graph-gallery/main.js`
- lines: 3911-4470
- gallery: https://graph.heal7.com/#SCH-25
- raw js: https://graph.heal7.com/sku/SCH-25.js

```js
`
    <rect x="170" y="20" width="60" height="32" rx="6" fill="rgba(232,192,105,.20)" stroke="${gold}" stroke-width="1.5"/>
    <text x="200" y="40" text-anchor="middle" fill="${gold}" font-size="12" font-weight="700">홈</text>
    ${[
      [60, 'Product', royal,  ['소개','특징','가격']],
      [160,'Resources', plum, ['블로그','가이드','API']],
      [260,'Company', rose,   ['About','채용','문의']]
    ].map(([x,lab,c,leaves])=>`
      <line x1="200" y1="52" x2="${x+40}" y2="90" stroke="${stroke}" stroke-width="1" opacity=".7"/>
      <rect x="${x}" y="90" width="80" height="28" rx="6" fill="${fill1}" stroke="${c}" stroke-width="1.5"/>
      <text x="${x+40}" y="108" text-anchor="middle" fill="${fg}" font-size="11" font-weight="600">${lab}</text>
      ${leaves.map((leaf,k)=>{
        const ly = 145 + k*22;
        return `<line x1="${x+40}" y1="118" x2="${x+40}" y2="${ly+10}" stroke="${stroke}" stroke-width="1" opacity=".4"/>
                <rect x="${x+8}" y="${ly}" width="64" height="18" rx="3" fill="rgba(255,255,255,.04)" stroke="${stroke}" stroke-width="1"/>
                <text x="${x+40}" y="${ly+13}" text-anchor="middle" fill="${sub}" font-size="9.5">${leaf}</text>`;
      }).join('')}
    `).join('')}
  `
```

## 시나리오
- 웹사이트 IA 설계
- 앱 메뉴 구조도
- 검색 카테고리 트리
- 문서 chapter 트리

## 관련 SKU
`c-sch-mindmap2`, `c-sch-dtree`

