@litfamily/litopencode 1.0.31 → 1.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README-Ko-KR.md +6 -6
  3. package/README.md +6 -6
  4. package/TRADEMARK.md +12 -0
  5. package/dist/activation-primary-prompts.js +5 -1
  6. package/dist/activation-probe.js +1 -0
  7. package/dist/activation-prompt-utils.d.ts +1 -1
  8. package/dist/activation-reentry.d.ts +20 -0
  9. package/dist/activation-reentry.js +110 -1
  10. package/dist/activation-routing.d.ts +2 -1
  11. package/dist/activation-routing.js +100 -11
  12. package/dist/activation-workflow-prompts.d.ts +4 -0
  13. package/dist/activation-workflow-prompts.js +30 -0
  14. package/dist/activation.d.ts +1 -1
  15. package/dist/activation.js +44 -5
  16. package/dist/adhd-next.d.ts +51 -0
  17. package/dist/adhd-next.js +150 -0
  18. package/dist/agents/defaults.js +1 -1
  19. package/dist/cli/managed-skill-assets.d.ts +1 -1
  20. package/dist/cli/managed-skill-assets.js +7 -1
  21. package/dist/cli/native-skill-integrity.js +1 -1
  22. package/dist/cli.js +7 -1
  23. package/dist/commands.d.ts +28 -1
  24. package/dist/commands.js +58 -5
  25. package/dist/durable-plan.d.ts +5 -1
  26. package/dist/durable-plan.js +14 -2
  27. package/dist/features.d.ts +80 -1
  28. package/dist/features.js +105 -1
  29. package/dist/hooks.js +3 -0
  30. package/dist/ledger.js +12 -1
  31. package/dist/plan-scope-roots.d.ts +23 -0
  32. package/dist/plan-scope-roots.js +116 -0
  33. package/dist/restart-notice.d.ts +7 -0
  34. package/dist/restart-notice.js +40 -0
  35. package/dist/secret-shapes.js +5 -5
  36. package/dist/server.js +4 -0
  37. package/dist/session-liveness.d.ts +20 -0
  38. package/dist/session-liveness.js +99 -0
  39. package/dist/skills.d.ts +22 -1
  40. package/dist/skills.js +36 -0
  41. package/dist/start-work-typed.d.ts +34 -0
  42. package/dist/start-work-typed.js +167 -0
  43. package/dist/state.d.ts +3 -0
  44. package/dist/state.js +3 -0
  45. package/dist/tools.js +22 -2
  46. package/dist/tui/mission-band.d.ts +22 -1
  47. package/dist/tui/mission-band.js +75 -16
  48. package/dist/tui/mission-looks.d.ts +38 -0
  49. package/dist/tui/mission-looks.js +73 -0
  50. package/dist/tui/mission-model.d.ts +2 -0
  51. package/dist/tui/mission-model.js +3 -1
  52. package/dist/tui/mission-rainbow.d.ts +33 -0
  53. package/dist/tui/mission-rainbow.js +90 -0
  54. package/dist/tui/mission-source.d.ts +49 -0
  55. package/dist/tui/mission-source.js +217 -2
  56. package/dist/tui/mission-text.d.ts +2 -0
  57. package/dist/tui/mission-text.js +9 -1
  58. package/dist/tui/mission-threads.d.ts +58 -0
  59. package/dist/tui/mission-threads.js +128 -0
  60. package/dist/tui.js +112 -7
  61. package/dist/uiux-visual-catalog.js +8 -1
  62. package/dist/v2/events.js +3 -0
  63. package/dist/v2/session-hooks.js +38 -5
  64. package/dist/workflow-stack.d.ts +53 -0
  65. package/dist/workflow-stack.js +196 -0
  66. package/docs/assets/readme/badge-version.svg +1 -1
  67. package/docs/assets/skills/lit-schematic.webp +0 -0
  68. package/docs/reference-Ko-KR.md +48 -3
  69. package/docs/reference.md +54 -3
  70. package/package.json +1 -1
  71. package/skills/frontend-ui-ux/SKILL.md +3 -2
  72. package/skills/frontend-ui-ux/kit/components.css +414 -0
  73. package/skills/frontend-ui-ux/kit/fonts.json +22 -0
  74. package/skills/frontend-ui-ux/kit/layouts/landing.html +164 -0
  75. package/skills/frontend-ui-ux/kit/layouts/settings.html +114 -0
  76. package/skills/frontend-ui-ux/kit/layouts/workspace.html +115 -0
  77. package/skills/frontend-ui-ux/kit/styles/computational-brutalism.json +227 -0
  78. package/skills/frontend-ui-ux/kit/styles/field-notes.json +205 -0
  79. package/skills/frontend-ui-ux/kit/styles/graphite.json +200 -0
  80. package/skills/frontend-ui-ux/kit/styles/meadow.json +199 -0
  81. package/skills/frontend-ui-ux/kit/styles/neo-brutalism.json +222 -0
  82. package/skills/frontend-ui-ux/kit/ui.js +226 -0
  83. package/skills/frontend-ui-ux/references/brand-and-imagery.md +2 -2
  84. package/skills/frontend-ui-ux/references/complete-contract.md +2 -1
  85. package/skills/frontend-ui-ux/references/craft-floor.md +6 -2
  86. package/skills/frontend-ui-ux/references/default-editorial-pixel.json +3 -0
  87. package/skills/frontend-ui-ux/references/house-styles.md +236 -0
  88. package/skills/frontend-ui-ux/references/motion-guide.md +2 -2
  89. package/skills/frontend-ui-ux/references/production.md +3 -1
  90. package/skills/frontend-ui-ux/references/slop-register.md +4 -4
  91. package/skills/frontend-ui-ux/scripts/design-lock.mjs +400 -0
  92. package/skills/frontend-ui-ux/scripts/pixel-art.mjs +60 -0
  93. package/skills/frontend-ui-ux/scripts/probe-lock.mjs +235 -0
  94. package/skills/frontend-ui-ux/scripts/probe-page.mjs +34 -12
  95. package/skills/frontend-ui-ux/scripts/probe-static.mjs +16 -3
  96. package/skills/frontend-ui-ux/scripts/probe-thresholds.json +8 -2
  97. package/skills/frontend-ui-ux/scripts/probe.mjs +35 -7
  98. package/skills/lit-adhd/SKILL.md +209 -0
  99. package/skills/lit-adhd/references/brief-format.md +46 -0
  100. package/skills/lit-adhd/references/card-examples.md +103 -0
  101. package/skills/lit-adhd/references/status-taxonomy.md +34 -0
  102. package/skills/lit-adhd/scripts/rewind.mjs +933 -0
  103. package/skills/lit-diagram-drawer/SKILL.md +4 -3
  104. package/skills/lit-diagram-drawer/references/style-guide.md +20 -11
  105. package/skills/lit-diagram-drawer/references/type-architecture.md +3 -3
  106. package/skills/lit-diagram-drawer/references/type-dependency.md +1 -1
  107. package/skills/lit-diagram-drawer/references/type-tree.md +3 -3
  108. package/skills/lit-diagram-drawer/references/type-wardley.md +1 -1
  109. package/skills/lit-diagram-drawer/references/verifier-guide.md +1 -0
  110. package/skills/lit-diagram-drawer/scripts/craft-thresholds.json +1 -2
  111. package/skills/lit-diagram-drawer/scripts/visual-quality.mjs +1 -2
  112. package/skills/lit-docx/SKILL.md +2 -1
  113. package/skills/lit-handoff/SKILL.md +2 -0
  114. package/skills/lit-hijack/SKILL.md +422 -0
  115. package/skills/lit-hijack/references/capture-and-provenance.md +87 -0
  116. package/skills/lit-hijack/references/clean-room-build.md +111 -0
  117. package/skills/lit-hijack/references/distil-and-licence.md +100 -0
  118. package/skills/lit-hijack/references/gap-and-port-design.md +126 -0
  119. package/skills/lit-hijack/references/parity-and-report.md +110 -0
  120. package/skills/lit-hijack/scripts/hijack.mjs +993 -0
  121. package/skills/lit-plan/SKILL.md +8 -0
  122. package/skills/lit-pptx/SKILL.md +27 -11
  123. package/skills/lit-pptx/fonts/jetbrains-mono/JetBrainsMono-Bold.ttf +0 -0
  124. package/skills/lit-pptx/fonts/jetbrains-mono/JetBrainsMono-Regular.ttf +0 -0
  125. package/skills/lit-pptx/fonts/jetbrains-mono/OFL.txt +93 -0
  126. package/skills/lit-pptx/fonts/jetbrains-mono/SOURCE.md +17 -0
  127. package/skills/lit-pptx/references/density-and-fill.md +9 -3
  128. package/skills/lit-pptx/references/direction-step.md +21 -6
  129. package/skills/lit-pptx/references/examples/04-lecture-chalk-ko.md +3 -6
  130. package/skills/lit-pptx/references/examples/05-research-talk-paper-en.md +1 -5
  131. package/skills/lit-pptx/references/examples/08-reliability-keynote-night-en.md +0 -4
  132. package/skills/lit-pptx/references/examples/09-status-update-ledger-en.md +2 -2
  133. package/skills/lit-pptx/references/examples/11-forecast-review-night-ko.md +4 -7
  134. package/skills/lit-pptx/references/examples/13-engineering-review-computational-brutalism-ko.md +173 -0
  135. package/skills/lit-pptx/references/examples/14-launch-pitch-neo-brutalism-ko.md +154 -0
  136. package/skills/lit-pptx/references/examples/15-design-lecture-bauhaus-ko.md +139 -0
  137. package/skills/lit-pptx/references/examples/16-community-programme-riso-ko.md +158 -0
  138. package/skills/lit-pptx/references/examples/17-public-data-briefing-newsroom-ko.md +179 -0
  139. package/skills/lit-pptx/references/layout-families.md +65 -47
  140. package/skills/lit-pptx/references/title-treatments.md +83 -134
  141. package/skills/lit-pptx/references/tonalities/atlas.md +3 -3
  142. package/skills/lit-pptx/references/tonalities/bauhaus.md +140 -0
  143. package/skills/lit-pptx/references/tonalities/chalk.md +7 -6
  144. package/skills/lit-pptx/references/tonalities/computational-brutalism.md +150 -0
  145. package/skills/lit-pptx/references/tonalities/gazette.md +1 -1
  146. package/skills/lit-pptx/references/tonalities/ledger.md +1 -1
  147. package/skills/lit-pptx/references/tonalities/neo-brutalism.md +161 -0
  148. package/skills/lit-pptx/references/tonalities/newsroom.md +144 -0
  149. package/skills/lit-pptx/references/tonalities/night.md +1 -1
  150. package/skills/lit-pptx/references/tonalities/paper.md +2 -2
  151. package/skills/lit-pptx/references/tonalities/riso.md +137 -0
  152. package/skills/lit-pptx/references/tonalities/signal.md +3 -3
  153. package/skills/lit-pptx/references/tonalities/studio.md +7 -6
  154. package/skills/lit-pptx/run.mjs +2 -1
  155. package/skills/lit-pptx/scripts/compile-deck.js +1 -1
  156. package/skills/lit-pptx/scripts/craft-thresholds.json +4 -8
  157. package/skills/lit-pptx/scripts/craft_extras.py +56 -3
  158. package/skills/lit-pptx/scripts/deck_output.py +75 -90
  159. package/skills/lit-pptx/scripts/embed_fonts.py +13 -1
  160. package/skills/lit-pptx/scripts/layout_inventory.py +12 -5
  161. package/skills/lit-pptx/scripts/lib/grid-resolver.js +101 -110
  162. package/skills/lit-pptx/scripts/lib/layout-resolver.js +9 -15
  163. package/skills/lit-pptx/scripts/lib/render-pack.js +373 -566
  164. package/skills/lit-pptx/scripts/lib/slide-grid.js +104 -0
  165. package/skills/lit-pptx/scripts/lib/template-registry.js +57 -6
  166. package/skills/lit-pptx/scripts/qa_deck.py +10 -11
  167. package/skills/lit-pptx/scripts/render_pages.py +118 -0
  168. package/skills/lit-pptx/templates/tonalities/atlas/pack.yaml +1 -1
  169. package/skills/lit-pptx/templates/tonalities/bauhaus/pack.yaml +98 -0
  170. package/skills/lit-pptx/templates/tonalities/chalk/pack.yaml +1 -1
  171. package/skills/lit-pptx/templates/tonalities/computational-brutalism/pack.yaml +99 -0
  172. package/skills/lit-pptx/templates/tonalities/gazette/pack.yaml +1 -1
  173. package/skills/lit-pptx/templates/tonalities/ledger/pack.yaml +1 -1
  174. package/skills/lit-pptx/templates/tonalities/neo-brutalism/pack.yaml +107 -0
  175. package/skills/lit-pptx/templates/tonalities/newsroom/pack.yaml +99 -0
  176. package/skills/lit-pptx/templates/tonalities/night/pack.yaml +1 -1
  177. package/skills/lit-pptx/templates/tonalities/paper/pack.yaml +1 -1
  178. package/skills/lit-pptx/templates/tonalities/riso/pack.yaml +99 -0
  179. package/skills/lit-pptx/templates/tonalities/signal/pack.yaml +2 -2
  180. package/skills/lit-pptx/templates/tonalities/studio/pack.yaml +1 -1
  181. package/skills/lit-recap/SKILL.md +4 -0
  182. package/skills/lit-schematic/SKILL.md +118 -0
  183. package/skills/lit-schematic/examples/iso-heat-exchanger/build.mjs +38 -0
  184. package/skills/lit-schematic/examples/iso-heat-exchanger/scene.mjs +133 -0
  185. package/skills/lit-schematic/examples/journal-adsorption-rig/build.mjs +87 -0
  186. package/skills/lit-schematic/examples/pid-dosing-skid/build.mjs +85 -0
  187. package/skills/lit-schematic/references/cutaway-outputs.md +70 -0
  188. package/skills/lit-schematic/references/isometric-craft.md +101 -0
  189. package/skills/lit-schematic/references/journal-figures.md +72 -0
  190. package/skills/lit-schematic/references/kit-api.md +134 -0
  191. package/skills/lit-schematic/references/pfd-and-layout.md +53 -0
  192. package/skills/lit-schematic/references/pid-drafting.md +103 -0
  193. package/skills/lit-schematic/references/pid-symbols.md +163 -0
  194. package/skills/lit-schematic/references/verification.md +100 -0
  195. package/skills/lit-schematic/scripts/doctor.mjs +57 -0
  196. package/skills/lit-schematic/scripts/lib/figure.mjs +81 -0
  197. package/skills/lit-schematic/scripts/lib/fonts.mjs +25 -0
  198. package/skills/lit-schematic/scripts/lib/geom.mjs +113 -0
  199. package/skills/lit-schematic/scripts/lib/interactive.mjs +292 -0
  200. package/skills/lit-schematic/scripts/lib/isa.mjs +115 -0
  201. package/skills/lit-schematic/scripts/lib/iso.mjs +719 -0
  202. package/skills/lit-schematic/scripts/lib/legend-sheet.mjs +162 -0
  203. package/skills/lit-schematic/scripts/lib/pid.mjs +937 -0
  204. package/skills/lit-schematic/scripts/lib/png.mjs +132 -0
  205. package/skills/lit-schematic/scripts/lib/qa-core.mjs +658 -0
  206. package/skills/lit-schematic/scripts/lib/route.mjs +218 -0
  207. package/skills/lit-schematic/scripts/lib/sheet.mjs +890 -0
  208. package/skills/lit-schematic/scripts/lib/svg.mjs +82 -0
  209. package/skills/lit-schematic/scripts/lib/theme.mjs +115 -0
  210. package/skills/lit-schematic/scripts/motion.mjs +129 -0
  211. package/skills/lit-schematic/scripts/qa.mjs +92 -0
  212. package/skills/lit-schematic/scripts/render.mjs +233 -0
  213. package/skills/lit-schematic/scripts/scaffold.mjs +60 -0
  214. package/skills/lit-scientific-visualization/SKILL.md +27 -4
  215. package/skills/lit-typographic-motion/SKILL.md +19 -17
  216. package/skills/lit-typographic-motion/THIRD_PARTY_NOTICES +9 -0
  217. package/skills/lit-typographic-motion/engine/accents.mjs +6 -0
  218. package/skills/lit-typographic-motion/engine/assets.mjs +282 -0
  219. package/skills/lit-typographic-motion/engine/blender/runner.py +228 -0
  220. package/skills/lit-typographic-motion/engine/blender.mjs +126 -0
  221. package/skills/lit-typographic-motion/engine/board.mjs +138 -0
  222. package/skills/lit-typographic-motion/engine/cover/assets.mjs +11 -8
  223. package/skills/lit-typographic-motion/engine/cover/capture.mjs +6 -6
  224. package/skills/lit-typographic-motion/engine/cover/render.mjs +20 -7
  225. package/skills/lit-typographic-motion/engine/cover/treatment.mjs +30 -3
  226. package/skills/lit-typographic-motion/engine/fill.mjs +54 -0
  227. package/skills/lit-typographic-motion/engine/gallery.mjs +118 -0
  228. package/skills/lit-typographic-motion/engine/house.mjs +42 -0
  229. package/skills/lit-typographic-motion/engine/look.mjs +65 -8
  230. package/skills/lit-typographic-motion/engine/loudness.mjs +101 -0
  231. package/skills/lit-typographic-motion/engine/scaffold.mjs +219 -0
  232. package/skills/lit-typographic-motion/engine/score.mjs +594 -0
  233. package/skills/lit-typographic-motion/engine/sound.mjs +9 -57
  234. package/skills/lit-typographic-motion/engine/stage/capture.mjs +23 -9
  235. package/skills/lit-typographic-motion/engine/stage/clock.js +8 -2
  236. package/skills/lit-typographic-motion/engine/stage/cover-init.js +12 -1
  237. package/skills/lit-typographic-motion/engine/stage/frame-worker.mjs +15 -7
  238. package/skills/lit-typographic-motion/engine/stage/gate.mjs +48 -4
  239. package/skills/lit-typographic-motion/engine/stage/qa-page.js +16 -5
  240. package/skills/lit-typographic-motion/engine/stage/qa.mjs +148 -7
  241. package/skills/lit-typographic-motion/engine/stage/render.mjs +69 -7
  242. package/skills/lit-typographic-motion/engine/stage/scan.mjs +20 -1
  243. package/skills/lit-typographic-motion/engine/stage/stage-kit.js +85 -4
  244. package/skills/lit-typographic-motion/engine/stills.mjs +1 -1
  245. package/skills/lit-typographic-motion/engine/styles.mjs +221 -0
  246. package/skills/lit-typographic-motion/engine/text.mjs +1 -1
  247. package/skills/lit-typographic-motion/engine/treatment.mjs +190 -6
  248. package/skills/lit-typographic-motion/engine/vendor/three/LICENSE +21 -0
  249. package/skills/lit-typographic-motion/engine/vendor/three/addons/environments/RoomEnvironment.js +144 -0
  250. package/skills/lit-typographic-motion/engine/vendor/three/addons/geometries/RoundedBoxGeometry.js +155 -0
  251. package/skills/lit-typographic-motion/engine/vendor/three/three.module.js +54571 -0
  252. package/skills/lit-typographic-motion/gate.mjs +18 -2
  253. package/skills/lit-typographic-motion/probe.mjs +13 -1
  254. package/skills/lit-typographic-motion/recipes/hero-3d/expected.json +64 -0
  255. package/skills/lit-typographic-motion/recipes/hero-3d/index.html +132 -0
  256. package/skills/lit-typographic-motion/recipes/orbit-loop/expected.json +2 -0
  257. package/skills/lit-typographic-motion/recipes/painted-light/expected.json +2 -0
  258. package/skills/lit-typographic-motion/recipes/weight-tide/expected.json +2 -0
  259. package/skills/lit-typographic-motion/references/cover.md +56 -13
  260. package/skills/lit-typographic-motion/references/craft-loop.md +20 -7
  261. package/skills/lit-typographic-motion/references/depth.md +112 -0
  262. package/skills/lit-typographic-motion/references/runtime.md +21 -6
  263. package/skills/lit-typographic-motion/references/sound.md +76 -0
  264. package/skills/lit-typographic-motion/references/stage.md +50 -7
  265. package/skills/lit-typographic-motion/references/studio.md +162 -0
  266. package/skills/lit-typographic-motion/references/style-bibles.md +18 -0
  267. package/skills/lit-typographic-motion/references/treatment.md +108 -9
  268. package/skills/lit-typographic-motion/render.mjs +60 -3
  269. package/skills/lit-typographic-motion/styles/paper.json +185 -0
  270. package/skills/lit-typographic-motion/styles/swiss-signal.json +188 -0
  271. package/skills/lit-typographic-motion/styles/terminalcore.json +182 -0
  272. package/skills/lit-typographic-motion/styles/tidal.json +187 -0
  273. package/skills/litresearch/SKILL.md +2 -0
  274. package/skills/managed-skill-manifest.json +517 -88
  275. package/skills/readme-studio/SKILL.md +1 -1
  276. package/skills/review-work/SKILL.md +2 -0
  277. package/skills/start-work/SKILL.md +8 -0
  278. package/skills/workflow-loop/SKILL.md +4 -0
  279. package/tools/check-pack-payload.mjs +5 -2
  280. package/tools/payload-substance-parity.json +4 -3
  281. package/tools/qa-cover-recipes.mjs +4 -3
  282. package/tools/version-manifests.json +2 -2
@@ -0,0 +1,173 @@
1
+ ---
2
+ tonality: computational-brutalism
3
+ title: API 게이트웨이 v3 전환 리뷰
4
+ date: 2026-10-20
5
+ department: 예시 기업 플랫폼팀
6
+ presenter: 예시 발표자
7
+ notice: 예시 데이터 — 실제 수치로 바꿔 주세요
8
+ ---
9
+
10
+ ---
11
+ layout: cover-typographic
12
+
13
+ # API 게이트웨이 v3 전환 리뷰
14
+ ---
15
+
16
+ ---
17
+ layout: kpi-row
18
+
19
+ ## v3 전환 4주 운영 지표, 2026년 9-10월
20
+
21
+ | p99 지연 | 처리량 | 오류율 | 노드 수 |
22
+ |---|---|---|---|
23
+ | 182 ms | 41k rps | 0.07% | 24 |
24
+ | v2 410 ms | v2 18k rps | v2 0.31% | v2 40 |
25
+
26
+ > 운영 클러스터 4주 평균, 2026년 9월 22일-10월 19일 (예시)
27
+
28
+ - p99 지연은 절반 아래로 줄었고, 같은 트래픽을 노드 24대가 처리한다
29
+ - 오류율 0.07%는 SLO 0.1% 안쪽이고, 월 비용은 2,100만 원 줄었다
30
+ - 출처: 예시 관측 대시보드, 2026년 10월 (예시)
31
+ ---
32
+
33
+ ---
34
+ layout: chart-insight
35
+
36
+ ## 주간 p99 지연 추이, v2와 v3
37
+
38
+ ::: chart type=line unit="ms"
39
+ | 주 | v2 p99 (ms) | v3 p99 (ms) |
40
+ |---|---|---|
41
+ | 8월 4주 | 402 | 236 |
42
+ | 9월 1주 | 415 | 221 |
43
+ | 9월 2주 | 408 | 204 |
44
+ | 9월 3주 | 421 | 193 |
45
+ | 9월 4주 | 410 | 188 |
46
+ | 10월 1주 | 412 | 184 |
47
+ | 10월 2주 | 406 | 182 |
48
+ > 주간 p99 지연, 같은 트래픽 미러링 기준 (예시 데이터)
49
+ :::
50
+
51
+ - v3는 7주 동안 236 ms에서 182 ms로 내려왔고, v2는 400 ms대에 머문다
52
+ - 개선의 절반은 커넥션 풀 재사용, 나머지는 직렬화 경로 교체에서 나왔다
53
+ - 출처: 예시 관측 대시보드, 2026년 8-10월 (예시)
54
+ ---
55
+
56
+ ---
57
+ layout: table-insight
58
+ title: bottom-anchor
59
+
60
+ ## 엔드포인트별 지연과 오류, 10월 2주
61
+
62
+ | 엔드포인트 | 호출 비중 | p50 (ms) | p99 (ms) | 오류율 | v2 대비 p99 |
63
+ |---|---|---|---|---|---|
64
+ | GET /orders | 38% | 21 | 142 | 0.03% | ▼ −61% |
65
+ | POST /orders | 17% | 48 | 231 | 0.11% | ▼ −52% |
66
+ | GET /tracking | 29% | 18 | 120 | 0.02% | ▼ −64% |
67
+ | POST /auth/token | 9% | 35 | 264 | 0.19% | ▼ −38% |
68
+ | 기타 14개 | 7% | 30 | 198 | 0.08% | ▼ −49% |
69
+
70
+ > 표 1. 엔드포인트별 지연과 오류율, 2026년 10월 2주, 예시 게이트웨이 접근 로그 (예시 데이터)
71
+
72
+ - 토큰 발급만 오류율이 SLO 근처다: 외부 인증 서버 타임아웃이 원인이다
73
+ - 인증 서버 증설 전까지 토큰 캐시 TTL을 5분에서 15분으로 늘린다
74
+ - 호출의 67%를 차지하는 두 조회 경로는 p99가 150 ms 아래다
75
+ - 주문 생성은 재고 서비스 호출 때문에 조회보다 p99가 1.6배 길다
76
+ ---
77
+
78
+ ---
79
+ layout: method
80
+
81
+ ## v3 요청 처리 경로
82
+
83
+ ![도 2. v3 요청 처리 경로, 다섯 단계 | 출처: 예시 이미지](assets/example-b.png)
84
+
85
+ - **1. 수신** TLS 종료와 요청 파싱, 커넥션 풀에서 업스트림 연결 재사용
86
+ - **2. 인증** 토큰 검증 캐시 우선, 캐시 미스만 인증 서버 호출
87
+ - **3. 라우팅** 경로 규칙 테이블을 메모리에 올려 조회, 규칙 312개
88
+ - **4. 전달** 업스트림 호출과 재시도 1회, 서킷 브레이커 임계 5%
89
+ - **5. 기록** 구조화 로그와 추적 스팬을 비동기로 내보냄
90
+ - 출처: 예시 플랫폼팀 설계 문서 v3.2, 2026년 8월 (예시)
91
+ ---
92
+
93
+ ---
94
+ layout: comparison
95
+
96
+ ## v2와 v3 구성 비교
97
+
98
+ :::: columns 1fr 1fr
99
+ ::: col
100
+ - **v2 (2023-2026)**
101
+ (1) 런타임: 요청마다 새 업스트림 연결
102
+ (2) 인증: 매 요청 인증 서버 호출
103
+ (3) 설정: 배포 때마다 규칙 파일 재적재
104
+ (4) 노드: 40대, 피크 CPU 71%
105
+ (5) 배포: 주 2회, 배포당 평균 38분
106
+ :::
107
+ ::: col
108
+ - **v3 (2026-)**
109
+ (1) 런타임: 커넥션 풀 재사용, 연결 수립 −92%
110
+ (2) 인증: 검증 캐시 적중률 94%
111
+ (3) 설정: 규칙 핫 리로드, 배포 없이 반영
112
+ (4) 노드: 24대, 피크 CPU 58%
113
+ (5) 배포: 하루 6회, 배포당 평균 7분
114
+ :::
115
+ ::::
116
+
117
+ - 출처: 예시 플랫폼팀 부하 시험 보고서, 2026년 9월 (예시)
118
+ ---
119
+
120
+ ---
121
+ layout: step-diagram
122
+ title: top-rule
123
+
124
+ ## 남은 전환 단계와 종료 조건
125
+
126
+ - **1. 섀도** 트래픽 5%를 v3로 복제해 응답을 비교한다
127
+ (1) 종료 조건: 72시간 불일치 0건 · 완료
128
+ - **2. 카나리** 한 리전에서 실트래픽 10%를 v3로 보낸다
129
+ (1) 종료 조건: p99 250 ms 미만, 오류율 0.1% 미만 · 완료
130
+ - **3. 확대** 50%, 100% 순서로 하루에 한 리전씩 넓힌다
131
+ (1) 종료 조건: 7일간 롤백 0건 · 진행 중
132
+ - **4. 폐기** v2를 드레인하고 노드 40대를 반납한다
133
+ (1) 담당: 예시 플랫폼팀, 11월 4주 · 예정
134
+ - 출처: 예시 전환 런북 v1.4, 2026년 10월 (예시)
135
+ ---
136
+
137
+ ---
138
+ layout: statement
139
+
140
+ ## 남은 오류는 어디에서 오는가?
141
+
142
+ 토큰 발급 오류의 92%는 v3가 아니라 외부 인증 서버의 2초 타임아웃에서 나온다.
143
+ ---
144
+
145
+ ---
146
+ layout: closing-decision-box
147
+ title: top-rule
148
+
149
+ ## v2 폐기와 인증 서버 증설 승인 안건
150
+
151
+ - 결정할 것: 11월 4주 v2 폐기와 인증 서버 2대 증설을 함께 승인하면 월 2,100만 원을 줄인다
152
+
153
+ | 안건 | 비용 | 결정 시점 | 담당 |
154
+ |---|---|---|---|
155
+ | v2 노드 40대 반납 | −2,100만 원/월 | 11월 2주 | 예시 플랫폼팀 |
156
+ | 인증 서버 2대 증설 | +260만 원/월 | 11월 1주 | 예시 보안팀 |
157
+ | 토큰 캐시 TTL 15분 | 비용 없음 | 즉시 | 예시 플랫폼팀 |
158
+ | v3 운영 런북 이관 | 비용 없음 | 11월 4주 | 예시 SRE팀 |
159
+
160
+ > 표 2. 승인 요청 안건 (예시)
161
+ ---
162
+
163
+ ---
164
+ layout: references-appendix
165
+
166
+ ## 붙임: 지표 정의와 자료 출처
167
+
168
+ - [1] p99 지연: 요청 99%가 이 시간 안에 끝나는 값, 1분 창 집계
169
+ - [2] 처리량: 초당 요청 수(rps), 피크 1시간 평균
170
+ - [3] 오류율: 5xx 응답과 타임아웃을 전체 요청으로 나눈 값
171
+ - [4] 예시 관측 대시보드, 2026년 8-10월 (예시)
172
+ - [5] 예시 플랫폼팀 설계 문서 v3.2와 전환 런북 v1.4 (예시)
173
+ ---
@@ -0,0 +1,154 @@
1
+ ---
2
+ tonality: neo-brutalism
3
+ title: 동네 운동 모임 앱 시드 투자 제안
4
+ date: 2026-10-21
5
+ department: 예시 스타트업 사업팀
6
+ presenter: 예시 대표
7
+ notice: 예시 데이터 — 실제 수치로 바꿔 주세요
8
+ ---
9
+
10
+ ---
11
+ layout: cover-typographic
12
+
13
+ # 동네 운동 모임 앱 시드 투자 제안
14
+ ---
15
+
16
+ ---
17
+ layout: statement
18
+
19
+ ## 왜 운동은 혼자 오래 못 하는가?
20
+
21
+ 헬스장 신규 회원의 63%가 석 달 안에 발길을 끊고, 그 이유 1위는 "같이 할 사람이 없어서"다.
22
+ ---
23
+
24
+ ---
25
+ layout: big-number
26
+
27
+ ## 수도권 생활 체육 모임 시장
28
+
29
+ | 정기 모임 참여자 | 모임 찾기 앱 이용 | 월 평균 회비 | 앱 이용 연 성장률 |
30
+ |---|---|---|---|
31
+ | 310만 명 | 9% | 3만 2천 원 | 37% |
32
+ | 2025년 기준 | 2023년 4% | 1인 기준 | 2023-2025년 평균 |
33
+
34
+ > 수도권 생활 체육 모임 추정, 예시 업계 통계 2025 (예시)
35
+
36
+ - 모임은 대부분 단톡방과 지인 소개로 굴러간다: 앱으로 찾는 사람은 열 명 중 한 명
37
+ - 앱 비중이 2028년 20%가 되면 모임 회비 시장은 연 2,400억 원이다
38
+ - 출처: 예시 업계 통계 2025, 수도권 성인 2,000명 조사 (예시)
39
+ ---
40
+
41
+ ---
42
+ layout: image-split
43
+
44
+ ## 앱에서 모임까지 세 번의 탭
45
+
46
+ ![도 1. 모임 찾기 화면 예시 | 출처: 예시 이미지](assets/example-a.png)
47
+
48
+ - **찾기** 집에서 1.5 km 안의 러닝, 배드민턴, 클라이밍 모임을 지도로 본다
49
+ - **참여** 첫 모임은 무료, 두 번째부터 회비를 앱에서 낸다
50
+ - **기록** 출석과 운동량이 쌓이면 모임장이 레벨을 올려 준다
51
+ - **안전** 모임장 본인 인증과 장소 공개로 처음 가는 모임도 안심한다
52
+ - 출처: 예시 서비스 베타 화면, 2026년 9월 (예시)
53
+ ---
54
+
55
+ ---
56
+ layout: kpi-row
57
+
58
+ ## 베타 8주 성과, 2026년 8-10월
59
+
60
+ | 가입자 | 주간 재방문 | 추천 가입 | 유료 전환 |
61
+ |---|---|---|---|
62
+ | 1.2만 명 | 46% | 38% | 7.4% |
63
+ | 목표 1만 명 | 업계 평균 25% | 광고비 0원 | 목표 5% |
64
+
65
+ > 베타 운영 기록, 2026년 8-10월 (예시)
66
+
67
+ - 광고 없이 가입자 목표를 넘겼다: 셋 중 하나 이상이 친구 추천으로 왔다
68
+ - 유료 전환 7.4%는 목표 5%를 넘었고, 연 결제가 그중 60%다
69
+ - 주간 재방문 46%는 운동 앱 업계 평균의 두 배 가까운 수치다
70
+ - 베타 모임 318개 중 72%가 8주 차에도 매주 모였다
71
+ - 모임장 1인당 회원은 평균 14명, 상위 10%는 40명을 넘는다
72
+ - 출처: 예시 서비스 운영 대시보드, 2026년 10월 (예시)
73
+ ---
74
+
75
+ ---
76
+ layout: chart-insight
77
+
78
+ ## 주간 활성 모임 수, 베타 8주
79
+
80
+ ::: chart type=column unit="개"
81
+ | 주 | 활성 모임 (개) |
82
+ |---|---|
83
+ | 1주 | 42 |
84
+ | 2주 | 61 |
85
+ | 3주 | 88 |
86
+ | 4주 | 117 |
87
+ | 5주 | 160 |
88
+ | 6주 | 204 |
89
+ | 7주 | 251 |
90
+ | 8주 | 318 |
91
+ > 주간 활성 모임 수, 한 번 이상 모인 모임 기준 (예시 데이터)
92
+ :::
93
+
94
+ - 활성 모임은 8주 동안 매주 평균 34%씩 늘어 7.6배가 됐다
95
+ - 모임장 한 명이 평균 1.4개의 모임을 열고, 둘째 모임은 첫 모임의 단골이 연다
96
+ - 출처: 예시 서비스 운영 대시보드, 2026년 8-10월 (예시)
97
+ ---
98
+
99
+ ---
100
+ layout: process
101
+
102
+ ## 모임장이 돈을 버는 구조
103
+
104
+ - **1. 개설** 모임장이 장소와 시간을 정하고 회비를 1만-5만 원 사이로 정한다
105
+ - **2. 모집** 앱이 반경 1.5 km 가입자에게 모임을 추천한다
106
+ - **3. 정산** 회비의 85%는 모임장에게, 15%는 플랫폼 수수료로 남는다
107
+ - **4. 재방문** 출석 4회를 넘긴 회원의 3개월 유지율은 71%다
108
+ - 출처: 예시 서비스 정산 기준과 베타 기록, 2026년 10월 (예시)
109
+ ---
110
+
111
+ ---
112
+ layout: comparison
113
+
114
+ ## 단톡방 모임과 앱 모임 비교
115
+
116
+ :::: columns 1fr 1fr
117
+ ::: col
118
+ - **단톡방 모임**
119
+ (1) 찾기: 지인 소개가 없으면 들어갈 길이 없다
120
+ (2) 회비: 계좌 이체와 독촉 메시지로 걷는다
121
+ (3) 안전: 모임장이 누군지 알 방법이 없다
122
+ (4) 기록: 출석은 모임장이 손으로 센다
123
+ :::
124
+ ::: col
125
+ - **앱 모임**
126
+ (1) 찾기: 지도에서 고르고 첫 모임은 무료다
127
+ (2) 회비: 앱 결제, 미납률 2% (단톡방 18%)
128
+ (3) 안전: 본인 인증 모임장, 장소 사전 공개
129
+ (4) 기록: 출석과 운동량이 자동으로 쌓인다
130
+ :::
131
+ ::::
132
+
133
+ - 출처: 베타 모임장 120명 인터뷰, 2026년 9월 (예시)
134
+ ---
135
+
136
+ ---
137
+ layout: closing-ask
138
+
139
+ ## 시드 15억 원 사용 계획
140
+
141
+ | 쓰임 | 금액 | 시점 |
142
+ |---|---|---|
143
+ | 앱 개발 인력 4명 | 7억 원 | 2027년 상반기 |
144
+ | 모임장 모집 200명 | 4억 원 | 2027년 1분기 |
145
+ | 마케팅 실험 | 3억 원 | 상시 |
146
+ | 운영 예비비 | 1억 원 | 필요 시 |
147
+ | 합계 | 15억 원 | 12개월 |
148
+
149
+ > 표 1. 투자금 쓰임 (예시 데이터)
150
+
151
+ - 요청: 시드 15억 원 투자 승인
152
+ - 기대 성과: 12개월 뒤 가입자 10만 명, 월 거래액 6억 원
153
+ - 다음 단계: 11월 첫째 주 후속 미팅, 담당 예시 대표
154
+ ---
@@ -0,0 +1,139 @@
1
+ ---
2
+ tonality: bauhaus
3
+ title: 기능이 형태를 만든다: 바우하우스 14년
4
+ date: 2026-10-23
5
+ department: 예시 디자인대학 교양 강좌
6
+ presenter: 예시 강사
7
+ notice: 예시 자료 — 실제 도판과 출처로 바꿔 주세요
8
+ ---
9
+
10
+ ---
11
+ layout: cover-typographic
12
+
13
+ # 기능이 형태를 만든다: 바우하우스 14년
14
+ ---
15
+
16
+ ---
17
+ layout: agenda
18
+
19
+ ## 오늘 강의의 네 부분
20
+
21
+ - **학교의 시작** 1919년 바이마르, 공방과 예술 교육을 한 지붕 아래 둔 이유
22
+ - **세 시기** 바이마르, 데사우, 베를린에서 무엇이 바뀌었는가
23
+ - **교사(校舍)와 물건** 데사우 교사와 표준화된 제품을 읽는 법
24
+ - **오늘의 흔적** 지금 쓰는 의자와 글꼴, 화면 격자에 남은 원칙
25
+ ---
26
+
27
+ ---
28
+ layout: timeline
29
+
30
+ ## 학교의 세 시기, 1919-1933년
31
+
32
+ | 시점 | 장소 | 무엇이 바뀌었나 |
33
+ |---|---|---|
34
+ | 1919년 | 바이마르 | 공방 중심 교육, 표현주의 영향이 강한 첫 6년 |
35
+ | 1925년 | 데사우 | 산업 생산과 협업, 표준화된 제품 디자인으로 이동 |
36
+ | 1928년 | 데사우 | 건축과 신설, 사회 주택과 대량 생산을 강의에 넣음 |
37
+ | 1932년 | 베를린 | 사립 학교로 축소, 이듬해 스스로 문을 닫음 |
38
+
39
+ > 표 1. 바우하우스의 세 시기와 주요 변화 (예시 자료)
40
+
41
+ - 14년 동안 학교는 세 번 자리를 옮겼고, 옮길 때마다 교육의 무게중심이 공방에서 산업으로 갔다
42
+ - 출처: 예시 디자인사 강의 노트, 2026년 (예시)
43
+ ---
44
+
45
+ ---
46
+ layout: image-split
47
+
48
+ ## 데사우 교사의 세 가지 설계 원칙
49
+
50
+ ![도 1. 데사우 교사 전경 | 출처: 예시 이미지](assets/example-a.png)
51
+
52
+ - **기능별 동** 공방, 교실, 기숙사를 각각의 동으로 나눠 다리로 잇는다
53
+ - **유리 커튼월** 공방 동의 외벽 전체가 유리라 작업이 밖에서 보인다
54
+ - **비대칭 배치** 정면이 없어, 걸으며 돌아봐야 전체가 읽힌다
55
+ - **같은 창 크기** 기숙사 발코니와 창이 한 치수로 반복된다
56
+ - 출처: 예시 건축사 강의 자료, 2026년 (예시)
57
+ ---
58
+
59
+ ---
60
+ layout: statement
61
+
62
+ ## 장식을 빼면 무엇이 남는가?
63
+
64
+ 남는 것은 재료와 구조, 그리고 쓰는 사람의 손이다. 학교는 이 셋에서 형태를 다시 시작했다.
65
+ ---
66
+
67
+ ---
68
+ layout: comparison
69
+ title: side-rail
70
+
71
+ ## 공예품과 표준 제품, 같은 탁상 조명의 두 판
72
+
73
+ :::: columns 1fr 1fr
74
+ ::: col
75
+ - **공방 시제품 (1924)**
76
+ (1) 재료: 유리 갓과 금속 기둥, 손으로 다듬음
77
+ (2) 생산: 한 번에 몇 점, 공방 안에서 완성
78
+ (3) 가격: 숙련공 한 주 임금에 가까움
79
+ (4) 목적: 형태와 빛의 원리를 시험
80
+ :::
81
+ ::: col
82
+ - **양산판 (1928)**
83
+ (1) 재료: 같은 형태, 규격 부품으로 바꿈
84
+ (2) 생산: 공장 계약, 수천 점 단위
85
+ (3) 가격: 시제품의 약 4분의 1
86
+ (4) 목적: 좋은 형태를 누구나 쓰게 함
87
+ :::
88
+ ::::
89
+
90
+ - 출처: 예시 제품 디자인사 자료, 2026년 (예시)
91
+ ---
92
+
93
+ ---
94
+ layout: process
95
+
96
+ ## 기초 과정에서 공방까지 한 학생의 경로
97
+
98
+ - **1. 기초 과정** 여섯 달 동안 재료, 색, 형태를 처음부터 다시 배운다
99
+ - **2. 공방 배정** 금속, 목공, 직물, 인쇄 가운데 한 공방에 들어간다
100
+ - **3. 두 명의 스승** 형태를 가르치는 예술가와 기술을 가르치는 장인이 함께 지도한다
101
+ - **4. 제품 시험** 공방의 시제품이 기업과 계약하면 학생도 사용료를 받는다
102
+ - 출처: 예시 디자인 교육사 자료, 2026년 (예시)
103
+ ---
104
+
105
+ ---
106
+ layout: quote
107
+
108
+ ## 교사의 말
109
+
110
+ “형태는 그것이 하는 일에서 나와야 한다. 나머지는 모두 덧붙인 것이다.”
111
+
112
+ — 예시 공방 교사, 1926년 강의 기록 (예시 인용)
113
+ ---
114
+
115
+ ---
116
+ layout: big-number
117
+
118
+ ## 14년 동안 학교가 남긴 것
119
+
120
+ | 재학생 | 교사 | 양산 계약 제품 | 남은 존속 기간 |
121
+ |---|---|---|---|
122
+ | 약 1,250명 | 약 50명 | 40여 종 | 14년 |
123
+ | 1919-1933년 누적 | 예술가와 장인 | 조명, 의자, 직물, 벽지 | 1919-1933년 |
124
+
125
+ > 바우하우스 재학생과 교사, 계약 제품 수 (예시 자료)
126
+
127
+ - 학생은 한 해 평균 90명 남짓이었다: 작은 학교가 큰 흔적을 남겼다
128
+ - 계약 제품 가운데 벽지가 가장 많이 팔려 학교 운영비를 보탰다
129
+ - 문을 닫은 뒤 교사와 학생이 여러 나라로 흩어지며 교육 방식이 퍼졌다
130
+ - 출처: 예시 디자인사 강의 노트, 2026년 (예시)
131
+ ---
132
+
133
+ ---
134
+ layout: closing-statement
135
+
136
+ ## 다음 주 과제
137
+
138
+ 집 안의 물건 하나를 골라, 그것이 하는 일마다 부품을 나눠 그려 온다.
139
+ ---
@@ -0,0 +1,158 @@
1
+ ---
2
+ tonality: riso
3
+ title: 동네 책 만들기 모임, 2026 가을 시즌
4
+ date: 2026-10-25
5
+ department: 예시 구립도서관 평생학습팀
6
+ presenter: 예시 사서
7
+ notice: 예시 자료 — 실제 일정과 수치로 바꿔 주세요
8
+ ---
9
+
10
+ ---
11
+ layout: cover-typographic
12
+
13
+ # 동네 책 만들기 모임, 2026 가을 시즌
14
+ ---
15
+
16
+ ---
17
+ layout: agenda
18
+
19
+ ## 오늘 안내할 네 가지
20
+
21
+ - **모임 소개** 주민이 직접 쓰고 찍고 엮어 작은 책을 만드는 12주 모임
22
+ - **지난 시즌** 148명이 모여 책자 여섯 권을 낸 기록
23
+ - **이번 일정** 11월 7일부터 매주 목요일 저녁, 세 갈래 소모임
24
+ - **참여 방법** 신청, 안내 문자, 첫 모임까지의 순서
25
+ ---
26
+
27
+ ---
28
+ layout: kpi-row
29
+
30
+ ## 지난 시즌, 숫자로 본 우리 모임
31
+
32
+ | 참가자 | 모임 | 만든 책자 | 처음 온 주민 |
33
+ |---|---|---|---|
34
+ | 148명 | 24회 | 6권 | 51% |
35
+ | 2025년 가을·겨울 | 주 1회, 12주씩 두 번 | 소모임별 1권 | 참가자 가운데 |
36
+
37
+ - 처음 온 주민이 절반을 넘어, 이번에도 첫 모임은 소개와 맛보기로 연다
38
+ - 책자 여섯 권은 1층 지역 자료 서가에 꽂혀 있다
39
+ - 출처: 예시 도서관 운영 보고, 2026년 (예시)
40
+ ---
41
+
42
+ ---
43
+ layout: summary-box-list
44
+
45
+ ## 세 갈래 소모임에서 하는 일
46
+
47
+ ::: key-message
48
+ 소모임 셋이 한 권의 책을 나눠 만든다: 쓰고, 찍고, 엮는다
49
+ :::
50
+
51
+ - **글 모임**
52
+ (1) 동네 가게와 이웃을 찾아가 30분씩 이야기를 듣는다
53
+ (2) 들은 이야기를 한 쪽짜리 글로 쓰고 서로 돌려 읽는다
54
+ (3) 12주 동안 한 사람이 글 두 편을 완성한다
55
+ - **사진 모임**
56
+ (1) 휴대전화로 골목과 시장, 가게 안을 찍는다
57
+ (2) 한 주에 다섯 장을 고르고 한 줄 설명을 붙인다
58
+ (3) 마지막 달에 표지 사진을 함께 고른다
59
+ - **엮는 모임**
60
+ (1) 글과 사진을 받아 쪽을 짜고 차례를 정한다
61
+ (2) 리소 인쇄기로 두 가지 색을 겹쳐 50부를 찍는다
62
+ (3) 손으로 실을 꿰어 제본하고 출간 잔치를 준비한다
63
+
64
+ - 소모임은 첫 모임에서 고르며, 중간에 한 번 옮길 수 있다
65
+ ---
66
+
67
+ ---
68
+ layout: timeline
69
+
70
+ ## 12주 일정, 11월 7일부터
71
+
72
+ | 시점 | 무엇을 하나 | 어디서 |
73
+ |---|---|---|
74
+ | 11월 7일 | 첫 모임, 소모임 고르기 | 3층 다목적실 |
75
+ | 11월 14일-12월 19일 | 소모임별 취재와 초고 | 각 소모임 방 |
76
+ | 2027년 1월 9일 | 쪽 짜기와 시험 인쇄 | 2층 메이커실 |
77
+ | 2027년 1월 23일 | 인쇄, 제본, 출간 잔치 | 1층 로비 |
78
+
79
+ > 표 1. 가을 시즌 일정 (예시)
80
+
81
+ - 12월 26일과 1월 2일은 쉬고, 빠진 모임은 1월 16일 보충 모임에서 메운다
82
+ - 출간 잔치에는 참가자의 가족과 글에 나온 이웃을 함께 초대한다
83
+ - 출처: 예시 도서관 평생학습 계획, 2026년 (예시)
84
+ ---
85
+
86
+ ---
87
+ layout: section-field
88
+
89
+ # 참여하는 법
90
+ ---
91
+
92
+ ---
93
+ layout: process
94
+
95
+ ## 신청부터 첫 모임까지
96
+
97
+ - **1. 신청** 10월 31일까지 도서관 누리집에서 한 사람씩 신청한다
98
+ - **2. 안내 문자** 모임 사흘 전 장소와 준비물을 문자로 받는다
99
+ - **3. 첫 모임** 11월 7일 저녁 7시, 3층 다목적실에서 만난다
100
+ - **4. 소모임 배정** 첫 모임에서 관심사별로 다섯 명씩 나눈다
101
+ - 출처: 예시 도서관 운영 계획, 2026년 (예시)
102
+ ---
103
+
104
+ ---
105
+ layout: comparison
106
+
107
+ ## 누구에게 맞나: 저녁반과 주말반
108
+
109
+ :::: columns 1fr 1fr
110
+ ::: col
111
+ - **목요일 저녁반**
112
+ (1) 시간: 저녁 7시-9시, 12주
113
+ (2) 정원: 30명, 소모임 여섯 개
114
+ (3) 맞는 분: 퇴근 뒤 오는 직장인, 대학생
115
+ (4) 준비물: 휴대전화, 필기구
116
+ :::
117
+ ::: col
118
+ - **토요일 오전반**
119
+ (1) 시간: 오전 10시-12시, 12주
120
+ (2) 정원: 20명, 소모임 네 개
121
+ (3) 맞는 분: 어르신, 아이와 함께 오는 보호자
122
+ (4) 준비물: 휴대전화, 필기구, 아이 간식
123
+ :::
124
+ ::::
125
+
126
+ - 두 반 모두 무료이며, 인쇄 재료비는 도서관이 낸다
127
+ ---
128
+
129
+ ---
130
+ layout: image-split
131
+
132
+ ## 지난 시즌 출간 잔치
133
+
134
+ ![도 1. 1층 로비 출간 잔치 | 출처: 예시 이미지](assets/example-a.png)
135
+
136
+ - **책자 여섯 권** 시장, 골목, 학교 앞 가게를 다룬 책이 나왔다
137
+ - **찾아온 주민** 잔치 두 시간 동안 210명이 들렀다
138
+ - **이웃 낭독** 글에 나온 가게 주인 네 명이 직접 읽었다
139
+ - 출처: 예시 도서관 행사 기록, 2026년 (예시)
140
+ ---
141
+
142
+ ---
143
+ layout: quote
144
+
145
+ ## 지난 시즌 참가자의 말
146
+
147
+ “이십 년 산 동네인데, 책을 만들고 나서야 골목 이름을 다 외웠어요.”
148
+
149
+ — 예시 참가자, 사진 모임 (예시 인용)
150
+ ---
151
+
152
+ ---
153
+ layout: closing-statement
154
+
155
+ ## 신청 안내
156
+
157
+ 10월 31일까지 도서관 누리집 ‘평생학습’ 메뉴에서 신청하고, 궁금한 점은 2층 안내데스크에 물어보세요.
158
+ ---