---
code: "SCH-10"
id: "c-sch-cycle"
tab: "schemas"
kind: "schema"
title: "PDCA 순환 · Cycle"
library: "SVG"
deps: ["svg"]
load: "low"
pasteKind: "schema-svg"
family: "cycle"
dataShape: "4-cell diagram with 순환 axis"
tasks: ["structure ideas", "explain process", "choose communication frame"]
tags: ["cycle", "순환", "4cells", "PDCA", "OODA", "회고", "애자일"]
gallery: "https://graph.heal7.com/#SCH-10"
js: "/sku/SCH-10.js"
---

# [SCH-10] PDCA 순환 · Cycle

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

## 언제 가져가나
순환 폐쇄 루프 — 끝이 다시 시작인 지속 개선 사이클.

**응용** PDCA 품질개선, OODA 의사결정, 애자일 sprint 회고.

## 데이터 모양
- family: `cycle`
- dataShape: 4-cell diagram with 순환 axis
- tasks: structure ideas, explain process, choose communication frame
- tags: cycle, 순환, 4cells, PDCA, OODA, 회고, 애자일

- schema.type: `cycle`
- schema.cells: `4`
- 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 = `
    <circle cx="200" cy="120" r="78" fill="none" stroke="${stroke}" stroke-width="1" stroke-dasharray="3 4"/>
    ${[
      [200, 50,'P','Plan',gold],
      [270,120,'D','Do',royal],
      [200,190,'C','Check',rose],
      [130,120,'A','Act',teal]
    ].map(([cx,cy,k,lab,c])=>`
      <circle cx="${cx}" cy="${cy}" r="30" fill="${fill1}" stroke="${c}" stroke-width="1.8"/>
      <text x="${cx}" y="${cy-2}" text-anchor="middle" fill="${c}" font-size="20" font-weight="700">${k}</text>
      <text x="${cx}" y="${cy+16}" text-anchor="middle" fill="${sub}" font-size="10">${lab}</text>
    `).join('')}
    ${[
      ['M 222,62 A 78 78 0 0 1 258,98','22'],
      ['M 258,142 A 78 78 0 0 1 222,178','22'],
      ['M 178,178 A 78 78 0 0 1 142,142','22'],
      ['M 142,98 A 78 78 0 0 1 178,62','22']
    ].map(([d])=>`<path d="${d}" fill="none" stroke="${gold}" stroke-width="2" opacity=".55" marker-end="url(#sch-arr)"/>`).join('')}
    <defs><marker id="sch-arr" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="${gold}"/></marker></defs>
  `;
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-10
- raw js: https://graph.heal7.com/sku/SCH-10.js

```js
`
    <circle cx="200" cy="120" r="78" fill="none" stroke="${stroke}" stroke-width="1" stroke-dasharray="3 4"/>
    ${[
      [200, 50,'P','Plan',gold],
      [270,120,'D','Do',royal],
      [200,190,'C','Check',rose],
      [130,120,'A','Act',teal]
    ].map(([cx,cy,k,lab,c])=>`
      <circle cx="${cx}" cy="${cy}" r="30" fill="${fill1}" stroke="${c}" stroke-width="1.8"/>
      <text x="${cx}" y="${cy-2}" text-anchor="middle" fill="${c}" font-size="20" font-weight="700">${k}</text>
      <text x="${cx}" y="${cy+16}" text-anchor="middle" fill="${sub}" font-size="10">${lab}</text>
    `).join('')}
    ${[
      ['M 222,62 A 78 78 0 0 1 258,98','22'],
      ['M 258,142 A 78 78 0 0 1 222,178','22'],
      ['M 178,178 A 78 78 0 0 1 142,142','22'],
      ['M 142,98 A 78 78 0 0 1 178,62','22']
    ].map(([d])=>`<path d="${d}" fill="none" stroke="${gold}" stroke-width="2" opacity=".55" marker-end="url(#sch-arr)"/>`).join('')}
    <defs><marker id="sch-arr" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="${gold}"/></marker></defs>
  `
```

## 시나리오
- PDCA — Plan·Do·Check·Act 품질 개선
- OODA — Observe·Orient·Decide·Act 의사결정
- 애자일 sprint — 계획·개발·리뷰·회고
- 고객 라이프사이클 — Acquire·Engage·Retain·Win-back

## 관련 SKU
`c-sch-3flow`, `c-sch-journey`

