@keke1933/vibe-dictionary-mcp 0.13.0 → 0.15.0

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 (3) hide show
  1. package/README.md +2 -2
  2. package/dist/index.js +2775 -244
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -30400,9 +30400,19 @@ function rankDomainKnowledge(query = "") {
30400
30400
  }
30401
30401
 
30402
30402
  // ../../packages/catalog/src/glossary-links.ts
30403
- var GLOSSARY_CATEGORIES = ["ui", "engineering", "workflow"];
30403
+ var GLOSSARY_CATEGORIES = [
30404
+ "ui",
30405
+ "engineering",
30406
+ "workflow",
30407
+ "customer-support",
30408
+ "payments-settlement",
30409
+ "product-planning",
30410
+ "business-operations",
30411
+ "sales-marketing",
30412
+ "education-operations"
30413
+ ];
30404
30414
  var GLOSSARY_LINK_META = [
30405
- // UI (8)
30415
+ // UI (11)
30406
30416
  {
30407
30417
  id: "skeleton-loading",
30408
30418
  name: { ko: "\uC2A4\uCF08\uB808\uD1A4 \uB85C\uB529", en: "Skeleton Loading" },
@@ -30459,7 +30469,28 @@ var GLOSSARY_LINK_META = [
30459
30469
  relatedTechniqueIds: ["ly-fixed-row-virtual-scroll", "ly-prepend-scroll-anchor"],
30460
30470
  relatedDomainIds: ["notification-chat-room-delivery-and-recall", "analytics-metric-aggregation-and-export"]
30461
30471
  },
30462
- // Engineering (8)
30472
+ {
30473
+ id: "call-to-action",
30474
+ name: { ko: "\uD589\uB3D9 \uC720\uB3C4(CTA)", en: "Call to Action (CTA)" },
30475
+ category: "ui",
30476
+ relatedTechniqueIds: ["morphing-state-button", "split-action-button", "liquid-slide-fill"],
30477
+ relatedDomainIds: ["commerce-order-inventory-and-refund", "event-registration-ticket-and-checkin"]
30478
+ },
30479
+ {
30480
+ id: "floating-action-button",
30481
+ name: { ko: "\uD50C\uB85C\uD305 \uC561\uC158 \uBC84\uD2BC(FAB)", en: "Floating Action Button (FAB)" },
30482
+ category: "ui",
30483
+ relatedTechniqueIds: ["gooey-menu-fab", "ly-radial-pie-menu"],
30484
+ relatedDomainIds: []
30485
+ },
30486
+ {
30487
+ id: "safe-area",
30488
+ name: { ko: "\uC548\uC804 \uC601\uC5ED", en: "Safe Area" },
30489
+ category: "ui",
30490
+ relatedTechniqueIds: ["ly-bottom-destination-nav", "ly-bottom-sheet", "ly-dynamic-island-nav"],
30491
+ relatedDomainIds: []
30492
+ },
30493
+ // Engineering (14)
30463
30494
  {
30464
30495
  id: "debounce",
30465
30496
  name: { ko: "\uB514\uBC14\uC6B4\uC2A4", en: "Debounce" },
@@ -30524,7 +30555,53 @@ var GLOSSARY_LINK_META = [
30524
30555
  relatedTechniqueIds: ["ly-activity-timeline", "ly-context-code-diff"],
30525
30556
  relatedDomainIds: ["security-audit-log-retention-and-tamper-evidence", "file-version-replacement-and-download-audit"]
30526
30557
  },
30527
- // Workflow (8)
30558
+ {
30559
+ id: "http-live-streaming",
30560
+ name: { ko: "HTTP \uB77C\uC774\uBE0C \uC2A4\uD2B8\uB9AC\uBC0D(HLS)", en: "HTTP Live Streaming (HLS)" },
30561
+ category: "engineering",
30562
+ relatedTechniqueIds: [],
30563
+ relatedDomainIds: ["education-live-session-attendance-and-replay", "file-upload-processing-and-access-control"]
30564
+ },
30565
+ {
30566
+ id: "content-delivery-network",
30567
+ name: { ko: "\uCF58\uD150\uCE20 \uC804\uC1A1 \uB124\uD2B8\uC6CC\uD06C(CDN)", en: "Content Delivery Network (CDN)" },
30568
+ category: "engineering",
30569
+ relatedTechniqueIds: [],
30570
+ relatedDomainIds: ["file-external-share-link-password-and-expiry", "cms-publishing-schedule-and-versioning"]
30571
+ },
30572
+ {
30573
+ id: "content-management-system",
30574
+ name: { ko: "\uCF58\uD150\uCE20 \uAD00\uB9AC \uC2DC\uC2A4\uD15C(CMS)", en: "Content Management System (CMS)" },
30575
+ category: "engineering",
30576
+ relatedTechniqueIds: ["ly-context-code-diff", "inline-edit-field"],
30577
+ relatedDomainIds: [
30578
+ "cms-publishing-schedule-and-versioning",
30579
+ "cms-category-taxonomy-and-navigation-order",
30580
+ "cms-localization-translation-sync-and-fallback"
30581
+ ]
30582
+ },
30583
+ {
30584
+ id: "supervised-learning",
30585
+ name: { ko: "\uC9C0\uB3C4 \uD559\uC2B5", en: "Supervised Learning" },
30586
+ category: "engineering",
30587
+ relatedTechniqueIds: ["ly-transposable-comparison-matrix", "ly-heatmap-grid"],
30588
+ relatedDomainIds: ["automation-batch-import-validation-and-rollback", "analytics-goal-target-pro-rata-and-forecast"]
30589
+ },
30590
+ {
30591
+ id: "unsupervised-learning",
30592
+ name: { ko: "\uBE44\uC9C0\uB3C4 \uD559\uC2B5", en: "Unsupervised Learning" },
30593
+ category: "engineering",
30594
+ relatedTechniqueIds: ["ly-heatmap-grid", "mg-particle-network"],
30595
+ relatedDomainIds: ["analytics-anomaly-threshold-alert-and-mute"]
30596
+ },
30597
+ {
30598
+ id: "reinforcement-learning",
30599
+ name: { ko: "\uAC15\uD654 \uD559\uC2B5", en: "Reinforcement Learning" },
30600
+ category: "engineering",
30601
+ relatedTechniqueIds: ["vd-node-flow-pipeline", "ly-vertical-journey-rail"],
30602
+ relatedDomainIds: ["ai-agent-state-memory-and-branching"]
30603
+ },
30604
+ // Workflow and business domain operations (17)
30528
30605
  {
30529
30606
  id: "human-in-the-loop",
30530
30607
  name: { ko: "\uC778\uAC04 \uAC1C\uC785 \uC2B9\uC778 (HITL)", en: "Human-in-the-Loop (HITL)" },
@@ -30535,14 +30612,14 @@ var GLOSSARY_LINK_META = [
30535
30612
  {
30536
30613
  id: "service-level-agreement",
30537
30614
  name: { ko: "\uC11C\uBE44\uC2A4 \uC218\uC900 \uD611\uC57D (SLA)", en: "Service-Level Agreement (SLA)" },
30538
- category: "workflow",
30615
+ category: "customer-support",
30539
30616
  relatedTechniqueIds: ["ly-sortable-data-table", "faceted-filter-chips"],
30540
30617
  relatedDomainIds: ["support-sla-priority-and-escalation", "support-ticket-routing-and-resolution"]
30541
30618
  },
30542
30619
  {
30543
30620
  id: "know-your-customer",
30544
30621
  name: { ko: "\uACE0\uAC1D \uD655\uC778 \uC808\uCC28 (KYC)", en: "Know Your Customer (KYC)" },
30545
- category: "workflow",
30622
+ category: "payments-settlement",
30546
30623
  relatedTechniqueIds: ["onboarding-progress-checklist", "linked-form-error-summary"],
30547
30624
  relatedDomainIds: ["fintech-limit-tier-kyc-and-aml-review", "marketplace-seller-onboarding-kyc-and-payout-account"]
30548
30625
  },
@@ -30556,14 +30633,14 @@ var GLOSSARY_LINK_META = [
30556
30633
  {
30557
30634
  id: "escrow-settlement",
30558
30635
  name: { ko: "\uC5D0\uC2A4\uD06C\uB85C \uC815\uC0B0", en: "Escrow Settlement" },
30559
- category: "workflow",
30636
+ category: "payments-settlement",
30560
30637
  relatedTechniqueIds: ["hold-to-confirm-ring", "horizontal-milestone-rail"],
30561
30638
  relatedDomainIds: ["marketplace-escrow-settlement-and-dispute", "marketplace-quote-custom-offer-and-milestone"]
30562
30639
  },
30563
30640
  {
30564
30641
  id: "proration",
30565
30642
  name: { ko: "\uC77C\uD560 \uACC4\uC0B0", en: "Proration" },
30566
- category: "workflow",
30643
+ category: "payments-settlement",
30567
30644
  relatedTechniqueIds: ["billing-cycle-pricing-card"],
30568
30645
  relatedDomainIds: ["subscription-plan-entitlement-and-billing", "subscription-seat-license-and-member-change"]
30569
30646
  },
@@ -30588,448 +30665,2896 @@ var GLOSSARY_LINK_META = [
30588
30665
  "workspace-approval-stage-and-signoff",
30589
30666
  "recruiting-offer-approval-and-expiration"
30590
30667
  ]
30591
- }
30592
- ];
30593
-
30594
- // ../../packages/catalog/src/glossary/ui.ts
30595
- var UI_GLOSSARY_DATA = {
30596
- "skeleton-loading": {
30668
+ },
30669
+ {
30670
+ id: "voice-of-customer",
30671
+ name: { ko: "\uACE0\uAC1D\uC758 \uC18C\uB9AC(VOC)", en: "Voice of Customer (VOC)" },
30672
+ category: "customer-support",
30673
+ relatedTechniqueIds: ["character-budget-feedback", "sentiment-radio-segments"],
30674
+ relatedDomainIds: ["support-csat-survey-and-quality-review", "support-ticket-routing-and-resolution"]
30675
+ },
30676
+ {
30677
+ id: "net-promoter-score",
30678
+ name: { ko: "\uC21C\uCD94\uCC9C\uC9C0\uC218(NPS)", en: "Net Promoter Score (NPS)" },
30679
+ category: "product-planning",
30680
+ relatedTechniqueIds: ["vd-diverging-bar-reveal"],
30681
+ relatedDomainIds: ["support-csat-survey-and-quality-review", "automation-survey-anonymity-quota-and-duplicate-response"]
30682
+ },
30683
+ {
30684
+ id: "active-users",
30685
+ name: { ko: "\uD65C\uC131 \uC0AC\uC6A9\uC790", en: "Active Users" },
30686
+ category: "product-planning",
30687
+ relatedTechniqueIds: ["vd-kpi-counter-explosion", "ly-overview-detail-chart"],
30688
+ relatedDomainIds: ["analytics-metric-aggregation-and-export", "analytics-funnel-cohort-and-attribution-window"]
30689
+ },
30690
+ {
30691
+ id: "objectives-and-key-results",
30692
+ name: { ko: "\uBAA9\uD45C\uC640 \uD575\uC2EC \uACB0\uACFC(OKR)", en: "Objectives and Key Results (OKR)" },
30693
+ category: "business-operations",
30694
+ relatedTechniqueIds: ["vd-bullet-target-comparison", "horizontal-milestone-rail"],
30695
+ relatedDomainIds: ["analytics-goal-target-pro-rata-and-forecast", "workspace-dependency-subtask-and-milestone"]
30696
+ },
30697
+ {
30698
+ id: "learning-management-system",
30699
+ name: { ko: "\uD559\uC2B5 \uAD00\uB9AC \uC2DC\uC2A4\uD15C(LMS)", en: "Learning Management System (LMS)" },
30700
+ category: "education-operations",
30701
+ relatedTechniqueIds: ["onboarding-progress-checklist", "vertical-rail-tabs"],
30702
+ relatedDomainIds: [
30703
+ "coding-lesson-objectives-and-practice",
30704
+ "education-curriculum-prerequisite-and-cohort",
30705
+ "education-exam-timer-grading-and-appeal"
30706
+ ]
30707
+ },
30708
+ {
30709
+ id: "sales-lead",
30710
+ name: { ko: "\uC7A0\uC7AC \uACE0\uAC1D", en: "Sales Lead" },
30711
+ category: "sales-marketing",
30712
+ relatedTechniqueIds: ["ly-kanban-board", "inline-email-validation"],
30713
+ relatedDomainIds: ["notification-scheduled-campaign-and-unsubscribe", "automation-form-branching-validation-and-partial-save"]
30714
+ },
30715
+ {
30716
+ id: "customer-relationship-management",
30717
+ name: { ko: "\uACE0\uAC1D \uAD00\uACC4 \uAD00\uB9AC(CRM)", en: "Customer Relationship Management (CRM)" },
30718
+ category: "sales-marketing",
30719
+ relatedTechniqueIds: ["ly-master-detail-split", "ly-activity-timeline"],
30720
+ relatedDomainIds: ["support-canned-response-and-merge-tickets", "workspace-template-custom-field-and-archiving"]
30721
+ },
30722
+ {
30723
+ id: "account-deactivation",
30724
+ name: { ko: "\uACC4\uC815 \uBE44\uD65C\uC131\uD654", en: "Account Deactivation" },
30725
+ category: "workflow",
30726
+ relatedTechniqueIds: ["inline-delete-confirmation", "undo-delete-snackbar"],
30727
+ relatedDomainIds: ["account-dormancy-lockout-and-reactivation", "subscription-seat-license-and-member-change"]
30728
+ },
30729
+ {
30730
+ id: "curriculum-alignment",
30731
+ name: { ko: "\uAD50\uC721\uACFC\uC815 \uC5F0\uACC4", en: "Curriculum Alignment" },
30732
+ category: "education-operations",
30733
+ relatedTechniqueIds: ["ly-dual-list-transfer", "ly-transposable-comparison-matrix"],
30734
+ relatedDomainIds: ["education-curriculum-prerequisite-and-cohort", "coding-lesson-objectives-and-practice"]
30735
+ },
30736
+ {
30737
+ id: "container-query",
30738
+ name: { ko: "\uCEE8\uD14C\uC774\uB108 \uCFFC\uB9AC", en: "Container Query" },
30739
+ category: "ui",
30740
+ relatedTechniqueIds: [
30741
+ "ly-container-query-media-card",
30742
+ "ly-responsive-header-menu",
30743
+ "ly-priority-overflow-nav",
30744
+ "ly-named-areas-workspace"
30745
+ ],
30746
+ relatedDomainIds: []
30747
+ },
30748
+ {
30749
+ id: "responsive-breakpoint",
30750
+ name: { ko: "\uBC18\uC751\uD615 \uC911\uB2E8\uC810", en: "Responsive Breakpoint" },
30751
+ category: "ui",
30752
+ relatedTechniqueIds: ["ly-responsive-header-menu", "ly-priority-overflow-nav"],
30753
+ relatedDomainIds: []
30754
+ },
30755
+ {
30756
+ id: "aspect-ratio",
30757
+ name: { ko: "\uC885\uD6A1\uBE44", en: "Aspect Ratio" },
30758
+ category: "ui",
30759
+ relatedTechniqueIds: ["ly-aspect-ratio-gallery"],
30760
+ relatedDomainIds: []
30761
+ },
30762
+ {
30763
+ id: "keyboard-focus-indicator",
30764
+ name: { ko: "\uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4 \uD45C\uC2DC", en: "Keyboard Focus Indicator" },
30765
+ category: "ui",
30766
+ relatedTechniqueIds: ["ly-skip-to-content-nav"],
30767
+ relatedDomainIds: []
30768
+ },
30769
+ {
30770
+ id: "skip-link",
30771
+ name: { ko: "\uAC74\uB108\uB6F0\uAE30 \uB9C1\uD06C", en: "Skip Link" },
30772
+ category: "ui",
30773
+ relatedTechniqueIds: ["ly-skip-to-content-nav"],
30774
+ relatedDomainIds: []
30775
+ },
30776
+ {
30777
+ id: "breadcrumb",
30778
+ name: { ko: "\uBE0C\uB808\uB4DC\uD06C\uB7FC", en: "Breadcrumb" },
30779
+ category: "ui",
30780
+ relatedTechniqueIds: ["ly-breadcrumb-folder-drill", "ly-collapsed-breadcrumb-path"],
30781
+ relatedDomainIds: []
30782
+ },
30783
+ {
30784
+ id: "tooltip",
30785
+ name: { ko: "\uD234\uD301", en: "Tooltip" },
30786
+ category: "ui",
30787
+ relatedTechniqueIds: ["hover-focus-tooltip"],
30788
+ relatedDomainIds: []
30789
+ },
30790
+ {
30791
+ id: "tab-panel",
30792
+ name: { ko: "\uD0ED \uD328\uB110", en: "Tab Panel" },
30793
+ category: "ui",
30794
+ relatedTechniqueIds: ["underline-content-tabs", "closable-document-tabs", "vertical-rail-tabs"],
30795
+ relatedDomainIds: []
30796
+ },
30797
+ {
30798
+ id: "faceted-filter",
30799
+ name: { ko: "\uD328\uC2EF \uD544\uD130", en: "Faceted Filter" },
30800
+ category: "ui",
30801
+ relatedTechniqueIds: ["faceted-filter-chips"],
30802
+ relatedDomainIds: []
30803
+ },
30804
+ {
30805
+ id: "pagination",
30806
+ name: { ko: "\uD398\uC774\uC9C0 \uB098\uB204\uAE30", en: "Pagination" },
30807
+ category: "ui",
30808
+ relatedTechniqueIds: ["ly-paginated-document-list"],
30809
+ relatedDomainIds: []
30810
+ },
30811
+ {
30812
+ id: "largest-contentful-paint",
30813
+ name: { ko: "\uCD5C\uB300 \uCF58\uD150\uCE20 \uB80C\uB354\uB9C1 \uC2DC\uAC04(LCP)", en: "Largest Contentful Paint (LCP)" },
30814
+ category: "engineering",
30815
+ relatedTechniqueIds: ["ly-aspect-ratio-gallery"],
30816
+ relatedDomainIds: []
30817
+ },
30818
+ {
30819
+ id: "interaction-to-next-paint",
30820
+ name: { ko: "\uB2E4\uC74C \uD398\uC778\uD2B8\uAE4C\uC9C0\uC758 \uC0C1\uD638\uC791\uC6A9 \uC9C0\uC5F0(INP)", en: "Interaction to Next Paint (INP)" },
30821
+ category: "engineering",
30822
+ relatedTechniqueIds: ["ly-fixed-row-virtual-scroll"],
30823
+ relatedDomainIds: []
30824
+ },
30825
+ {
30826
+ id: "cumulative-layout-shift",
30827
+ name: { ko: "\uB204\uC801 \uB808\uC774\uC544\uC6C3 \uC774\uB3D9(CLS)", en: "Cumulative Layout Shift (CLS)" },
30828
+ category: "engineering",
30829
+ relatedTechniqueIds: ["stable-skeleton-content", "ly-aspect-ratio-gallery", "ly-stable-scrollbar-gutter"],
30830
+ relatedDomainIds: []
30831
+ },
30832
+ {
30833
+ id: "lazy-loading",
30834
+ name: { ko: "\uC9C0\uC5F0 \uB85C\uB529", en: "Lazy Loading" },
30835
+ category: "engineering",
30836
+ relatedTechniqueIds: ["ly-aspect-ratio-gallery", "ly-activity-timeline"],
30837
+ relatedDomainIds: []
30838
+ },
30839
+ {
30840
+ id: "scrollbar-gutter",
30841
+ name: { ko: "\uC2A4\uD06C\uB864\uBC14 \uACF5\uAC04", en: "Scrollbar Gutter" },
30842
+ category: "engineering",
30843
+ relatedTechniqueIds: ["ly-stable-scrollbar-gutter"],
30844
+ relatedDomainIds: []
30845
+ },
30846
+ {
30847
+ id: "content-visibility",
30848
+ name: { ko: "\uCF58\uD150\uCE20 \uAC00\uC2DC\uC131", en: "Content Visibility" },
30849
+ category: "engineering",
30850
+ relatedTechniqueIds: ["ly-fixed-row-virtual-scroll"],
30851
+ relatedDomainIds: []
30852
+ },
30853
+ {
30854
+ id: "stale-while-revalidate",
30855
+ name: { ko: "\uB9CC\uB8CC \uD6C4 \uBC31\uADF8\uB77C\uC6B4\uB4DC \uC7AC\uAC80\uC99D(Stale-While-Revalidate)", en: "Stale-While-Revalidate (SWR)" },
30856
+ category: "engineering",
30857
+ relatedTechniqueIds: [],
30858
+ relatedDomainIds: ["cms-publishing-schedule-and-versioning"]
30859
+ },
30860
+ {
30861
+ id: "webhook",
30862
+ name: { ko: "\uC6F9\uD6C5", en: "Webhook" },
30863
+ category: "engineering",
30864
+ relatedTechniqueIds: [],
30865
+ relatedDomainIds: [
30866
+ "automation-webhook-retry-dead-letter-and-replay",
30867
+ "security-api-key-webhook-and-secret-rotation"
30868
+ ]
30869
+ },
30870
+ {
30871
+ id: "exponential-backoff",
30872
+ name: { ko: "\uC9C0\uC218 \uBC31\uC624\uD504", en: "Exponential Backoff" },
30873
+ category: "engineering",
30874
+ relatedTechniqueIds: [],
30875
+ relatedDomainIds: [
30876
+ "automation-webhook-retry-dead-letter-and-replay",
30877
+ "subscription-invoice-tax-and-payment-retry"
30878
+ ]
30879
+ },
30880
+ {
30881
+ id: "request-cancellation",
30882
+ name: { ko: "\uC694\uCCAD \uCDE8\uC18C", en: "Request Cancellation" },
30883
+ category: "engineering",
30884
+ relatedTechniqueIds: ["ai-streaming-text"],
30885
+ relatedDomainIds: ["ai-streaming-response-and-reconnection"]
30886
+ },
30887
+ {
30888
+ id: "conversion-funnel",
30889
+ name: { ko: "\uC804\uD658 \uD37C\uB110", en: "Conversion Funnel" },
30890
+ category: "product-planning",
30891
+ relatedTechniqueIds: ["vd-funnel-conversion-drop"],
30892
+ relatedDomainIds: ["analytics-funnel-cohort-and-attribution-window"]
30893
+ },
30894
+ {
30895
+ id: "conversion-rate",
30896
+ name: { ko: "\uC804\uD658\uC728", en: "Conversion Rate" },
30897
+ category: "product-planning",
30898
+ relatedTechniqueIds: ["vd-funnel-conversion-drop"],
30899
+ relatedDomainIds: [
30900
+ "analytics-funnel-cohort-and-attribution-window",
30901
+ "analytics-metric-aggregation-and-export"
30902
+ ]
30903
+ },
30904
+ {
30905
+ id: "cohort-analysis",
30906
+ name: { ko: "\uCF54\uD638\uD2B8 \uBD84\uC11D", en: "Cohort Analysis" },
30907
+ category: "product-planning",
30908
+ relatedTechniqueIds: ["ly-transposable-comparison-matrix"],
30909
+ relatedDomainIds: [
30910
+ "analytics-funnel-cohort-and-attribution-window",
30911
+ "education-curriculum-prerequisite-and-cohort"
30912
+ ]
30913
+ },
30914
+ {
30915
+ id: "retention-rate",
30916
+ name: { ko: "\uC794\uC874\uC728", en: "Retention Rate" },
30917
+ category: "product-planning",
30918
+ relatedTechniqueIds: ["ly-transposable-comparison-matrix"],
30919
+ relatedDomainIds: ["analytics-funnel-cohort-and-attribution-window"]
30920
+ },
30921
+ {
30922
+ id: "attribution-window",
30923
+ name: { ko: "\uAE30\uC5EC \uC778\uC815 \uAE30\uAC04", en: "Attribution Window" },
30924
+ category: "product-planning",
30925
+ relatedTechniqueIds: [],
30926
+ relatedDomainIds: ["analytics-funnel-cohort-and-attribution-window"]
30927
+ },
30928
+ {
30929
+ id: "anomaly-detection",
30930
+ name: { ko: "\uC774\uC0C1\uCE58 \uAC10\uC9C0", en: "Anomaly Detection" },
30931
+ category: "product-planning",
30932
+ relatedTechniqueIds: [],
30933
+ relatedDomainIds: ["analytics-anomaly-threshold-alert-and-mute"]
30934
+ },
30935
+ {
30936
+ id: "guardrail-metric",
30937
+ name: { ko: "\uAC00\uB4DC\uB808\uC77C \uC9C0\uD45C", en: "Guardrail Metric" },
30938
+ category: "product-planning",
30939
+ relatedTechniqueIds: [],
30940
+ relatedDomainIds: [
30941
+ "analytics-anomaly-threshold-alert-and-mute",
30942
+ "analytics-metric-aggregation-and-export"
30943
+ ]
30944
+ },
30945
+ {
30946
+ id: "data-freshness",
30947
+ name: { ko: "\uB370\uC774\uD130 \uCD5C\uC2E0\uC131", en: "Data Freshness" },
30948
+ category: "product-planning",
30949
+ relatedTechniqueIds: [],
30950
+ relatedDomainIds: ["analytics-metric-aggregation-and-export"]
30951
+ },
30952
+ {
30953
+ id: "metric-definition",
30954
+ name: { ko: "\uC9C0\uD45C \uC815\uC758", en: "Metric Definition" },
30955
+ category: "product-planning",
30956
+ relatedTechniqueIds: [],
30957
+ relatedDomainIds: ["analytics-metric-aggregation-and-export"]
30958
+ },
30959
+ {
30960
+ id: "success-criteria",
30961
+ name: { ko: "\uC131\uACF5 \uAE30\uC900", en: "Success Criteria" },
30962
+ category: "product-planning",
30963
+ relatedTechniqueIds: [],
30964
+ relatedDomainIds: [
30965
+ "analytics-goal-target-pro-rata-and-forecast",
30966
+ "coding-lesson-objectives-and-practice"
30967
+ ]
30968
+ },
30969
+ // Added 50 glossary terms across all 9 categories
30970
+ // UI (+6)
30971
+ {
30972
+ id: "bottom-sheet",
30973
+ name: { ko: "\uBC14\uD140 \uC2DC\uD2B8", en: "Bottom Sheet" },
30974
+ category: "ui",
30975
+ relatedTechniqueIds: ["ly-bottom-sheet", "lay-bottom-sheet-modal"],
30976
+ relatedDomainIds: ["booking-slot-capacity-and-cancellation"]
30977
+ },
30978
+ {
30979
+ id: "segmented-control",
30980
+ name: { ko: "\uC138\uADF8\uBA3C\uD2B8 \uCEE8\uD2B8\uB864", en: "Segmented Control" },
30981
+ category: "ui",
30982
+ relatedTechniqueIds: ["sliding-pill-tabs", "billing-cycle-pricing-card"],
30983
+ relatedDomainIds: ["subscription-plan-entitlement-and-billing"]
30984
+ },
30985
+ {
30986
+ id: "stepper-input",
30987
+ name: { ko: "\uC2A4\uD14C\uD37C \uC785\uB825", en: "Stepper Input" },
30988
+ category: "ui",
30989
+ relatedTechniqueIds: ["native-quantity-stepper"],
30990
+ relatedDomainIds: ["commerce-order-inventory-and-refund", "event-registration-ticket-and-checkin"]
30991
+ },
30992
+ {
30993
+ id: "combobox",
30994
+ name: { ko: "\uCF64\uBCF4\uBC15\uC2A4", en: "Combobox" },
30995
+ category: "ui",
30996
+ relatedTechniqueIds: ["manual-search-combobox"],
30997
+ relatedDomainIds: ["workspace-task-assignment-and-status"]
30998
+ },
30999
+ {
31000
+ id: "indeterminate-checkbox",
31001
+ name: { ko: "\uBD88\uD655\uC815 \uCCB4\uD06C\uBC15\uC2A4", en: "Indeterminate Checkbox" },
31002
+ category: "ui",
31003
+ relatedTechniqueIds: ["mixed-state-checkbox-group", "bulk-selection-action-bar"],
31004
+ relatedDomainIds: ["file-folder-permission-inheritance-and-move"]
31005
+ },
31006
+ {
31007
+ id: "sticky-header",
31008
+ name: { ko: "\uACE0\uC815 \uD5E4\uB354", en: "Sticky Header" },
31009
+ category: "ui",
31010
+ relatedTechniqueIds: ["ly-sticky-group-headers", "ly-frozen-table-axes"],
31011
+ relatedDomainIds: ["analytics-metric-aggregation-and-export"]
31012
+ },
31013
+ // Engineering (+6)
31014
+ {
31015
+ id: "rate-limiting",
31016
+ name: { ko: "\uC694\uCCAD \uBE48\uB3C4 \uC81C\uD55C", en: "Rate Limiting" },
31017
+ category: "engineering",
31018
+ relatedTechniqueIds: ["character-budget-feedback"],
31019
+ relatedDomainIds: ["security-api-key-webhook-and-secret-rotation", "account-mfa-stepup-and-backup-codes"]
31020
+ },
31021
+ {
31022
+ id: "circuit-breaker",
31023
+ name: { ko: "\uC11C\uD0B7 \uBE0C\uB808\uC774\uCEE4", en: "Circuit Breaker" },
31024
+ category: "engineering",
31025
+ relatedTechniqueIds: ["dismissible-inline-banner"],
31026
+ relatedDomainIds: ["automation-webhook-retry-dead-letter-and-replay"]
31027
+ },
31028
+ {
31029
+ id: "cursor-pagination",
31030
+ name: { ko: "\uCEE4\uC11C \uAE30\uBC18 \uD398\uC774\uC9C0\uB124\uC774\uC158", en: "Cursor-Based Pagination" },
31031
+ category: "engineering",
31032
+ relatedTechniqueIds: ["ly-prepend-scroll-anchor", "ly-activity-timeline"],
31033
+ relatedDomainIds: ["notification-chat-room-delivery-and-recall", "security-audit-log-retention-and-tamper-evidence"]
31034
+ },
31035
+ {
31036
+ id: "optimistic-locking",
31037
+ name: { ko: "\uB099\uAD00\uC801 \uC7A0\uAE08", en: "Optimistic Locking" },
31038
+ category: "engineering",
31039
+ relatedTechniqueIds: ["ly-context-code-diff"],
31040
+ relatedDomainIds: ["cms-collaborative-lock-and-review-comment", "booking-slot-capacity-and-cancellation"]
31041
+ },
31042
+ {
31043
+ id: "multi-factor-authentication",
31044
+ name: { ko: "\uB2E4\uC911 \uC694\uC18C \uC778\uC99D(MFA)", en: "Multi-Factor Authentication (MFA)" },
31045
+ category: "engineering",
31046
+ relatedTechniqueIds: ["otp-pin-focus-bounce"],
31047
+ relatedDomainIds: ["account-mfa-stepup-and-backup-codes"]
31048
+ },
31049
+ {
31050
+ id: "presigned-url",
31051
+ name: { ko: "\uC0AC\uC804 \uC11C\uBA85\uB41C \uC8FC\uC18C", en: "Presigned Link" },
31052
+ category: "engineering",
31053
+ relatedTechniqueIds: ["native-file-attachment"],
31054
+ relatedDomainIds: ["file-upload-processing-and-access-control", "file-external-share-link-password-and-expiry"]
31055
+ },
31056
+ // Workflow (+6)
31057
+ {
31058
+ id: "soft-delete",
31059
+ name: { ko: "\uC18C\uD504\uD2B8 \uC0AD\uC81C", en: "Soft Delete" },
31060
+ category: "workflow",
31061
+ relatedTechniqueIds: ["undo-delete-snackbar", "inline-delete-confirmation"],
31062
+ relatedDomainIds: ["file-trash-retention-and-quota-accounting", "community-comment-thread-mention-and-reaction"]
31063
+ },
31064
+ {
31065
+ id: "waitlist-management",
31066
+ name: { ko: "\uB300\uAE30\uC5F4 \uB4F1\uB85D \uC804\uD658", en: "Waitlist Offer Window" },
31067
+ category: "workflow",
31068
+ relatedTechniqueIds: ["horizontal-milestone-rail"],
31069
+ relatedDomainIds: ["booking-waitlist-offer-window-and-expiry", "event-registration-ticket-and-checkin"]
31070
+ },
31071
+ {
31072
+ id: "break-glass-access",
31073
+ name: { ko: "\uAE34\uAE09 \uC608\uC678 \uC811\uADFC", en: "Break-Glass Access" },
31074
+ category: "workflow",
31075
+ relatedTechniqueIds: ["hold-to-confirm-ring", "ly-activity-timeline"],
31076
+ relatedDomainIds: ["security-approval-maker-checker-and-breakglass"]
31077
+ },
31078
+ {
31079
+ id: "dry-run-validation",
31080
+ name: { ko: "\uC0AC\uC804 \uBAA8\uC758 \uAC80\uC99D", en: "Dry-Run Validation" },
31081
+ category: "workflow",
31082
+ relatedTechniqueIds: ["linked-form-error-summary"],
31083
+ relatedDomainIds: ["automation-batch-import-validation-and-rollback"]
31084
+ },
31085
+ {
31086
+ id: "collaborative-edit-lock",
31087
+ name: { ko: "\uD3B8\uC9D1 \uC7A0\uAE08\uACFC \uCCB4\uD06C\uC778", en: "Collaborative Edit Lock" },
31088
+ category: "workflow",
31089
+ relatedTechniqueIds: ["dismissible-inline-banner"],
31090
+ relatedDomainIds: ["cms-collaborative-lock-and-review-comment", "workspace-approval-stage-and-signoff"]
31091
+ },
31092
+ {
31093
+ id: "embargo-publishing",
31094
+ name: { ko: "\uC5E0\uBC14\uACE0 \uC608\uC57D \uBC1C\uD589", en: "Embargoed Publishing" },
31095
+ category: "workflow",
31096
+ relatedTechniqueIds: ["sticky-announcement-banner"],
31097
+ relatedDomainIds: ["cms-seo-metadata-canonical-and-embargo", "cms-publishing-schedule-and-versioning"]
31098
+ },
31099
+ // Customer Support (+6)
31100
+ {
31101
+ id: "customer-satisfaction-score",
31102
+ name: { ko: "\uACE0\uAC1D \uB9CC\uC871\uB3C4 \uC810\uC218(CSAT)", en: "Customer Satisfaction Score (CSAT)" },
31103
+ category: "customer-support",
31104
+ relatedTechniqueIds: ["native-star-rating"],
31105
+ relatedDomainIds: ["support-csat-survey-and-quality-review"]
31106
+ },
31107
+ {
31108
+ id: "ticket-deflection",
31109
+ name: { ko: "\uBB38\uC758 \uC790\uC728 \uD574\uACB0 \uC720\uB3C4", en: "Ticket Deflection" },
31110
+ category: "customer-support",
31111
+ relatedTechniqueIds: ["ly-expandable-data-rows", "smooth-accordion"],
31112
+ relatedDomainIds: ["support-faq-self-service-and-deflection"]
31113
+ },
31114
+ {
31115
+ id: "canned-response",
31116
+ name: { ko: "\uC0C1\uB2F4 \uB9E4\uD06C\uB85C \uB2F5\uBCC0", en: "Canned Response" },
31117
+ category: "customer-support",
31118
+ relatedTechniqueIds: ["ai-slash-command", "ly-command-palette"],
31119
+ relatedDomainIds: ["support-canned-response-and-merge-tickets"]
31120
+ },
31121
+ {
31122
+ id: "ticket-merging",
31123
+ name: { ko: "\uC911\uBCF5 \uBB38\uC758 \uBCD1\uD569", en: "Ticket Merging" },
31124
+ category: "customer-support",
31125
+ relatedTechniqueIds: ["inline-delete-confirmation"],
31126
+ relatedDomainIds: ["support-canned-response-and-merge-tickets", "support-ticket-routing-and-resolution"]
31127
+ },
31128
+ {
31129
+ id: "priority-escalation",
31130
+ name: { ko: "\uC6B0\uC120\uC21C\uC704 \uC5D0\uC2A4\uCEEC\uB808\uC774\uC158", en: "Priority Escalation" },
31131
+ category: "customer-support",
31132
+ relatedTechniqueIds: ["ly-sortable-data-table", "faceted-filter-chips"],
31133
+ relatedDomainIds: ["support-sla-priority-and-escalation"]
31134
+ },
31135
+ {
31136
+ id: "first-contact-resolution",
31137
+ name: { ko: "\uCD08\uB3D9 \uC751\uB300 \uD574\uACB0\uB960(FCR)", en: "First Contact Resolution (FCR)" },
31138
+ category: "customer-support",
31139
+ relatedTechniqueIds: ["vd-kpi-counter-explosion"],
31140
+ relatedDomainIds: ["support-ticket-routing-and-resolution", "support-faq-self-service-and-deflection"]
31141
+ },
31142
+ // Payments & Settlement (+6)
31143
+ {
31144
+ id: "dunning-management",
31145
+ name: { ko: "\uBBF8\uB0A9 \uC7AC\uCCAD\uAD6C \uB3C5\uCD09", en: "Dunning Management" },
31146
+ category: "payments-settlement",
31147
+ relatedTechniqueIds: ["dismissible-inline-banner"],
31148
+ relatedDomainIds: ["subscription-invoice-tax-and-payment-retry", "fintech-recurring-autodebit-mandate-and-insufficient-funds"]
31149
+ },
31150
+ {
31151
+ id: "double-entry-ledger",
31152
+ name: { ko: "\uBCF5\uC2DD \uC6D0\uC7A5", en: "Double-Entry Ledger" },
31153
+ category: "payments-settlement",
31154
+ relatedTechniqueIds: ["ly-sortable-data-table"],
31155
+ relatedDomainIds: ["fintech-bank-transfer-pending-and-reconciliation", "marketplace-escrow-settlement-and-dispute"]
31156
+ },
31157
+ {
31158
+ id: "usage-based-billing",
31159
+ name: { ko: "\uC885\uB7C9\uC81C \uACFC\uAE08", en: "Usage-Based Billing" },
31160
+ category: "payments-settlement",
31161
+ relatedTechniqueIds: ["billing-cycle-pricing-card", "value-bubble-range-slider"],
31162
+ relatedDomainIds: ["subscription-usage-metering-and-overage"]
31163
+ },
31164
+ {
31165
+ id: "payment-reconciliation",
31166
+ name: { ko: "\uC785\uAE08 \uB300\uC0AC \uC815\uC0B0", en: "Payment Reconciliation" },
31167
+ category: "payments-settlement",
31168
+ relatedTechniqueIds: ["ly-expandable-data-rows"],
31169
+ relatedDomainIds: ["fintech-bank-transfer-pending-and-reconciliation", "marketplace-tax-invoice-withholding-and-statement"]
31170
+ },
31171
+ {
31172
+ id: "withholding-tax-settlement",
31173
+ name: { ko: "\uC6D0\uCC9C\uC9D5\uC218 \uC815\uC0B0", en: "Withholding Tax Settlement" },
31174
+ category: "payments-settlement",
31175
+ relatedTechniqueIds: ["ly-sortable-data-table"],
31176
+ relatedDomainIds: ["marketplace-tax-invoice-withholding-and-statement"]
31177
+ },
31178
+ {
31179
+ id: "partial-refund",
31180
+ name: { ko: "\uBD80\uBD84 \uD658\uBD88", en: "Partial Refund" },
31181
+ category: "payments-settlement",
31182
+ relatedTechniqueIds: ["inline-delete-confirmation"],
31183
+ relatedDomainIds: ["commerce-order-inventory-and-refund", "commerce-exchange-return-pickup-and-inspection"]
31184
+ },
31185
+ // Product Planning (+5)
31186
+ {
31187
+ id: "churn-rate",
31188
+ name: { ko: "\uC774\uD0C8\uB960", en: "Churn Rate" },
31189
+ category: "product-planning",
31190
+ relatedTechniqueIds: ["vd-time-series-line-draw"],
31191
+ relatedDomainIds: ["subscription-pause-resume-and-winback", "analytics-metric-aggregation-and-export"]
31192
+ },
31193
+ {
31194
+ id: "activation-metric",
31195
+ name: { ko: "\uCD08\uAE30 \uC548\uCC29 \uC9C0\uD45C", en: "Activation Metric" },
31196
+ category: "product-planning",
31197
+ relatedTechniqueIds: ["onboarding-progress-checklist", "vd-funnel-conversion-drop"],
31198
+ relatedDomainIds: ["analytics-goal-target-pro-rata-and-forecast"]
31199
+ },
31200
+ {
31201
+ id: "north-star-metric",
31202
+ name: { ko: "\uBD81\uADF9\uC131 \uC9C0\uD45C", en: "North Star Metric" },
31203
+ category: "product-planning",
31204
+ relatedTechniqueIds: ["vd-bullet-target-comparison"],
31205
+ relatedDomainIds: ["analytics-goal-target-pro-rata-and-forecast", "analytics-metric-aggregation-and-export"]
31206
+ },
31207
+ {
31208
+ id: "sample-quota",
31209
+ name: { ko: "\uD45C\uBCF8 \uD560\uB2F9\uB7C9", en: "Sample Quota" },
31210
+ category: "product-planning",
31211
+ relatedTechniqueIds: ["vd-percent-stacked-composition"],
31212
+ relatedDomainIds: ["automation-survey-anonymity-quota-and-duplicate-response"]
31213
+ },
31214
+ {
31215
+ id: "saved-report-view",
31216
+ name: { ko: "\uC800\uC7A5\uB41C \uB9AC\uD3EC\uD2B8 \uBCF4\uAE30", en: "Saved Report View" },
31217
+ category: "product-planning",
31218
+ relatedTechniqueIds: ["faceted-filter-chips", "closable-document-tabs"],
31219
+ relatedDomainIds: ["analytics-custom-report-filter-and-saved-view"]
31220
+ },
31221
+ // Business Operations (+5)
31222
+ {
31223
+ id: "inventory-allocation",
31224
+ name: { ko: "\uC7AC\uACE0 \uD560\uB2F9 \uC120\uC810", en: "Inventory Allocation" },
31225
+ category: "business-operations",
31226
+ relatedTechniqueIds: ["native-quantity-stepper"],
31227
+ relatedDomainIds: ["commerce-order-inventory-and-refund", "logistics-warehouse-picking-packing-and-split-shipment"]
31228
+ },
31229
+ {
31230
+ id: "reverse-logistics",
31231
+ name: { ko: "\uBC18\uD488 \uD68C\uC218 \uBB3C\uB958", en: "Reverse Logistics" },
31232
+ category: "business-operations",
31233
+ relatedTechniqueIds: ["horizontal-milestone-rail"],
31234
+ relatedDomainIds: ["logistics-return-reverse-pickup-and-restock", "commerce-exchange-return-pickup-and-inspection"]
31235
+ },
31236
+ {
31237
+ id: "split-shipment",
31238
+ name: { ko: "\uBD84\uD560 \uBC30\uC1A1\uACFC \uD569\uD3EC\uC7A5", en: "Split and Consolidated Shipment" },
31239
+ category: "business-operations",
31240
+ relatedTechniqueIds: ["ly-expandable-data-rows"],
31241
+ relatedDomainIds: ["logistics-warehouse-picking-packing-and-split-shipment", "marketplace-multi-seller-cart-and-split-shipping"]
31242
+ },
31243
+ {
31244
+ id: "proof-of-delivery",
31245
+ name: { ko: "\uBC30\uC1A1 \uC644\uB8CC \uC99D\uBE59(POD)", en: "Proof of Delivery (POD)" },
31246
+ category: "business-operations",
31247
+ relatedTechniqueIds: ["native-file-attachment", "ly-activity-timeline"],
31248
+ relatedDomainIds: ["logistics-last-mile-dispatch-and-delivery-proof"]
31249
+ },
31250
+ {
31251
+ id: "cold-chain-monitoring",
31252
+ name: { ko: "\uCF5C\uB4DC\uCCB4\uC778 \uC628\uB3C4 \uAD00\uB9AC", en: "Cold-Chain Monitoring" },
31253
+ category: "business-operations",
31254
+ relatedTechniqueIds: ["vd-time-series-line-draw"],
31255
+ relatedDomainIds: ["logistics-cold-chain-damage-claim-and-redelivery"]
31256
+ },
31257
+ // Sales & Marketing (+5)
31258
+ {
31259
+ id: "coupon-stacking-rule",
31260
+ name: { ko: "\uCFE0\uD3F0 \uC911\uBCF5 \uC801\uC6A9 \uADDC\uCE59", en: "Coupon Stacking Rule" },
31261
+ category: "sales-marketing",
31262
+ relatedTechniqueIds: ["dismissible-token-input"],
31263
+ relatedDomainIds: ["commerce-coupon-promotion-and-stacking"]
31264
+ },
31265
+ {
31266
+ id: "win-back-campaign",
31267
+ name: { ko: "\uD574\uC9C0 \uBC29\uC5B4\uC640 \uC7AC\uAD6C\uB3C5 \uC720\uB3C4", en: "Win-Back and Retention Offer" },
31268
+ category: "sales-marketing",
31269
+ relatedTechniqueIds: ["billing-cycle-pricing-card"],
31270
+ relatedDomainIds: ["subscription-pause-resume-and-winback"]
31271
+ },
31272
+ {
31273
+ id: "unsubscribe-suppression",
31274
+ name: { ko: "\uC218\uC2E0 \uAC70\uBD80 \uC81C\uC678 \uBAA9\uB85D", en: "Unsubscribe Suppression List" },
31275
+ category: "sales-marketing",
31276
+ relatedTechniqueIds: ["mixed-state-checkbox-group"],
31277
+ relatedDomainIds: ["notification-channels-preferences-and-read-state"]
31278
+ },
31279
+ {
31280
+ id: "custom-quote-offer",
31281
+ name: { ko: "\uB9DE\uCDA4 \uACAC\uC801 \uC81C\uC548", en: "Custom Quote Offer" },
31282
+ category: "sales-marketing",
31283
+ relatedTechniqueIds: ["horizontal-milestone-rail"],
31284
+ relatedDomainIds: ["marketplace-quote-custom-offer-and-milestone"]
31285
+ },
31286
+ {
31287
+ id: "referral-attribution",
31288
+ name: { ko: "\uCD94\uCC9C \uC720\uC785 \uADC0\uC18D", en: "Referral Source Attribution" },
31289
+ category: "sales-marketing",
31290
+ relatedTechniqueIds: ["ly-activity-timeline"],
31291
+ relatedDomainIds: ["recruiting-referral-agency-and-source-attribution"]
31292
+ },
31293
+ // Education Operations (+5)
31294
+ {
31295
+ id: "course-prerequisite",
31296
+ name: { ko: "\uC120\uC218 \uD559\uC2B5 \uC694\uAC74", en: "Course Prerequisite" },
31297
+ category: "education-operations",
31298
+ relatedTechniqueIds: ["onboarding-progress-checklist"],
31299
+ relatedDomainIds: ["education-curriculum-prerequisite-and-cohort"]
31300
+ },
31301
+ {
31302
+ id: "grading-rubric-appeal",
31303
+ name: { ko: "\uCC44\uC810 \uAE30\uC900\uD45C\uC640 \uC131\uC801 \uC774\uC758\uC2E0\uCCAD", en: "Grading Rubric and Score Appeal" },
31304
+ category: "education-operations",
31305
+ relatedTechniqueIds: ["ly-expandable-data-rows"],
31306
+ relatedDomainIds: ["education-exam-timer-grading-and-appeal"]
31307
+ },
31308
+ {
31309
+ id: "certificate-verification",
31310
+ name: { ko: "\uC218\uB8CC\uC99D \uBC1C\uAE09 \uAC80\uC99D", en: "Certificate Issuance and Verification" },
31311
+ category: "education-operations",
31312
+ relatedTechniqueIds: ["inline-copy-feedback"],
31313
+ relatedDomainIds: ["education-certificate-issuance-and-verification"]
31314
+ },
31315
+ {
31316
+ id: "cohort-enrollment-window",
31317
+ name: { ko: "\uAE30\uC218\uC81C \uC218\uAC15 \uAE30\uAC04", en: "Cohort Enrollment Window" },
31318
+ category: "education-operations",
31319
+ relatedTechniqueIds: ["native-date-field"],
31320
+ relatedDomainIds: ["education-curriculum-prerequisite-and-cohort"]
31321
+ },
31322
+ {
31323
+ id: "timed-exam-submission",
31324
+ name: { ko: "\uC81C\uD55C \uC2DC\uAC04 \uC2DC\uD5D8 \uC790\uB3D9 \uC81C\uCD9C", en: "Timed Exam Auto-Submission" },
31325
+ category: "education-operations",
31326
+ relatedTechniqueIds: ["dismissible-inline-banner"],
31327
+ relatedDomainIds: ["education-exam-timer-grading-and-appeal"]
31328
+ }
31329
+ ];
31330
+
31331
+ // ../../packages/catalog/src/glossary/ui.ts
31332
+ var UI_GLOSSARY_DATA = {
31333
+ "skeleton-loading": {
31334
+ aliases: {
31335
+ ko: ["\uC2A4\uCF08\uB808\uD1A4 UI", "\uBF08\uB300 \uD654\uBA74", "\uB85C\uB529 \uD50C\uB808\uC774\uC2A4\uD640\uB354", "\uC790\uB9AC \uC720\uC9C0 \uB85C\uB529", "\uB85C\uB529 \uC911 \uD68C\uC0C9 \uBC15\uC2A4"],
31336
+ en: ["skeleton screen", "skeleton placeholder", "loading placeholder", "shimmer skeleton", "content placeholder"]
31337
+ },
31338
+ text: {
31339
+ ko: {
31340
+ definition: "\uB370\uC774\uD130\uAC00 \uB3C4\uCC29\uD558\uAE30 \uC804 \uCD5C\uC885 \uCE74\uB4DC\uB098 \uBAA9\uB85D\uACFC \uAC19\uC740 \uD06C\uAE30\xB7\uBC30\uCE58\uC758 \uBE48 \uBF08\uB300 \uBC15\uC2A4\uB97C \uBA3C\uC800 \uBCF4\uC5EC \uC8FC\uC5B4 \uD654\uBA74\uC774 \uAC11\uC790\uAE30 \uBC00\uB9AC\uC9C0 \uC54A\uAC8C \uD558\uB294 \uB85C\uB529 \uD328\uD134\uC785\uB2C8\uB2E4.",
31341
+ example: "\uC0C1\uD488 \uBAA9\uB85D\uC744 \uBD88\uB7EC\uC624\uB294 \uB3D9\uC548 \uC378\uB124\uC77C \uC0AC\uAC01\uD615\uACFC \uB450 \uC904\uC9DC\uB9AC \uD68C\uC0C9 \uB9C9\uB300\uB97C \uC2E4\uC81C \uCE74\uB4DC \uB192\uC774 \uADF8\uB300\uB85C \uBA3C\uC800 \uB744\uC6CC \uB450\uACE0, \uB370\uC774\uD130\uAC00 \uC624\uBA74 \uAC19\uC740 \uC790\uB9AC\uC5D0\uC11C \uCF58\uD150\uCE20\uB85C \uBC14\uAFC9\uB2C8\uB2E4. UI \uB370\uBAA8\uB294 \uD615\uD0DC \uC804\uD658 \uC2DC\uC5F0\uC774\uBA70 \uC2E4\uC81C \uB124\uD2B8\uC6CC\uD06C \uC694\uCCAD\uC744 \uC218\uD589\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
31342
+ promptSnippet: "\uB370\uC774\uD130 \uB85C\uB529 \uC911\uC5D0\uB294 \uCD5C\uC885 \uCF58\uD150\uCE20\uC640 \uB3D9\uC77C\uD55C \uB192\uC774\xB7\uACA9\uC790 \uBE44\uC728\uC744 \uAC00\uC9C4 \uC2A4\uCF08\uB808\uD1A4 \uD50C\uB808\uC774\uC2A4\uD640\uB354\uB97C \uBA3C\uC800 \uB80C\uB354\uB9C1\uD558\uACE0, aria-busy\uC640 \uBD80\uB4DC\uB7EC\uC6B4 \uBD88\uD22C\uBA85\uB3C4 \uB610\uB294 \uC2DC\uBA38 \uC804\uD658\uC73C\uB85C \uB808\uC774\uC544\uC6C3 \uBC00\uB9BC(CLS) \uC5C6\uC774 \uC2E4\uC81C \uCF58\uD150\uCE20\uB85C \uAD50\uCCB4\uD574 \uC918. prefers-reduced-motion\uC5D0\uC11C\uB294 \uC560\uB2C8\uBA54\uC774\uC158\uC744 \uBA48\uCDB0 \uC918."
31343
+ },
31344
+ en: {
31345
+ definition: "A loading pattern that renders low-fidelity wireframe blocks matching the final layout dimensions before data arrives, preventing sudden layout shifts.",
31346
+ example: "While a product feed fetches, show an avatar circle and two text bars inside the exact final card height, then swap them for real items in place. UI demos illustrate the visual transition without performing real network fetches.",
31347
+ promptSnippet: 'While content is loading, render skeleton placeholders matching the exact height and grid proportions of the final layout with aria-busy="true", then swap in loaded content without layout shift while respecting prefers-reduced-motion.'
31348
+ }
31349
+ }
31350
+ },
31351
+ "empty-state": {
31352
+ aliases: {
31353
+ ko: ["\uBE48 \uD654\uBA74", "\uACB0\uACFC \uC5C6\uC74C \uD654\uBA74", "\uB370\uC774\uD130 \uC5C6\uC74C \uC548\uB0B4", "\uCD08\uAE30 \uBE48 \uC0C1\uD0DC", "\uAC80\uC0C9 \uACB0\uACFC \uC5C6\uC744 \uB54C"],
31354
+ en: ["no results state", "zero state", "blank slate", "no data screen", "empty list fallback"]
31355
+ },
31356
+ text: {
31357
+ ko: {
31358
+ definition: "\uC544\uC9C1 \uC0DD\uC131\uB41C \uD56D\uBAA9\uC774 \uC5C6\uAC70\uB098 \uAC80\uC0C9\xB7\uD544\uD130 \uC870\uAC74\uC5D0 \uB9DE\uB294 \uACB0\uACFC\uAC00 0\uAC74\uC77C \uB54C, \uC774\uC720\uC640 \uB2E4\uC74C \uD589\uB3D9\uC744 \uC548\uB0B4\uD574 \uC0AC\uC6A9\uC790\uAC00 \uB9C9\uD788\uC9C0 \uC54A\uAC8C \uB3D5\uB294 UI \uC0C1\uD0DC\uC785\uB2C8\uB2E4.",
31359
+ example: '\uAC80\uC0C9\uC5B4\uC5D0 \uB9DE\uB294 \uB178\uD2B8\uAC00 \uC5C6\uC744 \uB54C \uBE48 \uC5EC\uBC31\uB9CC \uB0A8\uAE30\uB294 \uB300\uC2E0 "\uAC80\uC0C9 \uACB0\uACFC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4" \uBB38\uAD6C\uC640 [\uAC80\uC0C9\uC5B4 \uC9C0\uC6B0\uAE30] \uBC84\uD2BC\uC744 \uD568\uAED8 \uB450\uC5B4 \uBC14\uB85C \uC804\uCCB4 \uBAA9\uB85D\uC73C\uB85C \uB3CC\uC544\uAC08 \uC218 \uC788\uAC8C \uD569\uB2C8\uB2E4.',
31360
+ promptSnippet: "\uBAA9\uB85D\uC774\uB098 \uAC80\uC0C9 \uACB0\uACFC\uAC00 \uBE44\uC5B4 \uC788\uC744 \uB54C \uB2E8\uC21C\uD788 \uBE48 \uD654\uBA74\uC744 \uB450\uC9C0 \uB9D0\uACE0, \uCC98\uC74C \uC0DD\uC131 \uC804\uC778\uC9C0 \uD544\uD130/\uAC80\uC0C9 \uACB0\uACFC 0\uAC74\uC778\uC9C0 \uC6D0\uC778\uC744 \uD55C \uC904\uB85C \uC54C\uB9B0 \uB4A4 [\uAC80\uC0C9 \uCD08\uAE30\uD654] \uB610\uB294 [\uC0C8 \uD56D\uBAA9 \uB9CC\uB4E4\uAE30] \uAC19\uC740 \uBCF5\uAD6C \uBC84\uD2BC\uC744 \uBC14\uB85C \uC81C\uACF5\uD574 \uC918."
31361
+ },
31362
+ en: {
31363
+ definition: "A dedicated UI state shown when a collection has no items yet or a search/filter returns zero matches, explaining why and offering a clear next action.",
31364
+ example: 'When a search finds no matching notes, show a concise "No matching results" message paired with a [Clear search] button that restores the list and returns focus to the search input.',
31365
+ promptSnippet: "Provide a purposeful empty state that distinguishes first-time creation from zero search/filter results, displays a concise status message, and includes a primary recovery action such as resetting filters or creating the first item."
31366
+ }
31367
+ }
31368
+ },
31369
+ "inline-validation": {
31370
+ aliases: {
31371
+ ko: ["\uC2E4\uC2DC\uAC04 \uC785\uB825 \uAC80\uC0AC", "\uC785\uB825\uCC3D \uC624\uB958 \uD45C\uC2DC", "\uC778\uB77C\uC778 \uC5D0\uB7EC", "\uC785\uB825 \uC544\uB798 \uBE68\uAC04 \uC548\uB0B4", "\uD3FC \uC989\uC2DC \uAC80\uC99D"],
31372
+ en: ["inline form validation", "field-level validation", "live field error", "input error feedback"]
31373
+ },
31374
+ text: {
31375
+ ko: {
31376
+ definition: "\uD3FC \uC804\uCCB4\uB97C \uC81C\uCD9C\uD558\uAE30 \uC804\uC774\uB098 \uAC01 \uC785\uB825 \uD544\uB4DC\uB97C \uBC97\uC5B4\uB09C \uC9C1\uD6C4, \uD574\uB2F9 \uC785\uB825\uCC3D \uBC14\uB85C \uC544\uB798\uC5D0 \uC624\uB958 \uC6D0\uC778\uACFC \uC218\uC815 \uC870\uAC74\uC744 \uC989\uC2DC \uD45C\uC2DC\uD558\uB294 \uAC80\uC99D \uBC29\uC2DD\uC785\uB2C8\uB2E4.",
31377
+ example: "\uD68C\uC6D0\uAC00\uC785 \uC774\uBA54\uC77C \uC785\uB825\uCC3D\uC5D0\uC11C \uD3EC\uCEE4\uC2A4\uB97C \uC62E\uAE34 \uB4A4 \uD615\uC2DD\uC774 \uD2C0\uB838\uC744 \uB54C\uB9CC \uC785\uB825\uCC3D \uC544\uB798\uC5D0 \uBE68\uAC04 \uC548\uB0B4 \uBB38\uAD6C\uC640 aria-invalid \uC0C1\uD0DC\uB97C \uB744\uC6B0\uACE0, \uC62C\uBC14\uB974\uAC8C \uACE0\uCE58\uBA74 \uBC14\uB85C \uD574\uC81C\uD569\uB2C8\uB2E4. \uC774\uB294 \uD074\uB77C\uC774\uC5B8\uD2B8 \uC785\uB825 \uC548\uB0B4\uC774\uBA70 \uC2E4\uC81C \uC11C\uBC84 \uC911\uBCF5 \uD655\uC778\uC774\uB098 \uBCF4\uC548 \uAC80\uC99D\uC744 \uB300\uCCB4\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
31378
+ promptSnippet: "\uC785\uB825 \uD544\uB4DC\uB294 \uCCAB blur \uB610\uB294 \uC81C\uCD9C \uC2DC\uC810\uBD80\uD130 \uC720\uD6A8\uC131\uC744 \uAC80\uC0AC\uD574 \uC624\uB958 \uBB38\uAD6C\uB97C \uC785\uB825\uCC3D \uBC14\uB85C \uC544\uB798\uC5D0 \uD45C\uC2DC\uD558\uACE0 aria-invalid \uBC0F aria-describedby\uB85C \uC5F0\uACB0\uD574 \uC918. \uC218\uC815 \uC911 \uC624\uB958\uAC00 \uD574\uC18C\uB418\uBA74 \uC989\uC2DC \uC815\uC0C1 \uC0C1\uD0DC\uB85C \uBCF5\uAD6C\uD558\uB418, \uD0C0\uC774\uD551 \uCCAB \uAE00\uC790\uBD80\uD130 \uC131\uAE09\uD788 \uACBD\uACE0\uB97C \uB744\uC6B0\uC9C0 \uB9C8."
31379
+ },
31380
+ en: {
31381
+ definition: "Field-level validation that displays error reasons and fix guidance directly beside or beneath the relevant input after blur or submission rather than waiting for a separate error page.",
31382
+ example: "Wait until a user blurs the email field before showing an inline format error linked via aria-describedby, then clear the error immediately once corrected. Client-side checks improve usability and never replace real server-side validation.",
31383
+ promptSnippet: "Validate each input on blur or submit (not prematurely on the first keystroke), render concise error text directly below the field linked with aria-invalid and aria-describedby, and clear it immediately when fixed."
31384
+ }
31385
+ }
31386
+ },
31387
+ "progressive-disclosure": {
31388
+ aliases: {
31389
+ ko: ["\uB2E8\uACC4\uC801 \uC815\uBCF4 \uB178\uCD9C", "\uD544\uC694\uD560 \uB54C \uD3BC\uCE58\uAE30", "\uC544\uCF54\uB514\uC5B8 \uD3BC\uCE68", "\uACE0\uAE09 \uC635\uC158 \uC811\uAE30", "\uC815\uBCF4 \uACC4\uCE35\uD654"],
31390
+ en: ["gradual reveal", "expandable details", "on-demand details", "collapsible details", "layered disclosure"]
31391
+ },
31392
+ text: {
31393
+ ko: {
31394
+ definition: "\uCC98\uC74C\uC5D0\uB294 \uD575\uC2EC \uC815\uBCF4\uC640 \uAE30\uBCF8 \uC870\uC791\uB9CC \uAC04\uACB0\uD558\uAC8C \uBCF4\uC5EC \uC8FC\uACE0, \uC138\uBD80 \uC124\uBA85\xB7\uACE0\uAE09 \uC124\uC815\xB7\uBD80\uC18D \uD56D\uBAA9\uC740 \uC0AC\uC6A9\uC790\uAC00 \uC694\uCCAD\uD560 \uB54C \uD3BC\uCCD0 \uBCF4\uC5EC \uC8FC\uB294 \uC815\uBCF4 \uC124\uACC4 \uC6D0\uCE59\uC785\uB2C8\uB2E4.",
31395
+ example: "\uC8FC\uBB38 \uD45C\uC5D0\uC11C\uB294 \uC8FC\uBB38\uBC88\uD638\uC640 \uC0C1\uD0DC\uB9CC \uAE30\uBCF8 \uD589\uC5D0 \uD45C\uC2DC\uD558\uACE0, \uC0C1\uC138 \uD589 \uD655\uC7A5 \uBC84\uD2BC\uC744 \uB20C\uB800\uC744 \uB54C\uB9CC \uBC30\uC1A1\uC9C0\xB7\uACB0\uC81C \uC218\uB2E8\xB7\uCC98\uB9AC \uC774\uB825\uC744 \uC544\uB798\uB85C \uD3BC\uCCD0 \uD654\uBA74 \uBCF5\uC7A1\uB3C4\uB97C \uB0AE\uCDA5\uB2C8\uB2E4.",
31396
+ promptSnippet: "\uCD08\uAE30 \uD654\uBA74\uC5D0\uB294 \uD575\uC2EC \uC815\uBCF4\uC640 \uC8FC\uC694 \uC561\uC158\uB9CC \uB178\uCD9C\uD558\uACE0, \uBD80\uAC00 \uC124\uBA85\uC774\uB098 \uACE0\uAE09 \uC635\uC158\uC740 native button \uD1A0\uAE00(aria-expanded, aria-controls)\uB85C \uD544\uC694\uD560 \uB54C\uB9CC \uD3BC\uCCD0\uC9C0\uB3C4\uB85D \uC810\uC9C4\uC801 \uACF5\uAC1C \uAD6C\uC870\uB85C \uAD6C\uC131\uD574 \uC918."
31397
+ },
31398
+ en: {
31399
+ definition: "An interaction principle that shows only essential options upfront and reveals secondary details or advanced settings only when the user asks for them.",
31400
+ example: "Show order ID and status in each summary row, and expand shipping address and item breakdown only when the user toggles the row disclosure button.",
31401
+ promptSnippet: "Keep the default view focused on primary information and reveal secondary details or advanced controls on demand using accessible disclosure toggles (aria-expanded and aria-controls)."
31402
+ }
31403
+ }
31404
+ },
31405
+ "toast-and-snackbar": {
31406
+ aliases: {
31407
+ ko: ["\uD1A0\uC2A4\uD2B8 \uC54C\uB9BC", "\uC2A4\uB0B5\uBC14 \uC54C\uB9BC", "\uC2E4\uD589 \uCDE8\uC18C \uBC30\uB108", "\uC7A0\uAE50 \uB728\uB294 \uC54C\uB9BC", "\uD558\uB2E8 \uC54C\uB9BC \uBC14"],
31408
+ en: ["toast notification", "snackbar", "undo snackbar", "ephemeral notification", "status toast"]
31409
+ },
31410
+ text: {
31411
+ ko: {
31412
+ definition: "\uC0AC\uC6A9\uC790 \uC791\uC5C5\uC758 \uACB0\uACFC\uB098 \uC9E7\uC740 \uC0C1\uD0DC \uBCC0\uD654\uB97C \uD604\uC7AC \uD654\uBA74 \uD750\uB984\uC744 \uB04A\uC9C0 \uC54A\uACE0 \uD654\uBA74 \uBAA8\uC11C\uB9AC\uC5D0 \uC7A0\uAE50 \uB744\uC6CC \uC54C\uB9AC\uAC70\uB098 \uC2E4\uD589 \uCDE8\uC18C \uC561\uC158\uC744 \uC81C\uACF5\uD558\uB294 \uC77C\uC2DC\uC801 \uD53C\uB4DC\uBC31 \uCEF4\uD3EC\uB10C\uD2B8\uC785\uB2C8\uB2E4.",
31413
+ example: '\uBB38\uC11C\uB97C \uBCF4\uAD00\uD568\uC73C\uB85C \uC62E\uAE34 \uC9C1\uD6C4 \uD558\uB2E8\uC5D0 "\uBB38\uC11C 1\uAC74\uC744 \uBCF4\uAD00\uD588\uC2B5\uB2C8\uB2E4 [\uC2E4\uD589 \uCDE8\uC18C]" \uC2A4\uB0B5\uBC14\uB97C \uB744\uC6CC \uC791\uC5C5\uC744 \uD655\uC778\uC2DC\uCF1C \uC8FC\uACE0, \uC2E4\uC218\uD55C \uACBD\uC6B0 \uBC14\uB85C \uB418\uB3CC\uB9B4 \uC218 \uC788\uAC8C \uD569\uB2C8\uB2E4.',
31414
+ promptSnippet: '\uC791\uC5C5 \uC644\uB8CC\uB098 \uB418\uB3CC\uB9AC\uAE30 \uAC00\uB2A5\uD55C \uC0AD\uC81C \uD53C\uB4DC\uBC31\uC740 \uBAA8\uB2EC\uB85C \uD750\uB984\uC744 \uB9C9\uC9C0 \uB9D0\uACE0 role="status"\uB97C \uAC16\uCD98 \uD1A0\uC2A4\uD2B8/\uC2A4\uB0B5\uBC14\uB85C \uD45C\uC2DC\uD574 \uC918. \uC2E4\uD589 \uCDE8\uC18C \uBC84\uD2BC\uC774 \uC788\uB2E4\uBA74 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uC640 \uCDA9\uBD84\uD55C \uB300\uAE30 \uC2DC\uAC04\uC744 \uBCF4\uC7A5\uD574 \uC918.'
31415
+ },
31416
+ en: {
31417
+ definition: "A non-blocking temporary banner or floating message used to confirm an action or offer an immediate Undo option without interrupting the user\u2019s current flow.",
31418
+ example: 'After archiving a document, display a bottom snackbar saying "Archived 1 document" with an [Undo] button instead of interrupting with a full-screen dialog.',
31419
+ promptSnippet: 'Surface non-blocking action confirmations as a toast or snackbar inside an accessible live region (role="status"), ensuring any Undo action remains keyboard-reachable before dismissal.'
31420
+ }
31421
+ }
31422
+ },
31423
+ "command-palette": {
31424
+ aliases: {
31425
+ ko: ["\uBA85\uB839 \uD314\uB808\uD2B8", "\uBE60\uB978 \uC2E4\uD589\uCC3D", "\uB2E8\uCD95\uD0A4 \uAC80\uC0C9\uCC3D", "Cmd+K \uBA54\uB274", "\uC2AC\uB798\uC2DC \uBA85\uB839\uCC3D"],
31426
+ en: ["quick launcher", "command menu", "Cmd+K palette", "action switcher", "slash command menu"]
31427
+ },
31428
+ text: {
31429
+ ko: {
31430
+ definition: "\uD0A4\uBCF4\uB4DC \uB2E8\uCD95\uD0A4(\uC608: Cmd/Ctrl+K)\uB098 `/` \uC785\uB825\uC73C\uB85C \uC5F4\uC5B4 \uD398\uC774\uC9C0 \uC774\uB3D9, \uAC80\uC0C9, \uAE30\uB2A5 \uC2E4\uD589\uC744 \uB9C8\uC6B0\uC2A4 \uC5C6\uC774 \uBE60\uB974\uAC8C \uCC98\uB9AC\uD558\uB294 \uD1B5\uD569 \uAC80\uC0C9\uD615 \uBA85\uB839\uCC3D\uC785\uB2C8\uB2E4.",
31431
+ example: '\uD611\uC5C5 \uD234\uC5D0\uC11C \uC5B4\uB290 \uD654\uBA74\uC5D0 \uC788\uB4E0 Cmd+K\uB97C \uB20C\uB7EC "\uB2E4\uD06C \uBAA8\uB4DC \uC804\uD658", "\uC0C8 \uBB38\uC11C \uB9CC\uB4E4\uAE30", "\uCD5C\uADFC \uD504\uB85C\uC81D\uD2B8 \uC5F4\uAE30"\uB97C \uBC14\uB85C \uAC80\uC0C9\uD558\uACE0 Enter\uB85C \uC2E4\uD589\uD569\uB2C8\uB2E4.',
31432
+ promptSnippet: "Cmd/Ctrl+K\uB85C \uC5EC\uB2EB\uC744 \uC218 \uC788\uB294 \uCEE4\uB9E8\uB4DC \uD314\uB808\uD2B8\uB97C \uB9CC\uB4E4\uACE0, \uAC80\uC0C9 \uC785\uB825\uACFC \uBC29\uD5A5\uD0A4(ArrowUp/ArrowDown)\xB7Enter \uC120\uD0DD\xB7Escape \uB2EB\uAE30\xB7\uD3EC\uCEE4\uC2A4 \uBCF5\uADC0\uB97C \uBAA8\uB450 \uD0A4\uBCF4\uB4DC\uB9CC\uC73C\uB85C \uC870\uC791\uD560 \uC218 \uC788\uAC8C \uAD6C\uD604\uD574 \uC918."
31433
+ },
31434
+ en: {
31435
+ definition: "A keyboard-first modal launcher (typically opened via Cmd/Ctrl+K or `/`) that lets users search and trigger navigation, settings, or actions from anywhere.",
31436
+ example: 'Press Cmd+K inside a workspace app to filter commands like "Switch theme" or "Open project" and execute them immediately with Enter.',
31437
+ promptSnippet: "Build a keyboard-accessible command palette triggered by Cmd/Ctrl+K with live query filtering, ArrowUp/ArrowDown item navigation, Enter execution, Escape dismissal, and focus restoration."
31438
+ }
31439
+ }
31440
+ },
31441
+ "focus-trap": {
31442
+ aliases: {
31443
+ ko: ["\uD3EC\uCEE4\uC2A4 \uAC00\uB450\uAE30", "\uBAA8\uB2EC \uD3EC\uCEE4\uC2A4 \uAD00\uB9AC", "\uD0A4\uBCF4\uB4DC \uCD08\uC810 \uACE0\uC815", "\uBAA8\uB2EC \uBC16\uC73C\uB85C \uD3EC\uCEE4\uC2A4 \uC774\uD0C8 \uBC29\uC9C0"],
31444
+ en: ["focus containment", "modal focus lock", "dialog focus management", "keyboard focus trap"]
31445
+ },
31446
+ text: {
31447
+ ko: {
31448
+ definition: "\uBAA8\uB2EC \uB2E4\uC774\uC5BC\uB85C\uADF8\uB098 \uB4DC\uB85C\uC5B4\uAC00 \uC5F4\uB824 \uC788\uB294 \uB3D9\uC548 Tab \uD0A4 \uC774\uB3D9\uC774 \uBC30\uACBD \uD654\uBA74\uC73C\uB85C \uBE60\uC838\uB098\uAC00\uC9C0 \uC54A\uACE0 \uB2E4\uC774\uC5BC\uB85C\uADF8 \uB0B4\uBD80 \uC694\uC18C\uB4E4 \uC0AC\uC774\uC5D0\uC11C\uB9CC \uC21C\uD658\uD558\uB3C4\uB85D \uC81C\uD55C\uD558\uACE0, \uB2EB\uD790 \uB54C \uC6D0\uB798 \uBC84\uD2BC\uC73C\uB85C \uD3EC\uCEE4\uC2A4\uB97C \uB3CC\uB824\uC8FC\uB294 \uC811\uADFC\uC131 \uAE30\uBC95\uC785\uB2C8\uB2E4.",
31449
+ example: "\uC0AD\uC81C \uD655\uC778 \uBAA8\uB2EC\uC744 \uC5F4\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uBAA8\uB2EC \uB0B4\uBD80\uB85C \uB4E4\uC5B4\uC624\uACE0 \uBC30\uACBD \uBC84\uD2BC\uC740 \uBE44\uD65C\uC131\uD654\uB418\uBA70, Escape\uB098 \uB2EB\uAE30\uB97C \uB204\uB974\uBA74 \uCC98\uC74C \uBAA8\uB2EC\uC744 \uC5F4\uC5C8\uB358 \uBC84\uD2BC\uC73C\uB85C \uCD08\uC810\uC774 \uB418\uB3CC\uC544\uAC11\uB2C8\uB2E4.",
31450
+ promptSnippet: "\uBAA8\uB2EC\uC774\uB098 \uC2DC\uD2B8 \uB2E4\uC774\uC5BC\uB85C\uADF8\uB97C \uAD6C\uD604\uD560 \uB54C native <dialog> showModal() \uB610\uB294 \uD3EC\uCEE4\uC2A4 \uD2B8\uB7A9\uC744 \uC801\uC6A9\uD574 Tab \uD0A4\uAC00 \uBC30\uACBD\uC73C\uB85C \uC0C8\uC9C0 \uC54A\uAC8C \uD558\uACE0, Escape\xB7\uB2EB\uAE30 \uBC84\uD2BC \uC9C0\uC6D0\uACFC \uD568\uAED8 \uB2EB\uD78C \uB4A4 \uD2B8\uB9AC\uAC70 \uC694\uC18C\uB85C \uD3EC\uCEE4\uC2A4\uB97C \uBCF5\uADC0\uC2DC\uCF1C \uC918."
31451
+ },
31452
+ en: {
31453
+ definition: "An accessibility pattern that keeps Tab/Shift+Tab keyboard focus inside an active modal dialog or drawer and returns focus to the triggering element when closed.",
31454
+ example: "Opening a confirmation dialog traps keyboard navigation inside the modal controls; pressing Escape closes it and restores focus to the button that opened it.",
31455
+ promptSnippet: "Use native <dialog> showModal() or an explicit focus trap so Tab navigation stays inside the open modal, support Escape and explicit close controls, and restore focus to the original trigger on close."
31456
+ }
31457
+ }
31458
+ },
31459
+ "virtual-scrolling": {
31460
+ aliases: {
31461
+ ko: ["\uBAA9\uB85D \uAC00\uC0C1\uD654", "\uC708\uB3C4\uC789", "\uB300\uC6A9\uB7C9 \uB9AC\uC2A4\uD2B8 \uCD5C\uC801\uD654", "\uBCF4\uC774\uB294 \uC601\uC5ED\uB9CC \uB80C\uB354\uB9C1"],
31462
+ en: ["list virtualization", "windowing", "virtual list", "windowed rendering"]
31463
+ },
31464
+ text: {
31465
+ ko: {
31466
+ definition: "\uC218\uCC9C~\uC218\uB9CC \uAC74\uC758 \uAE34 \uBAA9\uB85D\uC5D0\uC11C \uC804\uCCB4 \uC2A4\uD06C\uB864 \uB192\uC774\uB9CC \uC720\uC9C0\uD55C \uCC44 \uD604\uC7AC \uD654\uBA74 \uBDF0\uD3EC\uD2B8\uC640 \uC57D\uAC04\uC758 \uC5EC\uC720(overscan) \uBC94\uC704\uC5D0 \uB4E4\uC5B4\uC628 \uD589\uB9CC DOM\uC5D0 \uB80C\uB354\uB9C1\uD574 \uC131\uB2A5\uC744 \uC9C0\uD0A4\uB294 \uAE30\uBC95\uC785\uB2C8\uB2E4.",
31467
+ example: "10,000\uAC74\uC758 \uB85C\uADF8 \uBAA9\uB85D\uC744 \uD55C \uBC88\uC5D0 DOM\uC5D0 \uC62C\uB9AC\uB294 \uB300\uC2E0 \uD604\uC7AC \uBCF4\uC774\uB294 15\uD589\uACFC \uC704\uC544\uB798 \uC5EC\uC720 10\uD589\uB9CC \uB9C8\uC6B4\uD2B8\uD574 \uC2A4\uD06C\uB864 \uBC84\uBC85\uC784\uC744 \uC904\uC785\uB2C8\uB2E4.",
31468
+ promptSnippet: "\uD589 \uC218\uAC00 \uB9CE\uC740 \uAE34 \uBAA9\uB85D\uC5D0\uB294 \uC804\uCCB4 \uC2A4\uD06C\uB864 \uB192\uC774\uB97C \uBE48 \uC2A4\uD398\uC774\uC11C\uB85C \uC720\uC9C0\uD558\uBA74\uC11C \uD604\uC7AC \uBDF0\uD3EC\uD2B8 \uC8FC\uBCC0\uACFC overscan \uD589\uB9CC DOM\uC5D0 \uB80C\uB354\uB9C1\uD558\uB294 \uAC00\uC0C1 \uC2A4\uD06C\uB864\uC744 \uC801\uC6A9\uD558\uACE0, aria-setsize\uC640 aria-posinset\uC73C\uB85C \uC804\uCCB4 \uC21C\uBC88\uC744 \uC720\uC9C0\uD574 \uC918."
31469
+ },
31470
+ en: {
31471
+ definition: "A rendering optimization that preserves full scroll height while mounting only the visible rows plus a small overscan buffer in the DOM.",
31472
+ example: "Instead of rendering 10,000 chat or log rows at once, mount only the ~25 rows near the current scroll position while keeping native scrollbar proportions accurate.",
31473
+ promptSnippet: "Virtualize large lists by mounting only visible rows plus an overscan buffer between top/bottom spacer elements, preserving exact scroll height and aria-setsize/aria-posinset semantics."
31474
+ }
31475
+ }
31476
+ },
31477
+ "call-to-action": {
31478
+ aliases: {
31479
+ ko: ["CTA", "\uCF5C\uD22C\uC561\uC158", "\uD589\uB3D9 \uC720\uB3C4 \uBC84\uD2BC", "\uC8FC\uC694 \uD589\uB3D9 \uBC84\uD2BC", "\uD575\uC2EC \uC804\uD658 \uC694\uC18C"],
31480
+ en: ["CTA", "call to action button", "primary action", "conversion trigger", "action link"]
31481
+ },
31482
+ text: {
31483
+ ko: {
31484
+ definition: "\uC0AC\uC6A9\uC790\uAC00 \uD604\uC7AC \uD654\uBA74\uC5D0\uC11C \uCDE8\uD574\uC57C \uD560 \uB2E4\uC74C \uD575\uC2EC \uD589\uB3D9\uC744 \uBA85\uD655\uD558\uAC8C \uC548\uB0B4\uD558\uB294 \uBC84\uD2BC\uC774\uB098 \uB9C1\uD06C \uB4F1\uC758 \uC778\uD130\uB799\uC158 \uC694\uC18C\uC785\uB2C8\uB2E4. \uBC84\uD2BC\uC758 \uAC89\uBAA8\uC591\uC774\uB098 \uACE0\uC815 \uC704\uCE58\uAC00 \uC544\uB2C8\uB77C \uD589\uB3D9 \uC720\uB3C4\uB77C\uB294 \uBAA9\uC801\uC5D0 \uC758\uD574 \uC815\uC758\uB418\uBA70, \uD50C\uB85C\uD305 \uC561\uC158 \uBC84\uD2BC(FAB)\uACFC \uAC19\uC740 \uC758\uBBF8\uAC00 \uC544\uB2D9\uB2C8\uB2E4.",
31485
+ example: '\uC694\uAE08\uC81C \uC548\uB0B4 \uD654\uBA74 \uC0C1\uB2E8\uC758 "14\uC77C \uCCB4\uD5D8 \uC2DC\uC791\uD558\uAE30" \uAE30\uBCF8 \uBC84\uD2BC\uACFC \uBE44\uAD50\uD45C \uC544\uB798 "\uB9DE\uCDA4 \uD50C\uB79C \uBB38\uC758\uD558\uAE30" \uB9C1\uD06C\uCC98\uB7FC, \uD615\uD0DC\uC640 \uAD00\uACC4\uC5C6\uC774 \uC0AC\uC6A9\uC790\uC758 \uB2E4\uC74C \uD575\uC2EC \uD589\uB3D9\uC744 \uBD84\uBA85\uD55C \uB3D9\uC0AC\uD615 \uBB38\uAD6C\uB85C \uC81C\uC2DC\uD569\uB2C8\uB2E4.',
31486
+ promptSnippet: "\uD654\uBA74\uC758 \uD575\uC2EC \uBAA9\uD45C\uC5D0 \uB9DE\uCDB0 \uC8FC \uD589\uB3D9(Primary CTA)\uACFC \uBCF4\uC870 \uD589\uB3D9(Secondary CTA)\uC758 \uC2DC\uAC01\uC801 \uC704\uACC4\uB97C \uBA85\uD655\uD788 \uAD6C\uBD84\uD574 \uC918. \uBC84\uD2BC\uBFD0 \uC544\uB2C8\uB77C \uB9C1\uD06C \uD615\uD0DC\uB3C4 CTA\uB85C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC73C\uBA70, \uAD6C\uCCB4\uC801\uC778 \uB3D9\uC0AC\uD615 \uB808\uC774\uBE14\uACFC \uCDA9\uBD84\uD55C \uBA85\uB3C4 \uB300\uBE44\xB7\uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4 \uD45C\uC2DC\xB7\uD130\uCE58 \uC601\uC5ED\uC744 \uD568\uAED8 \uD655\uBCF4\uD574 \uC918."
31487
+ },
31488
+ en: {
31489
+ definition: "An interface element\u2014such as a button or link\u2014that clearly guides the user toward the next core action on a screen. It is defined by its intent rather than a button shape or placement, and is not synonymous with a floating action button (FAB).",
31490
+ example: 'On a pricing screen, a high-contrast "Start 14-day trial" primary button and a "Contact for custom plan" link below the comparison table both serve as CTAs by clearly directing the next step with action verbs.',
31491
+ promptSnippet: "Establish clear visual hierarchy between the primary CTA and secondary actions using specific verb-driven labels, accessible contrast, visible keyboard focus indicators, and adequate hit targets whether the CTA is rendered as a button or a link."
31492
+ }
31493
+ }
31494
+ },
31495
+ "floating-action-button": {
31496
+ aliases: {
31497
+ ko: ["FAB", "\uD50C\uB85C\uD305 \uBC84\uD2BC", "\uB5A0 \uC788\uB294 \uC791\uC5C5 \uBC84\uD2BC", "\uC6B0\uD558\uB2E8 \uACE0\uC815 \uC0DD\uC131 \uBC84\uD2BC", "\uD50C\uB85C\uD305 \uC561\uC158"],
31498
+ en: ["FAB", "floating button", "primary floating button", "floating action"]
31499
+ },
31500
+ text: {
31501
+ ko: {
31502
+ definition: "\uD654\uBA74 \uCF58\uD150\uCE20 \uC704\uC5D0 \uB5A0 \uC788\uB294 \uD615\uD0DC\uB85C \uBC30\uCE58\uB418\uC5B4 \uD574\uB2F9 \uD654\uBA74\uC758 \uAC00\uC7A5 \uB300\uD45C\uC801\uC778 \uC0DD\uC131\xB7\uC791\uC131\xB7\uD575\uC2EC \uC791\uC5C5\uC744 \uC989\uC2DC \uC2E4\uD589\uD558\uB294 \uBC84\uD2BC\uC785\uB2C8\uB2E4. CTA\uAC00 \uD589\uB3D9 \uC720\uB3C4\uB77C\uB294 \uBAA9\uC801\uC744 \uB73B\uD558\uB294 \uBC18\uBA74 FAB\uB294 \uCF58\uD150\uCE20 \uC704\uC5D0 \uB5A0 \uC788\uB294 \uBC84\uD2BC\uC758 \uD615\uD0DC\xB7\uBC30\uCE58\uB97C \uAC00\uB9AC\uD0A4\uBBC0\uB85C FAB\uB3C4 CTA \uC5ED\uD560\uC744 \uD560 \uC218 \uC788\uC73C\uBA70, \uBAA8\uB4E0 position: fixed \uBC84\uD2BC\uC774 FAB\uC5D0 \uD574\uB2F9\uD558\uB294 \uAC83\uC740 \uC544\uB2D9\uB2C8\uB2E4.",
31503
+ example: '\uB178\uD2B8 \uBAA9\uB85D \uD654\uBA74 \uC624\uB978\uCABD \uC544\uB798\uC5D0 \uB5A0 \uC788\uB294 "+ \uC0C8 \uB178\uD2B8" \uBC84\uD2BC\uC774 \uC2A4\uD06C\uB864 \uC911\uC5D0\uB3C4 \uC791\uC131 \uD654\uBA74\uC744 \uBC14\uB85C \uC5F4\uC5B4 \uC8FC\uB294 \uACBD\uC6B0\uB85C, \uD558\uB2E8 \uACE0\uC815 \uD234\uBC14\uB098 \uC77C\uBC18 \uBCF8\uBB38 CTA \uBC84\uD2BC\uACFC\uB294 \uAD6C\uBD84\uB429\uB2C8\uB2E4.',
31504
+ promptSnippet: "\uD654\uBA74\uC758 \uB300\uD45C \uC791\uC5C5 \uD558\uB098\uB9CC \uD50C\uB85C\uD305 \uC561\uC158 \uBC84\uD2BC(FAB)\uC73C\uB85C \uBC30\uCE58\uD558\uACE0, \uBCF8\uBB38 \uB9C8\uC9C0\uB9C9 \uD56D\uBAA9\uC774\uB098 \uD558\uB2E8 \uCEE8\uD2B8\uB864\uC774 \uAC00\uB824\uC9C0\uC9C0 \uC54A\uB3C4\uB85D \uC2A4\uD06C\uB864 \uC5EC\uBC31\uC744 \uCDA9\uBD84\uD788 \uD655\uBCF4\uD574 \uC918. \uCDA9\uBD84\uD55C \uD130\uCE58 \uC601\uC5ED(\uC608: \uCD5C\uC18C 44x44px)\uACFC \uBA85\uD655\uD55C aria-label, \uB17C\uB9AC\uC801\uC778 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4 \uC21C\uC11C\uB97C \uD568\uAED8 \uBCF4\uC7A5\uD574 \uC918."
31505
+ },
31506
+ en: {
31507
+ definition: "A prominent primary action button that floats above screen content to trigger the screen\u2019s single most representative task. While CTA describes the purpose of prompting user action, FAB refers to a floating button form and placement\u2014so a FAB can also serve as a CTA, and not every position: fixed button is a FAB.",
31508
+ example: 'A "+ New note" button floating at the bottom-right corner of a notes feed stays reachable while scrolling to open the composer, distinct from an inline CTA or a sticky bottom toolbar.',
31509
+ promptSnippet: "Use a floating action button (FAB) only for the screen\u2019s single primary action, reserve bottom scroll padding so it never occludes underlying content or controls, provide an adequate touch target (e.g., at least 44x44px), and ensure logical keyboard focus order with a clear accessible label."
31510
+ }
31511
+ }
31512
+ },
31513
+ "safe-area": {
31514
+ aliases: {
31515
+ ko: ["\uC138\uC774\uD504 \uC5D0\uC5B4\uB9AC\uC5B4", "\uC548\uC804 \uC5EC\uBC31", "\uB178\uCE58 \uC5EC\uBC31", "\uD648 \uC778\uB514\uCF00\uC774\uD130 \uC5EC\uBC31", "\uC548\uC804 \uC601\uC5ED \uC778\uC14B"],
31516
+ en: ["safe area inset", "notch safe margin", "viewport safe area", "home indicator inset"]
31517
+ },
31518
+ text: {
31519
+ ko: {
31520
+ definition: "\uAE30\uAE30\uC758 \uB178\uCE58, \uB465\uADFC \uD654\uBA74 \uBAA8\uC11C\uB9AC, \uD558\uB2E8 \uD648 \uC778\uB514\uCF00\uC774\uD130 \uBC14 \uB4F1\uC5D0 \uCF58\uD150\uCE20\uB098 \uC870\uC791 \uC694\uC18C\uAC00 \uAC00\uB824\uC9C0\uC9C0 \uC54A\uB3C4\uB85D \uBE44\uC6CC \uB450\uB294 \uC601\uC5ED\uC785\uB2C8\uB2E4. \uACE0\uC815 \uD53D\uC140 \uC218\uCE58\uB85C \uD68D\uC77C\uD654\uD558\uAE30\uBCF4\uB2E4 \uAE30\uBCF8 \uC5EC\uBC31\uC5D0 CSS env(safe-area-inset-bottom) \uB4F1 \uD658\uACBD \uBCC0\uC218\uB97C \uD544\uC694\uC5D0 \uB9DE\uAC8C \uACB0\uD569\uD574 \uB300\uC751\uD569\uB2C8\uB2E4.",
31521
+ example: "\uBAA8\uBC14\uC77C \uD558\uB2E8 \uACE0\uC815 \uBC14\uC758 \uC544\uB798\uCABD \uC5EC\uBC31\uC5D0 \uAE30\uBCF8 16px \uD328\uB529\uACFC env(safe-area-inset-bottom)\uC744 \uB354\uD574, \uD648 \uC778\uB514\uCF00\uC774\uD130\uAC00 \uC788\uB294 \uAE30\uAE30\uC5D0\uC11C\uB3C4 \uBC84\uD2BC\uC774 \uAC00\uB824\uC9C0\uC9C0 \uC54A\uAC8C \uC720\uC9C0\uD569\uB2C8\uB2E4.",
31522
+ promptSnippet: "\uB178\uCE58\xB7\uB465\uADFC \uD654\uBA74 \uBAA8\uC11C\uB9AC\xB7\uD648 \uC778\uB514\uCF00\uC774\uD130\uAC00 \uC0C1\uD558\uB2E8 \uACE0\uC815 \uBC14\uB098 \uAC00\uC7A5\uC790\uB9AC \uCF58\uD150\uCE20\uB97C \uAC00\uB9AC\uC9C0 \uC54A\uB3C4\uB85D, \uACE0\uC815 \uD53D\uC140 \uAC12\uC5D0\uB9CC \uC758\uC874\uD558\uC9C0 \uB9D0\uACE0 \uAE30\uBCF8 padding\xB7margin\uC5D0 env(safe-area-inset-bottom) \uB4F1 CSS \uC548\uC804 \uC601\uC5ED \uBCC0\uC218\uB97C \uD544\uC694\uC5D0 \uB9DE\uAC8C \uC870\uD569\uD574 \uC801\uC6A9\uD574 \uC918."
31523
+ },
31524
+ en: {
31525
+ definition: "The region reserved so content and interactive controls are not obscured by device notches, rounded screen corners, or home indicator bars. Instead of prescribing fixed pixel offsets, combine base padding or margins with CSS variables like env(safe-area-inset-bottom) as needed.",
31526
+ example: "A sticky mobile bottom bar adds env(safe-area-inset-bottom) to its base 16px bottom padding so action buttons clear the home indicator without adding excess space on standard screens.",
31527
+ promptSnippet: "Keep edge-to-edge content and fixed bars clear of notches, rounded corners, and home indicator bars by combining base padding or margins with CSS safe-area environment variables such as env(safe-area-inset-bottom) as needed rather than hardcoding fixed pixel offsets."
31528
+ }
31529
+ }
31530
+ },
31531
+ "container-query": {
31532
+ aliases: {
31533
+ ko: ["\uCF58\uD14C\uC774\uB108 \uCFFC\uB9AC", "\uCEE8\uD14C\uC774\uB108 \uD06C\uAE30 \uCFFC\uB9AC", "\uCEF4\uD3EC\uB10C\uD2B8 \uAE30\uC900 \uBC18\uC751\uD615"],
31534
+ en: ["container queries", "@container", "container-type"]
31535
+ },
31536
+ text: {
31537
+ ko: {
31538
+ definition: "\uBDF0\uD3EC\uD2B8 \uC804\uCCB4 \uB108\uBE44 \uB300\uC2E0 \uC9C0\uC815\uD55C \uC0C1\uC704 \uCEE8\uD14C\uC774\uB108\uC758 \uD06C\uAE30\uB098 \uC2A4\uD0C0\uC77C\uC744 \uAE30\uC900\uC73C\uB85C \uB0B4\uBD80 \uB808\uC774\uC544\uC6C3\uC744 \uBC14\uAFB8\uB294 CSS(Cascading Style Sheets) \uADDC\uCE59\uC785\uB2C8\uB2E4. \uAC19\uC740 \uCE74\uB4DC\uB098 \uC704\uC82F\uC774 \uC0AC\uC774\uB4DC\uBC14\uC640 \uBCF8\uBB38 \uB4F1 \uC11C\uB85C \uB2E4\uB978 \uD3ED\uC758 \uC601\uC5ED\uC5D0 \uBC30\uCE58\uB420 \uB54C \uC881\uC740 \uAE30\uBCF8 \uB808\uC774\uC544\uC6C3\uC744 \uC720\uC9C0\uD55C \uCC44 \uACF5\uAC04\uC774 \uB113\uC5B4\uC9C8 \uB54C\uB9CC \uBC30\uCE58\uB97C \uD655\uC7A5\uD558\uB3C4\uB85D \uC81C\uC5B4\uD569\uB2C8\uB2E4.",
31539
+ example: "\uC0C1\uD488 \uC694\uC57D \uCE74\uB4DC\uB294 \uC0C1\uC704 \uC5F4\uC5D0 inline-size \uCEE8\uD14C\uC774\uB108\uB97C \uC120\uC5B8\uD574 \uAE30\uBCF8\uC801\uC73C\uB85C \uC138\uB85C 1\uC5F4\uB85C \uC313\uACE0, \uD560\uB2F9 \uD3ED\uC774 \uB113\uC5B4\uC9C8 \uB54C\uB9CC \uC378\uB124\uC77C\uACFC \uC124\uBA85\uC744 \uAC00\uB85C \uBC30\uCE58\uB85C \uC804\uD658\uD574 \uC0AC\uC774\uB4DC\uBC14\uC640 \uBA54\uC778 \uADF8\uB9AC\uB4DC \uC591\uCABD\uC5D0\uC11C \uAE68\uC9C0\uC9C0 \uC54A\uAC8C \uD569\uB2C8\uB2E4.",
31540
+ promptSnippet: "\uCE74\uB4DC\uB098 \uD328\uB110\uCC98\uB7FC \uBC30\uCE58 \uC704\uCE58\uC5D0 \uB530\uB77C \uD3ED\uC774 \uB2EC\uB77C\uC9C0\uB294 \uCEF4\uD3EC\uB10C\uD2B8\uB294 \uBDF0\uD3EC\uD2B8 \uAE30\uC900 \uB300\uC2E0 \uC0C1\uC704 \uB798\uD37C\uC5D0 container-type: inline-size\uB97C \uC120\uC5B8\uD558\uACE0 \uC881\uC740 \uAE30\uBCF8 \uB808\uC774\uC544\uC6C3\uC5D0\uC11C @container (min-width: ...) \uC870\uAC74\uC73C\uB85C\uB9CC \uAC00\uB85C \uD655\uC7A5\uC774\uB098 \uBCF4\uC870 \uC5F4\uC744 \uC5F4\uB3C4\uB85D \uAD6C\uD604\uD558\uC138\uC694."
31541
+ },
31542
+ en: {
31543
+ definition: "A Cascading Style Sheets (CSS) rule that adapts an element\u2019s layout to a designated ancestor container\u2019s dimensions rather than the browser viewport. It keeps a narrow-first default layout and expands to wider arrangements only when the surrounding container provides enough space.",
31544
+ example: "A media card wrapper declares container-type: inline-size so the card stacks vertically by default in narrow sidebars and switches to a horizontal row only inside wider main grid tracks.",
31545
+ promptSnippet: "For reusable cards or widgets placed across varying column widths, define container-type: inline-size on an ancestor wrapper, keep a narrow-first base layout, and switch to horizontal or multi-column tracks via @container rules instead of viewport media queries."
31546
+ }
31547
+ }
31548
+ },
31549
+ "responsive-breakpoint": {
31550
+ aliases: {
31551
+ ko: ["\uBC18\uC751\uD615 \uBE0C\uB808\uC774\uD06C\uD3EC\uC778\uD2B8", "\uD654\uBA74 \uD3ED \uBD84\uAE30\uC810", "\uBBF8\uB514\uC5B4 \uCFFC\uB9AC \uBD84\uAE30\uC810"],
31552
+ en: ["breakpoints", "responsive breakpoints", "media query breakpoint"]
31553
+ },
31554
+ text: {
31555
+ ko: {
31556
+ definition: "\uD654\uBA74\uC774\uB098 \uCEE8\uD14C\uC774\uB108\uC758 \uD06C\uAE30\uAC00 \uD2B9\uC815 \uC784\uACC4\uAC12\uC744 \uB118\uC744 \uB54C \uC5F4 \uC218, \uC5EC\uBC31, \uD0D0\uC0C9 \uAD6C\uC870\uB97C \uC804\uD658\uD558\uB294 \uAE30\uC900 \uD3ED\uC785\uB2C8\uB2E4. \uAE30\uAE30 \uBE0C\uB79C\uB4DC \uC774\uB984\uC774 \uC544\uB2C8\uB77C \uCF58\uD150\uCE20\uAC00 \uACB9\uCE58\uAC70\uB098 \uC904 \uBC14\uAFC8\uC774 \uC5B4\uC0C9\uD574\uC9C0\uB294 \uC9C0\uC810\uC5D0 \uB9DE\uCDB0 \uBD84\uAE30\uC810\uC744 \uC815\uD569\uB2C8\uB2E4.",
31557
+ example: "\uBB38\uC11C \uBAA9\uB85D \uD398\uC774\uC9C0\uAC00 \uC791\uC740 \uD654\uBA74\uC5D0\uC11C\uB294 1\uC5F4 \uCE74\uB4DC\uB85C \uBCF4\uC774\uACE0, \uD45C\uC640 \uD544\uD130\uB97C \uB098\uB780\uD788 \uB458 \uC218 \uC788\uB294 \uD3ED \uC774\uC0C1\uC5D0\uC11C\uB9CC 2\uB2E8 \uB808\uC774\uC544\uC6C3\uC73C\uB85C \uC804\uD658\uB418\uB3C4\uB85D \uBD84\uAE30\uC810\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.",
31558
+ promptSnippet: "\uD2B9\uC815 \uAE30\uAE30 \uD574\uC0C1\uB3C4\uB97C \uAC00\uC815\uD558\uC9C0 \uB9D0\uACE0 \uCF58\uD150\uCE20\uAC00 \uC881\uC544\uC838 \uACB9\uCE58\uAC70\uB098 \uAC00\uB3C5\uC131\uC774 \uB5A8\uC5B4\uC9C0\uB294 \uC9C0\uC810\uC5D0 \uB9DE\uCDB0 \uBC18\uC751\uD615 \uC911\uB2E8\uC810\uC744 \uC815\uC758\uD558\uBA70, \uBAA8\uBC14\uC77C \uAE30\uC900 \uAE30\uBCF8 \uB808\uC774\uC544\uC6C3 \uC704\uC5D0\uC11C \uC810\uC9C4\uC801\uC73C\uB85C \uC5F4\uACFC \uAC04\uACA9\uC744 \uD655\uC7A5\uD558\uC138\uC694."
31559
+ },
31560
+ en: {
31561
+ definition: "A threshold width at which a layout adjusts column counts, spacing, or navigation structure. Breakpoints should follow where the content actually crowds or breaks rather than fixed device names.",
31562
+ example: "A catalog view stays single-column on narrow screens and shifts to a sidebar-plus-grid arrangement only once the width comfortably accommodates both filter controls and readable cards.",
31563
+ promptSnippet: "Define responsive breakpoints based on where layout wrapping or crowding occurs rather than device brands, starting from a single-column base layout and progressively adding columns and spacing."
31564
+ }
31565
+ }
31566
+ },
31567
+ "aspect-ratio": {
31568
+ aliases: {
31569
+ ko: ["\uD654\uBA74 \uBE44\uC728", "\uAC00\uB85C\uC138\uB85C \uBE44\uC728", "\uBE44\uC728 \uACE0\uC815 \uD504\uB808\uC784"],
31570
+ en: ["aspect ratio", "aspect-ratio css", "aspect ratio box"]
31571
+ },
31572
+ text: {
31573
+ ko: {
31574
+ definition: "\uC774\uBBF8\uC9C0, \uC601\uC0C1, \uCE74\uB4DC \uD504\uB808\uC784\uC758 \uAC00\uB85C\uC640 \uC138\uB85C \uAE38\uC774 \uBE44\uC728\uC744 \uC77C\uC815\uD558\uAC8C \uC720\uC9C0\uD558\uB294 \uC18D\uC131\uC785\uB2C8\uB2E4. \uB9AC\uC18C\uC2A4\uAC00 \uBD88\uB7EC\uC640\uC9C0\uAE30 \uC804\uBD80\uD130 \uC2AC\uB86F \uD06C\uAE30\uB97C \uC608\uC57D\uD574 \uC8FC\uBCC0 \uC694\uC18C\uAC00 \uC544\uB798\uB85C \uBC00\uB9AC\uB294 \uD604\uC0C1\uC744 \uC904\uC785\uB2C8\uB2E4.",
31575
+ example: "\uC378\uB124\uC77C \uAC24\uB7EC\uB9AC \uCE74\uB4DC \uC774\uBBF8\uC9C0 \uB798\uD37C\uC5D0 aspect-ratio: 16 / 9\uC640 object-fit: cover\uB97C \uD568\uAED8 \uC801\uC6A9\uD574 \uAC01 \uC774\uBBF8\uC9C0\uC758 \uC6D0\uBCF8 \uBE44\uC728\uC774 \uB2EC\uB77C\uB3C4 \uCE74\uB4DC \uD589 \uB192\uC774\uB97C \uC77C\uC815\uD558\uAC8C \uB9DE\uCDA5\uB2C8\uB2E4.",
31576
+ promptSnippet: "\uC774\uBBF8\uC9C0\uB098 \uBBF8\uB514\uC5B4 \uCE74\uB4DC \uC2AC\uB86F\uC5D0\uB294 \uBA85\uC2DC\uC801\uC778 aspect-ratio\uC640 object-fit \uADDC\uCE59\uC744 \uC9C0\uC815\uD574 \uCF58\uD150\uCE20 \uB85C\uB4DC \uC804\uD6C4\uC5D0\uB3C4 \uD504\uB808\uC784 \uD06C\uAE30\uAC00 \uD754\uB4E4\uB9AC\uC9C0 \uC54A\uAC8C \uC720\uC9C0\uD558\uC138\uC694."
31577
+ },
31578
+ en: {
31579
+ definition: "The proportional relationship between an element\u2019s width and height, such as 16:9 or 4:3. Setting an explicit aspect ratio reserves box height before media finishes loading so surrounding content does not jump.",
31580
+ example: "A thumbnail grid applies CSS aspect-ratio: 16 / 9 with object-fit: cover on media frames so mixed-dimension photos align into uniform rows without clipping key layout geometry.",
31581
+ promptSnippet: "Apply explicit aspect-ratio sizing and appropriate object-fit framing to image, video, and card media slots so their layout dimensions are reserved before media loads."
31582
+ }
31583
+ }
31584
+ },
31585
+ "keyboard-focus-indicator": {
31586
+ aliases: {
31587
+ ko: ["\uD3EC\uCEE4\uC2A4 \uB9C1", "\uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4 \uC724\uACFD\uC120", "\uD3EC\uCEE4\uC2A4 \uD45C\uC2DC\uAE30"],
31588
+ en: ["focus indicator", "focus ring", "focus-visible outline"]
31589
+ },
31590
+ text: {
31591
+ ko: {
31592
+ definition: "Tab \uD0A4 \uB4F1 \uD0A4\uBCF4\uB4DC \uD0D0\uC0C9 \uC911 \uD604\uC7AC \uC120\uD0DD\uB41C \uB300\uD654\uD615 \uC694\uC18C\uAC00 \uC5B4\uB514\uC778\uC9C0 \uB208\uC5D0 \uB744\uB294 \uC678\uACFD\uC120\uC774\uB098 \uB300\uBE44 \uBCC0\uD654\uB85C \uC54C\uB824 \uC8FC\uB294 \uC2DC\uAC01 \uD45C\uC2DC\uC785\uB2C8\uB2E4. \uB9C8\uC6B0\uC2A4 \uD074\uB9AD \uC2DC \uBD88\uD544\uC694\uD55C \uD14C\uB450\uB9AC\uB97C \uC904\uC774\uB824\uBA74 :focus-visible\uC744 \uD65C\uC6A9\uD558\uB418 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4 \uD45C\uC2DC\uB294 \uC808\uB300 \uAC00\uB9AC\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.",
31593
+ example: "\uBC84\uD2BC\uACFC \uC785\uB825 \uD544\uB4DC\uC5D0 outline: none\uC744 \uB2E8\uB3C5\uC73C\uB85C \uC4F0\uC9C0 \uC54A\uACE0 :focus-visible \uC0C1\uD0DC\uC5D0\uC11C \uBC30\uACBD\uACFC \uCDA9\uBD84\uD55C \uBA85\uB3C4 \uB300\uBE44\uB97C \uAC16\uB294 2px \uC678\uACFD\uC120\uACFC offset\uC744 \uD45C\uC2DC\uD574 \uD0A4\uBCF4\uB4DC \uC0AC\uC6A9\uC790\uAC00 \uD604\uC7AC \uC704\uCE58\uB97C \uBC14\uB85C \uD30C\uC545\uD558\uAC8C \uD569\uB2C8\uB2E4.",
31594
+ promptSnippet: "\uBAA8\uB4E0 \uB300\uD654\uD615 \uBC84\uD2BC, \uB9C1\uD06C, \uC785\uB825 \uC694\uC18C\uC5D0 \uBC30\uACBD\uACFC \uB300\uBE44\uAC00 \uB69C\uB837\uD55C :focus-visible \uD3EC\uCEE4\uC2A4 \uD45C\uC2DC\uB97C \uC81C\uACF5\uD558\uACE0, \uB300\uCCB4 \uC2A4\uD0C0\uC77C \uC5C6\uC774 outline\uC744 \uC81C\uAC70\uD558\uC9C0 \uB9C8\uC138\uC694."
31595
+ },
31596
+ en: {
31597
+ definition: "A visible outline or highlight showing which interactive control currently receives keyboard focus during Tab or arrow navigation. Using :focus-visible keeps keyboard focus unmistakably clear without adding distracting rings on pointer clicks.",
31598
+ example: "Buttons and form inputs retain a high-contrast 2px :focus-visible outline with offset against both light and dark surfaces instead of stripping outline with outline: none.",
31599
+ promptSnippet: "Ensure every interactive link, button, tab, and form field displays a high-contrast :focus-visible indicator with clear offset, and never remove focus outlines without an equally visible replacement."
31600
+ }
31601
+ }
31602
+ },
31603
+ "skip-link": {
31604
+ aliases: {
31605
+ ko: ["\uBCF8\uBB38 \uBC14\uB85C\uAC00\uAE30 \uB9C1\uD06C", "\uC2A4\uD0B5 \uB124\uBE44\uAC8C\uC774\uC158", "\uC2A4\uD0B5 \uB9C1\uD06C"],
31606
+ en: ["skip navigation link", "skip to content", "bypass block link"]
31607
+ },
31608
+ text: {
31609
+ ko: {
31610
+ definition: "\uD398\uC774\uC9C0 \uCD5C\uC0C1\uB2E8\uC5D0 \uB450\uC5B4 \uD0A4\uBCF4\uB4DC\uB098 \uC2A4\uD06C\uB9B0 \uB9AC\uB354 \uC0AC\uC6A9\uC790\uAC00 \uBC18\uBCF5\uB418\uB294 \uD5E4\uB354 \uBA54\uB274\uB97C \uAC74\uB108\uB6F0\uACE0 \uBCF8\uBB38 \uC601\uC5ED\uC73C\uB85C \uC989\uC2DC \uC774\uB3D9\uD560 \uC218 \uC788\uAC8C \uD558\uB294 \uB9C1\uD06C\uC785\uB2C8\uB2E4. \uD3C9\uC18C\uC5D0\uB294 \uD654\uBA74 \uBC16\uC5D0 \uC228\uACA8 \uB450\uB354\uB77C\uB3C4 \uD3EC\uCEE4\uC2A4\uB97C \uBC1B\uC73C\uBA74 \uC989\uC2DC \uBCF4\uC774\uAC8C \uB178\uCD9C\uD574\uC57C \uD569\uB2C8\uB2E4.",
31611
+ example: '\uD398\uC774\uC9C0 \uCCAB Tab \uC785\uB825 \uC2DC "\uBCF8\uBB38\uC73C\uB85C \uAC74\uB108\uB6F0\uAE30" \uB9C1\uD06C\uAC00 \uC88C\uCE21 \uC0C1\uB2E8\uC5D0 \uB098\uD0C0\uB098\uACE0, \uC120\uD0DD\uD558\uBA74 main \uC694\uC18C\uC758 \uC575\uCEE4\uB85C \uD3EC\uCEE4\uC2A4\uC640 \uC2A4\uD06C\uB864\uC774 \uBC14\uB85C \uC774\uB3D9\uD569\uB2C8\uB2E4.',
31612
+ promptSnippet: "\uBC18\uBCF5\uC801\uC778 \uC0C1\uB2E8 \uB0B4\uBE44\uAC8C\uC774\uC158\uC774 \uC788\uB294 \uD398\uC774\uC9C0 \uCD5C\uC0C1\uB2E8\uC5D0 \uD3EC\uCEE4\uC2A4 \uC2DC \uBA85\uD655\uD788 \uB4DC\uB7EC\uB098\uB294 \uAC74\uB108\uB6F0\uAE30 \uB9C1\uD06C\uB97C \uBC30\uCE58\uD574 \uD0A4\uBCF4\uB4DC \uC0AC\uC6A9\uC790\uAC00 \uBA54\uC778 \uCF58\uD150\uCE20 \uB79C\uB4DC\uB9C8\uD06C\uB85C \uBC14\uB85C \uC774\uB3D9\uD560 \uC218 \uC788\uAC8C \uAD6C\uD604\uD558\uC138\uC694."
31613
+ },
31614
+ en: {
31615
+ definition: "An anchor placed at the very start of a page that lets keyboard and screen-reader users bypass repeated header navigation and jump straight to the main content landmark. It can stay visually hidden until focused, when it must become clearly visible.",
31616
+ example: 'Pressing Tab upon entering a documentation page reveals a "Skip to main content" link at the top corner that moves focus directly to the main landmark.',
31617
+ promptSnippet: "Place a skip link as the first focusable control in the page that becomes visibly styled on :focus-visible and moves keyboard focus directly to the main content region."
31618
+ }
31619
+ }
31620
+ },
31621
+ breadcrumb: {
31622
+ aliases: {
31623
+ ko: ["\uC774\uB3D9 \uACBD\uB85C \uD0D0\uC0C9", "\uACBD\uB85C \uD45C\uC2DC\uC904", "\uBE75 \uBD80\uC2A4\uB7EC\uAE30 \uD0D0\uC0C9"],
31624
+ en: ["breadcrumbs", "breadcrumb trail", "hierarchy path"]
31625
+ },
31626
+ text: {
31627
+ ko: {
31628
+ definition: "\uD604\uC7AC \uD654\uBA74\uC774 \uACC4\uCE35 \uAD6C\uC870\uC758 \uC5B4\uB290 \uB2E8\uACC4\uC5D0 \uC788\uB294\uC9C0 \uC0C1\uC704 \uD3F4\uB354\uB098 \uCE74\uD14C\uACE0\uB9AC\uB97C \uC21C\uC11C\uB300\uB85C \uBCF4\uC5EC \uC8FC\uB294 \uBCF4\uC870 \uD0D0\uC0C9 \uACBD\uB85C\uC785\uB2C8\uB2E4. \uC0AC\uC6A9\uC790\uAC00 \uC804\uCCB4 \uBA54\uB274\uB97C \uB2E4\uC2DC \uC5F4\uC9C0 \uC54A\uACE0\uB3C4 \uC6D0\uD558\uB294 \uC0C1\uC704 \uB2E8\uACC4\uB85C \uD55C \uBC88\uC5D0 \uB418\uB3CC\uC544\uAC08 \uC218 \uC788\uAC8C \uB3D5\uC2B5\uB2C8\uB2E4.",
31629
+ example: '\uBB38\uC11C \uC0C1\uC138 \uD654\uBA74 \uC0C1\uB2E8\uC5D0 "\uD648 > \uAC00\uC774\uB4DC > \uC131\uB2A5" \uACBD\uB85C\uB97C nav[aria-label]\uACFC \uBAA9\uB85D \uAD6C\uC870\uB85C \uD45C\uC2DC\uD558\uACE0, \uD604\uC7AC \uD56D\uBAA9\uC5D0\uB294 aria-current="page"\uB97C \uBD80\uC5EC\uD558\uBA70 \uC881\uC740 \uD654\uBA74\uC5D0\uC11C\uB294 \uC911\uAC04 \uB2E8\uACC4\uB97C \uC0DD\uB7B5\uD574 \uC904 \uB118\uCE68\uC744 \uB9C9\uC2B5\uB2C8\uB2E4.',
31630
+ promptSnippet: '\uACC4\uCE35\uD615 \uD398\uC774\uC9C0\uB098 \uD3F4\uB354 \uAD6C\uC870 \uC0C1\uB2E8\uC5D0 \uC0C1\uC704 \uACBD\uB85C\uB97C \uC5F0\uACB0\uD558\uB294 \uBE0C\uB808\uB4DC\uD06C\uB7FC \uB0B4\uBE44\uAC8C\uC774\uC158\uC744 \uC81C\uACF5\uD558\uACE0, \uD604\uC7AC \uD56D\uBAA9\uC5D0\uB294 aria-current="page"\uB97C \uC9C0\uC815\uD558\uBA70 \uC881\uC740 \uD3ED\uC5D0\uC11C\uB294 \uC911\uAC04 \uACBD\uB85C\uB97C \uC548\uC804\uD558\uAC8C \uCD95\uC57D\uD558\uC138\uC694.'
31631
+ },
31632
+ en: {
31633
+ definition: "A secondary navigation trail showing a user\u2019s position within a hierarchy of categories or folders. It lets users jump directly back to any parent level without retracing multiple back steps.",
31634
+ example: 'A workspace folder view renders semantic breadcrumb links inside a labeled nav element, marks the active leaf with aria-current="page", and collapses middle segments on narrow screens.',
31635
+ promptSnippet: 'Implement hierarchical navigation paths with a labeled nav breadcrumb list, linking ancestor levels, marking the current item with aria-current="page", and safely truncating middle items in narrow layouts.'
31636
+ }
31637
+ }
31638
+ },
31639
+ tooltip: {
31640
+ aliases: {
31641
+ ko: ["\uB9D0\uD48D\uC120 \uC548\uB0B4", "\uBD80\uC5F0 \uC124\uBA85 \uD31D\uC5C5", "\uD234\uD301 \uB3C4\uC6C0\uB9D0"],
31642
+ en: ["tooltips", "hint popover", "accessible tooltip"]
31643
+ },
31644
+ text: {
31645
+ ko: {
31646
+ definition: "\uC544\uC774\uCF58 \uBC84\uD2BC\uC774\uB098 \uCD95\uC57D\uB41C \uB808\uC774\uBE14 \uC704\uC5D0 \uB9C8\uC6B0\uC2A4\uB97C \uC62C\uB9AC\uAC70\uB098 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uAC00 \uBA38\uBB3C \uB54C \uC9E7\uC740 \uBCF4\uC870 \uC124\uBA85\uC744 \uB744\uC6B0\uB294 \uC791\uC740 \uC624\uBC84\uB808\uC774\uC785\uB2C8\uB2E4. \uAE34 \uBCF8\uBB38\uC774\uB098 \uD544\uC218 \uC870\uC791 \uBC84\uD2BC\uC740 \uD234\uD301 \uC548\uC5D0 \uC228\uAE30\uC9C0 \uC54A\uACE0 \uD654\uBA74\uC5D0 \uC9C1\uC811 \uB450\uAC70\uB098 \uBCC4\uB3C4 \uD328\uB110\uB85C \uBD84\uB9AC\uD569\uB2C8\uB2E4.",
31647
+ example: '\uC544\uC774\uCF58 \uC804\uC6A9 \uBCF5\uC0AC \uBC84\uD2BC\uC5D0 hover\uC640 focus-visible \uBAA8\uB450\uC5D0\uC11C \uC5F4\uB9AC\uB294 \uC9E7\uC740 \uD14D\uC2A4\uD2B8 \uD234\uD301\uC744 role="tooltip"\uACFC aria-describedby\uB85C \uC5F0\uACB0\uD558\uACE0 Escape \uD0A4\uB85C \uC989\uC2DC \uB2EB\uC744 \uC218 \uC788\uAC8C \uD569\uB2C8\uB2E4.',
31648
+ promptSnippet: "\uC544\uC774\uCF58\uC774\uB098 \uC57D\uC5B4 \uB808\uC774\uBE14\uC758 \uBCF4\uC870 \uC124\uBA85\uC5D0\uB9CC \uD234\uD301\uC744 \uC0AC\uC6A9\uD558\uACE0, \uB9C8\uC6B0\uC2A4 hover\uBFD0 \uC544\uB2C8\uB77C \uD0A4\uBCF4\uB4DC focus\uC5D0\uC11C\uB3C4 \uB098\uD0C0\uB098\uBA70 Escape\uB85C \uB2EB\uD788\uACE0 aria-describedby\uB85C \uC5F0\uACB0\uB418\uB3C4\uB85D \uAD6C\uD604\uD558\uC138\uC694."
31649
+ },
31650
+ en: {
31651
+ definition: "A brief contextual overlay that reveals a short text label or hint when a user hovers over or focuses on a control. Essential instructions, interactive links, and long prose belong outside tooltips so touch and keyboard users are not blocked.",
31652
+ example: "An icon-only toolbar action reveals a concise hint tooltip on both pointer hover and keyboard focus via aria-describedby, dismissing immediately on Escape.",
31653
+ promptSnippet: "Use tooltips strictly for concise supplementary hints, triggering on both hover and keyboard focus, linking the text via aria-describedby, and closing on Escape without placing interactive controls inside."
31654
+ }
31655
+ }
31656
+ },
31657
+ "tab-panel": {
31658
+ aliases: {
31659
+ ko: ["\uD0ED \uC804\uD658 \uD328\uB110", "\uD0ED UI", "\uD0ED \uCF58\uD150\uCE20 \uC601\uC5ED"],
31660
+ en: ["tabs panel", "tabbed interface", "tablist tabpanel"]
31661
+ },
31662
+ text: {
31663
+ ko: {
31664
+ definition: "\uAC19\uC740 \uC601\uC5ED \uC548\uC5D0\uC11C \uC8FC\uC81C\uB098 \uBCF4\uAE30 \uBC29\uC2DD\uC744 \uC804\uD658\uD558\uB294 \uD0ED \uBAA9\uB85D(tablist)\uACFC \uC120\uD0DD\uB41C \uD0ED\uC5D0 \uB300\uC751\uD558\uB294 \uCF58\uD150\uCE20 \uC601\uC5ED(tabpanel)\uC73C\uB85C \uC774\uB8E8\uC5B4\uC9C4 UI(User Interface) \uD328\uD134\uC785\uB2C8\uB2E4. \uC0C8 \uACBD\uB85C\uB85C \uC774\uB3D9\uD558\uB294 \uB9C1\uD06C \uD0D0\uC0C9\uACFC \uAD6C\uBD84\uD574 \uD55C \uD654\uBA74 \uB0B4 \uCF58\uD150\uCE20 \uC804\uD658\uC5D0 \uC4F0\uBA70 \uC88C\uC6B0 \uBC29\uD5A5\uD0A4 \uC774\uB3D9\uACFC \uC120\uD0DD \uC0C1\uD0DC\uB97C \uBA85\uD655\uD788 \uAD00\uB9AC\uD569\uB2C8\uB2E4.",
31665
+ example: '\uC124\uC815 \uD654\uBA74\uC5D0\uC11C "\uC77C\uBC18", "\uC54C\uB9BC", "\uBCF4\uC548" \uD0ED\uC744 role="tablist", role="tab", role="tabpanel"\uB85C \uC5F0\uACB0\uD574 \uC88C\uC6B0 \uBC29\uD5A5\uD0A4\uB85C \uD3EC\uCEE4\uC2A4\uB97C \uC62E\uAE30\uACE0 \uC120\uD0DD\uB41C \uD328\uB110\uB9CC \uD45C\uC2DC\uD569\uB2C8\uB2E4.',
31666
+ promptSnippet: '\uD55C \uD654\uBA74 \uC548\uC5D0\uC11C \uBCF4\uAE30\uB098 \uC139\uC158\uC744 \uC804\uD658\uD560 \uB54C\uB294 role="tablist", role="tab", role="tabpanel"\uACFC aria-selected\xB7aria-controls \uC5F0\uACB0\uC744 \uAC16\uCD94\uACE0 \uBC29\uD5A5\uD0A4 \uD0D0\uC0C9\uC774 \uB3D9\uC791\uD558\uB294 \uD0ED \uD328\uB110\uC744 \uAD6C\uD604\uD558\uC138\uC694.'
31667
+ },
31668
+ en: {
31669
+ definition: "A User Interface (UI) pattern pairing a set of tab controls (tablist) with switchable content regions (tabpanel) inside the same view. Unlike page-navigation links, tabs toggle peer sections in place and support arrow-key switching with explicit selected state.",
31670
+ example: 'A metrics drawer pairs "Overview", "Funnel", and "Raw Table" tabs using role="tablist", role="tab", and role="tabpanel" linked by aria-controls so arrow keys switch panels cleanly.',
31671
+ promptSnippet: 'Build tab interfaces for switching in-page views with proper role="tablist", role="tab", and role="tabpanel" attributes, synchronized aria-selected/aria-controls bindings, and keyboard arrow-key navigation.'
31672
+ }
31673
+ }
31674
+ },
31675
+ "faceted-filter": {
31676
+ aliases: {
31677
+ ko: ["\uB2E4\uC911 \uC18D\uC131 \uD544\uD130", "\uC870\uAC74\uBCC4 \uD544\uD130 \uCE69", "\uC18D\uC131 \uD544\uD130\uB9C1"],
31678
+ en: ["faceted search", "multi-attribute filter", "filter facets"]
31679
+ },
31680
+ text: {
31681
+ ko: {
31682
+ definition: "\uCE74\uD14C\uACE0\uB9AC, \uC0C1\uD0DC, \uAC00\uACA9\uB300 \uB4F1 \uC5EC\uB7EC \uC18D\uC131 \uCD95\uC744 \uB3D9\uC2DC\uC5D0 \uC870\uD569\uD574 \uBAA9\uB85D\uC744 \uC881\uD600 \uAC00\uB294 \uD544\uD130 \uBC29\uC2DD\uC785\uB2C8\uB2E4. \uD604\uC7AC \uC801\uC6A9 \uC911\uC778 \uC870\uAC74\uC744 \uBC30\uC9C0\uB098 \uCE69\uC73C\uB85C \uB4DC\uB7EC\uB0B4\uACE0 \uAC1C\uBCC4 \uD574\uC81C \uBC0F \uC804\uCCB4 \uCD08\uAE30\uD654 \uACBD\uB85C\uB97C \uD568\uAED8 \uC81C\uACF5\uD569\uB2C8\uB2E4.",
31683
+ example: "\uD15C\uD50C\uB9BF \uD0D0\uC0C9\uAE30\uC5D0\uC11C \uC601\uC5ED, \uB09C\uC774\uB3C4, \uC9C0\uC6D0 \uD615\uC2DD \uD544\uD130\uB97C \uB2E4\uC911 \uC120\uD0DD\uD558\uBA74 \uC77C\uCE58\uD558\uB294 \uD56D\uBAA9 \uC218\uC640 \uC120\uD0DD\uB41C \uC870\uAC74 \uCE69\uC774 \uC989\uC2DC \uAC31\uC2E0\uB418\uACE0 \uAC01 \uCE69 \uBC84\uD2BC\uC73C\uB85C \uC870\uAC74\uC744 \uD558\uB098\uC529 \uC9C0\uC6B8 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
31684
+ promptSnippet: "\uC5EC\uB7EC \uC18D\uC131 \uC870\uAC74\uC744 \uC870\uD569\uD558\uB294 \uBAA9\uB85D\uC5D0\uB294 \uC120\uD0DD \uAC00\uB2A5\uD55C \uD328\uC2EF \uC635\uC158\uACFC \uACB0\uACFC \uAC1C\uC218, \uD604\uC7AC \uC801\uC6A9\uB41C \uD544\uD130 \uCE69, \uADF8\uB9AC\uACE0 \uAC1C\uBCC4 \uD574\uC81C\xB7\uC804\uCCB4 \uCD08\uAE30\uD654 \uBC84\uD2BC\uC744 \uD568\uAED8 \uC81C\uACF5\uD558\uC138\uC694."
31685
+ },
31686
+ en: {
31687
+ definition: "A filtering pattern that narrows a collection across multiple independent attributes\u2014such as category, status, or format\u2014at the same time. Showing matching counts and removable active filter chips prevents users from losing track of applied constraints.",
31688
+ example: "A catalog directory lets users combine domain and format checkboxes while updating result counts and displaying removable active filter chips with a single reset action.",
31689
+ promptSnippet: "Design multi-attribute filtering with clear facet groups, live match counts when feasible, removable active filter chips, and an accessible clear-all action."
31690
+ }
31691
+ }
31692
+ },
31693
+ pagination: {
31694
+ aliases: {
31695
+ ko: ["\uD398\uC774\uC9C0\uB124\uC774\uC158", "\uD398\uC774\uC9C0 \uBD84\uD560 \uD0D0\uC0C9", "\uCABD \uB098\uB204\uAE30"],
31696
+ en: ["page navigation", "paged list", "page controls"]
31697
+ },
31698
+ text: {
31699
+ ko: {
31700
+ definition: "\uB9CE\uC740 \uD56D\uBAA9\uC744 \uD55C \uBC88\uC5D0 \uBAA8\uB450 \uADF8\uB9AC\uC9C0 \uC54A\uACE0 \uC77C\uC815 \uB2E8\uC704 \uD398\uC774\uC9C0\uB85C \uB098\uB204\uC5B4 \uD0D0\uC0C9\uD558\uAC8C \uD558\uB294 \uBC29\uC2DD\uC785\uB2C8\uB2E4. \uC0AC\uC6A9\uC790\uAC00 \uD604\uC7AC \uC704\uCE58\uC640 \uC804\uCCB4 \uD398\uC774\uC9C0 \uADDC\uBAA8\uB97C \uAC00\uB2A0\uD558\uACE0 \uD2B9\uC815 \uD398\uC774\uC9C0\uB098 \uC774\uC804\xB7\uB2E4\uC74C \uD398\uC774\uC9C0\uB85C \uC608\uCE21 \uAC00\uB2A5\uD558\uAC8C \uC774\uB3D9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
31701
+ example: '\uAC80\uC0C9 \uACB0\uACFC 240\uAC74\uC744 \uD398\uC774\uC9C0\uB2F9 20\uAC74\uC529 \uB098\uB204\uC5B4 \uC774\uC804/\uB2E4\uC74C \uBC84\uD2BC\uACFC \uD604\uC7AC \uD398\uC774\uC9C0 \uD45C\uC2DC(aria-current="page")\uB97C \uC81C\uACF5\uD558\uACE0, \uBAA9\uB85D \uB05D\uC758 \uD478\uD130 \uB9C1\uD06C\uC5D0\uB3C4 \uC27D\uAC8C \uB2FF\uC744 \uC218 \uC788\uAC8C \uD569\uB2C8\uB2E4.',
31702
+ promptSnippet: '\uB300\uB7C9 \uBAA9\uB85D\uC5D0\uC11C \uD56D\uBAA9 \uC704\uCE58 \uCC38\uC870\uB098 \uD478\uD130 \uC811\uADFC\uC774 \uC911\uC694\uD558\uB2E4\uBA74 \uD398\uC774\uC9C0 \uD06C\uAE30, \uD604\uC7AC \uD398\uC774\uC9C0 \uD45C\uC2DC(aria-current="page"), \uC774\uC804/\uB2E4\uC74C \uBE44\uD65C\uC131 \uACBD\uACC4 \uCC98\uB9AC\uAC00 \uBA85\uD655\uD55C \uD398\uC774\uC9C0 \uB098\uB204\uAE30\uB97C \uAD6C\uD604\uD558\uC138\uC694.'
31703
+ },
31704
+ en: {
31705
+ definition: "Dividing a large result set into fixed-size pages with explicit controls to move between them. Compared to endless streams, pagination preserves footer access and lets users bookmark or revisit specific positions.",
31706
+ example: 'A document directory displays 20 records per page with disabled boundary buttons on the first and last pages and marks the active page control using aria-current="page".',
31707
+ promptSnippet: 'Implement pagination controls with predictable page size, boundary-disabled previous/next buttons, and aria-current="page" on the active page indicator.'
31708
+ }
31709
+ }
31710
+ },
31711
+ "bottom-sheet": {
31712
+ aliases: {
31713
+ ko: ["\uBC14\uD140\uC2DC\uD2B8", "\uD558\uB2E8 \uC11C\uB78D \uC2DC\uD2B8", "\uBAA8\uBC14\uC77C \uD558\uB2E8 \uD328\uB110", "\uC2AC\uB77C\uC774\uB4DC \uC5C5 \uC2DC\uD2B8"],
31714
+ en: ["bottom sheet", "bottom drawer", "mobile action sheet", "slide-up sheet"]
31715
+ },
31716
+ text: {
31717
+ ko: {
31718
+ definition: "\uD654\uBA74 \uD558\uB2E8\uC5D0\uC11C \uC704\uB85C \uC62C\uB77C\uC624\uBA70 \uBCF4\uC870 \uC120\uD0DD\uC9C0, \uD544\uD130, \uC0C1\uC138 \uC815\uBCF4, \uD655\uC778 \uC791\uC5C5\uC744 \uD55C \uC190 \uB2FF\uB294 \uC601\uC5ED\uC5D0 \uC81C\uACF5\uD558\uB294 \uC2DC\uD2B8 UI \uD328\uD134\uC785\uB2C8\uB2E4. \uBC30\uACBD\uC744 \uAC00\uB9AC\uC9C0 \uC54A\uB294 \uBE44\uBAA8\uB2EC \uD615\uD0DC\uC640 \uBC30\uACBD \uC870\uC791\uC744 \uB9C9\uB294 \uBAA8\uB2EC \uD615\uD0DC\uB97C \uC791\uC5C5 \uC131\uACA9\uC5D0 \uB9DE\uCDB0 \uAD6C\uBD84\uD574 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.",
31719
+ example: "\uBAA8\uBC14\uC77C \uC608\uC57D \uD654\uBA74\uC5D0\uC11C \uB0A0\uC9DC\xB7\uC2DC\uAC04\uB300 \uC120\uD0DD \uC2DC\uD2B8\uB97C \uD654\uBA74 \uC544\uB798\uC5D0\uC11C \uB744\uC6B0\uACE0, \uC0C1\uB2E8 \uB4DC\uB798\uADF8 \uD578\uB4E4\uACFC \uB2EB\uAE30 \uBC84\uD2BC\uC744 \uD568\uAED8 \uB450\uC5B4 \uB4DC\uB798\uADF8\uC640 \uD0A4\uBCF4\uB4DC\xB7\uBC84\uD2BC \uC870\uC791\uC744 \uBAA8\uB450 \uC9C0\uC6D0\uD569\uB2C8\uB2E4.",
31720
+ promptSnippet: "\uBAA8\uBC14\uC77C \uC911\uC2EC \uC120\uD0DD\uC774\uB098 \uD544\uD130 \uD655\uC778\uC5D0\uB294 \uBC14\uD140 \uC2DC\uD2B8\uB97C \uAD6C\uD604\uD558\uACE0, \uBAA8\uB2EC \uC2DC\uD2B8\uB77C\uBA74 \uD3EC\uCEE4\uC2A4 \uAD00\uB9AC\xB7Escape \uB2EB\uAE30\xB7\uBC30\uACBD \uC2A4\uD06C\uB864 \uC7A0\uAE08\uC744 \uC801\uC6A9\uD558\uBA70 \uB4DC\uB798\uADF8 \uD578\uB4E4 \uC678\uC5D0 \uBC84\uD2BC\uC73C\uB85C\uB3C4 \uB2EB\uACE0 \uD558\uB2E8 \uC548\uC804 \uC601\uC5ED(safe-area)\uC744 \uD655\uBCF4\uD558\uC138\uC694."
31721
+ },
31722
+ en: {
31723
+ definition: "A surface anchored to the bottom edge of the viewport that slides upward to present secondary choices, filters, or quick confirmations within easy thumb reach. It can be non-modal for persistent tools or modal when backing interaction must be paused.",
31724
+ example: "A mobile booking page opens a slide-up time-slot picker with a visible drag handle, explicit close button, and bottom safe-area clearance.",
31725
+ promptSnippet: "Implement a bottom sheet with explicit open/close controls alongside optional drag dismissal, trap focus and lock background scroll when modal, support Escape dismissal, and respect bottom safe-area insets."
31726
+ }
31727
+ }
31728
+ },
31729
+ "segmented-control": {
31730
+ aliases: {
31731
+ ko: ["\uC138\uADF8\uBA3C\uD2F0\uB4DC \uCEE8\uD2B8\uB864", "\uBD84\uD560 \uC120\uD0DD \uBC84\uD2BC", "\uC54C\uC57D\uD615 \uC804\uD658 \uD0ED", "\uB2E8\uC77C \uC120\uD0DD \uD1A0\uAE00 \uADF8\uB8F9"],
31732
+ en: ["segmented control", "segmented toggle", "pill switcher", "mutually exclusive toggle"]
31733
+ },
31734
+ text: {
31735
+ ko: {
31736
+ definition: "2~5\uAC1C \uB0B4\uC678\uC758 \uC11C\uB85C \uBC30\uD0C0\uC801\uC778 \uBCF4\uAE30 \uBAA8\uB4DC\uB098 \uC9E7\uC740 \uC635\uC158\uC744 \uD558\uB098\uC758 \uC5F0\uACB0\uB41C \uB9C9\uB300 \uC548\uC5D0 \uB098\uB780\uD788 \uBC30\uCE58\uD574 \uC989\uC2DC \uC804\uD658\uD558\uB294 \uC120\uD0DD \uCEE8\uD2B8\uB864\uC785\uB2C8\uB2E4. \uD398\uC774\uC9C0 \uC774\uB3D9 \uB9C1\uD06C\uB098 \uB9CE\uC740 \uD56D\uBAA9\uC744 \uB2F4\uB294 \uD0ED \uBAA9\uB85D\uBCF4\uB2E4 \uBE60\uB974\uACE0 \uB300\uB4F1\uD55C \uB2E8\uC77C \uC635\uC158 \uC804\uD658\uC5D0 \uC801\uD569\uD569\uB2C8\uB2E4.",
31737
+ example: "\uC694\uAE08\uC81C \uCE74\uB4DC \uC0C1\uB2E8\uC5D0 [\uC6D4\uAC04 \uACB0\uC81C | \uC5F0\uAC04 \uACB0\uC81C] \uC138\uADF8\uBA3C\uD2B8 \uCEE8\uD2B8\uB864\uC744 \uBC30\uCE58\uD574 \uC120\uD0DD \uC2DC \uD65C\uC131 \uBC30\uACBD \uD544\uC774 \uBD80\uB4DC\uB7FD\uAC8C \uC774\uB3D9\uD558\uBA70 \uAC00\uACA9 \uD45C\uC2DC\uB97C \uC989\uC2DC \uBC14\uAFC9\uB2C8\uB2E4.",
31738
+ promptSnippet: '\uC6D4\uAC04/\uC5F0\uAC04 \uC804\uD658\uC774\uB098 \uBAA9\uB85D/\uACA9\uC790 \uBCF4\uAE30 \uC804\uD658\uCC98\uB7FC \uC9E7\uC740 \uBC30\uD0C0\uC801 \uC635\uC158\uC5D0\uB294 \uC138\uADF8\uBA3C\uD2B8 \uCEE8\uD2B8\uB864\uC744 \uC0AC\uC6A9\uD558\uACE0, role="radiogroup" \uB610\uB294 \uB20C\uB9BC \uC0C1\uD0DC(aria-pressed)\uC640 \uD0A4\uBCF4\uB4DC \uBC29\uD5A5\uD0A4 \uC774\uB3D9\xB7\uCDA9\uBD84\uD55C \uC120\uD0DD \uB300\uBE44\uB97C \uD568\uAED8 \uAD6C\uD604\uD558\uC138\uC694.'
31739
+ },
31740
+ en: {
31741
+ definition: "A linear set of two to five mutually exclusive segments inside a shared track that immediately switches a view mode or setting. Unlike full tab strips or navigation links, it works best for concise, peer options.",
31742
+ example: "A pricing header pairs [Monthly | Annual] in a segmented control with a sliding active indicator that toggles displayed billing amounts.",
31743
+ promptSnippet: "Build a segmented control for 2\u20135 mutually exclusive modes using clear active/inactive contrast, accessible radiogroup or pressed semantics, and keyboard arrow or tab navigation."
31744
+ }
31745
+ }
31746
+ },
31747
+ "stepper-input": {
31748
+ aliases: {
31749
+ ko: ["\uC218\uB7C9 \uC2A4\uD14C\uD37C", "\uC99D\uAC10 \uBC84\uD2BC \uC785\uB825", "\uD50C\uB7EC\uC2A4 \uB9C8\uC774\uB108\uC2A4 \uC785\uB825", "\uC22B\uC790 \uC870\uC808\uAE30"],
31750
+ en: ["quantity stepper", "number stepper", "increment decrement input", "counter input"]
31751
+ },
31752
+ text: {
31753
+ ko: {
31754
+ definition: "\uAC10\uC18C(-)\uC640 \uC99D\uAC00(+) \uBC84\uD2BC\uC744 \uC22B\uC790 \uD45C\uC2DC \uB610\uB294 \uC785\uB825 \uCE78 \uC591\uC606\uC5D0 \uBC30\uCE58\uD574 \uC791\uC740 \uBC94\uC704\uC758 \uC815\uC218\uB098 \uC218\uB7C9\uC744 \uD55C \uB2E8\uACC4\uC529 \uC815\uD655\uD558\uAC8C \uC870\uC808\uD558\uB294 UI \uCEE8\uD2B8\uB864\uC785\uB2C8\uB2E4. \uCD5C\uC18C\xB7\uCD5C\uB300 \uD55C\uB3C4\uC5D0 \uB3C4\uB2EC\uD558\uBA74 \uD574\uB2F9 \uBC29\uD5A5 \uBC84\uD2BC\uC744 \uBE44\uD65C\uC131\uD654\uD558\uACE0 \uC9C1\uC811 \uC785\uB825 \uC2DC\uC5D0\uB3C4 \uBC94\uC704\uB97C \uAC80\uC99D\uD569\uB2C8\uB2E4.",
31755
+ example: "\uC7A5\uBC14\uAD6C\uB2C8 \uC0C1\uD488 \uC218\uB7C9\uC774\uB098 \uD589\uC0AC \uD2F0\uCF13 \uB9E4\uC218 \uC785\uB825\uC5D0\uC11C [-] [2] [+] \uC2A4\uD14C\uD37C\uB97C \uB450\uACE0, 1 \uBBF8\uB9CC\uC774\uB098 \uC7AC\uACE0 \uC0C1\uD55C \uCD08\uACFC \uC785\uB825 \uC2DC \uBC84\uD2BC\uC744 \uBE44\uD65C\uC131\uD654\uD558\uACE0 \uC0AC\uC720\uB97C \uC548\uB0B4\uD569\uB2C8\uB2E4.",
31756
+ promptSnippet: '\uC218\uB7C9\xB7\uC778\uC6D0 \uC870\uC808\uC5D0\uB294 \uCD5C\uC18C(min)\xB7\uCD5C\uB300(max)\xB7\uC99D\uAC10 \uB2E8\uC704(step)\uC640 \uACBD\uACC4 \uBE44\uD65C\uC131\uD654 \uC0C1\uD0DC, \uBC84\uD2BC\uBCC4 \uBA85\uD655\uD55C aria-label("\uC218\uB7C9 \uAC10\uC18C", "\uC218\uB7C9 \uC99D\uAC00")\uC744 \uAC16\uCD98 \uC2A4\uD14C\uD37C \uC785\uB825\uC744 \uAD6C\uD604\uD558\uC138\uC694.'
31757
+ },
31758
+ en: {
31759
+ definition: "A compact numeric control pairing decrement (-) and increment (+) buttons around a readout or input so users can adjust small quantities accurately step by step. Boundary values disable the corresponding button and clamp direct edits.",
31760
+ example: "An event checkout ticket selector provides [-], numeric field, and [+] buttons that disable minus at 1 and plus at the per-order limit.",
31761
+ promptSnippet: "Build a stepper input enforcing min, max, and step bounds with disabled boundary buttons, clear accessible labels on increment/decrement controls, and safe validation on direct keyboard edits."
31762
+ }
31763
+ }
31764
+ },
31765
+ "combobox": {
31766
+ aliases: {
31767
+ ko: ["\uC790\uB3D9\uC644\uC131 \uC120\uD0DD\uCC3D", "\uAC80\uC0C9\uD615 \uB4DC\uB86D\uB2E4\uC6B4", "\uC785\uB825\uD615 \uC140\uB809\uD2B8", "\uCF64\uBCF4 \uBC15\uC2A4"],
31768
+ en: ["autocomplete dropdown", "searchable select", "combo box", "filterable listbox"]
31769
+ },
31770
+ text: {
31771
+ ko: {
31772
+ definition: "\uD14D\uC2A4\uD2B8 \uC785\uB825 \uD544\uB4DC\uC640 \uC120\uD0DD \uAC00\uB2A5\uD55C \uC635\uC158 \uBAA9\uB85D(listbox)\uC744 \uACB0\uD569\uD574, \uC0AC\uC6A9\uC790\uAC00 \uAC80\uC0C9\uC5B4\uB97C \uC785\uB825\uD574 \uD6C4\uBCF4\uB97C \uC881\uD788\uACE0 \uBC29\uD5A5\uD0A4\uC640 Enter\uB85C \uD56D\uBAA9\uC744 \uACE0\uB97C \uC218 \uC788\uAC8C \uD558\uB294 \uBCF5\uD569 \uC785\uB825 \uCEE8\uD2B8\uB864\uC785\uB2C8\uB2E4. \uD56D\uBAA9 \uC218\uAC00 \uC801\uC740 \uB2E8\uC21C \uC120\uD0DD\uC5D0\uB294 \uB124\uC774\uD2F0\uBE0C select\uB97C \uC6B0\uC120\uD558\uACE0 \uD6C4\uBCF4\uAC00 \uB9CE\uAC70\uB098 \uAC80\uC0C9\uC774 \uD544\uC694\uD560 \uB54C \uC0AC\uC6A9\uD569\uB2C8\uB2E4.",
31773
+ example: "\uC791\uC5C5 \uB2F4\uB2F9\uC790 \uBC30\uC815 \uCE78\uC5D0\uC11C \uC774\uB984 \uC77C\uBD80\uB97C \uD0C0\uC774\uD551\uD558\uBA74 \uC77C\uCE58\uD558\uB294 \uD300\uC6D0 \uBAA9\uB85D\uC774 \uC544\uB798\uB85C \uC5F4\uB9AC\uACE0, ArrowDown/ArrowUp\uACFC Enter\uB85C \uC120\uD0DD\uD558\uBA70 Escape\uB85C \uBAA9\uB85D\uC744 \uB2EB\uC2B5\uB2C8\uB2E4.",
31774
+ promptSnippet: '\uD6C4\uBCF4\uAC00 \uB9CE\uC740 \uAC80\uC0C9\uD615 \uC120\uD0DD\uC5D0\uB294 role="combobox", aria-expanded, aria-controls, aria-activedescendant\uB97C \uAC16\uCD98 \uCF64\uBCF4\uBC15\uC2A4\uB97C \uAD6C\uD604\uD558\uACE0 \uBC29\uD5A5\uD0A4 \uD0D0\uC0C9\xB7Enter \uD655\uC815\xB7Escape \uB2EB\uAE30\uC640 \uACB0\uACFC \uC5C6\uC74C \uC0C1\uD0DC\uB97C \uC9C0\uC6D0\uD558\uC138\uC694.'
31775
+ },
31776
+ en: {
31777
+ definition: "A composite widget pairing a text input with a popup listbox so users can filter long option sets by typing and choose an item via pointer or keyboard. For short fixed lists, a native select remains simpler and more reliable.",
31778
+ example: "An issue assignee field filters matching teammates as the user types, supports ArrowUp/ArrowDown highlighting, confirms on Enter, and closes the popup on Escape.",
31779
+ promptSnippet: 'Implement an accessible combobox with role="combobox", aria-expanded, aria-controls, and aria-activedescendant, supporting keyboard arrow navigation, Enter selection, Escape dismissal, and a clear no-matches state.'
31780
+ }
31781
+ }
31782
+ },
31783
+ "indeterminate-checkbox": {
31784
+ aliases: {
31785
+ ko: ["\uBD80\uBD84 \uC120\uD0DD \uCCB4\uD06C\uBC15\uC2A4", "\uD63C\uD569 \uC0C1\uD0DC \uCCB4\uD06C\uBC15\uC2A4", "\uC804\uCCB4 \uC120\uD0DD \uC911\uAC04 \uC0C1\uD0DC", "\uD2B8\uB9AC \uCCB4\uD06C\uBC15\uC2A4"],
31786
+ en: ["mixed state checkbox", "tri-state checkbox", "partial selection checkbox", "indeterminate state"]
31787
+ },
31788
+ text: {
31789
+ ko: {
31790
+ definition: '\uC0C1\uC704 \uADF8\uB8F9\uC758 \uD558\uC704 \uCCB4\uD06C\uBC15\uC2A4 \uAC00\uC6B4\uB370 \uC77C\uBD80\uB9CC \uC120\uD0DD\uB418\uC5C8\uC744 \uB54C \uCCB4\uD06C(true)\uB3C4 \uD574\uC81C(false)\uB3C4 \uC544\uB2CC \uC911\uAC04(- \uB610\uB294 \uAC00\uB85C\uC120) \uC0C1\uD0DC\uB97C \uD45C\uC2DC\uD558\uB294 \uCCB4\uD06C\uBC15\uC2A4 \uC0C1\uD0DC\uC785\uB2C8\uB2E4. \uBE0C\uB77C\uC6B0\uC800 DOM \uC694\uC18C\uC758 indeterminate \uC18D\uC131\uACFC \uC2A4\uD06C\uB9B0 \uB9AC\uB354\uC6A9 aria-checked="mixed"\uB97C \uD568\uAED8 \uAD00\uB9AC\uD574\uC57C \uC758\uBBF8\uAC00 \uC804\uB2EC\uB429\uB2C8\uB2E4.',
31791
+ example: "\uD3F4\uB354 \uAD8C\uD55C \uBAA9\uB85D\uC774\uB098 \uB300\uB7C9 \uC791\uC5C5 \uD14C\uC774\uBE14\uC5D0\uC11C \uD558\uC704 \uD56D\uBAA9 5\uAC1C \uC911 2\uAC1C\uB9CC \uC120\uD0DD\uB418\uBA74 \uC0C1\uB2E8 \uC804\uCCB4 \uC120\uD0DD \uCCB4\uD06C\uBC15\uC2A4\uAC00 \uC911\uAC04 \uC0C1\uD0DC\uB85C \uBC14\uB00C\uACE0, \uD55C \uBC88 \uD074\uB9AD \uC2DC \uC804\uCCB4 \uC120\uD0DD\uC73C\uB85C \uC804\uD658\uB429\uB2C8\uB2E4.",
31792
+ promptSnippet: '\uD558\uC704 \uD56D\uBAA9 \uC77C\uBD80\uB9CC \uC120\uD0DD\uB41C \uBD80\uBAA8 \uCCB4\uD06C\uBC15\uC2A4\uC5D0\uB294 DOM indeterminate \uD504\uB85C\uD37C\uD2F0\uC640 aria-checked="mixed"\uB97C \uB3D9\uAE30\uD654\uD574 \uC2DC\uAC01 \uD45C\uC2DC\uC640 \uBCF4\uC870\uAE30\uAE30 \uC0C1\uD0DC\uB97C \uC77C\uCE58\uC2DC\uD0A4\uACE0 \uD074\uB9AD \uC2DC \uC804\uCCB4 \uC120\uD0DD\xB7\uD574\uC81C \uC804\uD658 \uADDC\uCE59\uC744 \uC77C\uAD00\uB418\uAC8C \uC801\uC6A9\uD558\uC138\uC694.'
31793
+ },
31794
+ en: {
31795
+ definition: 'A third visual and semantic checkbox state used when only a subset of child items in a group is selected. Because HTML has no pure indeterminate attribute, both the DOM element\u2019s indeterminate property and aria-checked="mixed" must stay synchronized.',
31796
+ example: "In a file table with 2 of 5 rows checked, the header select-all checkbox displays a horizontal dash and toggles cleanly to all-checked when clicked.",
31797
+ promptSnippet: 'Synchronize the DOM checkbox indeterminate property and aria-checked="mixed" whenever a parent checkbox represents partial child selection, defining predictable toggle behavior between all and none.'
31798
+ }
31799
+ }
31800
+ },
31801
+ "sticky-header": {
31802
+ aliases: {
31803
+ ko: ["\uC2A4\uD2F0\uD0A4 \uD5E4\uB354", "\uC2A4\uD06C\uB864 \uACE0\uC815 \uBA38\uB9AC\uAE00", "\uACE0\uC815 \uC5F4 \uC81C\uBAA9", "\uADF8\uB8F9 \uACE0\uC815 \uD5E4\uB354"],
31804
+ en: ["sticky header", "pinned table header", "sticky group header", "frozen header"]
31805
+ },
31806
+ text: {
31807
+ ko: {
31808
+ definition: "\uAE34 \uD45C\uB098 \uADF8\uB8F9\uD654\uB41C \uBAA9\uB85D\uC744 \uC2A4\uD06C\uB864\uD560 \uB54C \uC5F4 \uC81C\uBAA9\uC774\uB098 \uD604\uC7AC \uADF8\uB8F9 \uC81C\uBAA9\uC774 \uCEE8\uD14C\uC774\uB108 \uC0C1\uB2E8\uC5D0 \uACE0\uC815\uB418\uC5B4 \uC0AC\uC6A9\uC790\uAC00 \uAC01 \uC5F4\uACFC \uAD6C\uAC04\uC758 \uB9E5\uB77D\uC744 \uC783\uC9C0 \uC54A\uAC8C \uB3D5\uB294 \uBC30\uCE58 \uAE30\uBC95\uC785\uB2C8\uB2E4. \uC0C1\uC704 \uC870\uC0C1 \uC694\uC18C\uC5D0 overflow: hidden\uC774 \uAC78\uB824 \uC788\uAC70\uB098 \uBD88\uD22C\uBA85 \uBC30\uACBD\xB7z-index \uAD6C\uBD84\uC774 \uC5C6\uC73C\uBA74 \uAC00\uB824\uC9C0\uAC70\uB098 \uBC30\uACBD \uAE00\uC790\uC640 \uACB9\uCCD0 \uBCF4\uC785\uB2C8\uB2E4.",
31809
+ example: "\uC9C0\uD45C \uBD84\uC11D \uD45C\uB97C \uC544\uB798\uB85C \uB0B4\uB9B4 \uB54C thead th\uC5D0 position: sticky; top: 0\uACFC \uBD88\uD22C\uBA85 \uBC30\uACBD, \uBBF8\uC138\uD55C \uACBD\uACC4\uC120\uC744 \uC8FC\uC5B4 \uB370\uC774\uD130 \uD589\uC774 \uD5E4\uB354 \uB4A4\uB85C \uC790\uC5F0\uC2A4\uB7FD\uAC8C \uC9C0\uB098\uAC00\uAC8C \uD569\uB2C8\uB2E4.",
31810
+ promptSnippet: "\uAE34 \uD45C\uB098 \uADF8\uB8F9 \uBAA9\uB85D\uC5D0\uB294 position: sticky\uC640 \uBD88\uD22C\uBA85 \uBC30\uACBD, \uC801\uC808\uD55C z-index, \uC870\uC0C1 overflow \uC81C\uC57D \uC810\uAC80\uC744 \uC801\uC6A9\uD55C \uACE0\uC815 \uD5E4\uB354\uB97C \uAD6C\uD604\uD558\uACE0 \uAC00\uB85C\xB7\uC138\uB85C \uC2A4\uD06C\uB864\uC774 \uD568\uAED8 \uC788\uC744 \uB54C \uC88C\uCE21 \uACE0\uC815 \uC5F4\uACFC\uC758 \uACB9\uCE68 \uC21C\uC11C\uB97C \uBA85\uD655\uD788 \uC7A1\uC73C\uC138\uC694."
31811
+ },
31812
+ en: {
31813
+ definition: "A CSS positioning pattern that keeps table column headers or section titles pinned to the top of a scrolling container so users retain context across long datasets. Sticky headers require opaque surfaces, proper z-index layering, and scrollable ancestors without clipping overflow: hidden.",
31814
+ example: "A metrics table pins its thead cells at top: 0 with an opaque surface and hairline bottom border so scrolling rows pass cleanly underneath.",
31815
+ promptSnippet: "Pin long table or section headers using position: sticky with an opaque surface, border separation, and verified ancestor overflow rules, setting higher z-index on corner cells when paired with frozen columns."
31816
+ }
31817
+ }
31818
+ }
31819
+ };
31820
+
31821
+ // ../../packages/catalog/src/glossary/engineering.ts
31822
+ var ENGINEERING_GLOSSARY_DATA = {
31823
+ debounce: {
31824
+ aliases: {
31825
+ ko: ["\uB514\uBC14\uC6B4\uC2F1", "\uC785\uB825 \uC9C0\uC5F0 \uD638\uCD9C", "\uD0C0\uC790 \uBA48\uCD98 \uB4A4 \uAC80\uC0C9", "\uC5F0\uC18D \uC785\uB825 \uBB36\uAE30", "API \uD638\uCD9C \uD69F\uC218 \uC904\uC774\uAE30"],
31826
+ en: ["debouncing", "input delay", "trailing debounce", "search input throttling"]
31827
+ },
31828
+ text: {
31829
+ ko: {
31830
+ definition: "\uC5F0\uC18D\uD574\uC11C \uBE60\uB974\uAC8C \uBC1C\uC0DD\uD558\uB294 \uC774\uBCA4\uD2B8\uAC00 \uC77C\uC815 \uC2DC\uAC04 \uB3D9\uC548 \uBA48\uCD98 \uB4A4 \uB9C8\uC9C0\uB9C9 \uD55C \uBC88\uB9CC \uC2E4\uC81C \uD568\uC218\uB97C \uC2E4\uD589\uD558\uB3C4\uB85D \uC9C0\uC5F0\uC2DC\uD0A4\uB294 \uC81C\uC5B4 \uAE30\uBC95\uC785\uB2C8\uB2E4.",
31831
+ example: '\uAC80\uC0C9\uCC3D\uC5D0 "\uC2A4\uCF08\uB808\uD1A4"\uC744 \uC785\uB825\uD558\uB294 \uB3D9\uC548 \uAE00\uC790\uB9C8\uB2E4 \uC11C\uBC84 \uC694\uCCAD\uC744 \uBCF4\uB0B4\uC9C0 \uC54A\uACE0, \uC785\uB825\uC774 250ms \uBA48\uCD98 \uB4A4 \uD55C \uBC88\uB9CC \uAC80\uC0C9 API\uB97C \uD638\uCD9C\uD558\uBA70 \uC5B8\uB9C8\uC6B4\uD2B8 \uC2DC \uB300\uAE30 \uD0C0\uC774\uBA38\uB97C \uC815\uB9AC\uD569\uB2C8\uB2E4.',
31832
+ promptSnippet: "\uAC80\uC0C9 \uC785\uB825\uC774\uB098 \uC790\uB3D9 \uC800\uC7A5 \uC774\uBCA4\uD2B8\uC5D0\uB294 \uC785\uB825\uC774 \uC77C\uC815 \uC2DC\uAC04(\uC608: 250ms) \uBA48\uCD98 \uB4A4 \uB9C8\uC9C0\uB9C9 \uAC12\uC73C\uB85C\uB9CC \uC2E4\uD589\uB418\uB3C4\uB85D \uB514\uBC14\uC6B4\uC2A4\uB97C \uC801\uC6A9\uD558\uACE0, \uC774\uC804 \uB300\uAE30 \uD0C0\uC774\uBA38\uC640 \uCDE8\uC18C \uAC00\uB2A5\uD55C \uBE44\uB3D9\uAE30 \uC694\uCCAD\uC740 \uC5B8\uB9C8\uC6B4\uD2B8\uB098 \uC0C8 \uC785\uB825 \uC2DC \uC815\uB9AC\uD574 \uC918."
31833
+ },
31834
+ en: {
31835
+ definition: "A rate-control technique that delays execution until a burst of rapid events settles for a specified quiet window, running only once with the latest input.",
31836
+ example: "Rather than firing an API call on every keystroke while typing a search query, wait 250ms after the last keystroke and cancel pending timers on unmount.",
31837
+ promptSnippet: "Debounce high-frequency handlers like search inputs or autosave (e.g., 250ms quiet window) so only the final value triggers work, and clean up pending timers or stale requests on unmount or newer input."
31838
+ }
31839
+ }
31840
+ },
31841
+ "optimistic-update": {
31842
+ aliases: {
31843
+ ko: ["\uB099\uAD00\uC801 UI", "\uC120\uBC18\uC601 \uD6C4\uB3D9\uAE30\uD654", "\uC11C\uBC84 \uC751\uB2F5 \uC804\uC5D0 \uD654\uBA74 \uBA3C\uC800 \uBC14\uAFB8\uAE30", "\uC989\uC2DC \uBC18\uC601 \uD6C4 \uC2E4\uD328 \uC2DC \uBCF5\uAD6C"],
31844
+ en: ["optimistic UI", "optimistic rendering", "instant UI update with rollback"]
31845
+ },
31846
+ text: {
31847
+ ko: {
31848
+ definition: "\uC11C\uBC84 \uC694\uCCAD\uC774 \uC131\uACF5\uD560 \uAC83\uC774\uB77C\uACE0 \uAC00\uC815\uD574 UI \uC0C1\uD0DC\uB97C \uBA3C\uC800 \uC989\uC2DC \uBC18\uC601\uD558\uACE0, \uC2E4\uC81C \uC694\uCCAD\uC774 \uC2E4\uD328\uD558\uBA74 \uC774\uC804 \uC0C1\uD0DC\uB85C \uB418\uB3CC\uB9AC\uACE0 \uC624\uB958\uB97C \uC548\uB0B4\uD558\uB294 \uAC31\uC2E0 \uD328\uD134\uC785\uB2C8\uB2E4.",
31849
+ example: "\uB313\uAE00 \uC88B\uC544\uC694 \uBC84\uD2BC\uC744 \uB204\uB974\uBA74 \uC989\uC2DC \uD65C\uC131 \uC0C1\uD0DC\uC640 +1\uC744 \uD45C\uC2DC\uD55C \uB4A4 \uC11C\uBC84\uC5D0 \uC800\uC7A5 \uC694\uCCAD\uC744 \uBCF4\uB0B4\uACE0, \uB124\uD2B8\uC6CC\uD06C\uAC00 \uC2E4\uD328\uD558\uBA74 \uC6D0\uB798 \uC22B\uC790\uB85C \uB864\uBC31\uD569\uB2C8\uB2E4. \uC815\uC801 UI \uB370\uBAA8\uB294 \uB85C\uCEEC \uC0C1\uD0DC \uC804\uD658\uB9CC \uC2DC\uC5F0\uD558\uBA70 \uC2E4\uC81C \uC11C\uBC84 \uB864\uBC31\uC744 \uAD6C\uD604\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
31850
+ promptSnippet: "\uC88B\uC544\uC694 \uD1A0\uAE00\uC774\uB098 \uC791\uC5C5 \uC0C1\uD0DC \uBCC0\uACBD\uCC98\uB7FC \uCCB4\uAC10 \uC18D\uB3C4\uAC00 \uC911\uC694\uD55C \uC561\uC158\uC5D0\uB294 \uB099\uAD00\uC801 \uC5C5\uB370\uC774\uD2B8\uB97C \uC801\uC6A9\uD574 UI\uB97C \uBA3C\uC800 \uAC31\uC2E0\uD558\uACE0, \uC2E4\uC81C API \uC694\uCCAD\uC774 \uC2E4\uD328\uD558\uBA74 \uC9C1\uC804 \uC2A4\uB0C5\uC0F7\uC73C\uB85C \uB864\uBC31\uD55C \uB4A4 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC624\uB958 \uC548\uB0B4\uB97C \uD45C\uC2DC\uD574 \uC918."
31851
+ },
31852
+ en: {
31853
+ definition: "An update pattern that immediately applies the expected UI change before the server responds, then confirms on success or rolls back with an error if the request fails.",
31854
+ example: "Toggling a heart reaction highlights the button right away while the save request is in flight, rolling back the count if the server rejects it. Static UI demos only toggle local state without real persistence.",
31855
+ promptSnippet: "Apply optimistic updates for responsive interactions like reactions or status toggles by updating local state immediately, keeping a previous snapshot to roll back on API failure, and surfacing a clear error."
31856
+ }
31857
+ }
31858
+ },
31859
+ idempotency: {
31860
+ aliases: {
31861
+ ko: ["\uBA71\uB4F1\uC131 \uD0A4", "\uACB0\uC81C \uB450 \uBC88 \uBC29\uC9C0", "\uC911\uBCF5 \uACB0\uC81C \uB9C9\uAE30", "\uC911\uBCF5 \uC694\uCCAD \uBC29\uC9C0", "\uC7AC\uC2DC\uB3C4 \uC548\uC804\uC131"],
31862
+ en: ["idempotency key", "duplicate request prevention", "prevent double charge", "safe retry"]
31863
+ },
31864
+ text: {
31865
+ ko: {
31866
+ definition: "\uAC19\uC740 \uC694\uCCAD\uC744 \uB124\uD2B8\uC6CC\uD06C \uC7AC\uC2DC\uB3C4\uB098 \uB354\uBE14 \uD074\uB9AD\uC73C\uB85C \uC5EC\uB7EC \uBC88 \uBCF4\uB0B4\uB354\uB77C\uB3C4 \uC11C\uBC84 \uC0C1\uD0DC\uAC00 \uCC98\uC74C \uD55C \uBC88 \uCC98\uB9AC\uB41C \uAC83\uACFC \uB3D9\uC77C\uD558\uAC8C \uC720\uC9C0\uB418\uB294 \uC131\uC9C8\uC785\uB2C8\uB2E4.",
31867
+ example: "\uACB0\uC81C \uC694\uCCAD\uB9C8\uB2E4 \uD074\uB77C\uC774\uC5B8\uD2B8\uAC00 \uACE0\uC720\uD55C Idempotency-Key\uB97C \uD568\uAED8 \uBCF4\uB0B4\uBA74, \uD0C0\uC784\uC544\uC6C3 \uD6C4 \uC7AC\uC804\uC1A1\uD558\uB354\uB77C\uB3C4 \uC11C\uBC84\uAC00 \uC774\uBBF8 \uCC98\uB9AC\uB41C \uB3D9\uC77C \uD0A4\uB97C \uAC10\uC9C0\uD574 \uB450 \uBC88 \uCD9C\uAE08\uD558\uC9C0 \uC54A\uACE0 \uAE30\uC874 \uACB0\uACFC\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4. \uC774\uB294 \uC11C\uBC84\xB7\uC6D0\uC7A5 \uC124\uACC4 \uC6D0\uCE59\uC774\uBA70 \uB2E8\uC21C UI \uBC84\uD2BC \uBE44\uD65C\uC131\uD654\uB9CC\uC73C\uB85C\uB294 \uBCF4\uC7A5\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
31868
+ promptSnippet: "\uACB0\uC81C\xB7\uCD9C\uAE08\xB7\uC6F9\uD6C5 \uC7AC\uC2E4\uD589 \uB4F1 \uC911\uBCF5 \uC2E4\uD589\uB418\uBA74 \uC548 \uB418\uB294 \uBCC0\uACBD API\uC5D0\uB294 \uC694\uCCAD\uBCC4 \uACE0\uC720 idempotency key\uB97C \uC800\uC7A5\xB7\uAC80\uC99D\uD574 \uB3D9\uC77C \uD0A4\uC758 \uC7AC\uC2DC\uB3C4\uAC00 \uAE30\uC874 \uCC98\uB9AC \uACB0\uACFC\uB97C \uBC18\uD658\uD558\uB3C4\uB85D \uAD6C\uD604\uD558\uACE0, UI \uBC84\uD2BC \uC81C\uC5B4\uB9CC\uC73C\uB85C \uC911\uBCF5\uC744 \uB9C9\uC73C\uB824 \uD558\uC9C0 \uB9C8."
31869
+ },
31870
+ en: {
31871
+ definition: "A property ensuring that repeating the exact same operation\u2014due to retries, timeouts, or double clicks\u2014produces the same state as executing it once.",
31872
+ example: "Attaching a unique Idempotency-Key per checkout attempt lets the backend recognize retried requests and return the original receipt instead of charging twice. UI button disabling alone cannot guarantee idempotency.",
31873
+ promptSnippet: "Protect critical mutations such as payments, payouts, or webhook replays on the server using unique idempotency keys persisted atomically with the transaction, returning the original outcome on duplicate attempts."
31874
+ }
31875
+ }
31876
+ },
31877
+ "role-based-access-control": {
31878
+ aliases: {
31879
+ ko: ["RBAC", "\uC5ED\uD560 \uAE30\uBC18 \uAD8C\uD55C", "\uAD8C\uD55C \uC81C\uC5B4", "\uAD00\uB9AC\uC790 \uC77C\uBC18 \uC0AC\uC6A9\uC790 \uAD8C\uD55C \uBD84\uB9AC", "\uCD5C\uC18C \uAD8C\uD55C"],
31880
+ en: ["RBAC", "role based access control", "role permissions", "least privilege access"]
31881
+ },
31882
+ text: {
31883
+ ko: {
31884
+ definition: "\uAC1C\uBCC4 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC9C1\uC811 \uAD8C\uD55C\uC744 \uBD99\uC774\uB294 \uB300\uC2E0 \uAD00\uB9AC\uC790\xB7\uD3B8\uC9D1\uC790\xB7\uC5F4\uB78C\uC790 \uAC19\uC740 \uC5ED\uD560(Role)\uC5D0 \uAD8C\uD55C\uC744 \uBB36\uC5B4 \uBD80\uC5EC\uD558\uACE0, \uC11C\uBC84\uC640 UI\uC5D0\uC11C \uC5ED\uD560\uC5D0 \uB530\uB77C \uC811\uADFC\uC744 \uD1B5\uC81C\uD558\uB294 \uBC29\uC2DD\uC785\uB2C8\uB2E4.",
31885
+ example: "\uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4\uC5D0\uC11C \uC5F4\uB78C\uC790 \uC5ED\uD560\uC740 \uBB38\uC11C\uB97C \uC77D\uC744 \uC218\uB9CC \uC788\uACE0 \uACB0\uC81C \uC124\uC815\uC774\uB098 \uAD6C\uC131\uC6D0 \uC0AD\uC81C API\uB294 \uC11C\uBC84\uC5D0\uC11C 403\uC73C\uB85C \uCC28\uB2E8\uD569\uB2C8\uB2E4. UI\uC5D0\uC11C \uBA54\uB274\uB97C \uC228\uAE30\uB294 \uAC83\uC740 \uBCF4\uC870 \uC218\uB2E8\uC77C \uBFD0 \uC2E4\uC81C \uAD8C\uD55C \uD1B5\uC81C\uB294 \uC11C\uBC84 \uC778\uAC00\uC5D0\uC11C \uAC15\uC81C\uD569\uB2C8\uB2E4.",
31886
+ promptSnippet: "\uC5ED\uD560 \uAE30\uBC18 \uC811\uADFC \uC81C\uC5B4(RBAC)\uB97C \uC124\uACC4\uD560 \uB54C \uC5ED\uD560\uBCC4 \uD5C8\uC6A9 \uC561\uC158 \uB9E4\uD2B8\uB9AD\uC2A4\uC640 \uCD5C\uC18C \uAD8C\uD55C \uC6D0\uCE59\uC744 \uC815\uC758\uD558\uACE0, UI \uB178\uCD9C \uC81C\uC5B4\uC640 \uBCC4\uAC1C\uB85C \uBAA8\uB4E0 \uC11C\uBC84 API \uC5D4\uB4DC\uD3EC\uC778\uD2B8\uC5D0\uC11C \uD604\uC7AC \uC870\uC9C1\xB7\uC5ED\uD560 \uAD8C\uD55C\uC744 \uAC80\uC99D\uD574 \uC918. \uB9C8\uC9C0\uB9C9 \uCD5C\uACE0\uAD00\uB9AC\uC790 \uAC15\uB4F1\xB7\uC0AD\uC81C\uB3C4 \uCC28\uB2E8\uD574 \uC918."
31887
+ },
31888
+ en: {
31889
+ definition: "An authorization model that assigns permissions to roles (such as Admin, Editor, Viewer) rather than individual users, enforcing access boundaries across APIs and views.",
31890
+ example: "A Viewer can read workspace documents while billing mutations are rejected with 403 on the backend. Hiding buttons in the UI is only cosmetic; real enforcement lives in server authorization.",
31891
+ promptSnippet: "Implement Role-Based Access Control (RBAC) with explicit role-permission mappings and least-privilege defaults, enforcing checks on every backend endpoint (not just hiding UI controls) and guarding against removing the last admin."
31892
+ }
31893
+ }
31894
+ },
31895
+ "server-sent-events": {
31896
+ aliases: {
31897
+ ko: ["SSE", "\uB2E8\uBC29\uD5A5 \uC11C\uBC84 \uC2A4\uD2B8\uB9AC\uBC0D", "\uC2E4\uC2DC\uAC04 \uD1A0\uD070 \uC2A4\uD2B8\uB9AC\uBC0D", "EventSource \uC2A4\uD2B8\uB9BC"],
31898
+ en: ["SSE", "EventSource", "HTTP streaming", "unidirectional server push"]
31899
+ },
31900
+ text: {
31901
+ ko: {
31902
+ definition: "\uD558\uB098\uC758 HTTP \uC5F0\uACB0\uC744 \uC720\uC9C0\uD55C \uCC44 \uC11C\uBC84\uAC00 \uD074\uB77C\uC774\uC5B8\uD2B8\uB85C \uD14D\uC2A4\uD2B8 \uC774\uBCA4\uD2B8 \uC2A4\uD2B8\uB9BC\uC744 \uB2E8\uBC29\uD5A5\uC73C\uB85C \uC2E4\uC2DC\uAC04 \uBC00\uC5B4\uC8FC\uB294 \uC6F9 \uD45C\uC900 \uAE30\uC220\uC785\uB2C8\uB2E4.",
31903
+ example: "AI \uCC57\uBD07 \uB2F5\uBCC0\uC774 \uC0DD\uC131\uB418\uB294 \uB300\uB85C \uD1A0\uD070 \uC870\uAC01\uC744 \uD654\uBA74\uC5D0 \uD55C \uAE00\uC790\uC529 \uD758\uB824\uBCF4\uB0B4\uAC70\uB098, \uC9C4\uD589 \uC911\uC778 \uC791\uC5C5 \uB85C\uADF8\uB97C \uBE0C\uB77C\uC6B0\uC800\uAC00 \uC911\uB2E8(AbortController) \uBC0F \uC7AC\uC5F0\uACB0\uD560 \uC218 \uC788\uAC8C \uC2A4\uD2B8\uB9AC\uBC0D\uD569\uB2C8\uB2E4.",
31904
+ promptSnippet: "AI \uC751\uB2F5\uC774\uB098 \uC2E4\uC2DC\uAC04 \uC9C4\uD589 \uB85C\uADF8\uB97C \uB2E8\uBC29\uD5A5\uC73C\uB85C \uC2A4\uD2B8\uB9AC\uBC0D\uD560 \uB54C \uC11C\uBC84 \uC804\uC1A1 \uC774\uBCA4\uD2B8(SSE) \uADDC\uACA9\uC744 \uC0AC\uC6A9\uD558\uACE0, \uD074\uB77C\uC774\uC5B8\uD2B8\uC5D0\uB294 \uC911\uC9C0(AbortController), \uC5F0\uACB0 \uB04A\uAE40 \uC548\uB0B4, \uB9C8\uC9C0\uB9C9 \uC218\uC2E0 \uC774\uBCA4\uD2B8 ID \uAE30\uBC18 \uBCF5\uAD6C \uD750\uB984\uC744 \uD568\uAED8 \uAD6C\uD604\uD574 \uC918."
31905
+ },
31906
+ en: {
31907
+ definition: "A web standard allowing a server to push real-time text events over a single long-lived HTTP connection from server to client.",
31908
+ example: "Stream LLM response tokens incrementally as they are generated while supporting user-triggered AbortController cancellation and automatic reconnection.",
31909
+ promptSnippet: "Use Server-Sent Events (SSE) for unidirectional streaming such as LLM token output or live status feeds, pairing it with AbortController cancellation, disconnect banners, and safe reconnect handling."
31910
+ }
31911
+ }
31912
+ },
31913
+ "retrieval-augmented-generation": {
31914
+ aliases: {
31915
+ ko: ["RAG", "\uBB38\uC11C \uAC80\uC0C9 \uAE30\uBC18 \uB2F5\uBCC0", "\uCD9C\uCC98 \uC778\uC6A9 AI", "\uC9C0\uC2DD \uAE30\uBC18 \uAC80\uC0C9 \uC99D\uAC15", "\uD560\uB8E8\uC2DC\uB124\uC774\uC158 \uC904\uC774\uAE30"],
31916
+ en: ["RAG", "retrieval augmented generation", "grounded generation", "citation-backed AI"]
31917
+ },
31918
+ text: {
31919
+ ko: {
31920
+ definition: "\uC5B8\uC5B4 \uBAA8\uB378\uC774 \uD559\uC2B5 \uAE30\uC5B5\uC5D0\uB9CC \uC758\uC874\uD558\uC9C0 \uC54A\uB3C4\uB85D \uC678\uBD80 \uBB38\uC11C\xB7\uC9C0\uC2DD\uBCA0\uC774\uC2A4\uC5D0\uC11C \uAD00\uB828 \uADFC\uAC70\uB97C \uBA3C\uC800 \uAC80\uC0C9\uD574 \uD504\uB86C\uD504\uD2B8 \uBB38\uB9E5\uC5D0 \uC8FC\uC785\uD55C \uB4A4, \uCD9C\uCC98\uC640 \uD568\uAED8 \uB2F5\uBCC0\uC744 \uC0DD\uC131\uD558\uAC8C \uD558\uB294 \uC544\uD0A4\uD14D\uCC98\uC785\uB2C8\uB2E4.",
31921
+ example: "\uC0AC\uB0B4 \uADDC\uC815 \uCC57\uBD07\uC774 \uC9C8\uBB38\uACFC \uAD00\uB828\uB41C \uCD5C\uC2E0 \uBB38\uC11C \uB2E8\uB77D 3\uAC74\uC744 \uBA3C\uC800 \uCC3E\uC544 \uCEE8\uD14D\uC2A4\uD2B8\uC5D0 \uB123\uACE0, \uB2F5\uBCC0 \uBB38\uC7A5 \uB05D\uC5D0 [1], [2] \uC778\uB77C\uC778 \uC778\uC6A9 \uCE69\uC744 \uBD99\uC5EC \uC6D0\uBB38 \uADFC\uAC70\uB97C \uBC14\uB85C \uD655\uC778\uD560 \uC218 \uC788\uAC8C \uD569\uB2C8\uB2E4.",
31922
+ promptSnippet: "\uAC80\uC0C9 \uC99D\uAC15 \uC0DD\uC131(RAG) \uD750\uB984\uC5D0\uC11C\uB294 \uC0AC\uC6A9\uC790 \uC9C8\uC758\uB85C \uAC80\uC99D\uB41C \uBB38\uC11C\uB97C \uBA3C\uC800 \uAC80\uC0C9\uD574 \uCEE8\uD14D\uC2A4\uD2B8 \uC608\uC0B0 \uC548\uC5D0 \uC8FC\uC785\uD558\uACE0, \uB2F5\uBCC0\uC5D0\uB294 \uC778\uB77C\uC778 \uCD9C\uCC98 \uC778\uC6A9\uACFC \uADFC\uAC70\uAC00 \uBD80\uC871\uD560 \uB54C \uBAA8\uB978\uB2E4\uACE0 \uB2F5\uD558\uB294 \uAC00\uB4DC\uB808\uC77C\uC744 \uD3EC\uD568\uD574 \uC918."
31923
+ },
31924
+ en: {
31925
+ definition: "An AI architecture that retrieves relevant passages from an external knowledge base before generation and injects them into the prompt context so answers stay grounded and citable.",
31926
+ example: "A policy assistant retrieves the top matching handbook excerpts, passes them within the token budget, and renders inline citation chips linking back to each source.",
31927
+ promptSnippet: "Design the Retrieval-Augmented Generation (RAG) pipeline to retrieve relevant documents within the context token budget, attach inline source citations to claims, and fall back safely when no supporting evidence is found."
31928
+ }
31929
+ }
31930
+ },
31931
+ "dead-letter-queue": {
31932
+ aliases: {
31933
+ ko: ["DLQ", "\uC2E4\uD328 \uC791\uC5C5 \uBCF4\uAD00 \uD050", "\uC6F9\uD6C5 \uC2E4\uD328 \uC7AC\uCC98\uB9AC \uD050", "\uC7AC\uC2DC\uB3C4 \uCD08\uACFC \uD050"],
31934
+ en: ["DLQ", "dead letter queue", "failed job queue", "poison message queue"]
31935
+ },
31936
+ text: {
31937
+ ko: {
31938
+ definition: "\uBC31\uADF8\uB77C\uC6B4\uB4DC \uC791\uC5C5\uC774\uB098 \uC6F9\uD6C5 \uC804\uC1A1\uC774 \uC815\uD574\uC9C4 \uC7AC\uC2DC\uB3C4 \uD69F\uC218\uB97C \uBAA8\uB450 \uCD08\uACFC\uD574 \uC2E4\uD328\uD588\uC744 \uB54C \uBA54\uC2DC\uC9C0\uB97C \uBC84\uB9AC\uC9C0 \uC54A\uACE0 \uBCC4\uB3C4 \uD050\uC5D0 \uACA9\uB9AC\uD574 \uC6D0\uC778 \uC870\uC0AC\uC640 \uC218\uB3D9 \uC7AC\uC2E4\uD589\uC744 \uAC00\uB2A5\uD558\uAC8C \uD558\uB294 \uD328\uD134\uC785\uB2C8\uB2E4.",
31939
+ example: "\uACB0\uC81C \uC644\uB8CC \uC6F9\uD6C5\uC774 \uC0C1\uB300 \uC11C\uBC84 \uC7A5\uC560\uB85C 5\uD68C \uC5F0\uC18D \uC2E4\uD328\uD558\uBA74 \uB370\uB4DC \uB808\uD130 \uD050(DLQ)\uB85C \uC774\uB3D9\uC2DC\uCF1C \uC6B4\uC601\uC790\uAC00 \uC624\uB958 \uC6D0\uC778\uC744 \uD655\uC778\uD55C \uB4A4 \uBA71\uB4F1\uC131 \uC788\uAC8C \uB2E4\uC2DC \uC804\uC1A1\uD560 \uC218 \uC788\uAC8C \uD569\uB2C8\uB2E4.",
31940
+ promptSnippet: "\uBE44\uB3D9\uAE30 \uC6F9\uD6C5\xB7\uC54C\uB9BC\xB7\uACB0\uC81C \uD6C4\uCC98\uB9AC \uC6CC\uCEE4\uC5D0\uB294 \uC9C0\uC218 \uBC31\uC624\uD504 \uC7AC\uC2DC\uB3C4\uC640 \uD568\uAED8 \uCD5C\uB300 \uC7AC\uC2DC\uB3C4 \uCD08\uACFC \uC2DC \uBA54\uC2DC\uC9C0\uB97C \uACA9\uB9AC\uD558\uB294 \uB370\uB4DC \uB808\uD130 \uD050(DLQ)\uB97C \uB450\uACE0, \uC6B4\uC601\uC790\uAC00 \uC624\uB958 payload\uB97C \uC870\uD68C\uD574 \uBA71\uB4F1\uD558\uAC8C \uC7AC\uC2E4\uD589\uD560 \uC218 \uC788\uAC8C \uD574 \uC918."
31941
+ },
31942
+ en: {
31943
+ definition: "A dedicated holding queue where messages or webhook deliveries are routed after exhausting all retry attempts, preventing silent data loss and enabling inspection and replay.",
31944
+ example: "When an outbound billing webhook fails 5 times due to a partner outage, move the payload to a Dead-Letter Queue (DLQ) so operators can inspect the error and safely replay it later.",
31945
+ promptSnippet: "Configure exponential-backoff retries paired with a Dead-Letter Queue (DLQ) for exhausted jobs or webhooks, exposing failure metadata and an idempotent manual replay action."
31946
+ }
31947
+ }
31948
+ },
31949
+ "audit-log": {
31950
+ aliases: {
31951
+ ko: ["\uBCF4\uC548 \uAC10\uC0AC \uB85C\uADF8", "\uBCC0\uACBD \uC774\uB825 \uAE30\uB85D", "\uAD00\uB9AC\uC790 \uD65C\uB3D9 \uB85C\uADF8", "\uB204\uAC00 \uC5B8\uC81C \uBC14\uAFE8\uB294\uC9C0 \uAE30\uB85D"],
31952
+ en: ["audit trail", "activity audit log", "security event log", "change history log"]
31953
+ },
31954
+ text: {
31955
+ ko: {
31956
+ definition: "\uB204\uAC00\xB7\uC5B8\uC81C\xB7\uC5B4\uB5A4 \uB300\uC0C1\uC5D0\xB7\uBB34\uC2A8 \uBCC0\uACBD\uC774\uB098 \uC5F4\uB78C\uC744 \uC218\uD589\uD588\uB294\uC9C0 \uBCC0\uC870\uD558\uAE30 \uC5B4\uB835\uAC8C \uC2DC\uAC04\uC21C\uC73C\uB85C \uB0A8\uAE30\uB294 \uCD94\uC801 \uAE30\uB85D\uC785\uB2C8\uB2E4.",
31957
+ example: "\uAD00\uB9AC\uC790\uAC00 \uD300\uC6D0\uC758 \uC5ED\uD560\uC744 \uBCC0\uACBD\uD558\uAC70\uB098 API \uD0A4\uB97C \uD3D0\uAE30\uD558\uBA74 \uD589\uC704\uC790, IP, \uB300\uC0C1 \uB9AC\uC18C\uC2A4, \uBCC0\uACBD \uC804\uD6C4 \uC694\uC57D\uC744 \uAC10\uC0AC \uB85C\uADF8\uC5D0 \uB0A8\uAE30\uB418 \uBE44\uBC00\uBC88\uD638\uB098 \uD1A0\uD070 \uC6D0\uBB38\uC740 \uB9C8\uC2A4\uD0B9\uD569\uB2C8\uB2E4.",
31958
+ promptSnippet: "\uAD8C\uD55C \uBCC0\uACBD, API \uD0A4 \uBC1C\uAE09\xB7\uD3D0\uAE30, \uBBFC\uAC10 \uD30C\uC77C \uB2E4\uC6B4\uB85C\uB4DC \uAC19\uC740 \uC911\uC694 \uC774\uBCA4\uD2B8\uB9C8\uB2E4 \uD589\uC704\uC790\xB7\uC2DC\uAC01\xB7\uB300\uC0C1\xB7\uC694\uCCAD \uBA54\uD0C0\uB370\uC774\uD130\uB97C \uAC10\uC0AC \uB85C\uADF8(Audit Log)\uC5D0 \uCD94\uAC00 \uC804\uC6A9\uC73C\uB85C \uAE30\uB85D\uD558\uACE0, \uBE44\uBC00\uAC12\uACFC \uAC1C\uC778\uC815\uBCF4\uB294 \uB9C8\uC2A4\uD0B9\uD574 \uC918."
31959
+ },
31960
+ en: {
31961
+ definition: "An append-only chronological record capturing who performed what action, on which resource, and when\u2014used for security review, compliance, and incident investigation.",
31962
+ example: "Record role changes, API key revocations, and sensitive file downloads with actor, timestamp, and before/after summary while redacting secrets or raw tokens.",
31963
+ promptSnippet: "Emit append-only audit log entries for security- and billing-sensitive events (actor, timestamp, target resource, action outcome) while redacting credentials and sensitive PII."
31964
+ }
31965
+ }
31966
+ },
31967
+ "http-live-streaming": {
31968
+ aliases: {
31969
+ ko: ["HLS", "\uB77C\uC774\uBE0C \uC2A4\uD2B8\uB9AC\uBC0D", "m3u8", "HLS \uC2A4\uD2B8\uB9AC\uBC0D", "\uC801\uC751\uD615 \uBE44\uD2B8\uB808\uC774\uD2B8 \uC2A4\uD2B8\uB9AC\uBC0D"],
31970
+ en: ["HLS", "m3u8 playlist", "adaptive streaming", "HLS video streaming", "segmented HTTP streaming"]
31971
+ },
31972
+ text: {
31973
+ ko: {
31974
+ definition: "\uBBF8\uB514\uC5B4 \uCF58\uD150\uCE20\uB97C \uC791\uC740 \uC138\uADF8\uBA3C\uD2B8 \uD30C\uC77C\uB4E4\uB85C \uB098\uB204\uACE0 \uC7AC\uC0DD \uBAA9\uB85D(.m3u8)\uC744 \uD1B5\uD574 \uC77C\uBC18 HTTP/HTTPS\uB85C \uC2E4\uC2DC\uAC04(Live) \uB610\uB294 \uC8FC\uBB38\uD615(VOD) \uC804\uC1A1\uD558\uB294 \uC2A4\uD2B8\uB9AC\uBC0D \uADDC\uACA9\uC785\uB2C8\uB2E4. \uC5EC\uB7EC \uD654\uC9C8 \uBCC0\uD615\uC774 \uD3EC\uD568\uB41C \uBA40\uD2F0\uBC30\uB9AC\uC5B8\uD2B8 \uC7AC\uC0DD \uBAA9\uB85D\uC774 \uD568\uAED8 \uC900\uBE44\uB41C \uACBD\uC6B0 \uB124\uD2B8\uC6CC\uD06C \uC0C1\uD0DC\uC5D0 \uB530\uB77C \uD654\uC9C8\uC744 \uC804\uD658\uD558\uB294 \uC801\uC751\uD615 \uC2A4\uD2B8\uB9AC\uBC0D\uB3C4 \uAD6C\uC131\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
31975
+ example: "\uC628\uB77C\uC778 \uAC15\uC758 \uD50C\uB808\uC774\uC5B4\uAC00 \uD654\uC9C8\uBCC4 \uC2A4\uD2B8\uB9BC\uC774 \uB2F4\uAE34 \uB9C8\uC2A4\uD130 .m3u8 \uBAA9\uB85D\uC744 \uBC1B\uC544 \uB300\uC5ED\uD3ED\uC5D0 \uB9DE\uB294 \uC138\uADF8\uBA3C\uD2B8\uB97C \uC21C\uCC28 \uC694\uCCAD\uD569\uB2C8\uB2E4. \uBE0C\uB77C\uC6B0\uC800\uC758 \uAE30\uBCF8 HLS \uC9C0\uC6D0 \uC5EC\uBD80\uB97C \uBA3C\uC800 \uD655\uC778\uD558\uACE0, \uBBF8\uC9C0\uC6D0 \uD658\uACBD\uC5D0\uC11C\uB294 \uD638\uD658 \uC7AC\uC0DD\uAE30 \uBD84\uAE30\uB97C \uC5F0\uACB0\uD558\uBA70 \uC138\uADF8\uBA3C\uD2B8 \uB85C\uB529 \uC2E4\uD328 \uC2DC \uC7AC\uC2DC\uB3C4 \uC548\uB0B4\uB97C \uB744\uC6C1\uB2C8\uB2E4.",
31976
+ promptSnippet: "HTTP \uB77C\uC774\uBE0C \uC2A4\uD2B8\uB9AC\uBC0D(HLS) \uD50C\uB808\uC774\uC5B4\uB97C \uAD6C\uD604\uD560 \uB54C\uB294 \uBA3C\uC800 \uBE0C\uB77C\uC6B0\uC800\uC758 \uAE30\uBCF8 HLS(.m3u8) \uC7AC\uC0DD \uC9C0\uC6D0 \uC5EC\uBD80\uB97C \uD655\uC778\uD55C \uB4A4 \uD544\uC694 \uC2DC \uD638\uD658 \uC7AC\uC0DD\uAE30 \uBD84\uAE30\uB97C \uB450\uACE0, \uB2E4\uC911 \uD654\uC9C8 \uBCC0\uD615\uC774 \uC900\uBE44\uB41C \uACBD\uC6B0\uC5D0\uB9CC \uC801\uC751\uD615 \uD654\uC9C8 \uC804\uD658\uC744 \uC5F0\uACB0\uD574 \uC918. \uC138\uADF8\uBA3C\uD2B8 \uB85C\uB529 \uC9C0\uC5F0\xB7\uB124\uD2B8\uC6CC\uD06C \uB04A\uAE40\xB7\uC7AC\uC0DD \uC624\uB958 \uC2DC \uC7AC\uC2DC\uB3C4\uC640 \uC624\uB958 \uBCF5\uAD6C \uC548\uB0B4\uB97C \uD568\uAED8 \uAD6C\uD604\uD574 \uC918."
31977
+ },
31978
+ en: {
31979
+ definition: "An HTTP-based streaming specification (originated by Apple) that delivers live or VOD media as indexed playlists (.m3u8) referencing sequential media segments; adaptive bitrate switching is enabled when multiple quality variants are encoded and listed in a multivariant playlist.",
31980
+ example: "A video player loads a multivariant .m3u8 playlist, checks native browser HLS support before choosing an MSE-based fallback library, fetches media segments over HTTP, and surfaces retry controls if segment requests fail.",
31981
+ promptSnippet: "When integrating HTTP Live Streaming (HLS), check native browser support for .m3u8 playback before initializing an MSE fallback, enable adaptive bitrate switching only when multi-variant playlists are provided, and handle manifest or segment fetch failures with clear retry and fallback states."
31982
+ }
31983
+ }
31984
+ },
31985
+ "content-delivery-network": {
31986
+ aliases: {
31987
+ ko: ["CDN", "\uC5E3\uC9C0 \uCE90\uC2DC", "\uBD84\uC0B0 \uCE90\uC2DC", "\uCF58\uD150\uCE20 \uC804\uC1A1\uB9DD", "\uC5E3\uC9C0 \uC11C\uBC84 \uCE90\uC2F1"],
31988
+ en: ["CDN", "edge cache", "content distribution", "edge caching", "distributed edge delivery"]
31989
+ },
31990
+ text: {
31991
+ ko: {
31992
+ definition: "\uC804 \uC138\uACC4 \uC5EC\uB7EC \uC9C0\uC810\uC758 \uBD84\uC0B0 \uC5E3\uC9C0 \uC11C\uBC84\uC5D0 \uC815\uC801 \uC790\uC0B0\uC774\uB098 \uBBF8\uB514\uC5B4 \uC870\uAC01\uC744 \uCE90\uC2F1\uD574 \uC0AC\uC6A9\uC790\uC640 \uAC00\uAE4C\uC6B4 \uC704\uCE58\uC5D0\uC11C \uBE60\uB974\uAC8C \uC804\uB2EC\uD558\uB294 \uC804\uC1A1 \uACC4\uCE35\uC785\uB2C8\uB2E4. \uC6D0\uBCF8 \uD30C\uC77C\uC744 \uC601\uAD6C \uBCF4\uAD00\uD558\uB294 \uC624\uB9AC\uC9C4 \uC2A4\uD1A0\uB9AC\uC9C0\uB098 \uC601\uC0C1\uC744 \uC5EC\uB7EC \uD574\uC0C1\uB3C4\uB85C \uBCC0\uD658\uD558\uB294 \uD2B8\uB79C\uC2A4\uCF54\uB529\uACFC\uB294 \uBCC4\uAC1C\uC758 \uC5ED\uD560\uC785\uB2C8\uB2E4.",
31993
+ example: "\uC815\uC801 JS/\uC774\uBBF8\uC9C0 \uC790\uC0B0\uC5D0\uB294 \uD574\uC2DC\uB41C \uD30C\uC77C\uBA85\uACFC \uAE34 TTL\uC744 \uC124\uC815\uD574 \uC5E3\uC9C0 \uCE90\uC2DC \uC801\uC911\uB960\uC744 \uB192\uC774\uACE0, \uC720\uB8CC \uAC15\uC88C\uB098 \uBE44\uACF5\uAC1C \uCCA8\uBD80 \uD30C\uC77C\uCC98\uB7FC \uAD8C\uD55C \uAC80\uC0AC\uAC00 \uD544\uC694\uD55C \uB9AC\uC18C\uC2A4\uB294 \uACF5\uC6A9 \uCE90\uC2DC\uB85C \uB178\uCD9C\uD558\uC9C0 \uC54A\uACE0 \uC9E7\uC740 \uB9CC\uB8CC \uC2DC\uAC04\uC758 \uC11C\uBA85 URL\uC774\uB098 \uC778\uC99D \uAC80\uC99D \uB4A4\uC5D0 \uC81C\uACF5\uD569\uB2C8\uB2E4.",
31994
+ promptSnippet: "\uC815\uC801 \uC790\uC0B0\uC774\uB098 \uBBF8\uB514\uC5B4\uB97C CDN\uC73C\uB85C \uBC30\uD3EC\xB7\uC5F0\uB3D9\uD560 \uB54C \uC624\uB9AC\uC9C4 \uC800\uC7A5\uC18C\xB7\uD2B8\uB79C\uC2A4\uCF54\uB529\uACFC \uCC45\uC784\uC744 \uBD84\uB9AC\uD558\uACE0, \uCE90\uC2DC \uD0A4(\uACBD\uB85C\xB7\uCFFC\uB9AC\xB7\uC5B8\uC5B4 \uD5E4\uB354 \uB4F1) \uC124\uACC4, \uB9AC\uC18C\uC2A4 \uC131\uACA9\uBCC4 TTL \uB9CC\uB8CC \uC815\uCC45, \uBC30\uD3EC \uC2DC \uCE90\uC2DC \uBB34\uD6A8\uD654(\uBC84\uC804 \uD574\uC2DC \uB610\uB294 purge) \uC808\uCC28, \uC778\uC99D\uC774 \uD544\uC694\uD55C \uBE44\uACF5\uAC1C \uCF58\uD150\uCE20\uC758 \uCE90\uC2DC \uBD84\uB9AC\xB7\uC11C\uBA85 \uC811\uADFC \uC81C\uC5B4\uB97C \uD568\uAED8 \uBA85\uC2DC\uD574 \uC918."
31995
+ },
31996
+ en: {
31997
+ definition: "A geographically distributed network of edge servers that caches and delivers static assets or media segments closer to end users; it is distinct from origin object storage (which holds source files) and media transcoding (which re-encodes formats).",
31998
+ example: "Serve fingerprinted static bundles with long cache TTLs from edge locations while keeping access-controlled downloads behind origin authorization or short-lived signed URLs rather than shared public caches.",
31999
+ promptSnippet: "When configuring a Content Delivery Network (CDN), separate edge delivery from origin storage and media transcoding, and explicitly define cache keys (path, query, vary headers), TTL/expiration policies, cache invalidation or asset-versioning strategy, and cache isolation or signed access control so private content is never exposed to unauthorized users through a shared cache."
32000
+ }
32001
+ }
32002
+ },
32003
+ "content-management-system": {
32004
+ aliases: {
32005
+ ko: ["CMS", "\uCF58\uD150\uCE20 \uAD00\uB9AC", "\uC5D0\uB514\uD1A0\uB9AC\uC5BC \uAD00\uB9AC", "\uD5E4\uB4DC\uB9AC\uC2A4 CMS", "\uAC8C\uC2DC\uBB3C \uBC1C\uD589 \uC2DC\uC2A4\uD15C"],
32006
+ en: ["CMS", "editorial system", "headless CMS", "content publishing system", "editorial workflow"]
32007
+ },
32008
+ text: {
32009
+ ko: {
32010
+ definition: "\uBB38\uC11C\xB7\uACF5\uC9C0\xB7\uBE14\uB85C\uADF8\xB7\uBBF8\uB514\uC5B4 \uC790\uC0B0 \uAC19\uC740 \uCF58\uD150\uCE20\uC758 \uC791\uC131, \uD3B8\uC9D1, \uAC80\uC218, \uC608\uC57D \uBC0F \uAC8C\uC2DC \uC0DD\uBA85\uC8FC\uAE30\uB97C \uAD00\uB9AC\uD558\uB294 \uC2DC\uC2A4\uD15C\uC785\uB2C8\uB2E4. \uC218\uAC15 \uB4F1\uB85D\xB7\uC9C4\uB3C4\xB7\uD3C9\uAC00\uB97C \uB2E4\uB8E8\uB294 \uD559\uC2B5 \uAD00\uB9AC \uC2DC\uC2A4\uD15C(LMS)\uACFC\uB294 \uBAA9\uC801\uC774 \uB2E4\uB978 \uBCC4\uAC1C \uC2DC\uC2A4\uD15C\uC785\uB2C8\uB2E4.",
32011
+ example: "\uC5D0\uB514\uD130\uAC00 \uC791\uC131 \uC911\uC778 \uC548\uB0B4 \uBB38\uC11C\uB97C \uCD08\uC548(Draft) \uC0C1\uD0DC\uB85C \uC800\uC7A5\uD574 \uBE44\uACF5\uAC1C \uBBF8\uB9AC\uBCF4\uAE30 URL\uB85C \uAC80\uC218\uBC1B\uC740 \uB4A4 \uC2B9\uC778\uB41C \uD56D\uBAA9\uB9CC \uAC8C\uC2DC(Published) \uC0C1\uD0DC\uB85C \uC804\uD658\uD558\uACE0, \uD55C\uAD6D\uC5B4\xB7\uC601\uC5B4 \uB85C\uCF00\uC77C\uBCC4 \uBC88\uC5ED \uC0C1\uD0DC\uB97C \uD568\uAED8 \uAD00\uB9AC\uD569\uB2C8\uB2E4.",
32012
+ promptSnippet: "\uCF58\uD150\uCE20 \uAD00\uB9AC \uC2DC\uC2A4\uD15C(CMS)\uC744 \uC124\uACC4\uD560 \uB54C\uB294 \uD559\uC2B5 \uAD00\uB9AC(LMS)\uC640 \uD63C\uB3D9\uD558\uC9C0 \uB9D0\uACE0 \uCF58\uD150\uCE20 \uC791\uC131\xB7\uAC80\uC218\xB7\uBC1C\uD589 \uD750\uB984\uC5D0 \uC9D1\uC911\uD574 \uCD08\uC548/\uAC80\uC218/\uAC8C\uC2DC \uC0C1\uD0DC \uBD84\uB9AC, \uC5ED\uD560\uBCC4 \uD3B8\uC9D1\xB7\uBC1C\uD589 \uAD8C\uD55C, \uBE44\uACF5\uAC1C \uBBF8\uB9AC\uBCF4\uAE30(Preview) \uACBD\uACC4, \uB2E4\uAD6D\uC5B4\xB7\uB85C\uCF00\uC77C\uBCC4 \uCF58\uD150\uCE20 \uBC0F \uD3F4\uBC31 \uC815\uCC45\uC744 \uC5B4\uB5BB\uAC8C \uB2E4\uB8F0\uC9C0 \uC124\uACC4 \uC9C8\uBB38\uACFC \uAD6C\uD604 \uAE30\uC900\uC744 \uD568\uAED8 \uC815\uC758\uD574 \uC918."
32013
+ },
32014
+ en: {
32015
+ definition: "A system for managing the authoring, editing, review, and publishing lifecycle of digital content and media assets; unlike a Learning Management System (LMS), it does not manage learner enrollment, progress, or grading.",
32016
+ example: "An editor saves an article as a draft, shares a gated preview with reviewers, and publishes approved versions across Korean and English locales without exposing unpublished edits to public readers.",
32017
+ promptSnippet: "When designing a Content Management System (CMS)\u2014distinct from an LMS\u2014explicitly address design decisions for draft vs. published state transitions, authoring and publishing permissions, gated preview access, and multilingual/localization workflows with per-locale fallback rules."
32018
+ }
32019
+ }
32020
+ },
32021
+ "supervised-learning": {
32022
+ aliases: {
32023
+ ko: ["\uC9C0\uB3C4\uD559\uC2B5", "\uB808\uC774\uBE14 \uD559\uC2B5", "\uBD84\uB958 \uD68C\uADC0 \uD559\uC2B5", "\uC815\uB2F5 \uB370\uC774\uD130 \uAE30\uBC18 \uD559\uC2B5", "\uB77C\uBCA8\uB9C1 \uD559\uC2B5"],
32024
+ en: ["supervised ML", "labeled training", "classification and regression", "labeled dataset learning"]
32025
+ },
32026
+ text: {
32027
+ ko: {
32028
+ definition: "\uC785\uB825 \uB370\uC774\uD130\uC640 \uC815\uB2F5 \uB808\uC774\uBE14(Ground Truth)\uC774 \uC9DD\uC9C0\uC5B4\uC9C4 \uC608\uC2DC\uB97C \uC0AC\uC6A9\uD574 \uC785\uB825\uC5D0\uC11C \uCD9C\uB825\uC73C\uB85C\uC758 \uB9E4\uD551 \uD568\uC218\uB97C \uD559\uC2B5\uC2DC\uD0A4\uB294 \uBA38\uC2E0\uB7EC\uB2DD \uBC29\uC2DD\uC73C\uB85C, \uC8FC\uB85C \uBC94\uC8FC\uB97C \uB9DE\uD788\uB294 \uBD84\uB958(Classification)\uC640 \uC5F0\uC18D \uC218\uCE58\uB97C \uC608\uCE21\uD558\uB294 \uD68C\uADC0(Regression)\uC5D0 \uC4F0\uC785\uB2C8\uB2E4.",
32029
+ example: "\uC2A4\uD338/\uC815\uC0C1 \uB808\uC774\uBE14\uC774 \uB2EC\uB9B0 \uC774\uBA54\uC77C \uB370\uC774\uD130\uB85C \uBAA8\uB378\uC744 \uD559\uC2B5\uC2DC\uD0AC \uB54C \uD559\uC2B5(Train) \uB370\uC774\uD130\uB85C \uAC00\uC911\uCE58\uB97C \uB9DE\uCD94\uACE0, \uAC80\uC99D(Validation) \uB370\uC774\uD130\uB85C \uD558\uC774\uD37C\uD30C\uB77C\uBBF8\uD130\uB97C \uC870\uC815\uD55C \uB4A4, \uBD84\uB9AC\uB41C \uD3C9\uAC00(Test) \uB370\uC774\uD130\uB85C \uC77C\uBC18\uD654 \uC131\uB2A5\uC744 \uCE21\uC815\uD569\uB2C8\uB2E4. \uC774\uBBF8 \uD559\uC2B5\uB41C \uC678\uBD80 \uBAA8\uB378 API\uB97C \uD638\uCD9C\uD558\uAC70\uB098 \uC815\uC801 UI \uB370\uBAA8\uB97C \uB744\uC6B0\uB294 \uAC83\uC740 \uC2E4\uC81C \uC9C0\uB3C4 \uD559\uC2B5 \uD6C8\uB828\uC774 \uC544\uB2D9\uB2C8\uB2E4.",
32030
+ promptSnippet: "\uC9C0\uB3C4 \uD559\uC2B5 \uAE30\uBC18 \uAE30\uB2A5\uC744 \uC124\uACC4\xB7\uAD6C\uD604\uD560 \uB54C \uBD84\uB958(Classification)\uC778\uC9C0 \uD68C\uADC0(Regression)\uC778\uC9C0 \uBB38\uC81C \uC720\uD615\uACFC \uC815\uB2F5 \uB808\uC774\uBE14 \uC815\uC758\uB97C \uBA3C\uC800 \uBA85\uD655\uD788 \uD558\uACE0, \uD559\uC2B5\xB7\uAC80\uC99D\xB7\uD14C\uC2A4\uD2B8 \uB370\uC774\uD130\uC14B \uBD84\uB9AC\uC640 \uB370\uC774\uD130 \uB204\uC218 \uBC29\uC9C0 \uAE30\uC900\uC744 \uD3EC\uD568\uD574 \uC918. \uB2E8\uC21C UI \uC2DC\uC5F0\uC774\uB098 \uC0AC\uC804 \uD559\uC2B5\uB41C API \uD638\uCD9C\uC744 \uC2E4\uC81C \uBAA8\uB378 \uD6C8\uB828\uCC98\uB7FC \uD45C\uD604\uD558\uC9C0 \uB9C8."
32031
+ },
32032
+ en: {
32033
+ definition: "A machine learning paradigm that learns an input-to-output mapping from labeled examples paired with ground-truth answers, typically used for classification (discrete categories) or regression (continuous values).",
32034
+ example: "Split labeled support tickets into training, validation, and held-out test sets to tune and evaluate a category classifier without data leakage. Calling a hosted inference API or toggling a UI mockup is not real model training.",
32035
+ promptSnippet: "When building a supervised learning workflow, specify whether the task is classification or regression, define how ground-truth labels are collected, enforce strict training/validation/test splits to avoid leakage, and never misrepresent static UI demos or inference API calls as real model training."
32036
+ }
32037
+ }
32038
+ },
32039
+ "unsupervised-learning": {
32040
+ aliases: {
32041
+ ko: ["\uBE44\uC9C0\uB3C4\uD559\uC2B5", "\uAD70\uC9D1\uD654", "\uD328\uD134 \uD0D0\uC0C9", "\uD074\uB7EC\uC2A4\uD130\uB9C1", "\uCC28\uC6D0 \uCD95\uC18C \uD559\uC2B5"],
32042
+ en: ["unsupervised ML", "clustering", "pattern discovery", "dimensionality reduction", "unlabeled data learning"]
32043
+ },
32044
+ text: {
32045
+ ko: {
32046
+ definition: "\uC815\uB2F5 \uB808\uC774\uBE14\uC774 \uC5C6\uB294 \uB370\uC774\uD130\uC5D0\uC11C \uC228\uACA8\uC9C4 \uD328\uD134, \uC7A0\uC7AC \uAD6C\uC870, \uC720\uC0AC\uD55C \uC9D1\uB2E8(\uAD70\uC9D1\xB7\uD074\uB7EC\uC2A4\uD130)\uC774\uB098 \uC774\uC0C1 \uC9D5\uD6C4\uB97C \uC2A4\uC2A4\uB85C \uCC3E\uC544\uB0B4\uB294 \uBA38\uC2E0\uB7EC\uB2DD \uBC29\uC2DD\uC785\uB2C8\uB2E4. \uC815\uB2F5\uC744 \uC8FC\uBA70 \uB9DE\uCD94\uAC8C \uD558\uB294 \uC9C0\uB3C4 \uD559\uC2B5\uC774\uB098 \uD658\uACBD \uBCF4\uC0C1 \uC2E0\uD638\uB85C \uD589\uB3D9 \uC815\uCC45\uC744 \uC775\uD788\uB294 \uAC15\uD654 \uD559\uC2B5\uACFC\uB294 \uC811\uADFC \uBC29\uC2DD\uC774 \uB2E4\uB985\uB2C8\uB2E4.",
32047
+ example: "\uB77C\uBCA8\uC774 \uC5C6\uB294 \uACE0\uAC1D \uD589\uB3D9 \uB85C\uADF8\uB97C \uAD70\uC9D1\uD654\uD574 \uC720\uC0AC\uD55C \uC774\uC6A9 \uD328\uD134 \uADF8\uB8F9\uC744 \uD0D0\uC0C9\uD560 \uC218 \uC788\uC9C0\uB9CC, \uB3C4\uCD9C\uB41C \uAD70\uC9D1 \uBC88\uD638\uB098 \uC774\uC0C1 \uC810\uC218\uAC00 \uC808\uB300\uC801\uC778 \uC815\uB2F5(Ground Truth)\uC744 \uBCF4\uC7A5\uD558\uC9C0\uB294 \uC54A\uC73C\uBBC0\uB85C \uB3C4\uBA54\uC778 \uC804\uBB38\uAC00\uC758 \uD574\uC11D\uACFC \uAC80\uC99D\uC774 \uD568\uAED8 \uD544\uC694\uD569\uB2C8\uB2E4.",
32048
+ promptSnippet: "\uBE44\uC9C0\uB3C4 \uD559\uC2B5(\uAD70\uC9D1\uD654\xB7\uCC28\uC6D0 \uCD95\uC18C\xB7\uC774\uC0C1 \uD0D0\uC9C0 \uB4F1) \uACB0\uACFC\uB97C \uC81C\uD488\uC5D0 \uBC18\uC601\uD560 \uB54C\uB294 \uC815\uB2F5 \uB808\uC774\uBE14\uC774 \uC788\uB294 \uC9C0\uB3C4 \uD559\uC2B5\uC774\uB098 \uBCF4\uC0C1 \uAE30\uBC18 \uAC15\uD654 \uD559\uC2B5\uACFC \uAD6C\uBD84\uD558\uACE0, \uC0B0\uCD9C\uB41C \uAD70\uC9D1\xB7\uADF8\uB8F9 \uB77C\uBCA8\uC744 \uD655\uC815\uB41C \uC815\uB2F5(Ground Truth)\uCC98\uB7FC \uB2E8\uC815\uD558\uC9C0 \uB9D0\uACE0 \uD0D0\uC0C9\uC801 \uC2E0\uD638\uB85C \uD45C\uC2DC\uD574 \uC0AC\uB78C\uC774 \uAC80\uD1A0\uD560 \uC218 \uC788\uAC8C \uD574 \uC918."
32049
+ },
32050
+ en: {
32051
+ definition: "A machine learning approach that uncovers hidden patterns, structures, or clusters in unlabeled data without ground-truth labels\u2014distinct from supervised learning (which learns from labeled answers) and reinforcement learning (which optimizes actions from rewards).",
32052
+ example: "Cluster unlabeled session logs to surface candidate user segments or anomalies, treating the resulting cluster assignments as exploratory signals requiring human interpretation rather than guaranteed ground truth.",
32053
+ promptSnippet: "When surfacing unsupervised learning outputs (such as clustering or anomaly grouping), distinguish them from labeled supervised predictions and reward-driven reinforcement learning, and present discovered groups as exploratory hypotheses rather than guaranteed ground truth."
32054
+ }
32055
+ }
32056
+ },
32057
+ "reinforcement-learning": {
32058
+ aliases: {
32059
+ ko: ["\uAC15\uD654\uD559\uC2B5", "RL", "\uBCF4\uC0C1 \uAE30\uBC18 \uD559\uC2B5", "\uC815\uCC45 \uD559\uC2B5", "\uC5D0\uC774\uC804\uD2B8 \uBCF4\uC0C1 \uCD5C\uC801\uD654"],
32060
+ en: ["RL", "reward-based learning", "policy learning", "agent-environment learning"]
32061
+ },
32062
+ text: {
32063
+ ko: {
32064
+ definition: "\uC5D0\uC774\uC804\uD2B8\uAC00 \uD658\uACBD\uACFC \uC0C1\uD638\uC791\uC6A9\uD558\uBA70 \uD604\uC7AC \uC0C1\uD0DC(State)\uC5D0\uC11C \uD589\uB3D9(Action)\uC744 \uC120\uD0DD\uD558\uACE0 \uADF8 \uACB0\uACFC\uB85C \uBC1B\uB294 \uBCF4\uC0C1(Reward)\uC744 \uD1B5\uD574 \uB204\uC801 \uBCF4\uC0C1\uC744 \uCD5C\uB300\uD654\uD558\uB294 \uC815\uCC45(Policy)\uC744 \uC2DC\uD589\uCC29\uC624\uB85C \uD559\uC2B5\uD558\uB294 \uBA38\uC2E0\uB7EC\uB2DD \uBC29\uC2DD\uC785\uB2C8\uB2E4.",
32065
+ example: "\uB85C\uBD07 \uC81C\uC5B4 \uC2DC\uBBAC\uB808\uC774\uD130\uC5D0\uC11C \uBAA9\uD45C \uC9C0\uC810\uC5D0 \uAC00\uAE4C\uC6CC\uC9C8\uC218\uB85D \uC591\uC758 \uBCF4\uC0C1\uC744 \uC8FC\uACE0 \uCDA9\uB3CC \uC2DC \uC74C\uC758 \uBCF4\uC0C1\uC744 \uC8FC\uBA70 \uC815\uCC45\uC744 \uBC18\uBCF5 \uAC31\uC2E0\uD569\uB2C8\uB2E4. \uBC18\uBA74 \uD034\uC988 \uC810\uC218\uB098 \uBC30\uC9C0 \uAC19\uC740 \uAC8C\uC774\uBBF8\uD53C\uCF00\uC774\uC158 UI \uC790\uCCB4\uB294 \uAC15\uD654 \uD559\uC2B5\uC774 \uC544\uB2C8\uBA70, \uBE0C\uB77C\uC6B0\uC800\uC758 \uAC04\uB2E8\uD55C \uC2DC\uC5F0 \uB370\uBAA8\uB3C4 \uC2E4\uC81C \uC815\uCC45 \uD559\uC2B5 \uB8E8\uD504\uC640 \uAD6C\uBD84\uD574 \uC548\uB0B4\uD574\uC57C \uD569\uB2C8\uB2E4.",
32066
+ promptSnippet: "\uAC15\uD654 \uD559\uC2B5(RL) \uAC1C\uB150\uC744 \uB2E4\uB8E8\uAC70\uB098 \uC2E4\uD5D8 \uD654\uBA74\uC744 \uAD6C\uC131\uD560 \uB54C\uB294 \uC0C1\uD0DC\xB7\uD589\uB3D9\xB7\uBCF4\uC0C1\xB7\uB204\uC801 \uBCF4\uC0C1 \uCD5C\uC801\uD654 \uC815\uCC45 \uAD6C\uC870\uB97C \uBA85\uD655\uD788 \uC815\uC758\uD558\uACE0, \uD034\uC988 \uC810\uC218\uB098 \uBC30\uC9C0 \uBCF4\uC0C1 UI\uB97C \uAC15\uD654 \uD559\uC2B5\uC73C\uB85C \uD63C\uB3D9\uD574 \uD45C\uAE30\uD558\uC9C0 \uB9C8. \uC815\uC801 UI \uC2DC\uBBAC\uB808\uC774\uC158\uC774\uB098 \uB370\uBAA8\uAC00 \uC2E4\uC81C \uBAA8\uB378 \uD6C8\uB828\uC744 \uC218\uD589\uD558\uB294 \uAC83\uCC98\uB7FC \uBCF4\uC774\uC9C0 \uC54A\uAC8C \uACBD\uACC4\uB97C \uBD84\uBA85\uD788 \uD45C\uC2DC\uD574 \uC918."
32067
+ },
32068
+ en: {
32069
+ definition: "A machine learning paradigm in which an agent interacts with an environment\u2014observing states, taking actions, and receiving rewards\u2014to learn a policy that maximizes cumulative long-term reward.",
32070
+ example: "A simulated warehouse agent updates its navigation policy across episodes using state transitions and step rewards. Gamified quiz scores or badge UI alone are not reinforcement learning, and interactive UI demos must be clearly labeled as simulations rather than live policy training.",
32071
+ promptSnippet: 'When modeling or visualizing Reinforcement Learning (RL), explicitly define the state, action, reward, and cumulative-return policy loop, avoid calling gamified quiz points or badges "reinforcement learning," and clearly distinguish interactive UI simulations/demos from real training runs.'
32072
+ }
32073
+ }
32074
+ },
32075
+ "largest-contentful-paint": {
32076
+ aliases: {
32077
+ ko: ["LCP \uC9C0\uD45C", "\uCD5C\uB300 \uCF58\uD150\uCE20 \uD398\uC778\uD2B8", "\uCD08\uAE30 \uB300\uD45C \uCF58\uD150\uCE20 \uB80C\uB354\uB9C1"],
32078
+ en: ["LCP", "Largest Contentful Paint", "initial viewport paint"]
32079
+ },
32080
+ text: {
32081
+ ko: {
32082
+ definition: "\uD398\uC774\uC9C0\uAC00 \uC5F4\uB9B4 \uB54C \uCD08\uAE30 \uBDF0\uD3EC\uD2B8 \uC548\uC5D0\uC11C \uAC00\uC7A5 \uD070 \uC801\uACA9 \uC774\uBBF8\uC9C0\uB098 \uD14D\uC2A4\uD2B8 \uBE14\uB85D\uC774 \uD654\uBA74\uC5D0 \uADF8\uB824\uC9C0\uB294 \uC2DC\uC810\uC744 \uCE21\uC815\uD558\uB294 \uC6F9 \uC131\uB2A5 \uC9C0\uD45C\uC785\uB2C8\uB2E4. \uCD08\uAE30 \uB300\uD45C \uC774\uBBF8\uC9C0\uC5D0 \uC9C0\uC5F0 \uB85C\uB529\uC744 \uAC78\uAC70\uB098 \uB80C\uB354\uB9C1 \uCC28\uB2E8 \uC2A4\uD06C\uB9BD\uD2B8\uB97C \uC55E\uC138\uC6B0\uBA74 LCP(Largest Contentful Paint)\uAC00 \uB2A6\uC5B4\uC9D1\uB2C8\uB2E4.",
32083
+ example: "\uB79C\uB529 \uD398\uC774\uC9C0 \uC0C1\uB2E8 \uD788\uC5B4\uB85C \uBC30\uB108 \uC774\uBBF8\uC9C0\uB97C \uC9C0\uC5F0 \uB85C\uB529 \uB300\uC0C1\uC5D0\uC11C \uC81C\uC678\uD558\uACE0 \uC801\uC808\uD55C \uD06C\uAE30\xB7\uD3EC\uB9F7\uACFC \uB192\uC740 \uC6B0\uC120\uC21C\uC704\uB85C \uC804\uB2EC\uD574 \uCD08\uAE30 \uD654\uBA74 \uD575\uC2EC \uC2DC\uAC01 \uC694\uC18C\uAC00 \uBA3C\uC800 \uD45C\uC2DC\uB418\uAC8C \uD569\uB2C8\uB2E4.",
32084
+ promptSnippet: "\uCD08\uAE30 \uBDF0\uD3EC\uD2B8\uC758 \uD575\uC2EC \uC774\uBBF8\uC9C0\uB098 \uD5E4\uB4DC\uB77C\uC778 \uBE14\uB85D\uC774 LCP(Largest Contentful Paint) \uB300\uC0C1\uC774 \uB418\uBBC0\uB85C \uC0C1\uB2E8 \uB300\uD45C \uC774\uBBF8\uC9C0\uB294 \uC9C0\uC5F0 \uB85C\uB529\uD558\uC9C0 \uB9D0\uACE0 \uD06C\uAE30 \uC18D\uC131, \uC6B0\uC120\uC21C\uC704 \uD78C\uD2B8, \uAC00\uBCBC\uC6B4 \uCD08\uAE30 CSS\uB85C \uBE60\uB974\uAC8C \uADF8\uB824\uC9C0\uAC8C \uAD6C\uC131\uD558\uC138\uC694."
32085
+ },
32086
+ en: {
32087
+ definition: "A Core Web Vital measuring the render time of the largest eligible image or text block visible within the initial viewport during page load. Blocking scripts or lazy-loading the hero asset directly delays Largest Contentful Paint (LCP).",
32088
+ example: "A landing page excludes its above-the-fold hero banner from lazy loading, declares explicit dimensions, and prioritizes critical assets so the primary visual paints promptly.",
32089
+ promptSnippet: "Optimize Largest Contentful Paint (LCP) by keeping the main above-the-fold image eager rather than lazy-loaded, setting explicit dimensions, and avoiding render-blocking resources before the primary viewport block."
32090
+ }
32091
+ }
32092
+ },
32093
+ "interaction-to-next-paint": {
32094
+ aliases: {
32095
+ ko: ["INP \uC9C0\uD45C", "\uC0C1\uD638\uC791\uC6A9 \uC751\uB2F5 \uC9C0\uC5F0", "\uB2E4\uC74C \uD398\uC778\uD2B8 \uC9C0\uC5F0"],
32096
+ en: ["INP", "Interaction to Next Paint", "input responsiveness"]
32097
+ },
32098
+ text: {
32099
+ ko: {
32100
+ definition: "\uC0AC\uC6A9\uC790\uAC00 \uD398\uC774\uC9C0\uC5D0 \uBA38\uBB34\uB294 \uB3D9\uC548 \uD074\uB9AD, \uD0ED, \uD0A4\uBCF4\uB4DC \uC785\uB825\uC744 \uCC98\uB9AC\uD574 \uB2E4\uC74C \uD654\uBA74 \uD504\uB808\uC784\uC744 \uADF8\uB9AC\uAE30\uAE4C\uC9C0\uC758 \uC9C0\uC5F0 \uAC00\uC6B4\uB370, \uC804\uCCB4 \uD3C9\uADE0\uC774 \uC544\uB2C8\uB77C \uAD00\uCC30\uB41C \uB290\uB9B0 \uC0C1\uD638\uC791\uC6A9\uC744 \uB300\uD45C\uD558\uB294 \uAC12(\uACE0\uBC31\uBD84\uC704 \uB610\uB294 \uCD5C\uC7A5 \uC9C0\uC5F0)\uC744 \uBCF4\uACE0\uD558\uB294 \uC6F9 \uC131\uB2A5 \uC9C0\uD45C\uC785\uB2C8\uB2E4. \uBB34\uAC70\uC6B4 \uB3D9\uAE30 \uC790\uBC14\uC2A4\uD06C\uB9BD\uD2B8 \uC5F0\uC0B0\uC774\uB098 \uB300\uB7C9 DOM(Document Object Model) \uAC31\uC2E0\uC774 \uBA54\uC778 \uC2A4\uB808\uB4DC\uB97C \uC810\uC720\uD558\uBA74 INP(Interaction to Next Paint)\uAC00 \uB098\uBE60\uC9D1\uB2C8\uB2E4.",
32101
+ example: "\uC218\uCC9C \uAC1C \uD56D\uBAA9 \uD544\uD130 \uC785\uB825 \uC2DC \uD0A4 \uC785\uB825\uB9C8\uB2E4 \uC804\uCCB4 \uBAA9\uB85D\uC744 \uB3D9\uAE30 \uC815\uB82C\uD558\uC9C0 \uC54A\uACE0 \uC791\uC5C5\uC744 \uB098\uB204\uAC70\uB098 \uD45C\uC2DC \uD589\uC744 \uC81C\uD55C\uD574 \uBC84\uD2BC \uD074\uB9AD\uACFC \uD0C0\uC774\uD551 \uD6C4 \uB2E4\uC74C \uD504\uB808\uC784\uC774 \uC9C0\uC5F0 \uC5C6\uC774 \uBC18\uC601\uB418\uAC8C \uD569\uB2C8\uB2E4.",
32102
+ promptSnippet: "INP(Interaction to Next Paint)\uB294 \uD3C9\uADE0\uC774 \uC544\uB2C8\uB77C \uBC29\uBB38 \uC911 \uAC00\uC7A5 \uB290\uB9B0 \uCD95\uC758 \uC0C1\uD638\uC791\uC6A9 \uC9C0\uC5F0\uC774 \uC9C0\uD45C\uB97C \uC88C\uC6B0\uD558\uBBC0\uB85C \uD074\uB9AD\xB7\uD0ED\xB7\uD0A4 \uC785\uB825 \uC9C1\uD6C4 \uAE34 \uB3D9\uAE30 \uC5F0\uC0B0\uC774 \uBA54\uC778 \uC2A4\uB808\uB4DC\uB97C \uB9C9\uC9C0 \uC54A\uB3C4\uB85D \uC791\uC5C5\uC744 \uBD84\uD560\uD558\uAC70\uB098 \uBD88\uD544\uC694\uD55C DOM \uC7AC\uACC4\uC0B0\uC744 \uC904\uC774\uC138\uC694."
32103
+ },
32104
+ en: {
32105
+ definition: "A Core Web Vital capturing the latency from user click, tap, or key interactions until the browser paints the next visual frame, reporting a value representative of the slowest observed interactions across the visit rather than an average. Long synchronous JavaScript tasks or large Document Object Model (DOM) updates stall the main thread and worsen Interaction to Next Paint (INP).",
32106
+ example: "Instead of synchronously sorting and re-rendering thousands of rows on every keystroke, an interactive table slices heavy updates and limits visible rows so keystrokes and clicks update the next frame promptly.",
32107
+ promptSnippet: "Because Interaction to Next Paint (INP) reflects slow interactions rather than an average, keep main-thread work short on every click, tap, or key event by splitting heavy tasks and avoiding synchronous full-list DOM updates."
32108
+ }
32109
+ }
32110
+ },
32111
+ "cumulative-layout-shift": {
32112
+ aliases: {
32113
+ ko: ["CLS \uC9C0\uD45C", "\uB808\uC774\uC544\uC6C3 \uBC00\uB9BC \uC810\uC218", "\uC608\uC0C1\uCE58 \uBABB\uD55C \uD654\uBA74 \uC774\uB3D9"],
32114
+ en: ["CLS", "Cumulative Layout Shift", "unexpected layout shift"]
32115
+ },
32116
+ text: {
32117
+ ko: {
32118
+ definition: "\uBC29\uBB38 \uC804\uCCB4\uC5D0\uC11C \uBC1C\uC0DD\uD55C \uC774\uB3D9\uC744 \uB2E8\uC21C \uD569\uC0B0\uD558\uB294 \uAC83\uC774 \uC544\uB2C8\uB77C, \uC9E7\uC740 \uAC04\uACA9\uC73C\uB85C \uC774\uC5B4\uC9C0\uB294 \uB808\uC774\uC544\uC6C3 \uC774\uB3D9 \uBB36\uC74C(\uC138\uC158 \uAD6C\uAC04, Session Window) \uAC00\uC6B4\uB370 \uC810\uC218\uAC00 \uAC00\uC7A5 \uD070 \uAD6C\uAC04\uC758 \uD569\uC73C\uB85C \uC608\uC0C1\uCE58 \uBABB\uD55C \uD654\uBA74 \uC774\uB3D9 \uD06C\uAE30\uB97C \uB098\uD0C0\uB0B4\uB294 \uBB34\uB2E8\uC704 \uC810\uC218\uC785\uB2C8\uB2E4. \uC0AC\uC6A9\uC790 \uB3D9\uC791 \uC5C6\uC774 \uC774\uBBF8\uC9C0\xB7\uBC30\uB108\xB7\uC6F9\uD3F0\uD2B8\uAC00 \uB4A4\uB2A6\uAC8C \uACF5\uAC04\uC744 \uBC00\uC5B4\uB0BC\uC218\uB85D CLS(Cumulative Layout Shift)\uAC00 \uCEE4\uC9D1\uB2C8\uB2E4.",
32119
+ example: "\uB3D9\uC801 \uACF5\uC9C0 \uBC30\uB108\uC640 \uBE44\uB3D9\uAE30 \uCE74\uB4DC \uC774\uBBF8\uC9C0\uC5D0 \uBBF8\uB9AC \uACE0\uC815 \uB192\uC774\uB098 aspect-ratio \uACF5\uAC04\uC744 \uD560\uB2F9\uD558\uACE0, \uBAA8\uB2EC \uC5F4\uB9BC \uC2DC \uC2A4\uD06C\uB864\uBC14 \uB108\uBE44 \uBCC0\uD654\uB294 scrollbar-gutter\uB85C \uBCF4\uC815\uD574 \uC8FC\uBCC0 \uD14D\uC2A4\uD2B8\uAC00 \uBC00\uB9AC\uC9C0 \uC54A\uAC8C \uD569\uB2C8\uB2E4.",
32120
+ promptSnippet: "\uC774\uBBF8\uC9C0\xB7\uAD11\uACE0\xB7\uBE44\uB3D9\uAE30 \uD328\uB110\uC758 \uACF5\uAC04\uC744 aspect-ratio\uB098 \uC608\uC57D \uB192\uC774\uB85C \uBA3C\uC800 \uD655\uBCF4\uD558\uACE0, \uC0AC\uC6A9\uC790 \uC785\uB825 \uC5C6\uB294 \uAC11\uC791\uC2A4\uB7EC\uC6B4 \uC0C1\uB2E8 \uC0BD\uC785\uC744 \uD53C\uD574 CLS(Cumulative Layout Shift)\uB97C \uCD5C\uC18C\uD654\uD558\uC138\uC694."
32121
+ },
32122
+ en: {
32123
+ definition: "A unitless Core Web Vital score measuring unexpected layout shifts not as an unbounded sum over an entire visit, but as the total score of the largest burst of shifts (session window). When late-loading images, banners, or fonts push visible elements downward without user input, Cumulative Layout Shift (CLS) rises.",
32124
+ example: "Media slots reserve dimensions with CSS aspect-ratio and dynamic status regions keep fixed space so newly loaded thumbnails do not push action buttons downward.",
32125
+ promptSnippet: "Minimize Cumulative Layout Shift (CLS) by reserving space for images, embeds, and async UI regions upfront and avoiding unprompted layout insertions above existing viewport content."
32126
+ }
32127
+ }
32128
+ },
32129
+ "lazy-loading": {
32130
+ aliases: {
32131
+ ko: ["\uB808\uC774\uC9C0 \uB85C\uB529", "\uD654\uBA74 \uBC16 \uB9AC\uC18C\uC2A4 \uC9C0\uC5F0 \uBD88\uB7EC\uC624\uAE30", "\uC628\uB514\uB9E8\uB4DC \uC774\uBBF8\uC9C0 \uB85C\uB4DC"],
32132
+ en: ["lazy load", "deferred loading", "loading lazy"]
32133
+ },
32134
+ text: {
32135
+ ko: {
32136
+ definition: "\uCD08\uAE30 \uD654\uBA74\uC5D0 \uBC14\uB85C \uBCF4\uC774\uC9C0 \uC54A\uB294 \uC774\uBBF8\uC9C0, \uBBF8\uB514\uC5B4, \uD558\uC704 \uBAA8\uB4C8\uC744 \uCC98\uC74C\uBD80\uD130 \uBAA8\uB450 \uBC1B\uC9C0 \uC54A\uACE0 \uC0AC\uC6A9\uC790\uAC00 \uC2A4\uD06C\uB864\uD574 \uAC00\uAE4C\uC6CC\uC9C0\uAC70\uB098 \uD544\uC694\uD574\uC9C8 \uB54C \uBD88\uB7EC\uC624\uB294 \uAE30\uBC95\uC785\uB2C8\uB2E4. \uB2E8, \uCCAB \uD654\uBA74\uC758 \uB300\uD45C \uC774\uBBF8\uC9C0\uB098 \uD575\uC2EC \uCF58\uD150\uCE20\uC5D0 \uC801\uC6A9\uD558\uBA74 \uC624\uD788\uB824 \uCD08\uAE30 \uD45C\uC2DC\uAC00 \uB2A6\uC5B4\uC9C0\uBBC0\uB85C \uD654\uBA74 \uC544\uB798\uCABD \uB9AC\uC18C\uC2A4\uBD80\uD130 \uC801\uC6A9\uD569\uB2C8\uB2E4.",
32137
+ example: '\uAE34 \uAE30\uC0AC\uB098 \uAC24\uB7EC\uB9AC\uC5D0\uC11C \uC0C1\uB2E8 \uCCAB \uC378\uB124\uC77C\uC740 \uC989\uC2DC \uB85C\uB4DC\uD558\uACE0, \uC2A4\uD06C\uB864 \uC544\uB798\uC5D0 \uB193\uC778 \uC774\uBBF8\uC9C0\uC5D0\uB9CC loading="lazy"\uC640 \uC608\uC57D \uBE44\uC728\uC744 \uC801\uC6A9\uD574 \uCD08\uAE30 \uB124\uD2B8\uC6CC\uD06C \uB300\uC5ED\uD3ED\uC744 \uC544\uB08D\uB2C8\uB2E4.',
32138
+ promptSnippet: "\uC9C0\uC5F0 \uB85C\uB529\uC740 \uCD08\uAE30 \uBDF0\uD3EC\uD2B8 \uC544\uB798\uC5D0 \uC788\uB294 \uC774\uBBF8\uC9C0\uB098 \uBCF4\uC870 \uBBF8\uB514\uC5B4\uBD80\uD130 \uC801\uC6A9\uD558\uACE0, \uCCAB \uD654\uBA74 \uB300\uD45C \uC774\uBBF8\uC9C0\uC5D0\uB294 \uC801\uC6A9\uD558\uC9C0 \uB9D0\uBA70 \uB808\uC774\uC544\uC6C3 \uC774\uB3D9\uC774 \uC5C6\uB3C4\uB85D \uD06C\uAE30 \uBE44\uC728\uC744 \uD568\uAED8 \uC9C0\uC815\uD558\uC138\uC694."
32139
+ },
32140
+ en: {
32141
+ definition: "Deferring the fetch of below-the-fold images, media, or secondary assets until the user scrolls near them or needs them. Because deferring visible assets hurts initial paint speed, apply lazy loading to offscreen resources rather than the initial hero image.",
32142
+ example: 'An editorial gallery loads the top visible image eagerly and marks lower gallery images with loading="lazy" alongside reserved aspect ratios.',
32143
+ promptSnippet: "Apply lazy loading strictly to offscreen images and secondary resources below the initial fold, keep the hero asset eager, and reserve image dimensions to avoid layout shifts."
32144
+ }
32145
+ }
32146
+ },
32147
+ "scrollbar-gutter": {
32148
+ aliases: {
32149
+ ko: ["\uC2A4\uD06C\uB864\uBC14 \uAC70\uD130", "\uC2A4\uD06C\uB864\uBC14 \uC5EC\uBC31 \uC608\uC57D", "\uC2A4\uD06C\uB864\uBC14 \uACF5\uAC04 \uACE0\uC815"],
32150
+ en: ["scrollbar-gutter", "scrollbar gutter reservation", "stable scrollbar gutter"]
32151
+ },
32152
+ text: {
32153
+ ko: {
32154
+ definition: "\uC2A4\uD06C\uB864 \uAC00\uB2A5\uD55C \uC601\uC5ED\uC5D0\uC11C \uCF58\uD150\uCE20 \uAE38\uC774\uAC00 \uB298\uC5B4 \uC2A4\uD06C\uB864\uBC14\uAC00 \uB098\uD0C0\uB098\uB354\uB77C\uB3C4 \uB808\uC774\uC544\uC6C3 \uD3ED\uC774\uB098 \uAC00\uC6B4\uB370 \uC815\uB82C\uC774 \uD754\uB4E4\uB9AC\uC9C0 \uC54A\uB3C4\uB85D \uC2A4\uD06C\uB864\uBC14 \uC790\uB9AC\uB97C \uBBF8\uB9AC \uC608\uC57D\uD574 \uB450\uB294 CSS(Cascading Style Sheets) \uC18D\uC131\uC785\uB2C8\uB2E4. \uD074\uB798\uC2DD \uC2A4\uD06C\uB864\uBC14 \uD658\uACBD\uC5D0\uC11C \uC591\uCABD \uC5EC\uBC31\uC744 \uB300\uCE6D\uC73C\uB85C \uB9DE\uCD9C \uB54C\uB294 stable both-edges\uB97C \uC0AC\uC6A9\uD558\uBA70, \uC624\uBC84\uB808\uC774 \uC2A4\uD06C\uB864\uBC14 \uBAA8\uB4DC\uC5D0\uC11C\uB294 \uD45C\uC900\uC0C1 \uBCC4\uB3C4 \uACF5\uAC04\uC744 \uCC28\uC9C0\uD558\uC9C0 \uC54A\uB294\uB2E4\uB294 \uC810\uC744 \uACE0\uB824\uD574\uC57C \uD569\uB2C8\uB2E4.",
32155
+ example: "\uBAA9\uB85D \uD655\uC7A5 \uD1A0\uAE00\uC5D0 \uB530\uB77C \uD56D\uBAA9 \uC218\uAC00 \uBCC0\uD558\uB294 \uD328\uB110\uC5D0 overflow-y: auto\uC640 scrollbar-gutter: stable both-edges\uB97C \uD568\uAED8 \uC801\uC6A9\uD574 \uC2A4\uD06C\uB864\uBC14 \uC720\uBB34\uC640 \uAD00\uACC4\uC5C6\uC774 \uBCF8\uBB38 \uC911\uC2EC\uCD95\uC774 \uC5B4\uAE0B\uB098\uC9C0 \uC54A\uAC8C \uC720\uC9C0\uD569\uB2C8\uB2E4.",
32156
+ promptSnippet: "\uBAA9\uB85D \uD3BC\uCE68\uC774\uB098 \uD544\uD130\uB85C \uC138\uB85C \uC2A4\uD06C\uB864\uBC14\uAC00 \uC0DD\uACBC\uB2E4 \uC0AC\uB77C\uC838 \uBCF8\uBB38 \uD3ED\uC774 \uD754\uB4E4\uB9AC\uB294 \uC601\uC5ED\uC5D0\uB294 overflow-y: auto\uC640 \uD568\uAED8 scrollbar-gutter: stable(\uB300\uCE6D \uC815\uB82C\uC774 \uD544\uC694\uD558\uBA74 both-edges)\uC744 \uC801\uC6A9\uD558\uB418, \uC624\uBC84\uB808\uC774 \uC2A4\uD06C\uB864\uBC14 \uD658\uACBD\uC5D0\uC11C\uB294 \uBCC4\uB3C4 \uC5EC\uBC31\uC774 \uC608\uC57D\uB418\uC9C0 \uC54A\uC74C\uC744 \uC804\uC81C\uD558\uC138\uC694."
32157
+ },
32158
+ en: {
32159
+ definition: "A Cascading Style Sheets (CSS) property that reserves layout space for scrollbars in advance so toggling between short and overflowing content does not shift widths or centered alignment. Using stable both-edges balances classic scrollbars symmetrically, while overlay scrollbars occupy no gutter space.",
32160
+ example: "An expandable file panel pairs overflow-y: auto with scrollbar-gutter: stable both-edges so adding rows never nudges centered row labels horizontally under classic scrollbars.",
32161
+ promptSnippet: "Prevent horizontal layout jitter when scrollbars appear or disappear by combining overflow-y: auto with scrollbar-gutter: stable (or stable both-edges for centered layouts), accounting for overlay scrollbars that reserve no space."
32162
+ }
32163
+ }
32164
+ },
32165
+ "content-visibility": {
32166
+ aliases: {
32167
+ ko: ["\uCF58\uD150\uCE20 \uBE44\uC800\uBE4C\uB9AC\uD2F0", "\uD654\uBA74 \uBC16 \uB80C\uB354\uB9C1 \uC0DD\uB7B5", "CSS \uB80C\uB354\uB9C1 \uAC74\uB108\uB6F0\uAE30"],
32168
+ en: ["content-visibility auto", "offscreen rendering skip", "contain-intrinsic-size"]
32169
+ },
32170
+ text: {
32171
+ ko: {
32172
+ definition: "CSS(Cascading Style Sheets)\uC758 content-visibility: auto \uC18D\uC131\uC744 \uC774\uC6A9\uD574 \uD654\uBA74 \uBC16 \uC139\uC158\uC758 \uB808\uC774\uC544\uC6C3\uACFC \uD398\uC778\uD2B8 \uC791\uC5C5\uC744 \uBE0C\uB77C\uC6B0\uC800\uAC00 \uB098\uC911\uC5D0 \uD544\uC694\uD560 \uB54C\uAE4C\uC9C0 \uAC74\uB108\uB6F0\uAC8C \uD558\uB294 \uB80C\uB354\uB9C1 \uCD5C\uC801\uD654 \uAE30\uBC95\uC785\uB2C8\uB2E4. \uD654\uBA74 \uBC16 \uB178\uB4DC\uB97C DOM(Document Object Model)\uC5D0\uC11C \uC81C\uAC70\uD558\uB294 \uAC00\uC0C1 \uC2A4\uD06C\uB864\uACFC \uB2EC\uB9AC DOM \uC694\uC18C\uB294 \uADF8\uB300\uB85C \uC720\uC9C0\uB418\uBBC0\uB85C \uBE0C\uB77C\uC6B0\uC800 \uB0B4 \uCC3E\uAE30\uB098 \uC575\uCEE4 \uC774\uB3D9\uACFC \uC790\uC5F0\uC2A4\uB7FD\uAC8C \uD638\uD658\uB429\uB2C8\uB2E4.",
32173
+ example: "\uC218\uBC31 \uAC1C \uC139\uC158\uC774 \uC774\uC5B4\uC9C0\uB294 \uAE34 \uBB38\uC11C \uBAA9\uB85D\uC758 \uAC01 \uC139\uC158 \uCE74\uB4DC\uC5D0 content-visibility: auto\uC640 contain-intrinsic-size \uC608\uC0C1 \uB192\uC774\uB97C \uC9C0\uC815\uD574 \uC2A4\uD06C\uB864 \uB9C9\uB300 \uAE38\uC774\uB97C \uC720\uC9C0\uD558\uBA74\uC11C \uCD08\uAE30 \uB80C\uB354\uB9C1 \uBE44\uC6A9\uC744 \uB0AE\uCDA5\uB2C8\uB2E4.",
32174
+ promptSnippet: "DOM \uAD6C\uC870\uB97C \uC720\uC9C0\uD574\uC57C \uD558\uB294 \uAE34 \uBB38\uC11C\uB098 \uCE74\uB4DC \uBAA9\uB85D\uC5D0\uC11C \uCD08\uAE30 \uB80C\uB354\uB9C1 \uBD80\uB2F4\uC744 \uC904\uC774\uB824\uBA74 \uAC00\uC0C1 \uC2A4\uD06C\uB864\uACFC \uD63C\uB3D9\uD558\uC9C0 \uB9D0\uACE0 \uC139\uC158 \uB2E8\uC704\uC5D0 content-visibility: auto\uC640 contain-intrinsic-size\uB97C \uD568\uAED8 \uC801\uC6A9\uD558\uC138\uC694."
32175
+ },
32176
+ en: {
32177
+ definition: "A Cascading Style Sheets (CSS) rendering optimization using content-visibility: auto so the browser skips layout and paint work for offscreen sections until they approach the viewport. Unlike virtual scrolling, which unmounts offscreen Document Object Model (DOM) nodes, content-visibility keeps the full DOM intact for browser find-in-page and anchor links.",
32178
+ example: "A long technical specification applies content-visibility: auto with contain-intrinsic-size on each major section so scrollbars stay stable while offscreen sections skip initial layout work.",
32179
+ promptSnippet: "For long pages that must preserve full DOM nodes for search and anchors, use content-visibility: auto paired with contain-intrinsic-size to skip offscreen layout and paint instead of confusing it with virtual scrolling."
32180
+ }
32181
+ }
32182
+ },
32183
+ "stale-while-revalidate": {
32184
+ aliases: {
32185
+ ko: ["SWR \uCE90\uC2DC \uC804\uB7B5", "\uC624\uB798\uB41C \uCE90\uC2DC \uC6B0\uC120 \uC751\uB2F5 \uD6C4 \uC7AC\uAC80\uC99D", "\uBC31\uADF8\uB77C\uC6B4\uB4DC \uCE90\uC2DC \uAC31\uC2E0"],
32186
+ en: ["SWR", "stale while revalidate", "background revalidation"]
32187
+ },
32188
+ text: {
32189
+ ko: {
32190
+ definition: "\uCE90\uC2DC \uC720\uD6A8 \uAE30\uAC04(max-age)\uC774 \uC9C0\uB09C \uB4A4\uC5D0\uB3C4 \uC9C0\uC815\uB41C \uD5C8\uC6A9 \uC7AC\uAC80\uC99D \uC2DC\uAC04 \uBC94\uC704(stale-while-revalidate=<seconds>) \uC548\uC5D0\uC11C\uB294 \uC774\uC804 \uCE90\uC2DC \uC751\uB2F5\uC744 \uC989\uC2DC \uBC18\uD658\uD558\uBA74\uC11C \uBC31\uADF8\uB77C\uC6B4\uB4DC\uC5D0\uC11C \uCD5C\uC2E0 \uB370\uC774\uD130\uB97C \uBC1B\uC544 \uAC31\uC2E0\uD558\uB294 \uCE90\uC2DC \uC804\uB7B5\uC785\uB2C8\uB2E4. \uC774 \uD5C8\uC6A9 \uD55C\uB3C4\uAC00 \uC9C0\uB098\uBA74 \uB354 \uC774\uC0C1 \uB9CC\uB8CC \uC751\uB2F5\uC744 \uC989\uC2DC \uB0B4\uBCF4\uB0B4\uC9C0 \uC54A\uACE0 \uC6D0\uBCF8 \uC7AC\uAC80\uC99D\uC774\uB098 \uC0C8 \uC751\uB2F5\uC744 \uAE30\uB2E4\uB9B0 \uB4A4 \uBC18\uD658\uD558\uBA70, \uC77C\uC2DC\uC801 \uC9C0\uC5F0\uC744 \uD5C8\uC6A9\uD558\uB294 \uACF5\uAC1C \uB370\uC774\uD130\uC5D0\uB9CC \uC0AC\uC6A9\uD569\uB2C8\uB2E4.",
32191
+ example: "\uACF5\uAC1C \uACF5\uC9C0 \uBAA9\uB85D \uC751\uB2F5\uC5D0 Cache-Control: max-age=60, stale-while-revalidate=300\uC744 \uC124\uC815\uD558\uBA74 60\uCD08 \uC2E0\uC120 \uAD6C\uAC04\uC774 \uB05D\uB09C \uB4A4 \uCD94\uAC00 300\uCD08 \uB3D9\uC548\uB9CC \uCE90\uC2DC\uB41C \uC774\uC804 \uACF5\uAC1C \uBAA9\uB85D\uC744 \uC989\uC2DC \uBC18\uD658\uD558\uBA70 \uB4A4\uC5D0\uC11C \uAC31\uC2E0\uD558\uACE0, \uADF8 \uCD94\uAC00 300\uCD08\uAC00 \uC9C0\uB098\uBA74 \uCD5C\uC2E0 \uC751\uB2F5\uC744 \uAE30\uB2E4\uB824 \uBC18\uD658\uD569\uB2C8\uB2E4.",
32192
+ promptSnippet: "\uB2E4\uC18C \uC774\uC804 \uAC12\uC774 \uC7A0\uAE50 \uBCF4\uC5EC\uB3C4 \uC548\uC804\uD55C \uACF5\uAC1C \uCF58\uD150\uCE20 \uCE90\uC2DC\uC5D0\uB9CC max-age\uC640 \uD5C8\uC6A9 \uC7AC\uAC80\uC99D \uC2DC\uAC04 \uBC94\uC704(stale-while-revalidate=<\uCD08>)\uB97C \uD568\uAED8 \uC9C0\uC815\uD558\uACE0, \uC7AC\uAC80\uC99D \uD55C\uB3C4 \uCD08\uACFC \uD6C4\uC5D0\uB294 \uCD5C\uC2E0 \uAC80\uC99D \uC751\uB2F5\uC744 \uAE30\uB2E4\uB9AC\uBA70 \uAD8C\uD55C\xB7\uACB0\uC81C \uC694\uCCAD\uC740 \uC774 \uC804\uB7B5\uC5D0\uC11C \uC81C\uC678\uD558\uC138\uC694."
32193
+ },
32194
+ en: {
32195
+ definition: "A caching strategy that serves an expired cached response immediately while revalidating asynchronously in the background\u2014but only within a bounded grace window specified by stale-while-revalidate=<seconds>. Once that revalidation limit expires, the cache blocks for a fresh origin validation rather than serving stale data, and the pattern is strictly for public read data tolerating brief staleness.",
32196
+ example: "A public release-notes endpoint sets Cache-Control: max-age=60, stale-while-revalidate=300 so once the 60-second fresh period ends, cached public data is served immediately only during the additional 300-second window while refreshing in the background, waiting for a fresh validation response once that window expires.",
32197
+ promptSnippet: "Restrict Stale-While-Revalidate (SWR) to public read data tolerating brief staleness, specify an explicit max-age and revalidation window limit, wait for fresh validation past that limit, and exclude private or financial requests."
32198
+ }
32199
+ }
32200
+ },
32201
+ webhook: {
32202
+ aliases: {
32203
+ ko: ["\uC6F9\uD6C4\uD06C", "HTTP \uC774\uBCA4\uD2B8 \uCF5C\uBC31", "\uC218\uC2E0 \uC774\uBCA4\uD2B8 \uC6F9\uD6C5"],
32204
+ en: ["webhooks", "http callback", "event webhook"]
32205
+ },
32206
+ text: {
32207
+ ko: {
32208
+ definition: "\uC678\uBD80 \uC2DC\uC2A4\uD15C\uC5D0\uC11C \uC774\uBCA4\uD2B8\uAC00 \uBC1C\uC0DD\uD588\uC744 \uB54C \uD074\uB77C\uC774\uC5B8\uD2B8\uAC00 \uC8FC\uAE30\uC801\uC73C\uB85C \uBB3B\uB294 \uB300\uC2E0 \uBBF8\uB9AC \uB4F1\uB85D\uD55C HTTP(Hypertext Transfer Protocol) \uC5D4\uB4DC\uD3EC\uC778\uD2B8\uB85C \uC11C\uBC84\uAC00 \uC54C\uB9BC \uD398\uC774\uB85C\uB4DC\uB97C \uBCF4\uB0B4\uB294 \uBC29\uC2DD\uC785\uB2C8\uB2E4. UI(User Interface) \uC124\uC815 \uD654\uBA74\uACFC \uC2E4\uC81C \uC11C\uBC84 \uB3D9\uC791\uC744 \uAD6C\uBD84\uD558\uBA70, \uC218\uC2E0 \uC11C\uBC84\uB294 \uC81C\uACF5\uC790 \uADDC\uC57D\uC5D0 \uB530\uB978 \uC778\uC99D\xB7\uC11C\uBA85 \uAC80\uC99D \uD6C4 \uD6C4\uC18D \uCC98\uB9AC\uB97C \uC548\uC815\uC801\uC73C\uB85C \uC811\uC218\uD55C \uB4A4\uC5D0 2xx \uC131\uACF5 \uC751\uB2F5\uC744 \uBC18\uD658\uD558\uACE0, \uC2E4\uD328\xB7\uC2DC\uAC04 \uCD08\uACFC \uC2DC \uC7AC\uC804\uC1A1\uC740 \uC77C\uBC18\uC801\uC73C\uB85C \uBC1C\uC2E0 \uCE21\uC774 \uC218\uD589\uD569\uB2C8\uB2E4.",
32209
+ example: "\uACB0\uC81C \uC11C\uBE44\uC2A4\uAC00 \uC1A1\uC7A5 \uACB0\uC81C \uC6F9\uD6C5\uC744 \uBCF4\uB0B4\uBA74 \uC218\uC2E0 \uBC31\uC5D4\uB4DC\uB294 \uC81C\uACF5\uC790 \uADDC\uC57D(HMAC \uC11C\uBA85, \uACF5\uC720 \uC2DC\uD06C\uB9BF \uB4F1)\uC73C\uB85C \uC694\uCCAD\uC744 \uAC80\uC99D\uD558\uACE0 \uC774\uBCA4\uD2B8 ID \uBA71\uB4F1\uC131 \uD655\uC778\uACFC \uC791\uC5C5 \uD050 \uC601\uC18D \uC811\uC218\uB97C \uB9C8\uCE5C \uB4A4 2xx\uB85C \uC751\uB2F5\uD558\uBA70, \uBBF8\uC218\uC2E0 \uC2DC \uBC1C\uC2E0 \uCE21 \uC7AC\uC804\uC1A1\uC5D0 \uB300\uBE44\uD574 \uC911\uBCF5 \uCC98\uB9AC\uB97C \uBC29\uC5B4\uD569\uB2C8\uB2E4.",
32210
+ promptSnippet: "\uC6F9\uD6C5 \uC5F0\uB3D9 \uD654\uBA74\uC774\uB098 \uBA85\uC138\uB97C \uC791\uC131\uD560 \uB54C \uC124\uC815 UI\uC640 \uC2E4\uC81C \uC11C\uBC84 \uCC98\uB9AC\uB97C \uAD6C\uBD84\uD558\uACE0, \uC81C\uACF5\uC790 \uADDC\uC57D\uC5D0 \uB9DE\uCD98 \uC694\uCCAD \uAC80\uC99D, \uD6C4\uC18D \uC791\uC5C5\uC758 \uC548\uC815\uC801 \uC811\uC218(\uD050\xB7\uC800\uC7A5) \uC644\uB8CC \uD6C4 2xx \uC751\uB2F5, \uC774\uBCA4\uD2B8 ID \uBA71\uB4F1\uC131, \uADF8\uB9AC\uACE0 \uC77C\uBC18\uC801\uC73C\uB85C \uBC1C\uC2E0 \uCE21\uC774 \uC218\uD589\uD558\uB294 \uC7AC\uC804\uC1A1 \uC804\uC81C\uB97C \uBA85\uC2DC\uD558\uC138\uC694."
32211
+ },
32212
+ en: {
32213
+ definition: "An event-driven Hypertext Transfer Protocol (HTTP) push mechanism in which a source server delivers event payloads to a registered endpoint rather than requiring polling. Distinguishing dashboard settings UI from backend execution, the receiver verifies requests per provider protocol, durably accepts or queues downstream work before returning 2xx success, and deduplicates deliveries since retries are generally driven by the sender.",
32214
+ example: "When an external provider posts an invoice event, the backend verifies authenticity according to provider rules (such as HMAC signatures or shared tokens), persists or enqueues the job idempotently by event ID before returning 2xx, and relies on sender-side retries if delivery fails.",
32215
+ promptSnippet: "Separate webhook configuration UI from server processing, specifying provider-defined request verification, durable intake or queuing before returning 2xx success, event-ID idempotency, and handling sender-driven retries."
32216
+ }
32217
+ }
32218
+ },
32219
+ "exponential-backoff": {
32220
+ aliases: {
32221
+ ko: ["\uC9C0\uC218\uC801 \uC7AC\uC2DC\uB3C4 \uC9C0\uC5F0", "\uC7AC\uC2DC\uB3C4 \uB300\uAE30 \uC2DC\uAC04 \uBC30\uC99D", "\uBC31\uC624\uD504 \uC7AC\uC2DC\uB3C4"],
32222
+ en: ["exponential backoff with jitter", "backoff retry", "retry backoff"]
32223
+ },
32224
+ text: {
32225
+ ko: {
32226
+ definition: "\uC77C\uC2DC\uC801\uC778 \uB124\uD2B8\uC6CC\uD06C \uC624\uB958\uB098 429\xB75xx \uC751\uB2F5\uC73C\uB85C \uC694\uCCAD\uC774 \uC2E4\uD328\uD588\uC744 \uB54C \uC7AC\uC2DC\uB3C4 \uAC04\uACA9\uC744 1\uCD08, 2\uCD08, 4\uCD08\uCC98\uB7FC \uC9C0\uC218\uC801\uC73C\uB85C \uB298\uB824\uAC00\uBA70 \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uB294 \uC54C\uACE0\uB9AC\uC998\uC785\uB2C8\uB2E4. \uC5EC\uB7EC \uD074\uB77C\uC774\uC5B8\uD2B8\uAC00 \uAC19\uC740 \uC2DC\uAC01\uC5D0 \uBAB0\uB824 \uC7AC\uCDA9\uB3CC\uD558\uB294 \uD604\uC0C1\uC744 \uB9C9\uAE30 \uC704\uD574 \uBB34\uC791\uC704 \uC9C0\uC5F0(\uC9C0\uD130, Jitter)\uACFC \uCD5C\uB300 \uC7AC\uC2DC\uB3C4 \uD69F\uC218 \uC0C1\uD55C\uC744 \uD568\uAED8 \uB461\uB2C8\uB2E4.",
32227
+ example: "\uC6F9\uD6C5 \uC804\uC1A1 \uC6CC\uCEE4\uAC00 503 \uC751\uB2F5\uC744 \uBC1B\uC73C\uBA74 \uAE30\uBCF8 \uB300\uAE30 \uC2DC\uAC04\uC5D0 2\uC758 \uAC70\uB4ED\uC81C\uACF1\uACFC \uBB34\uC791\uC704 \uC9C0\uD130\uB97C \uB354\uD574 \uCD5C\uB300 5\uD68C\uAE4C\uC9C0 \uC7AC\uC2DC\uB3C4\uD55C \uB4A4\uC5D0\uB3C4 \uC2E4\uD328\uD558\uBA74 \uC601\uAD6C \uC2E4\uD328 \uD050\uB85C \uB118\uAE41\uB2C8\uB2E4.",
32228
+ promptSnippet: "\uC77C\uC2DC\uC801 \uC624\uB958 \uC7AC\uC2DC\uB3C4\uC5D0 \uACE0\uC815 \uAC04\uACA9 \uB8E8\uD504 \uB300\uC2E0 \uCD5C\uB300 \uD69F\uC218\xB7\uCD5C\uB300 \uB300\uAE30 \uC2DC\uAC04\xB7\uBB34\uC791\uC704 \uC9C0\uD130(Jitter)\uAC00 \uD3EC\uD568\uB41C \uC9C0\uC218 \uBC31\uC624\uD504\uB97C \uC801\uC6A9\uD558\uACE0, 400 Bad Request \uAC19\uC740 \uC601\uAD6C \uC624\uB958\uB294 \uC7AC\uC2DC\uB3C4\uC5D0\uC11C \uC81C\uC678\uD558\uC138\uC694."
32229
+ },
32230
+ en: {
32231
+ definition: "A retry strategy that multiplies wait intervals exponentially after transient failures (such as network drops or HTTP 429/5xx responses) while capping total attempts. Adding randomized jitter prevents many clients from retrying in lockstep and overloading the recovering service.",
32232
+ example: "A delivery worker multiplies its base delay by 2^attempt plus random jitter across up to five transient failures before routing undelivered jobs to a dead-letter state.",
32233
+ promptSnippet: "Implement exponential backoff with randomized jitter, a max-delay cap, and a bounded retry count for transient 429/5xx failures while avoiding retries on permanent 4xx client errors."
32234
+ }
32235
+ }
32236
+ },
32237
+ "request-cancellation": {
32238
+ aliases: {
32239
+ ko: ["\uBE44\uB3D9\uAE30 \uC694\uCCAD \uC911\uB2E8", "\uC9C4\uD589 \uC911 \uC694\uCCAD \uCDE8\uC18C", "AbortController \uCDE8\uC18C"],
32240
+ en: ["abort request", "AbortController cancellation", "cancel in-flight request"]
32241
+ },
32242
+ text: {
32243
+ ko: {
32244
+ definition: "\uC0AC\uC6A9\uC790\uAC00 \uAC80\uC0C9\uC5B4\uB97C \uBC14\uAFB8\uAC70\uB098 \uC911\uC9C0 \uBC84\uD2BC\uC744 \uB204\uB974\uAC70\uB098 \uD654\uBA74\uC744 \uB5A0\uB0A0 \uB54C \uC9C4\uD589 \uC911\uC778 \uBE44\uB3D9\uAE30 \uC694\uCCAD\uC774\uB098 \uC2A4\uD2B8\uB9BC\uC744 \uCDE8\uC18C\uD574 \uBD88\uD544\uC694\uD55C \uB300\uAE30\uC640 \uC624\uB798\uB41C \uC751\uB2F5 \uB36E\uC5B4\uC4F0\uAE30\uB97C \uB9C9\uB294 \uC81C\uC5B4 \uD328\uD134\uC785\uB2C8\uB2E4. \uBE0C\uB77C\uC6B0\uC800 fetch\uC5D0 AbortController\uC758 signal\uC744 \uC804\uB2EC\uD558\uBA74 \uD074\uB77C\uC774\uC5B8\uD2B8 \uC694\uCCAD \uC5F0\uACB0\uC740 \uC911\uB2E8\uB418\uC9C0\uB9CC, \uBC31\uC5D4\uB4DC \uC791\uC5C5\uC774 \uB3C5\uB9BD\uC801\uC73C\uB85C \uC774\uC5B4\uC9C0\uB294 \uACBD\uC6B0\uC5D0\uB294 \uC11C\uBC84 \uCE21 \uC791\uC5C5\uC744 \uC911\uB2E8\uD558\uB294 \uCC98\uB9AC\uAC00 \uBCC4\uB3C4\uB85C \uD544\uC694\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
32245
+ example: "\uC790\uB3D9\uC644\uC131 \uC785\uB825\uC774 \uBC14\uB014 \uB54C\uB9C8\uB2E4 \uC774\uC804 \uC694\uCCAD\uC758 AbortController.abort()\uB97C \uD638\uCD9C\uD574 \uAD6C\uBC84\uC804 \uC751\uB2F5\uC774 \uCD5C\uC2E0 \uC785\uB825 \uACB0\uACFC\uB97C \uB36E\uC5B4\uC4F0\uC9C0 \uC54A\uAC8C \uD558\uACE0, \uC774\uBBF8 \uC2DC\uC791\uB41C \uC7A5\uC2DC\uAC04 \uC11C\uBC84 \uC0DD\uC131 \uC791\uC5C5\uC5D0\uB294 \uBCC4\uB3C4 \uCDE8\uC18C API \uD638\uCD9C \uC5EC\uBD80\uB97C \uAD6C\uBD84\uD574 \uC124\uACC4\uD569\uB2C8\uB2E4.",
32246
+ promptSnippet: "\uAC80\uC0C9 \uC790\uB3D9\uC644\uC131, \uD0ED \uC804\uD658, \uC2A4\uD2B8\uB9AC\uBC0D \uC0DD\uC131 \uB4F1 \uCDE8\uC18C\uAC00 \uD544\uC694\uD55C \uC694\uCCAD\uC5D0\uB294 AbortController signal\uC744 \uC5F0\uACB0\uD574 \uC7AC\uC694\uCCAD\xB7\uC5B8\uB9C8\uC6B4\uD2B8 \uC2DC \uD074\uB77C\uC774\uC5B8\uD2B8 \uC694\uCCAD\uC744 \uC911\uB2E8\uD558\uACE0 AbortError\uB97C \uC815\uC0C1 \uCDE8\uC18C\uB85C \uCC98\uB9AC\uD558\uBA70, \uBC31\uC5D4\uB4DC \uC791\uC5C5\uAE4C\uC9C0 \uBA48\uCDB0\uC57C \uD558\uBA74 \uC11C\uBC84 \uCE21 \uCDE8\uC18C \uACBD\uB85C\uB97C \uB530\uB85C \uBD84\uB9AC\uD574 \uBA85\uC2DC\uD558\uC138\uC694."
32247
+ },
32248
+ en: {
32249
+ definition: "A pattern that cancels in-flight asynchronous requests or streams when inputs change, users trigger stop, or components unmount, preventing wasted work and stale response overwrites. Passing an AbortController signal to fetch aborts the client request cleanly, distinct from server-side job termination if backend work continues independently.",
32250
+ example: 'When a user types a new query in a combobox or clicks "Stop generating", calling controller.abort() aborts the superseded fetch request and prevents stale results from overwriting current UI state.',
32251
+ promptSnippet: "Wire an AbortController signal into cancelable async requests and streaming readers, abort previous requests on query change or unmount, handle AbortError separately from network failures, and add explicit server-side cancellation when backend jobs must also stop."
32252
+ }
32253
+ }
32254
+ },
32255
+ "rate-limiting": {
32256
+ aliases: {
32257
+ ko: ["\uD638\uCD9C \uC81C\uD55C", "\uCC98\uB9AC\uC728 \uC81C\uD55C", "\uB808\uC774\uD2B8 \uB9AC\uBBF8\uD305", "\uC694\uCCAD \uD69F\uC218 \uC81C\uD55C", "429 \uC751\uB2F5 \uC81C\uD55C"],
32258
+ en: ["rate limit", "throttling", "API rate limiting", "429 Too Many Requests"]
32259
+ },
32260
+ text: {
32261
+ ko: {
32262
+ definition: "\uB0A8\uC6A9, \uBB34\uCC28\uBCC4 \uB300\uC785(Brute-force), \uACFC\uB3C4\uD55C \uD2B8\uB798\uD53D \uAE09\uC99D\uC73C\uB85C\uBD80\uD130 API\uC640 \uC778\uC99D \uC5D4\uB4DC\uD3EC\uC778\uD2B8\uB97C \uBCF4\uD638\uD558\uAE30 \uC704\uD574 \uC0AC\uC6A9\uC790\xB7API \uD0A4\xB7IP \uB2E8\uC704\uB85C \uC77C\uC815 \uC2DC\uAC04\uB2F9 \uD5C8\uC6A9 \uC694\uCCAD \uD69F\uC218\uB97C \uC81C\uD55C\uD558\uB294 \uC11C\uBC84 \uC81C\uC5B4 \uAE30\uBC95\uC785\uB2C8\uB2E4. \uD55C\uB3C4 \uCD08\uACFC \uC2DC HTTP 429 \uC0C1\uD0DC \uCF54\uB4DC\uC640 Retry-After \uB300\uAE30 \uC2DC\uAC04\uC744 \uBC18\uD658\uD558\uACE0, UI\uB294 \uB0A8\uC740 \uB300\uAE30 \uC2DC\uAC04 \uC548\uB0B4\uC640 \uC911\uBCF5 \uC7AC\uC2DC\uB3C4 \uC5B5\uC81C\uB97C \uB2F4\uB2F9\uD569\uB2C8\uB2E4.",
32263
+ example: '\uB85C\uADF8\uC778 2\uB2E8\uACC4 \uC778\uC99D \uCF54\uB4DC \uD655\uC778 API\uC5D0 \uACC4\uC815\xB7IP \uAE30\uC900 \uC694\uCCAD \uBE48\uB3C4 \uC81C\uD55C\uC744 \uAC78\uC5B4 \uC5F0\uC18D \uC624\uC785\uB825 \uC2DC \uC77C\uC2DC \uCC28\uB2E8\uD558\uACE0, \uC751\uB2F5 \uD5E4\uB354\uC758 Retry-After\uB97C \uC77D\uC5B4 \uD074\uB77C\uC774\uC5B8\uD2B8\uC5D0 "30\uCD08 \uD6C4 \uB2E4\uC2DC \uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694"\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.',
32264
+ promptSnippet: "\uC778\uC99D\xB7API \uD0A4 \uD638\uCD9C\xB7\uAC80\uC0C9\xB7\uD3FC \uC81C\uCD9C \uC5D4\uB4DC\uD3EC\uC778\uD2B8\uC5D0 \uC11C\uBC84 \uCE21 \uC694\uCCAD \uBE48\uB3C4 \uC81C\uD55C(Rate Limiting)\uC744 \uC124\uACC4\uD558\uACE0, \uCD08\uACFC \uC2DC HTTP 429\uC640 Retry-After \uD5E4\uB354\uB97C \uBC18\uD658\uD558\uBA70 \uD074\uB77C\uC774\uC5B8\uD2B8 UI\uB294 \uB300\uAE30 \uCE74\uC6B4\uD2B8\uB2E4\uC6B4\uACFC \uC790\uB3D9 \uC7AC\uD3ED\uC8FC \uBC29\uC9C0\uB97C \uD568\uAED8 \uAD6C\uD604\uD558\uC138\uC694."
32265
+ },
32266
+ en: {
32267
+ definition: "A server-side traffic control policy that caps how many requests a user, API key, or IP address can send within a time window to guard against abuse, brute-force attempts, and traffic spikes. Exceeding the budget returns HTTP 429 with Retry-After guidance while UI surfaces wait feedback.",
32268
+ example: "Limit MFA verification attempts per account and IP, returning HTTP 429 with Retry-After so the form disables immediate retries and shows when the user can try again.",
32269
+ promptSnippet: "Enforce backend rate limiting per user, API key, or IP on sensitive and burst-prone endpoints, return HTTP 429 with Retry-After headers, and show clear cooldown feedback in the UI without tight retry loops."
32270
+ }
32271
+ }
32272
+ },
32273
+ "circuit-breaker": {
32274
+ aliases: {
32275
+ ko: ["\uD68C\uB85C \uCC28\uB2E8\uAE30 \uD328\uD134", "\uC7A5\uC560 \uC804\uD30C \uCC28\uB2E8", "\uC11C\uD0B7\uBE0C\uB808\uC774\uCEE4", "\uC678\uBD80 \uC5F0\uB3D9 \uC77C\uC2DC \uCC28\uB2E8"],
32276
+ en: ["circuit breaker pattern", "dependency circuit breaker", "fail-fast fallback"]
32277
+ },
32278
+ text: {
32279
+ ko: {
32280
+ definition: "\uC758\uC874\uD558\uB294 \uC678\uBD80 API\uB098 \uD558\uC704 \uC11C\uBE44\uC2A4\uC758 \uC624\uB958\uC728\xB7\uC9C0\uC5F0\uC774 \uC784\uACC4\uCE58\uB97C \uB118\uC73C\uBA74 \uC77C\uC815 \uC2DC\uAC04 \uB3D9\uC548 \uC694\uCCAD \uD638\uCD9C\uC744 \uC5F4\uB9BC(Open) \uC0C1\uD0DC\uB85C \uC804\uD658\uD574 \uC989\uC2DC \uC2E4\uD328 \uB610\uB294 \uB300\uCCB4 \uC751\uB2F5\uC744 \uBC18\uD658\uD558\uACE0, \uC774\uD6C4 \uBC18\uC5F4\uB9BC(Half-Open) \uC0C1\uD0DC\uB85C \uC18C\uC218 \uC694\uCCAD\uB9CC \uC2DC\uD5D8\uD574 \uBCF5\uAD6C \uC5EC\uBD80\uB97C \uD655\uC778\uD558\uB294 \uC548\uC815\uC131 \uD328\uD134\uC785\uB2C8\uB2E4.",
32281
+ example: '\uC678\uBD80 \uC6F9\uD6C5\uC774\uB098 \uACB0\uC81C \uB300\uD589 \uC5F0\uB3D9\uC774 \uC5F0\uC18D \uD0C0\uC784\uC544\uC6C3\uC73C\uB85C \uC7A5\uC560\uB97C \uACAA\uC73C\uBA74 \uC11C\uD0B7 \uBE0C\uB808\uC774\uCEE4\uB97C \uC5F4\uC5B4 \uB300\uAE30 \uC2A4\uB808\uB4DC \uACE0\uAC08\uC744 \uB9C9\uACE0, \uD654\uBA74 \uC0C1\uB2E8\uC5D0\uB294 "\uC77C\uC2DC\uC801 \uC678\uBD80 \uC5F0\uB3D9 \uC9C0\uC5F0" \uC548\uB0B4\uC640 \uB300\uCCB4 \uACBD\uB85C\uB97C \uB178\uCD9C\uD569\uB2C8\uB2E4.',
32282
+ promptSnippet: "\uC678\uBD80 API\xB7\uC6F9\uD6C5\xB7\uACB0\uC81C \uC5F0\uB3D9 \uD638\uCD9C\uBD80\uC5D0 \uB2EB\uD798(Closed)\xB7\uC5F4\uB9BC(Open)\xB7\uBC18\uC5F4\uB9BC(Half-Open) \uC0C1\uD0DC\uB97C \uAC16\uB294 \uC11C\uD0B7 \uBE0C\uB808\uC774\uCEE4\uB97C \uC801\uC6A9\uD558\uACE0, \uC5F4\uB9BC \uC0C1\uD0DC\uC758 \uBE60\uB978 \uC2E4\uD328\xB7\uB300\uCCB4 \uC548\uB0B4 \uBC0F \uC7AC\uC2DC\uB3C4 \uD3ED\uC8FC \uCC28\uB2E8\uC744 \uD568\uAED8 \uC124\uACC4\uD558\uC138\uC694."
32283
+ },
32284
+ en: {
32285
+ definition: "A resilience pattern that monitors calls to an external dependency and trips into an Open state once failures exceed a threshold, failing fast or serving a fallback instead of piling up timeouts, then probing recovery in a Half-Open state.",
32286
+ example: "When a downstream shipping or webhook endpoint times out repeatedly, trip the circuit breaker so requests fail fast, alert operators, and show a non-blocking degradation banner.",
32287
+ promptSnippet: "Wrap unreliable external integrations in a Closed/Open/Half-Open circuit breaker with explicit failure thresholds, cooldown windows, fast fallbacks, and recovery probes."
32288
+ }
32289
+ }
32290
+ },
32291
+ "cursor-pagination": {
32292
+ aliases: {
32293
+ ko: ["\uCEE4\uC11C \uD398\uC774\uC9C0\uB124\uC774\uC158", "\uD0A4\uC14B \uD398\uC774\uC9C0\uB124\uC774\uC158", "\uCEE4\uC11C \uAE30\uBC18 \uBAA9\uB85D \uC870\uD68C", "\uBB34\uD55C \uC2A4\uD06C\uB864 \uCEE4\uC11C"],
32294
+ en: ["cursor pagination", "keyset pagination", "seek pagination", "opaque cursor"]
32295
+ },
32296
+ text: {
32297
+ ko: {
32298
+ definition: "OFFSET \uC22B\uC790 \uB300\uC2E0 \uB9C8\uC9C0\uB9C9\uC73C\uB85C \uC870\uD68C\uD55C \uD56D\uBAA9\uC758 \uC815\uB82C \uD0A4 \uB610\uB294 \uBD88\uD22C\uBA85 \uCEE4\uC11C(Cursor)\uB97C \uAE30\uC900\uC73C\uB85C \uB2E4\uC74C \uBB36\uC74C\uC744 \uAC00\uC838\uC624\uB294 \uBAA9\uB85D \uBD84\uD560 \uBC29\uC2DD\uC785\uB2C8\uB2E4. \uC2E4\uC2DC\uAC04\uC73C\uB85C \uC0C8 \uAE00\uC774\uB098 \uB85C\uADF8\uAC00 \uCD94\uAC00\xB7\uC0AD\uC81C\uB418\uC5B4\uB3C4 \uD398\uC774\uC9C0 \uACBD\uACC4\uAC00 \uBC00\uB824 \uD56D\uBAA9\uC774 \uC911\uBCF5\uB418\uAC70\uB098 \uB204\uB77D\uB418\uB294 \uBB38\uC81C\uB97C \uC904\uC5EC \uC90D\uB2C8\uB2E4.",
32299
+ example: "\uC2E4\uC2DC\uAC04 \uCC44\uD305\uBC29 \uBA54\uC2DC\uC9C0\uB098 \uBCF4\uC548 \uAC10\uC0AC \uB85C\uADF8\uB97C \uBD88\uB7EC\uC62C \uB54C \uB9C8\uC9C0\uB9C9 \uD56D\uBAA9\uC758 \uD0C0\uC784\uC2A4\uD0EC\uD504\xB7ID \uC870\uD569 \uCEE4\uC11C\uB97C nextCursor\uB85C \uC804\uB2EC\uD574 \uC0C8 \uB85C\uADF8\uAC00 \uC720\uC785\uB3FC\uB3C4 \uC911\uBCF5 \uC5C6\uC774 \uC774\uC804 \uAE30\uB85D\uC744 \uC774\uC5B4 \uBD99\uC785\uB2C8\uB2E4.",
32300
+ promptSnippet: "\uC2E4\uC2DC\uAC04\uC73C\uB85C \uD56D\uBAA9\uC774 \uCD94\uAC00\uB418\uB294 \uD53C\uB4DC\xB7\uCC44\uD305\xB7\uAC10\uC0AC \uB85C\uADF8 API\uC5D0\uB294 OFFSET \uB300\uC2E0 \uC548\uC815\uC801\uC778 \uC815\uB82C \uD0A4 \uAE30\uBC18\uC758 \uCEE4\uC11C \uD398\uC774\uC9C0\uB124\uC774\uC158(nextCursor, hasMore)\uC744 \uC801\uC6A9\uD558\uACE0, \uC774\uC804 \uAE30\uB85D\uC744 \uC704\uC5D0 \uBD99\uC77C \uB54C\uB294 \uC2A4\uD06C\uB864 \uC575\uCEE4 \uC704\uCE58\uB97C \uC720\uC9C0\uD558\uC138\uC694."
32301
+ },
32302
+ en: {
32303
+ definition: "A list pagination strategy that fetches subsequent slices relative to a stable cursor or sort key (such as timestamp plus unique ID) rather than numeric row offsets. Unlike offset pagination, it prevents duplicate or skipped items when new rows are inserted concurrently.",
32304
+ example: "A chat timeline and audit-log viewer pass an opaque cursor for the oldest visible event so newly arriving records never shift prior pages.",
32305
+ promptSnippet: "Use deterministic cursor-based (keyset) pagination with a unique tie-breaker key for live feeds, chat histories, and audit logs, preserving scroll anchor positions when prepending older items."
32306
+ }
32307
+ }
32308
+ },
32309
+ "optimistic-locking": {
32310
+ aliases: {
32311
+ ko: ["\uB099\uAD00\uC801 \uB77D", "\uBC84\uC804 \uCDA9\uB3CC \uAC10\uC9C0", "ETag \uB3D9\uC2DC \uC218\uC815 \uBC29\uC9C0", "\uB3D9\uC2DC \uD3B8\uC9D1 \uCDA9\uB3CC \uAC80\uC99D"],
32312
+ en: ["optimistic concurrency control", "version check locking", "ETag If-Match", "stale write protection"]
32313
+ },
32314
+ text: {
32315
+ ko: {
32316
+ definition: "\uC5EC\uB7EC \uC0AC\uC6A9\uC790\uAC00 \uAC19\uC740 \uBB38\uC11C\uB97C \uC870\uD68C\uD560 \uB54C \uC7A0\uAE08\uC744 \uBBF8\uB9AC \uAC78\uC9C0 \uC54A\uACE0, \uC800\uC7A5 \uC2DC\uC810\uC5D0 \uB808\uCF54\uB4DC\uC758 \uBC84\uC804 \uBC88\uD638(version)\uB098 ETag\uB97C \uB300\uC870\uD574 \uADF8\uC0AC\uC774 \uB2E4\uB978 \uC0AC\uB78C\uC774 \uBA3C\uC800 \uC218\uC815\uD588\uB2E4\uBA74 \uB36E\uC5B4\uC4F0\uAE30\uB97C \uCC28\uB2E8(409 Conflict)\uD558\uB294 \uB3D9\uC2DC\uC131 \uC81C\uC5B4 \uBC29\uC2DD\uC785\uB2C8\uB2E4. \uD654\uBA74 \uBA3C\uC800 \uBC14\uAFB8\uB294 \uB099\uAD00\uC801 UI \uC5C5\uB370\uC774\uD2B8\uC640\uB294 \uBAA9\uC801\uACFC \uACC4\uCE35\uC774 \uB2E4\uB985\uB2C8\uB2E4.",
32317
+ example: "\uB450 \uD3B8\uC9D1\uC790\uAC00 \uAC19\uC740 \uBB38\uC11C\uB97C \uC5F0 \uB4A4 \uD55C \uBA85\uC774 \uBA3C\uC800 \uC800\uC7A5\uD574 \uBC84\uC804\uC774 v3\uC5D0\uC11C v4\uB85C \uC624\uB974\uBA74, \uB2E4\uB978 \uD3B8\uC9D1\uC790\uC758 v3 \uAE30\uC900 \uC800\uC7A5 \uC694\uCCAD\uC744 \uC11C\uBC84\uAC00 409 Conflict\uB85C \uAC70\uBD80\uD558\uACE0 \uBCC0\uACBD \uCC28\uC774 \uBE44\uAD50 \uD654\uBA74\uC744 \uB744\uC6C1\uB2C8\uB2E4.",
32318
+ promptSnippet: "\uBB38\uC11C\xB7\uC608\uC57D \uC124\uC815\xB7\uACF5\uD1B5 \uB9AC\uC18C\uC2A4 \uC218\uC815 API\uC5D0\uB294 version \uD544\uB4DC\uB098 ETag(If-Match) \uAE30\uBC18 \uB099\uAD00\uC801 \uC7A0\uAE08\uC744 \uC801\uC6A9\uD574 \uAD6C\uBC84\uC804 \uB36E\uC5B4\uC4F0\uAE30\uB97C 409 Conflict\uB85C \uCC28\uB2E8\uD558\uACE0, UI\uC5D0\uC11C \uCD5C\uC2E0 \uBC84\uC804\uACFC \uB0B4 \uD3B8\uC9D1\uC744 \uBE44\uAD50\xB7\uBCD1\uD569\uD560 \uC218 \uC788\uAC8C \uC548\uB0B4\uD558\uC138\uC694."
32319
+ },
32320
+ en: {
32321
+ definition: "A concurrency control mechanism that reads records without holding exclusive locks and checks a version number or ETag on write, rejecting stale updates with 409 Conflict rather than silently overwriting another user\u2019s changes. It is distinct from UI optimistic updates.",
32322
+ example: "If two editors open revision v3 and one saves v4 first, the second save carrying expected version v3 fails with 409 Conflict and shows a diff to resolve changes.",
32323
+ promptSnippet: "Protect shared edits against silent lost updates using optimistic locking (version column or HTTP ETag If-Match) on the backend, handling 409 Conflict in the UI with refresh or diff resolution."
32324
+ }
32325
+ }
32326
+ },
32327
+ "multi-factor-authentication": {
32328
+ aliases: {
32329
+ ko: ["MFA", "2\uB2E8\uACC4 \uC778\uC99D", "2FA", "\uB2E4\uC911 \uC778\uC99D", "\uCD94\uAC00 \uBCF8\uC778 \uD655\uC778"],
32330
+ en: ["MFA", "2FA", "two-factor authentication", "step-up authentication"]
32331
+ },
32332
+ text: {
32333
+ ko: {
32334
+ definition: "\uBE44\uBC00\uBC88\uD638 \uAC19\uC740 \uC9C0\uC2DD \uAE30\uBC18 \uC694\uC18C \uD558\uB098\uC5D0\uB9CC \uC758\uC874\uD558\uC9C0 \uC54A\uACE0, \uC77C\uD68C\uC6A9 \uC778\uC99D \uCF54\uB4DC(OTP), \uD328\uC2A4\uD0A4\xB7\uBCF4\uC548 \uD0A4(\uC18C\uC9C0 \uC694\uC18C), \uC0DD\uCCB4 \uC778\uC99D \uB4F1 \uC131\uACA9\uC774 \uC11C\uB85C \uB2E4\uB978 \uB450 \uAC00\uC9C0 \uC774\uC0C1 \uC694\uC18C\uB97C \uC870\uD569\uD574 \uBCF8\uC778 \uC5EC\uBD80\uB97C \uAC80\uC99D\uD558\uB294 \uC778\uC99D \uBC29\uC2DD\uC785\uB2C8\uB2E4. \uAD8C\uD55C \uBCC0\uACBD\xB7\uCD9C\uAE08 \uAC19\uC740 \uBBFC\uAC10 \uC791\uC5C5 \uC804 \uCD94\uAC00 \uC7AC\uC778\uC99D(Step-up)\uC5D0\uB3C4 \uD65C\uC6A9\uB429\uB2C8\uB2E4.",
32335
+ example: "\uBE44\uBC00\uBC88\uD638 \uB85C\uADF8\uC778 \uD6C4 6\uC790\uB9AC TOTP(Time-based One-Time Password) \uC778\uC99D \uC571 \uCF54\uB4DC\uB97C \uD655\uC778\uD558\uACE0, \uAE30\uAE30 \uBD84\uC2E4\uC5D0 \uB300\uBE44\uD574 \uC77C\uD68C\uC6A9 \uBCF5\uAD6C \uCF54\uB4DC \uBC1C\uAE09\uACFC \uC0AC\uC6A9 \uC2DC \uC989\uC2DC \uBB34\uD6A8\uD654\uB97C \uD568\uAED8 \uC81C\uACF5\uD569\uB2C8\uB2E4.",
32336
+ promptSnippet: "\uB2E4\uC911 \uC694\uC18C \uC778\uC99D(MFA)\uC744 \uAD6C\uD604\uD560 \uB54C OTP\xB7\uD328\uC2A4\uD0A4 \uAC80\uC99D, \uC77C\uD68C\uC6A9 \uBCF5\uAD6C \uCF54\uB4DC \uC0DD\uC131\uACFC \uD574\uC2DC \uC800\uC7A5, \uBBFC\uAC10 \uC791\uC5C5 \uC2DC Step-up \uC7AC\uC778\uC99D, \uADF8\uB9AC\uACE0 \uB9C8\uC9C0\uB9C9 \uC778\uC99D \uC218\uB2E8 \uD574\uC81C \uBC29\uC9C0 \uADDC\uCE59\uC744 \uC11C\uBC84\uC5D0\uC11C \uAC15\uC81C\uD558\uC138\uC694."
32337
+ },
32338
+ en: {
32339
+ definition: "An authentication requirement combining two or more independent verification factors\u2014such as knowledge (password), possession (authenticator OTP or passkey), or inherence (biometrics)\u2014including step-up re-verification before sensitive mutations.",
32340
+ example: "After password login, prompt for a 6-digit TOTP code with keyboard-friendly OTP input and issue single-use hashed backup codes in case the primary device is lost.",
32341
+ promptSnippet: "Implement Multi-Factor Authentication (MFA) with server-verified factors, single-use hashed recovery codes, step-up challenges for sensitive actions, and lockout protection on repeated failed codes."
32342
+ }
32343
+ }
32344
+ },
32345
+ "presigned-url": {
32346
+ aliases: {
32347
+ ko: ["\uC0AC\uC804 \uC11C\uBA85 URL", "\uD504\uB9AC\uC0AC\uC778\uB4DC URL", "\uC11C\uBA85\uB41C \uC5C5\uB85C\uB4DC \uC8FC\uC18C", "\uC784\uC2DC \uB2E4\uC6B4\uB85C\uB4DC \uB9C1\uD06C"],
32348
+ en: ["Presigned URL", "Signed URL", "pre-signed upload URL", "time-limited object URL"]
32349
+ },
32350
+ text: {
32351
+ ko: {
32352
+ definition: "\uD074\uB77C\uC774\uC5B8\uD2B8\uAC00 \uB300\uC6A9\uB7C9 \uD30C\uC77C\uC744 \uC571 \uC11C\uBC84\uB97C \uAC70\uCE58\uC9C0 \uC54A\uACE0 \uAC1D\uCCB4 \uC2A4\uD1A0\uB9AC\uC9C0\uC5D0 \uC9C1\uC811 \uC5C5\uB85C\uB4DC\uD558\uAC70\uB098 \uAD8C\uD55C \uAC80\uC0AC\uB97C \uD1B5\uACFC\uD55C \uC0AC\uC6A9\uC790\uC5D0\uAC8C\uB9CC \uC81C\uD55C \uC2DC\uAC04 \uB3D9\uC548 \uB2E4\uC6B4\uB85C\uB4DC\uB97C \uD5C8\uC6A9\uD558\uAE30 \uC704\uD574 \uC11C\uBC84\uAC00 \uAD8C\uD55C\xB7\uB9CC\uB8CC \uC2DC\uAC01\xB7\uD5C8\uC6A9 \uD06C\uAE30\xB7\uD615\uC2DD\uC744 \uC11C\uBA85\uD574 \uBC1C\uAE09\uD558\uB294 \uC77C\uC2DC\uC801 \uC811\uADFC \uC8FC\uC18C\uC785\uB2C8\uB2E4.",
32353
+ example: "\uC0AC\uC6A9\uC790\uAC00 \uD30C\uC77C\uC744 \uCCA8\uBD80\uD558\uBA74 \uC571 \uC11C\uBC84\uAC00 \uB85C\uADF8\uC778\xB7\uAD8C\uD55C\xB7\uD655\uC7A5\uC790\uB97C \uBA3C\uC800 \uD655\uC778\uD55C \uB4A4 5\uBD84\uAC04\uB9CC \uC720\uD6A8\uD55C \uC5C5\uB85C\uB4DC\uC6A9 \uC11C\uBA85 \uC8FC\uC18C\uB97C \uB0B4\uB824\uC8FC\uACE0, \uD074\uB77C\uC774\uC5B8\uD2B8\uAC00 \uC2A4\uD1A0\uB9AC\uC9C0\uB85C \uC9C1\uC811 \uC804\uC1A1\uD55C \uB2E4\uC74C \uC644\uB8CC \uCF5C\uBC31\uC73C\uB85C \uBA54\uD0C0\uB370\uC774\uD130\uB97C \uD655\uC815\uD569\uB2C8\uB2E4.",
32354
+ promptSnippet: "\uB300\uC6A9\uB7C9 \uD30C\uC77C \uC5C5\uB85C\uB4DC\xB7\uBE44\uACF5\uAC1C \uD30C\uC77C \uB2E4\uC6B4\uB85C\uB4DC\uC5D0\uB294 \uC11C\uBC84\uC5D0\uC11C \uC0AC\uC6A9\uC790 \uAD8C\uD55C\uC744 \uBA3C\uC800 \uAC80\uC99D\uD55C \uB4A4 \uC9E7\uC740 \uB9CC\uB8CC \uC2DC\uAC04, \uD5C8\uC6A9 MIME \uD0C0\uC785, \uCD5C\uB300 \uD06C\uAE30 \uC870\uAC74\uC774 \uB2F4\uAE34 \uC0AC\uC804 \uC11C\uBA85\uB41C \uC8FC\uC18C(Presigned URL)\uB97C \uBC1C\uAE09\uD558\uACE0 \uC5C5\uB85C\uB4DC \uC644\uB8CC \uAC80\uC99D\uACFC \uACE0\uC544 \uD30C\uC77C \uC815\uB9AC \uC815\uCC45\uC744 \uD568\uAED8 \uB450\uC138\uC694."
32355
+ },
32356
+ en: {
32357
+ definition: "A time-limited, cryptographically signed object-storage link issued by an authorized backend so clients can upload large files directly to storage or download private files temporarily without exposing permanent credentials.",
32358
+ example: "After verifying user permissions and file constraints, the API issues a 5-minute upload URL with size and content-type conditions, then marks the file ready only after post-upload confirmation.",
32359
+ promptSnippet: "Issue short-lived Presigned URLs only after backend authorization checks, bind strict content-type and size limits on uploads, verify completion before publishing, and expire unused upload objects."
32360
+ }
32361
+ }
32362
+ }
32363
+ };
32364
+
32365
+ // ../../packages/catalog/src/glossary/workflow.ts
32366
+ var WORKFLOW_GLOSSARY_DATA = {
32367
+ "human-in-the-loop": {
32368
+ aliases: {
32369
+ ko: ["HITL", "\uD734\uBA3C\uC778\uB354\uB8E8\uD504", "\uC0AC\uB78C \uC2B9\uC778 \uB2E8\uACC4", "\uC5D0\uC774\uC804\uD2B8 \uC2E4\uD589 \uC804 \uD655\uC778", "\uC704\uD5D8 \uC791\uC5C5 \uC2B9\uC778"],
32370
+ en: ["HITL", "human in the loop", "human approval guardrail", "manual review gate"]
32371
+ },
32372
+ text: {
32373
+ ko: {
32374
+ definition: "AI \uC5D0\uC774\uC804\uD2B8\uB098 \uC790\uB3D9\uD654 \uC6CC\uD06C\uD50C\uB85C\uAC00 \uB418\uB3CC\uB9AC\uAE30 \uC5B4\uB824\uC6B4 \uC791\uC5C5(\uC0AD\uC81C\xB7\uACB0\uC81C\xB7\uC678\uBD80 \uBC1C\uC1A1 \uB4F1)\uC744 \uC2E4\uD589\uD558\uAE30 \uC9C1\uC804\uC5D0 \uC2E4\uD589\uC744 \uBA48\uCD94\uACE0 \uC0AC\uB78C\uC758 \uBA85\uC2DC\uC801 \uC2B9\uC778 \uB610\uB294 \uAC70\uC808\uC744 \uC694\uAD6C\uD558\uB294 \uC548\uC804 \uC808\uCC28\uC785\uB2C8\uB2E4.",
32375
+ example: "AI \uBE44\uC11C\uAC00 \uACE0\uAC1D\uC5D0\uAC8C \uD658\uBD88 \uBA54\uC77C\uC744 \uBC1C\uC1A1\uD558\uAC70\uB098 DB \uD14C\uC774\uBE14\uC744 \uC218\uC815\uD558\uAE30 \uC804\uC5D0 \uC601\uD5A5 \uBC94\uC704\uC640 \uC2E4\uD589 \uD30C\uB77C\uBBF8\uD130\uB97C \uCE74\uB4DC\uB85C \uBCF4\uC5EC \uC8FC\uACE0 [\uC2B9\uC778] \uBC84\uD2BC\uC744 \uB204\uB978 \uACBD\uC6B0\uC5D0\uB9CC \uC2E4\uC81C \uB3C4\uAD6C\uB97C \uC2E4\uD589\uD569\uB2C8\uB2E4.",
32376
+ promptSnippet: "AI \uC5D0\uC774\uC804\uD2B8\uB098 \uC790\uB3D9\uD654 \uD30C\uC774\uD504\uB77C\uC778\uC5D0\uC11C \uD30C\uAD34\uC801\xB7\uAE08\uC804\uC801\xB7\uC678\uBD80 \uC804\uD30C \uC791\uC5C5\uC740 \uC790\uB3D9 \uC2E4\uD589\uD558\uC9C0 \uB9D0\uACE0 \uC778\uAC04 \uAC1C\uC785 \uC2B9\uC778(HITL) \uAC8C\uC774\uD2B8\uB97C \uB450\uC5B4 \uB300\uC0C1\uACFC \uD30C\uB77C\uBBF8\uD130 \uC694\uC57D\uC744 \uBCF4\uC5EC \uC900 \uB4A4 \uBA85\uC2DC\uC801 \uC2B9\uC778 \uD6C4\uC5D0\uB9CC \uC9C4\uD589\uB418\uAC8C \uD574 \uC918."
32377
+ },
32378
+ en: {
32379
+ definition: "A workflow guardrail that pauses an AI agent or automation before high-impact or irreversible actions, requiring explicit human approval or rejection to proceed.",
32380
+ example: "Before an agent sends external emails or deletes records, pause execution and surface the exact tool parameters and impact summary for a user to approve or reject.",
32381
+ promptSnippet: "Gate irreversible, financial, or external-facing automated actions behind a Human-in-the-Loop (HITL) approval step that displays exact parameters and risk context before execution."
32382
+ }
32383
+ }
32384
+ },
32385
+ "user-onboarding": {
32386
+ aliases: {
32387
+ ko: ["\uC628\uBCF4\uB529 \uD750\uB984", "\uCD08\uAE30 \uC124\uC815 \uAC00\uC774\uB4DC", "\uC2DC\uC791\uD558\uAE30 \uCCB4\uD06C\uB9AC\uC2A4\uD2B8", "\uCCAB \uC0AC\uC6A9\uC790 \uC548\uB0B4"],
32388
+ en: ["onboarding flow", "getting started checklist", "first-run experience", "activation checklist"]
32389
+ },
32390
+ text: {
32391
+ ko: {
32392
+ definition: "\uC0C8\uB85C \uAC00\uC785\uD55C \uC0AC\uC6A9\uC790\uB098 \uD300\uC774 \uC11C\uBE44\uC2A4\uC758 \uCCAB \uD575\uC2EC \uAC00\uCE58\uB97C \uBE60\uB974\uAC8C \uACBD\uD5D8\uD558\uB3C4\uB85D \uCD08\uAE30 \uC124\uC815\xB7\uD544\uC218 \uC785\uB825\xB7\uB458\uB7EC\uBCF4\uAE30 \uB2E8\uACC4\uB97C \uC21C\uC11C\uB300\uB85C \uC548\uB0B4\uD558\uB294 \uD750\uB984\uC785\uB2C8\uB2E4.",
32393
+ example: '\uD300 \uD611\uC5C5 SaaS \uAC00\uC785 \uC9C1\uD6C4 "1. \uD504\uB85C\uD544 \uC124\uC815 \u2192 2. \uD300\uC6D0 \uCD08\uB300 \u2192 3. \uCCAB \uD504\uB85C\uC81D\uD2B8 \uB9CC\uB4E4\uAE30" \uCCB4\uD06C\uB9AC\uC2A4\uD2B8\uC640 \uC9C4\uD589\uB960 \uB9C9\uB300\uB97C \uBCF4\uC5EC \uC8FC\uC5B4 \uC774\uD0C8 \uC5C6\uC774 \uC2DC\uC791\uD558\uAC8C \uD569\uB2C8\uB2E4.',
32394
+ promptSnippet: "\uC2E0\uADDC \uC0AC\uC6A9\uC790 \uC628\uBCF4\uB529\uC740 \uD55C \uBC88\uC5D0 \uBAA8\uB4E0 \uC124\uC815\uC744 \uAC15\uC694\uD558\uC9C0 \uB9D0\uACE0 3~4\uAC1C\uC758 \uC791\uC740 \uC644\uB8CC \uAC00\uB2A5\uD55C \uB2E8\uACC4\uC640 \uC9C4\uD589\uB960 \uD45C\uC2DC\uB85C \uB098\uB204\uACE0, \uAC74\uB108\uB6F0\uAE30\uC640 \uB098\uC911\uC5D0 \uC774\uC5B4\uD558\uAE30\uB97C \uD5C8\uC6A9\uD574 \uC918."
32395
+ },
32396
+ en: {
32397
+ definition: "A guided activation flow that helps new users or teams complete essential setup steps and reach their first meaningful outcome without feeling overwhelmed.",
32398
+ example: 'After sign-up, present a 3-step checklist ("Profile", "Invite teammates", "Create first project") with a live progress indicator and optional skip.',
32399
+ promptSnippet: "Design user onboarding as a concise 3-4 step checklist with visible progress, clear next-action cues, and safe skip/resume support so users reach core value quickly."
32400
+ }
32401
+ }
32402
+ },
32403
+ "grace-period": {
32404
+ aliases: {
32405
+ ko: ["\uC720\uC608\uAE30\uAC04", "\uACB0\uC81C \uC2E4\uD328 \uC720\uC608", "\uD0C8\uD1F4 \uCCA0\uD68C \uAE30\uAC04", "\uC2DC\uD06C\uB9BF \uAD50\uCCB4 \uC720\uC608"],
32406
+ en: ["grace window", "dunning grace period", "deletion grace period", "dual-valid window"]
32407
+ },
32408
+ text: {
32409
+ ko: {
32410
+ definition: "\uACB0\uC81C \uC2E4\uD328\xB7\uAD6C\uB3C5 \uB9CC\uB8CC\xB7\uD68C\uC6D0 \uD0C8\uD1F4 \uC694\uCCAD\xB7API \uC2DC\uD06C\uB9BF \uAD50\uCCB4 \uAC19\uC740 \uC804\uD658\uC774 \uBC1C\uC0DD\uD55C \uB4A4, \uC989\uC2DC \uCC28\uB2E8\uD558\uAC70\uB098 \uC601\uAD6C \uC0AD\uC81C\uD558\uC9C0 \uC54A\uACE0 \uBCF5\uAD6C\xB7\uC804\uD658\uD560 \uC218 \uC788\uB3C4\uB85D \uD5C8\uC6A9\uD558\uB294 \uC77C\uC815 \uC720\uC608 \uC2DC\uAC04\uC785\uB2C8\uB2E4.",
32411
+ example: "\uC815\uAE30 \uACB0\uC81C\uAC00 \uC2E4\uD328\uD574\uB3C4 \uC989\uC2DC \uACC4\uC815\uC744 \uC7A0\uADF8\uC9C0 \uC54A\uACE0 7\uC77C\uAC04 \uC720\uC608 \uAE30\uAC04 \uBC30\uB108\uC640 \uACB0\uC81C \uC218\uB2E8 \uAD50\uCCB4 \uC548\uB0B4\uB97C \uB744\uC6CC \uC815\uC0C1 \uBCF5\uAD6C\uD560 \uC218 \uC788\uAC8C \uD569\uB2C8\uB2E4.",
32412
+ promptSnippet: "\uACB0\uC81C \uC2E4\uD328, \uD574\uC9C0 \uC608\uC57D, \uACC4\uC815 \uC0AD\uC81C, \uC6F9\uD6C5 \uC2DC\uD06C\uB9BF \uAD50\uCCB4\uC5D0\uB294 \uC989\uC2DC \uCC28\uB2E8 \uB300\uC2E0 \uBA85\uC2DC\uC801 \uC720\uC608 \uAE30\uAC04(Grace Period)\uACFC \uB0A8\uC740 \uAE30\uD55C \uBC30\uB108\xB7\uBCF5\uAD6C \uC561\uC158\uC744 \uC81C\uACF5\uD574 \uC758\uB3C4\uCE58 \uC54A\uC740 \uC11C\uBE44\uC2A4 \uC911\uB2E8\uC744 \uC904\uC5EC \uC918."
32413
+ },
32414
+ en: {
32415
+ definition: "A configured buffer window after payment failure, cancellation, deletion request, or credential rotation during which users can recover or transition before hard enforcement.",
32416
+ example: "After a recurring card charge fails, grant a 7-day grace period with a persistent banner to update payment details before downgrading entitlements.",
32417
+ promptSnippet: "Include an explicit grace period with countdown banners and recovery actions for failed renewals, scheduled account deletions, or dual-valid secret rotations before hard cutoff."
32418
+ }
32419
+ }
32420
+ },
32421
+ "maker-checker-approval": {
32422
+ aliases: {
32423
+ ko: ["\uBA54\uC774\uCEE4 \uCCB4\uCEE4", "2\uC778 \uC2B9\uC778 \uCCB4\uACC4", "\uAD50\uCC28 \uC2B9\uC778", "\uACE0\uC704\uD5D8 \uC791\uC5C5 \uACB0\uC7AC", "4-eyes \uC6D0\uCE59"],
32424
+ en: ["maker-checker", "four-eyes principle", "two-person approval", "peer sign-off"]
32425
+ },
32426
+ text: {
32427
+ ko: {
32428
+ definition: "\uACE0\uC561 \uCD9C\uAE08, \uAD8C\uD55C \uC2B9\uACA9, \uC6B4\uC601 \uC124\uC815 \uBCC0\uACBD \uAC19\uC740 \uACE0\uC704\uD5D8 \uC791\uC5C5\uC744 \uC694\uCCAD\uD558\uB294 \uC0AC\uB78C(Maker)\uACFC \uC774\uB97C \uAC80\uD1A0\xB7\uC2B9\uC778\uD558\uB294 \uC0AC\uB78C(Checker)\uC744 \uBD84\uB9AC\uD574 \uB2E8\uB3C5 \uC2E4\uC218\uB098 \uC545\uC6A9\uC744 \uB9C9\uB294 \uC2B9\uC778 \uC6CC\uD06C\uD50C\uB85C\uC785\uB2C8\uB2E4.",
32429
+ example: "\uB2F4\uB2F9\uC790 A\uAC00 \uB300\uB7C9 \uC815\uC0B0 \uC9C0\uAE09\uC744 \uAE30\uC548\uD558\uB354\uB77C\uB3C4 \uBCF8\uC778 \uACC4\uC815\uC740 \uC2B9\uC778 \uBC84\uD2BC\uC774 \uB9C9\uD600 \uC788\uACE0, \uB2E4\uB978 \uAD00\uB9AC\uC790 B\uAC00 \uB0B4\uC6A9\uC744 \uAC80\uD1A0\uD55C \uB4A4 \uC2B9\uC778\uD574\uC57C\uB9CC \uC2E4\uD589\uB429\uB2C8\uB2E4.",
32430
+ promptSnippet: "\uACE0\uC704\uD5D8 \uC6B4\uC601 \uC791\uC5C5\uC5D0\uB294 \uC694\uCCAD\uC790(Maker)\uC640 \uC2B9\uC778\uC790(Checker)\uB97C \uB3D9\uC77C \uC778\uBB3C\uB85C \uD5C8\uC6A9\uD558\uC9C0 \uC54A\uB294 \uC774\uC911 \uC2B9\uC778 \uC6CC\uD06C\uD50C\uB85C\uB97C \uB450\uACE0, \uC2B9\uC778 \uB9CC\uB8CC \uC2DC\uAC04\xB7\uBC18\uB824 \uC0AC\uC720\xB7\uAC10\uC0AC \uB85C\uADF8\uB97C \uD568\uAED8 \uAE30\uB85D\uD574 \uC918."
32431
+ },
32432
+ en: {
32433
+ definition: "A governance workflow requiring two distinct authorized people\u2014a Maker who initiates a high-risk action and a Checker who independently reviews and approves it.",
32434
+ example: "An operator who drafts a bulk payout or production permission change cannot self-approve; a second reviewer must approve before execution.",
32435
+ promptSnippet: "Enforce Maker-Checker dual-control approval on high-risk actions by blocking self-approval on the backend, adding request expiration and rejection reasons, and logging every decision."
32436
+ }
32437
+ }
32438
+ },
32439
+ "account-deactivation": {
32440
+ aliases: {
32441
+ ko: ["\uACC4\uC815 \uBE44\uD65C\uC131\uD654", "\uACC4\uC815 \uC911\uC9C0", "\uACC4\uC815 \uD734\uBA74", "\uC0AC\uC6A9 \uC81C\uD55C", "\uC811\uADFC \uC815\uC9C0"],
32442
+ en: ["account deactivation", "account suspension", "disable account", "soft deactivation"]
32443
+ },
32444
+ text: {
32445
+ ko: {
32446
+ definition: "\uC0AC\uC6A9\uC790 \uACC4\uC815\uC758 \uC811\uADFC\uACFC \uC774\uC6A9\uC744 \uC81C\uD55C\uD558\uB294 \uC0C1\uD0DC \uC804\uD658\uC73C\uB85C, \uB370\uC774\uD130\uB97C \uC601\uAD6C \uD30C\uAE30\uD558\uB294 \uBB3C\uB9AC\uC801 \uC0AD\uC81C(Hard deletion)\uC640 \uAD6C\uBD84\uB429\uB2C8\uB2E4. \uD559\uC2B5 \uC9C4\uB3C4\xB7\uB370\uC774\uD130 \uBCF4\uC874 \uC5EC\uBD80, \uB85C\uADF8\uC778 \uCC28\uB2E8, \uC88C\uC11D(Seat) \uC218 \uBC18\uC601, \uBCF5\uAD6C \uAC00\uB2A5 \uC5EC\uBD80\uB294 \uC11C\uBE44\uC2A4 \uC815\uCC45\uC5D0 \uB530\uB77C \uB2EC\uB77C\uC9D1\uB2C8\uB2E4.",
32447
+ example: "\uC870\uC9C1 \uBA64\uBC84\uB97C \uBE44\uD65C\uC131\uD654 \uC0C1\uD0DC\uB85C \uC804\uD658\uD574 \uB85C\uADF8\uC778\uACFC API \uD1A0\uD070 \uC811\uADFC\uC744 \uB9C9\uB418, \uACFC\uAE08 \uC88C\uC11D \uD574\uC81C \uC5EC\uBD80\uC640 \uC7AC\uD65C\uC131\uD654 \uAC00\uB2A5 \uC5EC\uBD80\uB294 \uC870\uC9C1\xB7\uC11C\uBE44\uC2A4 \uC815\uCC45 \uD655\uC778 \uD6C4 \uCC98\uB9AC\uD569\uB2C8\uB2E4.",
32448
+ promptSnippet: "\uACC4\uC815 \uBE44\uD65C\uC131\uD654 \uD750\uB984\uC744 \uAD6C\uD604\uD560 \uB54C \uB300\uC0C1 \uACC4\uC815\xB7\uB9AC\uC18C\uC2A4 \uC694\uC57D\uC744 \uBA3C\uC800 \uBCF4\uC5EC \uC8FC\uACE0 \uAD8C\uD55C \uAC80\uC99D\uACFC \uC601\uD5A5 \uBC94\uC704 \uC810\uAC80\uC744 \uAC70\uCE58\uAC8C \uD558\uBA70, \uBB3C\uB9AC\uC801 \uC0AD\uC81C\uC640 \uAD6C\uBD84\uD558\uB418 \uBCF5\uAD6C \uAC00\uB2A5 \uC5EC\uBD80\xB7\uC9C4\uB3C4 \uBCF4\uC874\xB7\uC88C\uC11D \uCC28\uAC10\uC740 \uC790\uB3D9 \uAC00\uC815\uD558\uC9C0 \uB9D0\uACE0 \uC11C\uBE44\uC2A4 \uC815\uCC45\uC744 \uD655\uC778\uD558\uAC8C \uD574 \uC918."
32449
+ },
32450
+ en: {
32451
+ definition: "A state transition that restricts account access and usage, distinct from hard/physical deletion. Whether progress/data is preserved, logins are blocked, seats are released, or restoration is allowed depends on service policy.",
32452
+ example: "Move a departing member account to deactivated status to block sign-in while checking policy rules before assuming automatic seat release or self-service restoration.",
32453
+ promptSnippet: "Implement account deactivation with a target summary, impact check, and permission verification; separate it from hard deletion and verify service policies for data retention, seat counts, and recovery rather than assuming defaults."
32454
+ }
32455
+ }
32456
+ },
32457
+ "soft-delete": {
32458
+ aliases: {
32459
+ ko: ["\uB17C\uB9AC \uC0AD\uC81C", "\uD734\uC9C0\uD1B5 \uBCF4\uAD00", "\uBCF5\uAD6C \uAC00\uB2A5\uD55C \uC0AD\uC81C", "\uC784\uC2DC \uC0AD\uC81C"],
32460
+ en: ["logical deletion", "trash retention", "recoverable delete", "undoable delete"]
32461
+ },
32462
+ text: {
32463
+ ko: {
32464
+ definition: "\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0\uC11C \uB808\uCF54\uB4DC\uB97C \uC989\uC2DC \uBB3C\uB9AC \uC0AD\uC81C(Hard Delete)\uD558\uC9C0 \uC54A\uACE0 \uC0AD\uC81C \uC2DC\uAC01(deletedAt)\uC774\uB098 \uBCF4\uAD00 \uC0C1\uD0DC\uB97C \uD45C\uC2DC\uD574 \uC77C\uBC18 \uC870\uD68C\uC5D0\uC11C \uC228\uACBC\uB2E4\uAC00, \uBCF4\uAD00 \uC720\uC608 \uAE30\uAC04 \uB3D9\uC548 \uBCF5\uC6D0\uD558\uAC70\uB098 \uAE30\uD55C \uB9CC\uB8CC \uD6C4 \uC601\uAD6C \uD30C\uAE30\uD558\uB294 \uC0AD\uC81C \uC6CC\uD06C\uD50C\uB85C\uC785\uB2C8\uB2E4. \uC0AD\uC81C\uB41C \uD56D\uBAA9\uC774 \uC800\uC7A5 \uC6A9\uB7C9(Quota)\uC774\uB098 \uACE0\uC720 \uC81C\uC57D \uC870\uAC74(\uC608: \uB3D9\uC77C \uD30C\uC77C\uBA85\xB7\uC2AC\uB7EC\uADF8)\uC5D0 \uBBF8\uCE58\uB294 \uC601\uD5A5\uC744 \uD568\uAED8 \uC815\uD574\uC57C \uD569\uB2C8\uB2E4.",
32465
+ example: "\uD30C\uC77C\uC774\uB098 \uBB38\uC11C\uB97C \uC0AD\uC81C\uD558\uBA74 \uC989\uC2DC \uD734\uC9C0\uD1B5 \uC0C1\uD0DC\uB85C \uC804\uD658\uD558\uACE0 \uC2E4\uD589 \uCDE8\uC18C \uC2A4\uB0B5\uBC14\uB97C \uB744\uC6B0\uBA70, 30\uC77C \uBCF4\uAD00 \uD6C4 \uC601\uAD6C \uC0AD\uC81C \uBC30\uCE58\uB85C \uC2E4\uC81C \uB370\uC774\uD130\uC640 \uC2A4\uD1A0\uB9AC\uC9C0 \uC810\uC720\uB97C \uC815\uB9AC\uD569\uB2C8\uB2E4.",
32466
+ promptSnippet: "\uBCF5\uAD6C \uAC00\uB2A5\uD55C \uC0AD\uC81C\uAC00 \uD544\uC694\uD55C \uD30C\uC77C\xB7\uBB38\uC11C\xB7\uB313\uAE00\uC5D0\uB294 deletedAt \uAE30\uBC18 \uC18C\uD504\uD2B8 \uC0AD\uC81C\uC640 \uD734\uC9C0\uD1B5 \uBCF5\uC6D0 \uACBD\uB85C\uB97C \uB450\uACE0, \uC77C\uBC18 \uBAA9\uB85D\xB7\uAC80\uC0C9 \uC81C\uC678, \uACE0\uC720 \uC774\uB984 \uCDA9\uB3CC \uCC98\uB9AC, \uBCF4\uAD00 \uAE30\uAC04 \uB9CC\uB8CC \uD6C4 \uC601\uAD6C \uC0AD\uC81C(Hard Delete)\uC640 \uC6A9\uB7C9 \uBC18\uD658 \uADDC\uCE59\uC744 \uD568\uAED8 \uC124\uACC4\uD558\uC138\uC694."
32467
+ },
32468
+ en: {
32469
+ definition: "Marking a record with a deletion timestamp or trash status rather than erasing it immediately, hiding it from active views so users can restore it during a retention period before scheduled permanent purge.",
32470
+ example: "Moving a workspace file to Trash sets deletedAt and shows an undo snackbar, keeping the file out of standard searches while retaining it for 30 days before permanent cleanup.",
32471
+ promptSnippet: "Implement soft delete with an explicit deletedAt timestamp, consistent exclusion from normal queries, a restore flow, uniqueness handling, and a scheduled permanent purge with quota reclamation."
32472
+ }
32473
+ }
32474
+ },
32475
+ "waitlist-management": {
32476
+ aliases: {
32477
+ ko: ["\uB300\uAE30\uC790 \uBA85\uB2E8 \uAD00\uB9AC", "\uBE48\uC790\uB9AC \uC54C\uB9BC \uC804\uD658", "\uB300\uAE30\uC5F4 \uC21C\uBC88 \uC2B9\uC778", "\uC608\uC57D \uB300\uAE30 \uB9CC\uB8CC"],
32478
+ en: ["waitlist queue", "waitlist promotion", "standby queue", "waitlist expiry"]
32479
+ },
32480
+ text: {
32481
+ ko: {
32482
+ definition: "\uC608\uC57D \uC2AC\uB86F\uC774\uB098 \uD589\uC0AC \uC88C\uC11D\uC774 \uBAA8\uB450 \uCC3C\uC744 \uB54C \uB300\uAE30\uC790 \uBA85\uB2E8\uC744 \uC811\uC218\uD558\uACE0, \uCDE8\uC18C\uAC00 \uBC1C\uC0DD\uD558\uBA74 \uC21C\uBC88\xB7\uC870\uAC74\uC5D0 \uB530\uB77C \uB2E4\uC74C \uB300\uAE30\uC790\uC5D0\uAC8C \uD55C\uC815\uB41C \uC218\uB77D \uAE30\uD55C(Offer Window)\uC744 \uBD80\uC5EC\uD574 \uD655\uC815\uD558\uAC70\uB098 \uBBF8\uC751\uB2F5 \uC2DC \uC790\uB3D9 \uB9CC\uB8CC \uD6C4 \uB2E4\uC74C \uC21C\uBC88\uC73C\uB85C \uB118\uAE30\uB294 \uD750\uB984\uC785\uB2C8\uB2E4.",
32483
+ example: "\uB9C8\uAC10\uB41C \uC6CC\uD06C\uC20D\uC5D0 \uCDE8\uC18C\uD45C 1\uC11D\uC774 \uC0DD\uAE30\uBA74 1\uC21C\uC704 \uB300\uAE30\uC790\uC5D0\uAC8C 30\uBD84 \uC720\uD6A8\uD55C \uACB0\uC81C\xB7\uD655\uC815 \uB9C1\uD06C\uB97C \uBC1C\uAE09\uD558\uACE0, \uAE30\uD55C \uC548\uC5D0 \uD655\uC815\uD558\uC9C0 \uC54A\uC73C\uBA74 \uC81C\uC548\uC744 \uB9CC\uB8CC \uCC98\uB9AC\uD55C \uB4A4 2\uC21C\uC704 \uB300\uAE30\uC790\uC5D0\uAC8C \uB118\uAE41\uB2C8\uB2E4.",
32484
+ promptSnippet: "\uC608\uC57D\xB7\uD2F0\uCF13 \uB300\uAE30\uC5F4\uC5D0\uB294 \uB2E8\uC21C \uB300\uAE30 \uB4F1\uB85D\uBFD0 \uC544\uB2C8\uB77C \uBE48\uC790\uB9AC \uBC1C\uC0DD \uC2DC \uD55C\uC815\uB41C \uC218\uB77D \uC720\uC608 \uC2DC\uAC04 \uBD80\uC5EC, \uC120\uC810 \uB77D\uACFC \uB3D9\uC2DC \uC218\uB77D \uCDA9\uB3CC \uBC29\uC9C0, \uAE30\uD55C \uB9CC\uB8CC \uC2DC \uC790\uB3D9 \uC2B9\uACC4 \uBC0F \uB300\uAE30 \uCDE8\uC18C \uD750\uB984\uC744 \uD568\uAED8 \uC124\uACC4\uD558\uC138\uC694."
32485
+ },
32486
+ en: {
32487
+ definition: "A queue workflow for full bookings or events that registers standby users and, when capacity opens, grants a time-boxed offer window to the next eligible candidate\u2014automatically expiring and advancing to the next person if unconfirmed.",
32488
+ example: "When a spot cancels, issue a 30-minute confirmation offer to the first waitlisted registrant and automatically rotate the seat to the next person if the offer expires.",
32489
+ promptSnippet: "Design waitlist workflows with bounded confirmation offer windows, atomic capacity holds to prevent double-claiming, automatic expiration rollover, and clear status visibility for waiting users."
32490
+ }
32491
+ }
32492
+ },
32493
+ "break-glass-access": {
32494
+ aliases: {
32495
+ ko: ["\uBE44\uC0C1 \uAD8C\uD55C \uC0C1\uC2B9", "\uAE34\uAE09 \uAD00\uB9AC\uC790 \uC811\uADFC", "\uBE0C\uB808\uC774\uD06C \uAE00\uB798\uC2A4", "\uC608\uC678 \uAD8C\uD55C \uBC1C\uB3D9"],
32496
+ en: ["emergency access", "break glass account", "just-in-time emergency elevation", "emergency override"]
32497
+ },
32498
+ text: {
32499
+ ko: {
32500
+ definition: "\uC7A5\uC560 \uB300\uC751\uC774\uB098 \uBCF4\uC548 \uC0AC\uACE0\uCC98\uB7FC \uC77C\uBC18 \uC774\uC911 \uC2B9\uC778(Maker-Checker) \uC808\uCC28\uB97C \uAE30\uB2E4\uB9AC\uAE30 \uC5B4\uB824\uC6B4 \uBE44\uC0C1 \uC0C1\uD669\uC5D0\uC11C, \uC0AC\uC804 \uC0AC\uC720 \uC785\uB825\uACFC \uCD94\uAC00 \uC778\uC99D\uC744 \uAC70\uCCD0 \uC81C\uD55C\uB41C \uC2DC\uAC04 \uB3D9\uC548\uB9CC \uC784\uC2DC \uAD8C\uD55C\uC744 \uBD80\uC5EC\uD558\uACE0 \uC885\uB8CC \uD6C4 \uC790\uB3D9 \uD68C\uC218\uC640 \uC0AC\uD6C4 \uAC10\uC0AC\uB97C \uC758\uBB34\uD654\uD558\uB294 \uC608\uC678 \uC811\uADFC \uC808\uCC28\uC785\uB2C8\uB2E4.",
32501
+ example: "\uC57C\uAC04 \uC7A5\uC560\uB85C \uC6B4\uC601 DB\uB098 \uC7A0\uAE34 \uC870\uC9C1 \uACC4\uC815\uC744 \uC989\uC2DC \uBCF5\uAD6C\uD574\uC57C \uD560 \uB54C \uAD00\uB9AC\uC790\uAC00 \uC0AC\uC720 \uD2F0\uCF13 \uBC88\uD638\uB97C \uC785\uB825\uD558\uACE0 \uAE38\uAC8C \uB20C\uB7EC \uAE34\uAE09 \uC811\uADFC\uC744 \uD65C\uC131\uD654\uD558\uBA74 1\uC2DC\uAC04 \uB4A4 \uAD8C\uD55C\uC774 \uC790\uB3D9 \uB9CC\uB8CC\uB418\uBA70 \uBCF4\uC548 \uD300\uC5D0 \uC989\uC2DC \uC54C\uB9BC\uACFC \uAC10\uC0AC \uB85C\uADF8\uAC00 \uB0A8\uC2B5\uB2C8\uB2E4.",
32502
+ promptSnippet: "\uAE34\uAE09 \uC608\uC678 \uC811\uADFC(Break-Glass) \uAE30\uB2A5\uC5D0\uB294 \uC0AC\uC804 \uC0AC\uC720\xB7\uD2F0\uCF13 \uBC88\uD638 \uD544\uC218 \uC785\uB825, \uBA85\uD655\uD55C \uC790\uB3D9 \uB9CC\uB8CC \uD0C0\uC774\uBA38(TTL), \uC2E4\uC2DC\uAC04 \uBCF4\uC548 \uC54C\uB9BC \uBC1C\uC1A1, \uB9CC\uB8CC \uC2DC \uC790\uB3D9 \uAD8C\uD55C \uD68C\uC218\uC640 \uBCC0\uC870 \uBD88\uAC00 \uAC10\uC0AC \uB85C\uADF8\xB7\uC0AC\uD6C4 \uAC80\uD1A0 \uC0C1\uD0DC\uB97C \uBC18\uB4DC\uC2DC \uD3EC\uD568\uD558\uC138\uC694."
32503
+ },
32504
+ en: {
32505
+ definition: "A tightly audited emergency privilege-escalation path used during critical incidents when normal multi-person approval cannot wait. It requires an explicit reason, grants short-lived access with automatic expiration, triggers immediate security alerts, and mandates post-incident review.",
32506
+ example: "An on-call engineer enters an incident ID and completes step-up verification to unlock 60-minute emergency production access, automatically revoking privileges on timeout and alerting security.",
32507
+ promptSnippet: "Build break-glass access with mandatory incident justification, step-up authentication, strict automatic TTL expiration, real-time alert notifications, and mandatory post-event audit sign-off."
32508
+ }
32509
+ }
32510
+ },
32511
+ "dry-run-validation": {
32512
+ aliases: {
32513
+ ko: ["\uB4DC\uB77C\uC774 \uB7F0 \uAC80\uC99D", "\uBBF8\uB9AC\uBCF4\uAE30 \uAC80\uC99D", "\uAC00\uC838\uC624\uAE30 \uC0AC\uC804 \uAC80\uC0AC", "\uC2E4\uC81C \uBC18\uC601 \uC804 \uAC80\uC99D"],
32514
+ en: ["dry run check", "pre-flight validation", "import preview validation", "simulation run"]
32515
+ },
32516
+ text: {
32517
+ ko: {
32518
+ definition: "\uB300\uB7C9 CSV \uAC00\uC838\uC624\uAE30, \uC77C\uAD04 \uC0C1\uD0DC \uBCC0\uACBD, \uC694\uAE08\uC81C \uB9C8\uC774\uADF8\uB808\uC774\uC158\uCC98\uB7FC \uC601\uD5A5\uC774 \uD070 \uC791\uC5C5\uC744 \uC2E4\uC81C \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0 \uBC18\uC601\uD558\uAE30 \uC804\uC5D0, \uB3D9\uC77C\uD55C \uADDC\uCE59\uC73C\uB85C \uC804\uCCB4 \uD589\uC744 \uBA3C\uC800 \uAC80\uC99D\uD574 \uC0DD\uC131\xB7\uC218\uC815\xB7\uC2E4\uD328 \uAC74\uC218\uC640 \uD589\uBCC4 \uC624\uB958 \uC6D0\uC778\uC744 \uBBF8\uB9AC \uBCF4\uC5EC \uC8FC\uB294 \uC0AC\uC804 \uAC80\uC99D \uB2E8\uACC4\uC785\uB2C8\uB2E4.",
32519
+ example: '\uC9C1\uC6D0 \uBA85\uB2E8 500\uAC74 CSV \uC5C5\uB85C\uB4DC \uC2DC \uACE7\uBC14\uB85C \uC800\uC7A5\uD558\uC9C0 \uC54A\uACE0 \uB4DC\uB77C\uC774 \uB7F0 \uB2E8\uACC4\uC5D0\uC11C "\uC2E0\uADDC 420\uAC74, \uAC31\uC2E0 75\uAC74, \uC624\uB958 5\uAC74(\uC774\uBA54\uC77C \uD615\uC2DD\xB7\uC911\uBCF5 ID)" \uC694\uC57D\uACFC \uC624\uB958 CSV \uB2E4\uC6B4\uB85C\uB4DC\uB97C \uBA3C\uC800 \uC81C\uC2DC\uD55C \uB4A4 \uCD5C\uC885 \uC2E4\uD589 \uC5EC\uBD80\uB97C \uBB3B\uC2B5\uB2C8\uB2E4.',
32520
+ promptSnippet: "\uB300\uB7C9 \uB370\uC774\uD130 \uAC00\uC838\uC624\uAE30\uB098 \uC77C\uAD04 \uBCC0\uACBD\uC5D0\uB294 \uC2E4\uC81C \uCEE4\uBC0B \uC804 \uC601\uD5A5 \uAC74\uC218\uC640 \uD589\uBCC4 \uC624\uB958\uB97C \uBBF8\uB9AC \uD655\uC778\uD558\uB294 \uC0AC\uC804 \uBAA8\uC758 \uAC80\uC99D(Dry-Run) \uB2E8\uACC4\uB97C \uB450\uACE0, \uC804\uCCB4 \uC911\uB2E8(All-or-Nothing)\uC778\uC9C0 \uC720\uD6A8 \uD589\uB9CC \uBD80\uBD84 \uBC18\uC601\uC778\uC9C0 \uC815\uCC45\uC744 \uC0AC\uC6A9\uC790\uAC00 \uBA85\uD655\uD788 \uC120\uD0DD\uD558\uAC8C \uD558\uC138\uC694."
32521
+ },
32522
+ en: {
32523
+ definition: "A pre-flight verification step that runs all schema, uniqueness, and business-rule checks on bulk imports or batch mutations without persisting changes, previewing created, updated, and failing rows before final commit.",
32524
+ example: 'Uploading a 500-row CSV previews "420 new, 75 updates, 5 validation errors" with line-level error reasons and a downloadable error report before committing.',
32525
+ promptSnippet: "Add a dry-run validation preview before bulk imports or batch updates showing exact counts of inserts, updates, and row-level errors, and clarify all-or-nothing rollback versus partial-commit rules."
32526
+ }
32527
+ }
32528
+ },
32529
+ "collaborative-edit-lock": {
32530
+ aliases: {
32531
+ ko: ["\uACF5\uB3D9 \uD3B8\uC9D1 \uC7A0\uAE08", "\uBB38\uC11C \uCCB4\uD06C\uC544\uC6C3 \uC7A0\uAE08", "\uB3D9\uC2DC \uD3B8\uC9D1 \uCDA9\uB3CC \uBC29\uC9C0", "\uD3B8\uC9D1\uAD8C \uC810\uC720"],
32532
+ en: ["edit lock", "document checkout lock", "pessimistic edit lock", "editing lease"]
32533
+ },
32534
+ text: {
32535
+ ko: {
32536
+ definition: "\uC2E4\uC2DC\uAC04 \uB3D9\uC2DC \uD3B8\uC9D1\uC744 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 CMS \uBB38\uC11C\uB098 \uC124\uC815 \uD654\uBA74\uC5D0\uC11C, \uD55C \uC0AC\uC6A9\uC790\uAC00 \uD3B8\uC9D1\uC5D0 \uB4E4\uC5B4\uAC00\uBA74 \uC77C\uC815 \uC720\uC9C0 \uC2DC\uAC04(Lease) \uB3D9\uC548 \uB2E4\uB978 \uC0AC\uC6A9\uC790\uC758 \uB3D9\uC2DC \uC218\uC815\uC744 \uC81C\uD55C\uD558\uAC70\uB098 \uD3B8\uC9D1 \uC911\uC784\uC744 \uC54C\uB824 \uC791\uC5C5 \uC190\uC2E4\uC744 \uB9C9\uB294 \uCCB4\uD06C\uC544\uC6C3 \uC7A0\uAE08 \uD750\uB984\uC785\uB2C8\uB2E4. \uC7A0\uAE08 \uBCF4\uC720\uC790\uAC00 \uC751\uB2F5 \uC5C6\uC774 \uC774\uD0C8\uD574\uB3C4 \uC601\uAD6C \uC7A0\uAE30\uC9C0 \uC54A\uB3C4\uB85D \uC790\uB3D9 \uB9CC\uB8CC(Heartbeat/TTL)\uC640 \uAD00\uB9AC\uC790 \uAC15\uC81C \uD574\uC81C \uACBD\uB85C\uB97C \uD568\uAED8 \uB461\uB2C8\uB2E4.",
32537
+ example: '\uD3B8\uC9D1\uC790 A\uAC00 \uACF5\uC9C0 \uBB38\uC11C\uB97C \uC218\uC815\uD558\uB294 \uB3D9\uC548 \uB2E4\uB978 \uD3B8\uC9D1\uC790\uC5D0\uAC8C "\uD604\uC7AC A\uB2D8\uC774 \uD3B8\uC9D1 \uC911\uC785\uB2C8\uB2E4(3\uBD84 \uD6C4 \uC790\uB3D9 \uD574\uC81C)" \uBC30\uB108\uB97C \uB744\uC6B0\uACE0 \uC77D\uAE30 \uC804\uC6A9 \uBCF4\uAE30\uB85C \uC804\uD658\uD558\uBA70, \uD544\uC694\uD55C \uACBD\uC6B0 \uC7A0\uAE08 \uC778\uACC4 \uC694\uCCAD\uC744 \uBCF4\uB0BC \uC218 \uC788\uC2B5\uB2C8\uB2E4.',
32538
+ promptSnippet: "\uBE44\uC2E4\uC2DC\uAC04 \uBB38\uC11C\xB7\uC124\uC815 \uD3B8\uC9D1\uC5D0 \uD3B8\uC9D1 \uC7A0\uAE08\uC744 \uC801\uC6A9\uD560 \uB54C\uB294 \uD558\uD2B8\uBE44\uD2B8 \uAE30\uBC18 \uB9CC\uB8CC \uC2DC\uAC04(TTL), \uD0C0 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC77D\uAE30 \uC804\uC6A9 \uC804\uD658\uACFC \uD604\uC7AC \uD3B8\uC9D1\uC790 \uC548\uB0B4 \uBC30\uB108, \uAD00\uB9AC\uC790 \uAC15\uC81C \uD574\uC81C \uB610\uB294 \uC7A0\uAE08 \uC778\uACC4 \uBC0F \uC800\uC7A5 \uC2DC \uBC84\uC804 \uAC80\uC99D\uC744 \uD568\uAED8 \uC124\uACC4\uD558\uC138\uC694."
32539
+ },
32540
+ en: {
32541
+ definition: "A document checkout workflow used when simultaneous real-time editing is not supported, granting a time-bounded editing lease to one user while alerting others and preventing silent overwrites. Heartbeat TTL expiry and admin override prevent stale locks if someone closes their tab.",
32542
+ example: "While Editor A holds the lease on a draft article, other teammates see a read-only view banner naming the active editor and can request lock handoff if urgent.",
32543
+ promptSnippet: "Implement collaborative edit locks with a short heartbeat-renewed TTL, clear active-holder banners for read-only viewers, controlled lock takeover or expiry, and version checks on save."
32544
+ }
32545
+ }
32546
+ },
32547
+ "embargo-publishing": {
32548
+ aliases: {
32549
+ ko: ["\uBCF4\uB3C4 \uC720\uC608 \uBC1C\uD589", "\uC9C0\uC815 \uC2DC\uAC01 \uACF5\uAC1C \uC81C\uD55C", "\uC5E0\uBC14\uACE0 \uC124\uC815", "\uC608\uC57D \uACF5\uAC1C \uC7A0\uAE08"],
32550
+ en: ["embargoed release", "embargo timestamp", "scheduled embargo", "pre-release hold"]
32551
+ },
32552
+ text: {
32553
+ ko: {
32554
+ definition: "\uBCF4\uB3C4\uC790\uB8CC, \uC131\uC801 \uBC1C\uD45C, \uC2E0\uC81C\uD488 \uACF5\uC9C0\uCC98\uB7FC \uC815\uD574\uC9C4 \uC2DC\uAC01(Embargo) \uC774\uC804\uC5D0\uB294 \uC678\uBD80\uC5D0 \uC808\uB300 \uACF5\uAC1C\uB418\uAC70\uB098 \uAC80\uC0C9\xB7\uD53C\uB4DC\xB7CDN\uC5D0 \uC720\uCD9C\uB418\uC5B4\uC11C\uB294 \uC548 \uB418\uB294 \uCF58\uD150\uCE20\uB97C \uC0AC\uC804\uC5D0 \uC791\uC131\xB7\uAC80\uC218\uD574 \uB450\uACE0, \uC9C0\uC815 \uC2DC\uAC01\uC774 \uB41C \uD6C4\uC5D0\uB9CC \uACF5\uAC1C \uC0C1\uD0DC\uB85C \uC804\uD658\uD558\uB294 \uBC1C\uD589 \uD1B5\uC81C \uC6CC\uD06C\uD50C\uB85C\uC785\uB2C8\uB2E4.",
32555
+ example: "\uC2E0\uADDC \uC694\uAE08\uC81C \uBC1C\uD45C \uAE00\uC5D0 \uC5E0\uBC14\uACE0 \uC77C\uC2DC\uC640 \uD0C0\uC784\uC874\uC744 \uC124\uC815\uD558\uBA74 \uACF5\uAC1C \uC804\uAE4C\uC9C0 \uC0AC\uC774\uD2B8\uB9F5, RSS, \uC678\uBD80 \uCE90\uC2DC, \uAC80\uC0C9 API\uC5D0\uC11C \uC644\uC804\uD788 \uC81C\uC678\uB418\uACE0 \uC2B9\uC778\uB41C \uBBF8\uB9AC\uBCF4\uAE30 \uD1A0\uD070\uC73C\uB85C\uB9CC \uB0B4\uBD80 \uAC80\uC218\uB97C \uC9C4\uD589\uD569\uB2C8\uB2E4.",
32556
+ promptSnippet: "\uC5E0\uBC14\uACE0 \uC608\uC57D \uBC1C\uD589 \uD750\uB984\uC5D0\uC11C\uB294 \uD0C0\uC784\uC874\uC774 \uBA85\uC2DC\uB41C \uACF5\uAC1C \uC77C\uC2DC, \uACF5\uAC1C \uC804 \uBAA9\uB85D\xB7\uAC80\uC0C9\xB7RSS\xB7CDN \uCE90\uC2DC \uC720\uCD9C \uCC28\uB2E8, \uC778\uC99D\uB41C \uB0B4\uBD80 \uBBF8\uB9AC\uBCF4\uAE30 \uBD84\uB9AC, \uADF8\uB9AC\uACE0 \uC608\uC57D \uC2DC\uAC01 \uB3C4\uB798 \uC2DC \uC6D0\uC790\uC801 \uC0C1\uD0DC \uC804\uD658\uACFC \uCDE8\uC18C \uACBD\uB85C\uB97C \uC124\uACC4\uD558\uC138\uC694."
32557
+ },
32558
+ en: {
32559
+ definition: "A publishing control that lets teams author, review, and stage sensitive announcements or releases while strictly blocking public URLs, search indexes, feeds, and edge caches until an explicit timezone-aware embargo timestamp arrives.",
32560
+ example: "A press release stays excluded from public sitemaps, search APIs, and CDN caches until its scheduled UTC timestamp, accessible beforehand only via gated reviewer links.",
32561
+ promptSnippet: "Implement embargoed publishing with timezone-explicit release timestamps, strict exclusion from public feeds, search, and shared caches before release, gated internal previews, and atomic publish transitions."
32562
+ }
32563
+ }
32564
+ }
32565
+ };
32566
+
32567
+ // ../../packages/catalog/src/glossary/customer-support.ts
32568
+ var CUSTOMER_SUPPORT_GLOSSARY_DATA = {
32569
+ "service-level-agreement": {
32570
+ aliases: {
32571
+ ko: ["SLA", "\uC751\uB300 \uBAA9\uD45C \uC2DC\uAC04", "\uCC98\uB9AC \uAE30\uD55C \uC57D\uC18D", "\uC9C0\uC6D0 \uD2F0\uCF13 \uB9C8\uAC10 \uAE30\uD55C", "SLA \uD0C0\uC774\uBA38"],
32572
+ en: ["SLA", "response time target", "resolution target", "support SLA timer"]
32573
+ },
32574
+ text: {
32575
+ ko: {
32576
+ definition: "\uACE0\uAC1D\uC9C0\uC6D0\xB7\uC6B4\uC601 \uC870\uC9C1\uC774 \uBB38\uC758\uB098 \uC7A5\uC560\uC5D0 \uCCAB \uC751\uB2F5\xB7\uD574\uACB0\uC744 \uC644\uB8CC\uD558\uAE30\uB85C \uC57D\uC18D\uD55C \uBAA9\uD45C \uC2DC\uAC04\uACFC \uC601\uC5C5\uC2DC\uAC04 \uACC4\uC0B0\xB7\uC784\uBC15 \uACBD\uACE0\xB7\uC5D0\uC2A4\uCEEC\uB808\uC774\uC158 \uAE30\uC900\uC785\uB2C8\uB2E4.",
32577
+ example: "\uAE34\uAE09 \uBB38\uC758\uB294 \uCCAB \uC751\uB2F5 1\uC2DC\uAC04 \uC774\uB0B4 SLA\uB97C \uC801\uC6A9\uD558\uACE0, \uACE0\uAC1D \uB2F5\uBCC0\uC744 \uAE30\uB2E4\uB9AC\uB294 \uB3D9\uC548\uC5D0\uB294 \uD0C0\uC774\uBA38\uB97C \uC77C\uC2DC\uC815\uC9C0\uD558\uBA70, \uB9C8\uAC10 15\uBD84 \uC804\uC5D0\uB294 \uB2F4\uB2F9 \uD300\uC5D0 \uACBD\uACE0\uB97C \uBCF4\uB0C5\uB2C8\uB2E4.",
32578
+ promptSnippet: "\uBB38\uC758 \uD050\uB098 \uC6B4\uC601 \uC6CC\uD06C\uD50C\uB85C\uC5D0 \uC11C\uBE44\uC2A4 \uC218\uC900 \uD611\uC57D(SLA) \uAE30\uC900\uC744 \uBC18\uC601\uD560 \uB54C \uC6B0\uC120\uC21C\uC704\uBCC4 \uBAA9\uD45C \uC2DC\uAC04, \uC601\uC5C5\uC2DC\uAC04 \uAE30\uC900 \uD0C0\uC774\uBA38, \uACE0\uAC1D \uB300\uAE30 \uC911 \uC77C\uC2DC\uC815\uC9C0 \uC870\uAC74, \uC784\uBC15\xB7\uCD08\uACFC \uC2DC \uC5D0\uC2A4\uCEEC\uB808\uC774\uC158 \uADDC\uCE59\uC744 \uBA85\uD655\uD788 \uBD84\uB9AC\uD574 \uC124\uACC4\uD574 \uC918."
32579
+ },
32580
+ en: {
32581
+ definition: "A formal commitment defining target first-response and resolution times for support or operations, including business-hour calendars, pause states, and escalation rules.",
32582
+ example: "Apply a 1-hour first-response SLA to urgent tickets, pause the clock while waiting on customer reply, and flag approaching breaches before timeout.",
32583
+ promptSnippet: "Model Service-Level Agreement (SLA) tracking with priority-based target durations, business-hours calculation, explicit pause states (e.g., waiting on customer), and breach escalation alerts."
32584
+ }
32585
+ }
32586
+ },
32587
+ "voice-of-customer": {
32588
+ aliases: {
32589
+ ko: ["VOC", "\uACE0\uAC1D\uC758 \uC18C\uB9AC", "\uACE0\uAC1D \uD53C\uB4DC\uBC31", "\uACE0\uAC1D \uC758\uACAC", "\uACE0\uAC1D \uAC74\uC758"],
32590
+ en: ["VOC", "Voice of Customer", "customer feedback", "customer voice", "customer insights"]
32591
+ },
32592
+ text: {
32593
+ ko: {
32594
+ definition: "\uACE0\uAC1D \uBB38\uC758\xB7\uBD88\uD3B8 \uC0AC\uD56D\xB7\uAC1C\uC120 \uC81C\uC548\uC744 \uCCB4\uACC4\uC801\uC73C\uB85C \uC218\uC9D1\uD574 \uBD84\uB958\xB7\uBD84\uC11D\uD558\uACE0 \uC81C\uD488 \uAC1C\uC120\uC758 \uC785\uB825 \uC790\uB8CC\uB85C \uD65C\uC6A9\uD558\uB294 \uD750\uB984\uC785\uB2C8\uB2E4. \uAC1C\uBCC4 \uC694\uCCAD\uC744 \uACE7\uBC14\uB85C \uD655\uC815\uB41C \uAC1C\uBC1C \uC694\uAD6C\uC0AC\uD56D\uC73C\uB85C \uAC04\uC8FC\uD558\uC9C0\uB294 \uC54A\uC2B5\uB2C8\uB2E4.",
32595
+ example: "\uACE0\uAC1D\uC9C0\uC6D0 \uD2F0\uCF13, \uC571 \uB0B4 \uD53C\uB4DC\uBC31, \uC124\uBB38 \uCF54\uBA58\uD2B8\uC5D0\uC11C \uC218\uC9D1\uD55C \uC758\uACAC\uC744 \uC720\uD615\uACFC \uC601\uD5A5\uB3C4\uBCC4\uB85C \uBB36\uC5B4 \uC6B0\uC120\uC21C\uC704\uB97C \uAC80\uD1A0\uD558\uB418, \uC2E4\uC81C \uC2A4\uD399 \uBC18\uC601 \uC5EC\uBD80\uB294 \uBCC4\uB3C4 \uAC80\uC99D\uC744 \uAC70\uCCD0 \uACB0\uC815\uD569\uB2C8\uB2E4.",
32596
+ promptSnippet: "\uACE0\uAC1D\uC758 \uC18C\uB9AC(VOC) \uC218\uC9D1\xB7\uBD84\uB958 \uAE30\uB2A5\uC744 \uC124\uACC4\uD560 \uB54C \uC720\uC785 \uCD9C\uCC98, \uCE74\uD14C\uACE0\uB9AC\xB7\uC720\uD615, \uC601\uD5A5\uB3C4, \uCC98\uB9AC \uC774\uB825\uC744 \uD568\uAED8 \uAE30\uB85D\uD558\uACE0 \uAC1C\uC778\uC815\uBCF4(PII)\uB294 \uCD5C\uC18C\uD654\xB7\uB9C8\uC2A4\uD0B9\uD558\uBA70 \uAC1C\uBCC4 \uC694\uCCAD\uC744 \uD655\uC815 \uC694\uAD6C\uC0AC\uD56D\uACFC \uBD84\uB9AC\uD574 \uAD00\uB9AC\uD574 \uC918."
32597
+ },
32598
+ en: {
32599
+ definition: "A structured workflow for collecting, categorizing, and analyzing customer inquiries, pain points, and suggestions as product improvement input, without treating individual requests as confirmed requirements.",
32600
+ example: "Aggregate support tickets, in-app feedback, and survey comments by theme and impact to inform roadmap discussions while keeping formal requirement sign-off separate.",
32601
+ promptSnippet: "Design Voice of Customer (VOC) intake and triage to capture source, category/type, impact, and handling history, minimize or mask PII, and keep raw customer requests separate from confirmed specs."
32602
+ }
32603
+ }
32604
+ },
32605
+ "customer-satisfaction-score": {
32606
+ aliases: {
32607
+ ko: ["CSAT", "\uACE0\uAC1D \uB9CC\uC871\uB3C4 \uC870\uC0AC", "\uC0C1\uB2F4 \uB9CC\uC871\uB3C4 \uD3C9\uAC00", "\uBCC4\uC810 \uB9CC\uC871\uB3C4"],
32608
+ en: ["CSAT", "customer satisfaction survey", "support rating", "post-resolution rating"]
32609
+ },
32610
+ text: {
32611
+ ko: {
32612
+ definition: "\uC0C1\uB2F4 \uC885\uB8CC\uB098 \uD2B9\uC815 \uAE30\uB2A5 \uC774\uC6A9 \uC9C1\uD6C4 \uACE0\uAC1D\uC774 \uACBD\uD5D8\uC5D0 \uC5BC\uB9C8\uB098 \uB9CC\uC871\uD588\uB294\uC9C0 5\uC810 \uCC99\uB3C4\uB098 \uC88B\uC544\uC694\xB7\uC544\uC26C\uC6CC\uC694 \uB4F1\uC73C\uB85C \uCE21\uC815\uD558\uB294 \uB2E8\uAE30 \uACBD\uD5D8 \uC9C0\uD45C\uC785\uB2C8\uB2E4. \uC7A5\uAE30 \uCDA9\uC131\uB3C4\xB7\uCD94\uCC9C \uC758\uD5A5\uC744 \uBB3B\uB294 \uC21C\uCD94\uCC9C\uC9C0\uC218(NPS)\uC640 \uBAA9\uC801\uC774 \uB2E4\uB974\uBA70, \uC751\uB2F5 \uC218\uC815 \uAC00\uB2A5 \uAE30\uD55C\uACFC \uC800\uC810 \uC751\uB2F5 \uD6C4\uC18D \uAC80\uD1A0 \uD750\uB984\uC744 \uD568\uAED8 \uC815\uD569\uB2C8\uB2E4.",
32613
+ example: "\uBB38\uC758\uAC00 \uD574\uACB0 \uC0C1\uD0DC\uB85C \uBC14\uB010 \uB4A4 7\uC77C\uAC04 \uC720\uD6A8\uD55C 1~5\uC810 CSAT \uD3C9\uAC00 \uB9C1\uD06C\uB97C \uB744\uC6B0\uACE0, 1~2\uC810 \uC751\uB2F5\uC740 \uC0AC\uC720 \uD0DC\uADF8 \uC785\uB825\uC744 \uBC1B\uC544 \uD488\uC9C8 \uAC80\uD1A0 \uB300\uAE30\uC5F4\uB85C \uC5F0\uACB0\uD569\uB2C8\uB2E4.",
32614
+ promptSnippet: "\uACE0\uAC1D \uB9CC\uC871\uB3C4(CSAT) \uC218\uC9D1 \uD654\uBA74\uACFC \uC9D1\uACC4 \uB85C\uC9C1\uC744 \uC124\uACC4\uD560 \uB54C \uD574\uACB0 \uC9C1\uD6C4 \uBC1C\uC1A1 \uC2DC\uC810, \uC751\uB2F5 \uB9CC\uB8CC\xB7\uC218\uC815 \uD5C8\uC6A9 \uAE30\uD55C, \uBD88\uB9CC\uC871 \uC0AC\uC720 \uD0DC\uADF8 \uC120\uD0DD, \uC800\uC810 \uD2F0\uCF13 \uD488\uC9C8 \uAC80\uD1A0 \uC5F0\uACB0, \uADF8\uB9AC\uACE0 NPS\uC640\uC758 \uC9C0\uD45C \uAD6C\uBD84\uC744 \uBA85\uD655\uD788 \uD558\uC138\uC694."
32615
+ },
32616
+ en: {
32617
+ definition: "A transactional metric measuring how satisfied a customer was with a specific support interaction or touchpoint, usually via a 1\u20135 scale or thumbs rating immediately after resolution. Unlike NPS, which tracks overall brand loyalty, CSAT evaluates discrete experiences.",
32618
+ example: "After marking a ticket resolved, send a 7-day CSAT survey and route 1\u20132 star responses with reason tags into a supervisor quality-review queue.",
32619
+ promptSnippet: "Design CSAT collection with explicit response and edit deadlines, structured dissatisfaction reason tags, low-score quality review escalation, and clear separation from NPS reporting."
32620
+ }
32621
+ }
32622
+ },
32623
+ "ticket-deflection": {
32624
+ aliases: {
32625
+ ko: ["\uBB38\uC758 \uBC29\uC5B4", "\uC140\uD504 \uC11C\uBE44\uC2A4 \uD574\uACB0 \uC720\uB3C4", "FAQ \uC0C1\uB2F4 \uC804\uD658", "\uBB38\uC758 \uC811\uC218 \uC804 \uD574\uACB0"],
32626
+ en: ["self-service deflection", "case deflection", "FAQ deflection", "pre-submit help"]
32627
+ },
32628
+ text: {
32629
+ ko: {
32630
+ definition: "\uC0AC\uC6A9\uC790\uAC00 \uBB38\uC758 \uC591\uC2DD\uC744 \uC791\uC131\uD558\uAC70\uB098 \uC81C\uBAA9\uC744 \uC785\uB825\uD558\uB294 \uB3C4\uC911\uC5D0 \uAD00\uB828 \uB3C4\uC6C0\uB9D0(FAQ)\uACFC \uC790\uAC00 \uD574\uACB0 \uC808\uCC28\uB97C \uC2E4\uC2DC\uAC04\uC73C\uB85C \uC81C\uC548\uD574 \uBD88\uD544\uC694\uD55C \uD2F0\uCF13 \uC811\uC218\uB97C \uC904\uC774\uACE0 \uC989\uC2DC \uBB38\uC81C\uB97C \uD574\uACB0\uD558\uAC8C \uB3D5\uB294 \uACE0\uAC1D\uC9C0\uC6D0 \uD750\uB984\uC785\uB2C8\uB2E4. \uC5B5\uC9C0\uB85C \uC0C1\uB2F4 \uACBD\uB85C\uB97C \uC228\uAE30\uBA74 \uC624\uD788\uB824 \uBD88\uB9CC\uC774 \uCEE4\uC9C0\uBBC0\uB85C \uD574\uACB0\uB418\uC9C0 \uC54A\uC558\uC744 \uB54C \uC791\uC131 \uC911\uC778 \uB0B4\uC6A9\uC744 \uC720\uC9C0\uD55C \uCC44 \uBC14\uB85C \uC0C1\uB2F4\uC73C\uB85C \uC774\uC5B4\uC838\uC57C \uD569\uB2C8\uB2E4.",
32631
+ example: '\uBB38\uC758 \uC81C\uBAA9\uC5D0 "\uC601\uC218\uC99D \uC7AC\uBC1C\uAE09"\uC744 \uC785\uB825\uD558\uBA74 \uAD00\uB828 \uAC00\uC774\uB4DC 3\uAC74\uC744 \uC778\uB77C\uC778\uC73C\uB85C \uD3BC\uCCD0 \uBCF4\uC5EC \uC8FC\uACE0, [\uD574\uACB0\uB428]\uC744 \uB204\uB974\uBA74 \uC774\uD0C8\uC744 \uAE30\uB85D\uD558\uBA70 [\uC5EC\uC804\uD788 \uBB38\uC758\uD558\uAE30]\uB97C \uB204\uB974\uBA74 \uC785\uB825\uD55C \uC81C\uBAA9\xB7\uBCF8\uBB38\uC744 \uADF8\uB300\uB85C \uD2F0\uCF13\uC73C\uB85C \uB118\uAE41\uB2C8\uB2E4.',
32632
+ promptSnippet: "\uBB38\uC758 \uC790\uC728 \uD574\uACB0 \uC720\uB3C4(Ticket Deflection) UI\uB294 \uB3C4\uC6C0\uB9D0 \uCD94\uCC9C\uC73C\uB85C \uBA3C\uC800 \uBB38\uC81C\uB97C \uD480\uB418 [\uB3C4\uC6C0\uC774 \uB418\uC5C8\uB098\uC694 / \uACC4\uC18D \uBB38\uC758\uD558\uAE30] \uACBD\uB85C\uB97C \uC228\uAE30\uC9C0 \uB9D0\uACE0, \uC0C1\uB2F4 \uC804\uD658 \uC2DC \uC0AC\uC6A9\uC790\uAC00 \uC774\uBBF8 \uC785\uB825\uD55C \uC81C\uBAA9\xB7\uCCA8\uBD80\xB7\uBCF8\uBB38 \uB0B4\uC6A9\uC744 \uC720\uC9C0\uD558\uC138\uC694."
32633
+ },
32634
+ en: {
32635
+ definition: "A support flow that surfaces relevant help articles or troubleshooting steps while a user composes an inquiry, resolving common issues immediately before a ticket is filed. Good deflection never hides the human contact path and preserves entered text if the user still submits.",
32636
+ example: 'Typing "invoice receipt" in the support form expands matching FAQ answers inline, recording deflection if solved or carrying draft text into ticket submission if unresolved.',
32637
+ promptSnippet: 'Implement ticket deflection with inline searchable help suggestions, honest "This solved my issue" vs. "Still need help" controls, and draft-preserving fallback to live ticket submission.'
32638
+ }
32639
+ }
32640
+ },
32641
+ "canned-response": {
32642
+ aliases: {
32643
+ ko: ["\uB9E4\uD06C\uB85C \uB2F5\uBCC0", "\uC751\uB300 \uD15C\uD50C\uB9BF", "\uC0C1\uC6A9\uAD6C \uB2F5\uBCC0", "\uBCC0\uC218 \uCE58\uD658 \uB9E4\uD06C\uB85C"],
32644
+ en: ["macro reply", "response template", "saved reply", "support macro"]
32645
+ },
32646
+ text: {
32647
+ ko: {
32648
+ definition: "\uC790\uC8FC \uBC18\uBCF5\uB418\uB294 \uACE0\uAC1D \uBB38\uC758\uC5D0 \uBE60\uB974\uACE0 \uC77C\uAD00\uB418\uAC8C \uB2F5\uD558\uAE30 \uC704\uD574 \uC0C1\uB2F4\uC0AC\uAC00 \uBD88\uB7EC\uC640 \uC4F0\uB294 \uD45C\uC900 \uB2F5\uBCC0 \uD15C\uD50C\uB9BF\uACFC \uBCC0\uC218 \uCE58\uD658 \uCCB4\uACC4\uC785\uB2C8\uB2E4. \uACE0\uAC1D \uC774\uB984, \uC8FC\uBB38\uBC88\uD638 \uAC19\uC740 \uB3D9\uC801 \uBCC0\uC218\uAC00 \uBE44\uC5B4 \uC788\uAC70\uB098 \uCE58\uD658\uC5D0 \uC2E4\uD328\uD55C \uCC44\uB85C \uADF8\uB300\uB85C \uBC1C\uC1A1\uB418\uC9C0 \uC54A\uB3C4\uB85D \uC804\uC1A1 \uC804 \uAC80\uC99D\uC744 \uAC70\uCCD0\uC57C \uD569\uB2C8\uB2E4.",
32649
+ example: "\uC0C1\uB2F4\uC0AC\uAC00 \uB2F5\uBCC0\uCC3D\uC5D0 `/\uD658\uBD88` \uB9E4\uD06C\uB85C\uB97C \uC0BD\uC785\uD558\uBA74 `{{customer_name}}`\uACFC `{{order_id}}`\uAC00 \uC790\uB3D9 \uCE58\uD658\uB418\uACE0, \uC544\uC9C1 \uCC44\uC6CC\uC9C0\uC9C0 \uC54A\uC740 `{{refund_reason}}` \uD50C\uB808\uC774\uC2A4\uD640\uB354\uAC00 \uC788\uC73C\uBA74 \uC804\uC1A1 \uBC84\uD2BC\uC744 \uB9C9\uACE0 \uAC15\uC870 \uD45C\uC2DC\uD569\uB2C8\uB2E4.",
32650
+ promptSnippet: "\uC0C1\uB2F4 \uB9E4\uD06C\uB85C \uB2F5\uBCC0(Canned Response) \uAE30\uB2A5\uC5D0\uC11C\uB294 \uB2E8\uCD95\uD0A4/\uC2AC\uB798\uC2DC \uD638\uCD9C, \uBCC0\uC218 \uC790\uB3D9 \uCE58\uD658\uACFC \uB204\uB77D \uC2DC \uAE30\uBCF8\uAC12 \uB610\uB294 \uC218\uB3D9 \uC785\uB825 \uAC15\uC870, \uADF8\uB9AC\uACE0 \uBBF8\uCE58\uD658 `{{...}}` \uD1A0\uD070\uC774 \uB0A8\uC740 \uC0C1\uD0DC\uC758 \uBC1C\uC1A1 \uCC28\uB2E8\uC744 \uAD6C\uD604\uD558\uC138\uC694."
32651
+ },
32652
+ en: {
32653
+ definition: "Pre-authored reply templates with dynamic variable placeholders that agents insert to answer common inquiries accurately and consistently. Before sending, unresolved or missing variables must be flagged so raw placeholder tokens never reach customers.",
32654
+ example: "Inserting a `/refund` macro populates customer name and order ID automatically while highlighting any blank manual field and blocking send until resolved.",
32655
+ promptSnippet: "Build canned response macros with fast slash/palette insertion, safe variable substitution with fallback defaults, and pre-send validation that prevents sending unresolved placeholder tokens."
32656
+ }
32657
+ }
32658
+ },
32659
+ "ticket-merging": {
32660
+ aliases: {
32661
+ ko: ["\uD2F0\uCF13 \uBCD1\uD569", "\uC911\uBCF5 \uD2F0\uCF13 \uD569\uCE58\uAE30", "\uB3D9\uC77C \uBB38\uC758 \uD1B5\uD569", "\uBB38\uC758 \uAC74 \uBCD1\uD569"],
32662
+ en: ["merge tickets", "duplicate ticket merge", "ticket consolidation", "combine support cases"]
32663
+ },
32664
+ text: {
32665
+ ko: {
32666
+ definition: "\uAC19\uC740 \uACE0\uAC1D\uC774 \uB3D9\uC77C\uD55C \uBB38\uC81C\uB85C \uC5EC\uB7EC \uCC44\uB110\uC774\uB098 \uC911\uBCF5 \uC811\uC218\uB85C \uB0A8\uAE34 \uD2F0\uCF13\uB4E4\uC744 \uD558\uB098\uC758 \uB300\uD45C(Primary) \uD2F0\uCF13\uC73C\uB85C \uD569\uCCD0 \uB300\uD654 \uC774\uB825\uACFC \uB2F4\uB2F9\uC790 \uBC30\uC815\uC744 \uC77C\uC6D0\uD654\uD558\uB294 \uC0C1\uB2F4 \uC6B4\uC601 \uCC98\uB9AC\uC785\uB2C8\uB2E4. \uBCD1\uD569 \uC2DC \uC5B4\uB290 \uD2F0\uCF13\uC758 SLA \uAE30\uC900\xB7\uD0DC\uADF8\xB7\uCCA8\uBD80\uD30C\uC77C\uC744 \uC720\uC9C0\uD558\uACE0 \uB2EB\uD788\uB294 \uD2F0\uCF13\uC758 \uC694\uCCAD\uC790\uC5D0\uAC8C \uC5B4\uB5BB\uAC8C \uC548\uB0B4\uD560\uC9C0 \uADDC\uCE59\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.",
32667
+ example: "\uB3D9\uC77C \uC8FC\uBB38\uC5D0 \uB300\uD574 \uC774\uBA54\uC77C\uACFC \uCC57\uC73C\uB85C \uC911\uBCF5 \uC811\uC218\uB41C 2\uAC74 \uC911 \uBA3C\uC800 \uC0DD\uC131\uB41C \uD2F0\uCF13\uC744 \uB300\uD45C \uD2F0\uCF13\uC73C\uB85C \uACE0\uB974\uACE0, \uBCF4\uC870 \uD2F0\uCF13\uC758 \uB300\uD654\xB7\uCCA8\uBD80\uB97C \uD569\uCE5C \uB4A4 \uBCF4\uC870 \uD2F0\uCF13\uC740 \uBCD1\uD569\uB428 \uC0C1\uD0DC\uB85C \uB2EB\uC544 \uC911\uBCF5 \uC751\uB300\uB97C \uB9C9\uC2B5\uB2C8\uB2E4.",
32668
+ promptSnippet: "\uC911\uBCF5 \uBB38\uC758 \uBCD1\uD569 \uAE30\uB2A5\uC5D0\uB294 \uB300\uD45C \uD2F0\uCF13\uACFC \uB2EB\uD790 \uBCF4\uC870 \uD2F0\uCF13\uC744 \uBA85\uD655\uD788 \uB300\uBE44\uD574 \uBCF4\uC5EC \uC8FC\uB294 \uD655\uC778 \uB2E8\uACC4, \uBA54\uC2DC\uC9C0\xB7\uCCA8\uBD80\xB7\uCC38\uC870\uC790 \uC774\uAD00 \uADDC\uCE59, \uB3D9\uC77C \uC694\uCCAD\uC790 \uAC80\uC99D, SLA \uAE30\uC900 \uC720\uC9C0 \uBC0F \uAC10\uC0AC \uC774\uB825 \uAE30\uB85D\uC744 \uD3EC\uD568\uD558\uC138\uC694."
32669
+ },
32670
+ en: {
32671
+ definition: "Consolidating multiple tickets submitted by the same customer about the same issue into a single primary ticket so conversation history, ownership, and SLA tracking stay unified.",
32672
+ example: "Merge a duplicate chat follow-up into the original email ticket, copying messages and attachments onto the primary thread and closing the secondary ticket with a merge reference.",
32673
+ promptSnippet: "Implement ticket merging with a clear confirmation preview comparing primary versus secondary tickets, explicit rules for transferring messages, watchers, and SLA timers, and an immutable merge audit trail."
32674
+ }
32675
+ }
32676
+ },
32677
+ "priority-escalation": {
32678
+ aliases: {
32679
+ ko: ["\uC6B0\uC120\uC21C\uC704 \uC0C1\uD5A5", "\uD2F0\uCF13 \uC5D0\uC2A4\uCEEC\uB808\uC774\uC158", "\uC0C1\uC704 \uB2F4\uB2F9 \uC774\uAD00", "\uAE34\uAE09\uB3C4 \uACA9\uC0C1"],
32680
+ en: ["ticket escalation", "severity escalation", "tier handoff", "SLA escalation"]
32681
+ },
32682
+ text: {
32683
+ ko: {
32684
+ definition: "\uBB38\uC758\uC758 \uC601\uD5A5\uB3C4, \uACE0\uAC1D \uB4F1\uAE09, \uC751\uB2F5 \uC9C0\uC5F0 \uC784\uBC15 \uC5EC\uBD80\uC5D0 \uB530\uB77C \uD2F0\uCF13 \uC6B0\uC120\uC21C\uC704\uB97C \uB192\uC774\uAC70\uB098 1\uCC28 \uC0C1\uB2F4\uC5D0\uC11C \uC804\uBB38 \uC5D4\uC9C0\uB2C8\uC5B4\xB7\uAD00\uB9AC\uC790 \uADF8\uB8F9(Tier 2/3)\uC73C\uB85C \uC778\uC218\uC778\uACC4\uD558\uB294 \uC6B4\uC601 \uADDC\uCE59\uC785\uB2C8\uB2E4. \uC5D0\uC2A4\uCEEC\uB808\uC774\uC158 \uC2DC \uAE30\uC874 \uB300\uD654 \uB9E5\uB77D, \uC7AC\uD604 \uC815\uBCF4, \uBCC0\uACBD \uC0AC\uC720\uAC00 \uD568\uAED8 \uC804\uB2EC\uB418\uC5B4\uC57C \uACE0\uAC1D\uC5D0\uAC8C \uAC19\uC740 \uC124\uBA85\uC744 \uBC18\uBCF5 \uC694\uAD6C\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
32685
+ example: "\uACB0\uC81C \uC7A5\uC560 \uD2F0\uCF13\uC758 \uBAA9\uD45C \uD574\uACB0 \uC2DC\uAC01\uC774 30\uBD84 \uB0A8\uC558\uC744 \uB54C \uC6B0\uC120\uC21C\uC704\uB97C \uB192\uC74C\uC5D0\uC11C \uAE34\uAE09\uC73C\uB85C \uC790\uB3D9 \uACA9\uC0C1\uD558\uACE0, \uC0AC\uC720\uC640 \uB0B4\uBD80 \uB178\uD2B8\uB97C \uBB36\uC5B4 \uACB0\uC81C \uC6B4\uC601 \uD300 \uD050\uB85C \uC774\uAD00\uD569\uB2C8\uB2E4.",
32686
+ promptSnippet: "\uC6B0\uC120\uC21C\uC704 \uC5D0\uC2A4\uCEEC\uB808\uC774\uC158 \uD750\uB984\uC5D0\uB294 \uC218\uB3D9 \uC774\uAD00 \uC0AC\uC720\xB7\uB0B4\uBD80 \uC778\uC218\uC778\uACC4 \uB178\uD2B8 \uC791\uC131, \uC790\uB3D9 \uACA9\uC0C1 \uC784\uACC4 \uC870\uAC74(\uC784\uBC15\xB7VIP\xB7\uC7AC\uC624\uD508 \uD69F\uC218), \uC911\uBCF5 \uC54C\uB9BC \uC5B5\uC81C, \uADF8\uB9AC\uACE0 \uAD8C\uD55C\uBCC4 \uC6B0\uC120\uC21C\uC704 \uBCC0\uACBD \uC774\uB825 \uAE30\uB85D\uC744 \uD3EC\uD568\uD558\uC138\uC694."
32687
+ },
32688
+ en: {
32689
+ definition: "Raising a ticket\u2019s priority or handing it off from frontline agents to specialized engineering or supervisor tiers when impact, severity, or approaching SLA breaches demand faster or deeper resolution.",
32690
+ example: "When a payment incident approaches its target window, escalate severity to Urgent, notify the on-call payments queue, and attach structured reproduction notes for the receiving tier.",
32691
+ promptSnippet: "Design priority escalation with explicit trigger conditions (approaching breach, repeated reopen, tier handoff), required handoff summaries, clear ownership transfer, and complete escalation history."
32692
+ }
32693
+ }
32694
+ },
32695
+ "first-contact-resolution": {
32696
+ aliases: {
32697
+ ko: ["FCR", "\uCD5C\uCD08 \uC811\uCD09 \uD574\uACB0\uB960", "\uC6D0\uCF5C \uD574\uACB0\uB960", "1\uD68C \uC751\uB300 \uC644\uB8CC\uC728"],
32698
+ en: ["FCR", "first touch resolution", "one-touch resolution", "single-contact resolution"]
32699
+ },
32700
+ text: {
32701
+ ko: {
32702
+ definition: "\uACE0\uAC1D\uC774 \uCC98\uC74C \uBB38\uC758\uB97C \uC811\uC218\uD55C \uB4A4 \uCD94\uAC00 \uC655\uBCF5 \uBB38\uC758\uB098 \uD0C0 \uBD80\uC11C \uC7AC\uC774\uAD00 \uC5C6\uC774 \uCCAB \uBC88\uC9F8 \uC751\uB300\uB9CC\uC73C\uB85C \uBB38\uC81C\uAC00 \uC644\uC804\uD788 \uD574\uACB0\uB41C \uBE44\uC728\uC785\uB2C8\uB2E4. \uB2E8\uC21C \uC885\uB8CC \uCC98\uB9AC\uB9CC \uD558\uACE0 \uACE0\uAC1D\uC774 \uBA70\uCE60 \uB0B4 \uAC19\uC740 \uC0AC\uC720\uB85C \uB2E4\uC2DC \uBB38\uC758\uD558\uAC70\uB098 \uC7AC\uC624\uD508\uD558\uBA74 \uC9C4\uC815\uD55C FCR\uB85C \uC778\uC815\uD558\uC9C0 \uC54A\uB3C4\uB85D \uC7AC\uC624\uD508 \uAE30\uAC04 \uAE30\uC900\uC744 \uD568\uAED8 \uC815\uC758\uD569\uB2C8\uB2E4.",
32703
+ example: "\uC774\uBC88 \uB2EC \uD574\uACB0 \uD2F0\uCF13 1,000\uAC74 \uC911 \uCD94\uAC00 \uD68C\uC2E0\xB7\uC7AC\uC624\uD508 \uC5C6\uC774 7\uC77C \uC720\uC608 \uCC3D\uC744 \uD1B5\uACFC\uD558\uACE0 1\uD68C \uC751\uB300\uB85C \uB05D\uB09C 680\uAC74\uC744 \uC9D1\uACC4\uD574 \uCD08\uB3D9 \uC751\uB300 \uD574\uACB0\uB960 68%\uB85C \uC0B0\uCD9C\uD569\uB2C8\uB2E4.",
32704
+ promptSnippet: "\uCD08\uB3D9 \uC751\uB300 \uD574\uACB0\uB960(FCR) \uC9C0\uD45C\uB97C \uC815\uC758\xB7\uD45C\uC2DC\uD560 \uB54C\uB294 1\uD68C \uC751\uB300\uB85C \uC778\uC815\uD560 \uD574\uACB0 \uAE30\uC900, \uC7AC\uC624\uD508\xB7\uD6C4\uC18D \uBB38\uC758 \uC81C\uC678 \uAD00\uCC30 \uAE30\uAC04(\uC608: 7\uC77C), \uC790\uB3D9 \uC751\uB2F5 \uBD07 \uC548\uB0B4\uB9CC\uC758 \uC885\uB8CC \uC81C\uC678 \uADDC\uCE59\uC744 \uBA3C\uC800 \uBA85\uBB38\uD654\uD558\uC138\uC694."
32705
+ },
32706
+ en: {
32707
+ definition: "The percentage of customer inquiries resolved completely on the first agent interaction without requiring follow-up replies, escalations, or customer callbacks. Accurate FCR excludes auto-closed tickets that reopen within a defined lookback window.",
32708
+ example: "Measure monthly FCR as resolved tickets closed after one agent reply with zero customer reopens or repeat tickets on the same topic during the next 7 days.",
32709
+ promptSnippet: "Define First Contact Resolution (FCR) metrics with explicit rules for qualifying single-reply closures, a reopen lookback exclusion window, and separation of automated acknowledgments from true human resolutions."
32710
+ }
32711
+ }
32712
+ }
32713
+ };
32714
+
32715
+ // ../../packages/catalog/src/glossary/payments-settlement.ts
32716
+ var PAYMENTS_SETTLEMENT_GLOSSARY_DATA = {
32717
+ "know-your-customer": {
32718
+ aliases: {
32719
+ ko: ["KYC", "\uACE0\uAC1D \uC2E0\uC6D0 \uD655\uC778", "\uD310\uB9E4\uC790 \uC785\uC810 \uBCF8\uC778\uC778\uC99D", "\uC2E0\uBD84\uC99D \uC778\uC99D \uB2E8\uACC4", "\uD55C\uB3C4 \uC0C1\uD5A5 \uC2EC\uC0AC"],
32720
+ en: ["KYC", "identity verification", "customer verification", "seller onboarding KYC"]
32721
+ },
32722
+ text: {
32723
+ ko: {
32724
+ definition: "\uAE08\uC735\xB7\uC815\uC0B0\xB7\uB9C8\uCF13\uD50C\uB808\uC774\uC2A4 \uC11C\uBE44\uC2A4\uAC00 \uBC95\uC801 \uADDC\uC81C\uC640 \uBD80\uC815 \uAC70\uB798 \uBC29\uC9C0\uB97C \uC704\uD574 \uC0AC\uC6A9\uC790\uC758 \uC2E4\uBA85\xB7\uC0AC\uC5C5\uC790\xB7\uACC4\uC88C \uC18C\uC720 \uC5EC\uBD80\uB97C \uB2E8\uACC4\uBCC4\uB85C \uAC80\uC99D\uD558\uB294 \uC808\uCC28\uC785\uB2C8\uB2E4.",
32725
+ example: "\uD540\uD14C\uD06C \uC9C0\uAC11\uC774\uB098 \uC624\uD508\uB9C8\uCF13\uC5D0\uC11C \uBBF8\uC778\uC99D \uACC4\uC815\uC740 \uC18C\uC561 \uC870\uD68C\uB9CC \uD5C8\uC6A9\uD558\uACE0, \uC2E0\uBD84\uC99D\xB7\uACC4\uC88C \uC778\uC99D(KYC)\uC744 \uB9C8\uCCD0\uC57C \uCD9C\uAE08\uC774\uB098 \uD310\uB9E4\uC790 \uC815\uC0B0 \uD55C\uB3C4\uB97C \uC5F4\uC5B4 \uC90D\uB2C8\uB2E4.",
32726
+ promptSnippet: "\uACB0\uC81C\xB7\uC815\uC0B0\xB7\uCD9C\uAE08 \uAE30\uB2A5\uC774 \uD3EC\uD568\uB41C \uC11C\uBE44\uC2A4\uC5D0\uC11C\uB294 \uACE0\uAC1D \uD655\uC778 \uC808\uCC28(KYC)\uC758 \uAC80\uC99D \uB2E8\uACC4(\uBBF8\uC81C\uCD9C\xB7\uC2EC\uC0AC \uC911\xB7\uC2B9\uC778\xB7\uBCF4\uB958)\uB97C \uBD84\uB9AC\uD558\uACE0, \uBBF8\uC644\uB8CC \uC0C1\uD0DC\uC758 \uAE30\uB2A5 \uC81C\uD55C\uACFC \uBC18\uB824 \uC0AC\uC720 \uC7AC\uC81C\uCD9C \uD750\uB984\uC744 \uC124\uACC4\uD574 \uC918."
32727
+ },
32728
+ en: {
32729
+ definition: "A regulated verification workflow used by fintech and marketplace platforms to confirm user or merchant identity, business legitimacy, and payout account ownership.",
32730
+ example: "Restrict withdrawals and seller payouts while an account is unverified or pending KYC review, and show clear resubmission guidance if documents are rejected.",
32731
+ promptSnippet: "Structure Know Your Customer (KYC) onboarding with explicit verification states (unverified, under review, approved, rejected), capability limits per tier, and clear resubmission feedback."
32732
+ }
32733
+ }
32734
+ },
32735
+ "escrow-settlement": {
32736
+ aliases: {
32737
+ ko: ["\uC5D0\uC2A4\uD06C\uB85C \uACB0\uC81C \uC815\uC0B0", "\uAD6C\uB9E4 \uD655\uC815 \uD6C4 \uC9C0\uAE09", "\uB300\uAE08 \uBCF4\uAD00 \uC815\uC0B0", "\uC815\uC0B0 \uBCF4\uB958 \uBC0F \uBD84\uC7C1 \uCC98\uB9AC"],
32738
+ en: ["escrow payout", "held funds settlement", "buyer confirmation release", "marketplace escrow"]
32739
+ },
32740
+ text: {
32741
+ ko: {
32742
+ definition: "\uAD6C\uB9E4\uC790\uC640 \uD310\uB9E4\uC790 \uC0AC\uC774 \uAC70\uB798\uC5D0\uC11C \uD50C\uB7AB\uD3FC\uC774 \uACB0\uC81C \uB300\uAE08\uC744 \uC548\uC804\uD558\uAC8C \uBCF4\uAD00\uD558\uACE0 \uC788\uB2E4\uAC00, \uAD6C\uB9E4 \uD655\uC815\xB7\uBC30\uC1A1 \uC644\uB8CC\xB7\uB9C8\uC77C\uC2A4\uD1A4 \uAC80\uC218\uAC00 \uB05D\uB09C \uB4A4 \uC218\uC218\uB8CC\uB97C \uCC28\uAC10\uD574 \uC815\uC0B0\uD574 \uC8FC\uB294 \uD750\uB984\uC785\uB2C8\uB2E4.",
32743
+ example: "\uB9C8\uCF13\uD50C\uB808\uC774\uC2A4\uC5D0\uC11C \uAD6C\uB9E4\uC790\uAC00 \uACB0\uC81C\uD558\uBA74 \uB300\uAE08\uC740 \uC5D0\uC2A4\uD06C\uB85C \uB300\uAE30 \uC0C1\uD0DC\uB85C \uBB36\uC774\uACE0, \uC0C1\uD488 \uC218\uB839 \uD6C4 [\uAD6C\uB9E4 \uD655\uC815]\uC744 \uB204\uB974\uAC70\uB098 \uC790\uB3D9 \uD655\uC815 \uAE30\uAC04\uC774 \uC9C0\uB098\uBA74 \uC218\uC218\uB8CC\uB97C \uC81C\uC678\uD55C \uAE08\uC561\uC774 \uD310\uB9E4\uC790\uC5D0\uAC8C \uC815\uC0B0\uB429\uB2C8\uB2E4.",
32744
+ promptSnippet: "\uB9C8\uCF13\uD50C\uB808\uC774\uC2A4\uB098 \uC678\uC8FC \uAC70\uB798\uC5D0\uB294 \uACB0\uC81C \uB300\uAE08\uC744 \uC989\uC2DC \uCD9C\uAE08\uC2DC\uD0A4\uC9C0 \uC54A\uACE0 \uBCF4\uAD00 \u2192 \uAD6C\uB9E4 \uD655\uC815(\uB610\uB294 \uAE30\uD55C \uB9CC\uB8CC) \u2192 \uC218\uC218\uB8CC \uCC28\uAC10 \uC815\uC0B0 \u2192 \uBD84\uC7C1 \uC2DC \uC9C0\uAE09 \uBCF4\uB958 \uC0C1\uD0DC\uB97C \uAC70\uCE58\uB294 \uC5D0\uC2A4\uD06C\uB85C \uC815\uC0B0 \uD750\uB984\uC744 \uC801\uC6A9\uD574 \uC918."
32745
+ },
32746
+ en: {
32747
+ definition: "A marketplace settlement workflow where the platform holds buyer funds safely until delivery confirmation or milestone sign-off, then releases net payouts after fee deduction.",
32748
+ example: "Hold order funds in escrow at checkout and release the seller payout minus platform fees only after buyer confirmation or auto-confirm expiry, pausing payout if a dispute opens.",
32749
+ promptSnippet: "Model escrow settlement with distinct ledger states\u2014held on payment, frozen during active disputes, and released net of platform fees upon buyer confirmation or milestone approval."
32750
+ }
32751
+ }
32752
+ },
32753
+ proration: {
32754
+ aliases: {
32755
+ ko: ["\uD504\uB85C\uB808\uC774\uC158", "\uC911\uB3C4 \uBCC0\uACBD \uCC28\uC561 \uACC4\uC0B0", "\uB0A8\uC740 \uAE30\uAC04 \uC77C\uD560 \uC815\uC0B0", "\uC694\uAE08\uC81C \uC5C5\uADF8\uB808\uC774\uB4DC \uCC28\uC561"],
32756
+ en: ["pro-rata billing", "prorated charge", "mid-cycle plan adjustment", "seat proration"]
32757
+ },
32758
+ text: {
32759
+ ko: {
32760
+ definition: "\uAD6C\uB3C5 \uACB0\uC81C \uC8FC\uAE30 \uB3C4\uC911\uC5D0 \uC694\uAE08\uC81C\uB97C \uBCC0\uACBD\uD558\uAC70\uB098 \uD300 \uC88C\uC11D \uC218\uB97C \uB298\uB9AC\uACE0 \uC904\uC77C \uB54C, \uB0A8\uC740 \uC0AC\uC6A9 \uC77C\uC218\xB7\uC2DC\uAC04 \uBE44\uC728\uC5D0 \uB9DE\uCDB0 \uCD94\uAC00 \uCCAD\uAD6C\uC561\uC774\uB098 \uD06C\uB808\uB527 \uCC28\uC561\uC744 \uC815\uC0B0\uD558\uB294 \uADDC\uCE59\uC785\uB2C8\uB2E4.",
32761
+ example: "\uC6D4\uAC04 30\uC77C \uC8FC\uAE30 \uC911 15\uC77C\uC774 \uB0A8\uC740 \uC2DC\uC810\uC5D0 \uC88C\uC11D\uC744 1\uAC1C \uCD94\uAC00\uD558\uBA74 \uC804\uCCB4 \uD55C \uB2EC \uC694\uAE08\uC774 \uC544\uB2C8\uB77C \uB0A8\uC740 15\uC77C\uCE58 \uC808\uBC18 \uAE08\uC561\uB9CC \uACC4\uC0B0\uD574 \uCCAD\uAD6C\uC11C\uC5D0 \uBC18\uC601\uD569\uB2C8\uB2E4.",
32762
+ promptSnippet: "\uAD6C\uB3C5 \uD50C\uB79C \uC5C5\uADF8\uB808\uC774\uB4DC\xB7\uB2E4\uC6B4\uADF8\uB808\uC774\uB4DC \uB610\uB294 \uC88C\uC11D \uC99D\uAC10 \uC2DC \uACB0\uC81C \uC8FC\uAE30 \uB0A8\uC740 \uAE30\uAC04\uC5D0 \uB530\uB978 \uC77C\uD560 \uACC4\uC0B0(Proration) \uC801\uC6A9 \uC5EC\uBD80\uC640 \uC608\uC0C1 \uCC28\uC561\xB7\uC801\uC6A9 \uC2DC\uC810(\uC989\uC2DC vs \uB2E4\uC74C \uC8FC\uAE30)\uC744 \uBCC0\uACBD \uD655\uC778 \uD654\uBA74\uC5D0 \uBBF8\uB9AC \uBCF4\uC5EC \uC918."
32763
+ },
32764
+ en: {
32765
+ definition: "A billing calculation that adjusts charges or credits proportionally based on the remaining days in a billing cycle when a plan or seat count changes mid-cycle.",
32766
+ example: "Adding a team seat halfway through a 30-day billing cycle charges roughly half the monthly seat price rather than the full month.",
32767
+ promptSnippet: "Preview prorated charges or credits clearly before confirming mid-cycle plan or seat changes, specifying whether adjustments apply immediately or on the next invoice."
32768
+ }
32769
+ }
32770
+ },
32771
+ "dunning-management": {
32772
+ aliases: {
32773
+ ko: ["\uACB0\uC81C \uC2E4\uD328 \uC7AC\uC2DC\uB3C4", "\uBBF8\uB0A9 \uB3C5\uCD09 \uAD00\uB9AC", "\uB354\uB2DD \uD504\uB85C\uC138\uC2A4", "\uCE74\uB4DC \uAC31\uC2E0 \uC548\uB0B4"],
32774
+ en: ["dunning", "failed payment recovery", "payment retry schedule", "past-due recovery"]
32775
+ },
32776
+ text: {
32777
+ ko: {
32778
+ definition: "\uC815\uAE30 \uAD6C\uB3C5 \uACB0\uC81C\uB098 \uC790\uB3D9\uC774\uCCB4\uAC00 \uC794\uC561 \uBD80\uC871\xB7\uCE74\uB4DC \uB9CC\uB8CC \uB4F1\uC73C\uB85C \uC2E4\uD328\uD588\uC744 \uB54C \uC815\uD574\uC9C4 \uC77C\uC815\uC5D0 \uB530\uB77C \uC790\uB3D9 \uC7AC\uCCAD\uAD6C\uB97C \uC2DC\uB3C4\uD558\uACE0, \uACE0\uAC1D\uC5D0\uAC8C \uACB0\uC81C \uC218\uB2E8 \uAD50\uCCB4 \uC548\uB0B4\uC640 \uC720\uC608 \uAE30\uAC04\uC744 \uC81C\uACF5\uD574 \uBE44\uC790\uBC1C\uC801 \uD574\uC9C0\uB97C \uC904\uC774\uB294 \uBBF8\uB0A9 \uD68C\uC218 \uD750\uB984\uC785\uB2C8\uB2E4.",
32779
+ example: '\uC6D4\uAC04 \uAD6C\uB3C5 \uACB0\uC81C\uAC00 \uAC70\uC808\uB418\uBA74 1\xB73\xB77\uC77C \uAC04\uACA9\uC73C\uB85C \uC2A4\uB9C8\uD2B8 \uC7AC\uC2DC\uB3C4\uB97C \uC218\uD589\uD558\uB294 \uB3D9\uC548 \uB300\uC2DC\uBCF4\uB4DC \uC0C1\uB2E8 \uBC30\uB108\uB85C "\uCE74\uB4DC \uB9CC\uB8CC\uB85C \uACB0\uC81C \uC7AC\uC2DC\uB3C4 \uC911 \u2014 \uC218\uB2E8 \uBCC0\uACBD\uD558\uAE30"\uB97C \uB744\uC6B0\uACE0 \uCD5C\uC885 \uC2E4\uD328 \uC2DC\uC5D0\uB9CC \uC774\uC6A9 \uAD8C\uD55C\uC744 \uC804\uD658\uD569\uB2C8\uB2E4.',
32780
+ promptSnippet: "\uBBF8\uB0A9 \uC7AC\uCCAD\uAD6C \uB3C5\uCD09(Dunning) \uD750\uB984\uC5D0\uB294 \uC2E4\uD328 \uC0AC\uC720\uBCC4 \uC7AC\uC2DC\uB3C4 \uC77C\uC815(\uB9CC\uB8CC\xB7\uBD84\uC2E4 \uCE74\uB4DC \uC989\uC2DC \uC548\uB0B4 vs \uC77C\uC2DC\uC801 \uC794\uC561 \uBD80\uC871 \uC7AC\uC2DC\uB3C4), \uC720\uC608 \uAE30\uAC04(Grace Period) \uBC30\uB108, \uACB0\uC81C \uC218\uB2E8 \uC989\uC2DC \uAD50\uCCB4\uC640 \uC7AC\uC2DC\uB3C4 \uD2B8\uB9AC\uAC70, \uCD5C\uC885 \uBBF8\uB0A9 \uC2DC \uAD8C\uD55C \uBCC0\uACBD \uADDC\uCE59\uC744 \uD568\uAED8 \uC124\uACC4\uD558\uC138\uC694."
32781
+ },
32782
+ en: {
32783
+ definition: "An automated failed-payment recovery workflow for subscriptions and recurring mandates that schedules smart retries, notifies customers to update payment methods during a grace window, and handles final past-due downgrades or cancellations.",
32784
+ example: "After a card renewal fails, retry on days 1, 3, and 7 while displaying a non-blocking billing banner with a direct card-update link before downgrading access on final failure.",
32785
+ promptSnippet: "Design dunning management around error-aware retry schedules, customer notification cadence, an explicit grace window with one-click payment method recovery, and clear final past-due state transitions."
32786
+ }
32787
+ }
32788
+ },
32789
+ "double-entry-ledger": {
32790
+ aliases: {
32791
+ ko: ["\uBCF5\uC2DD \uBD80\uAE30 \uC6D0\uC7A5", "\uCC28\uBCC0 \uB300\uBCC0 \uC6D0\uC7A5", "\uBD88\uBCC0 \uC6D0\uC7A5 \uAE30\uB85D", "\uACC4\uC815 \uC6D0\uC7A5 \uC2DC\uC2A4\uD15C"],
32792
+ en: ["double-entry bookkeeping", "immutable ledger", "debit credit ledger", "financial ledger"]
32793
+ },
32794
+ text: {
32795
+ ko: {
32796
+ definition: "\uC608\uCE58\uAE08, \uD3EC\uC778\uD2B8, \uC5D0\uC2A4\uD06C\uB85C \uC815\uC0B0 \uB4F1 \uBAA8\uB4E0 \uAE08\uC561 \uC774\uB3D9\uC744 \uB2E8\uC77C \uC794\uC561 \uC22B\uC790 \uB36E\uC5B4\uC4F0\uAE30\uAC00 \uC544\uB2C8\uB77C \uCC28\uBCC0(Debit)\uACFC \uB300\uBCC0(Credit)\uC774 \uD56D\uC0C1 0\uC73C\uB85C \uD569\uC0B0\uB418\uB294 \uCD94\uAC00 \uC804\uC6A9(Append-Only) \uBD84\uAC1C \uAE30\uB85D\uC73C\uB85C \uC800\uC7A5\uD558\uB294 \uD68C\uACC4 \uAD6C\uC870\uC785\uB2C8\uB2E4. \uC624\uB958 \uC815\uC815\uB3C4 \uAE30\uC874 \uD589\uC744 \uC218\uC815\xB7\uC0AD\uC81C\uD558\uC9C0 \uC54A\uACE0 \uBC18\uB300 \uBC29\uD5A5\uC758 \uC0C1\uACC4 \uBD84\uAC1C(Reversal)\uB85C \uB0A8\uAE41\uB2C8\uB2E4.",
32797
+ example: "\uC0AC\uC6A9\uC790\uAC00 10,000\uC6D0\uC744 \uCD9C\uAE08 \uC694\uCCAD\uD558\uBA74 \uAC00\uC6A9 \uACC4\uC815\uC5D0\uC11C \uCD9C\uAE08 \uB300\uAE30(Hold) \uACC4\uC815\uC73C\uB85C \uC774\uB3D9 \uBD84\uAC1C\uB97C \uC0DD\uC131\uD558\uACE0, \uC2E4\uC81C \uC1A1\uAE08 \uD655\uC815 \uC2DC \uCD9C\uAE08 \uB300\uAE30 \uACC4\uC815\uC5D0\uC11C \uC678\uBD80 \uC815\uC0B0 \uACC4\uC815\uC73C\uB85C \uB9C8\uAC10\uC744 \uAE30\uB85D\uD574 \uCD1D\uD569 \uADE0\uD615\uC744 \uC720\uC9C0\uD569\uB2C8\uB2E4.",
32798
+ promptSnippet: "\uC608\uCE58\uAE08\xB7\uC815\uC0B0\xB7\uC9C0\uAC11 \uC6D0\uC7A5\uC740 \uB2E8\uC21C balance \uCEEC\uB7FC \uC99D\uAC10 \uB300\uC2E0 \uCC28\uBCC0\uACFC \uB300\uBCC0 \uD569\uC774 \uC77C\uCE58\uD558\uB294 \uCD94\uAC00 \uC804\uC6A9 \uBCF5\uC2DD \uC6D0\uC7A5\uC73C\uB85C \uC124\uACC4\uD558\uACE0, \uCDE8\uC18C\xB7\uD658\uBD88\uC740 \uAE30\uC874 \uD589 \uC218\uC815\uC774 \uC544\uB2CC \uC5ED\uBD84\uAC1C(Reversal)\uC640 \uBA71\uB4F1\uC131 \uD0A4\uB85C \uCC98\uB9AC\uD558\uC138\uC694."
32799
+ },
32800
+ en: {
32801
+ definition: "An append-only financial accounting model where every monetary movement records balanced debit and credit entries across accounts rather than mutating a standalone balance column. Corrections are posted as reversing entries rather than overwriting history.",
32802
+ example: "On a withdrawal request, post a balanced transfer from available wallet funds to a pending hold account, settling out only when bank confirmation arrives.",
32803
+ promptSnippet: "Model wallets, escrow, and payouts with an append-only double-entry ledger where every transaction balances debits and credits, edits use reversing entries instead of updates, and idempotency guards prevent duplicate postings."
32804
+ }
32805
+ }
32806
+ },
32807
+ "usage-based-billing": {
32808
+ aliases: {
32809
+ ko: ["\uC0AC\uC6A9\uB7C9 \uAE30\uBC18 \uACFC\uAE08", "\uC885\uB7C9 \uACFC\uAE08", "\uBBF8\uD130\uB9C1 \uACFC\uAE08", "\uCD08\uACFC \uC0AC\uC6A9\uB7C9 \uCCAD\uAD6C"],
32810
+ en: ["metered billing", "usage metering", "pay-as-you-go billing", "overage billing"]
32811
+ },
32812
+ text: {
32813
+ ko: {
32814
+ definition: "\uACE0\uC815 \uC815\uC561 \uC694\uAE08\uC5D0 \uB354\uD574 API \uD638\uCD9C \uC218, \uC800\uC7A5 \uC6A9\uB7C9, \uC804\uC1A1\uB7C9, \uD65C\uC131 \uC88C\uC11D \uC218 \uB4F1 \uC2E4\uC81C \uCE21\uC815\uB41C \uC0AC\uC6A9\uB7C9\uC5D0 \uAD6C\uAC04 \uB2E8\uAC00\uB098 \uCD08\uACFC \uC694\uC728(Overage)\uC744 \uC801\uC6A9\uD574 \uC8FC\uAE30\uBCC4 \uCCAD\uAD6C \uAE08\uC561\uC744 \uC0B0\uC815\uD558\uB294 \uACFC\uAE08 \uBC29\uC2DD\uC785\uB2C8\uB2E4. \uC0AC\uC6A9 \uC774\uBCA4\uD2B8 \uC911\uBCF5 \uC9D1\uACC4\uB97C \uB9C9\uB294 \uBA71\uB4F1\uC131\uACFC \uC8FC\uAE30 \uB9C8\uAC10 \uC804 \uC608\uC0C1 \uCCAD\uAD6C\uC561 \uC548\uB0B4\uAC00 \uD575\uC2EC\uC785\uB2C8\uB2E4.",
32815
+ example: "\uAE30\uBCF8 \uC6D4 10\uB9CC \uAC74 API \uD3EC\uD568 \uD50C\uB79C\uC5D0\uC11C 12\uB9CC \uAC74\uC744 \uD638\uCD9C\uD558\uBA74 \uB300\uC2DC\uBCF4\uB4DC\uC5D0\uC11C \uD604\uC7AC \uC0AC\uC6A9\uB960\uACFC \uCD08\uACFC 2\uB9CC \uAC74\uC758 \uC608\uC0C1 \uCD94\uAC00 \uC694\uAE08\uC744 \uC2E4\uC2DC\uAC04 \uBCF4\uC5EC \uC8FC\uACE0, \uC8FC\uAE30 \uC885\uB8CC \uC2DC \uCCAD\uAD6C\uC11C\uC5D0 \uB2E8\uC704\uBCC4 \uB0B4\uC5ED\uC744 \uD569\uC0B0\uD569\uB2C8\uB2E4.",
32816
+ promptSnippet: "\uC885\uB7C9\uC81C \uACFC\uAE08(Usage-Based Billing) \uC124\uACC4 \uC2DC \uC0AC\uC6A9 \uC774\uBCA4\uD2B8\uC758 \uBA71\uB4F1\uC131 \uC911\uBCF5 \uC81C\uAC70, \uD3EC\uD568\uB7C9\xB7\uAD6C\uAC04 \uB2E8\uAC00\xB7\uCD08\uACFC \uC694\uC728 \uACC4\uC0B0 \uADDC\uCE59, \uCCAD\uAD6C \uC8FC\uAE30 \uC911 \uC2E4\uC2DC\uAC04 \uC0AC\uC6A9\uB7C9\xB7\uC608\uC0C1 \uC694\uAE08 \uD45C\uC2DC\uC640 \uC784\uACC4\uCE58 \uC54C\uB9BC\uC744 \uD568\uAED8 \uAD6C\uD604\uD558\uC138\uC694."
32817
+ },
32818
+ en: {
32819
+ definition: "A pricing and invoicing model that bills customers according to measured consumption\u2014such as API calls, storage GB, or tokens\u2014either purely pay-as-you-go or as overages above included tier allowances.",
32820
+ example: "A workspace plan includes 100k monthly events and bills overages per 10k block, displaying current cycle consumption and estimated overage charges before invoice finalization.",
32821
+ promptSnippet: "Implement usage-based billing with idempotent usage event ingestion, transparent tier/overage rate formulas, threshold usage alerts, and live mid-cycle estimated spend previews."
32822
+ }
32823
+ }
32824
+ },
32825
+ "payment-reconciliation": {
32826
+ aliases: {
32827
+ ko: ["\uACB0\uC81C \uB300\uC0AC", "\uC815\uC0B0 \uB300\uC0AC \uC791\uC5C5", "\uC785\uCD9C\uAE08 \uB300\uC870 \uAC80\uC99D", "PG \uAC70\uB798 \uB300\uC0AC"],
32828
+ en: ["reconciliation", "payout reconciliation", "settlement matching", "ledger reconciliation"]
32829
+ },
32830
+ text: {
32831
+ ko: {
32832
+ definition: "\uC11C\uBE44\uC2A4 \uB0B4\uBD80 \uC8FC\uBB38\xB7\uC6D0\uC7A5 \uAE30\uB85D\uACFC \uACB0\uC81C \uB300\uD589\uC0AC(PG)\xB7\uC740\uD589 \uC2E4\uC81C \uC785\uCD9C\uAE08 \uB0B4\uC5ED\uC744 1:1\uB85C \uB300\uC870\uD574 \uB204\uB77D, \uC911\uBCF5 \uC785\uAE08, \uC218\uC218\uB8CC \uCC28\uC774, \uC0C1\uD0DC \uBD88\uC77C\uCE58(\uC608: \uC11C\uBE44\uC2A4 \uC2E4\uD328\xB7PG \uC2B9\uC778)\uB97C \uCC3E\uC544\uB0B4\uACE0 \uBCF4\uC815\uD558\uB294 \uC815\uC0B0 \uAC80\uC99D \uC808\uCC28\uC785\uB2C8\uB2E4.",
32833
+ example: "\uB9E4\uC77C \uC790\uC815 PG \uC815\uC0B0 \uB0B4\uC5ED \uD30C\uC77C\uACFC \uB0B4\uBD80 \uAC70\uB798 \uC6D0\uC7A5\uC744 \uB300\uC870\uD574 \uAE08\uC561\xB7\uAC70\uB798 ID\uAC00 \uC5B4\uAE0B\uB09C 3\uAC74\uC744 \uBBF8\uC77C\uCE58 \uB300\uAE30\uC5F4\uB85C \uBD84\uB958\uD558\uACE0, \uB2F4\uB2F9\uC790\uAC00 \uC6D0\uC778\uC744 \uD655\uC778\uD574 \uD658\uBD88 \uB610\uB294 \uC218\uB3D9 \uD655\uC815 \uCC98\uB9AC\uD569\uB2C8\uB2E4.",
32834
+ promptSnippet: "\uC785\uAE08 \uB300\uC0AC \uC815\uC0B0(Reconciliation) \uD654\uBA74\uACFC \uBC30\uCE58\uB97C \uC124\uACC4\uD560 \uB54C \uAC70\uB798 ID\xB7\uAE08\uC561\xB7\uC218\uC218\uB8CC\xB7\uC815\uC0B0 \uC77C\uC790 \uB300\uC870 \uAE30\uC900, \uBD88\uC77C\uCE58 \uC720\uD615(\uB204\uB77D\xB7\uC911\uBCF5\xB7\uAE08\uC561 \uC624\uCC28) \uBD84\uB958 \uD050, \uADF8\uB9AC\uACE0 \uAC10\uC0AC \uB85C\uADF8\uAC00 \uB0A8\uB294 \uC218\uB3D9 \uC870\uC815\xB7\uD574\uC18C \uD750\uB984\uC744 \uD3EC\uD568\uD558\uC138\uC694."
32835
+ },
32836
+ en: {
32837
+ definition: "The process of matching internal order and ledger records against external payment-gateway or bank settlement reports to detect missing entries, duplicate charges, fee discrepancies, or status mismatches.",
32838
+ example: "A daily reconciliation job compares processor settlement batches against internal wallet entries, surfacing three mismatched items in an exception queue for review and resolution.",
32839
+ promptSnippet: "Build payment reconciliation workflows comparing external settlement files against internal ledger transactions by reference ID, amount, and fees, with explicit exception queues and audited resolution actions."
32840
+ }
32841
+ }
32842
+ },
32843
+ "withholding-tax-settlement": {
32844
+ aliases: {
32845
+ ko: ["\uC138\uAE08 \uC6D0\uCC9C\uC9D5\uC218 \uC815\uC0B0", "\uC0AC\uC5C5\uC18C\uB4DD 3.3% \uC815\uC0B0", "\uC138\uAE08\uACC4\uC0B0\uC11C \uC815\uC0B0 \uCC28\uAC10", "\uC6D0\uCC9C\uC138 \uACF5\uC81C"],
32846
+ en: ["tax withholding payout", "withholding tax deduction", "payout tax statement", "net-of-tax settlement"]
32847
+ },
32848
+ text: {
32849
+ ko: {
32850
+ definition: "\uD06C\uB9AC\uC5D0\uC774\uD130\xB7\uAC15\uC0AC\xB7\uD504\uB9AC\uB79C\uC11C\xB7\uD310\uB9E4\uC790\uC5D0\uAC8C \uC815\uC0B0 \uB300\uAE08\uC744 \uC9C0\uAE09\uD560 \uB54C \uD50C\uB7AB\uD3FC \uC218\uC218\uB8CC\uC640 \uD568\uAED8 \uC138\uBC95\uC0C1 \uD544\uC694\uD55C \uC6D0\uCC9C\uC9D5\uC218 \uC138\uC561(\uC608: \uAC1C\uC778 \uC0AC\uC5C5\uC18C\uB4DD\uC138\xB7\uC9C0\uBC29\uC18C\uB4DD\uC138 \uB4F1)\uC744 \uBBF8\uB9AC \uACF5\uC81C\uD574 \uC138\uBB34 \uC2E0\uACE0\xB7\uB0A9\uBD80\uD558\uACE0, \uCD1D \uC9C0\uAE09\uC561\xB7\uACF5\uC81C \uB0B4\uC5ED\xB7\uC2E4\uC9C0\uAE09\uC561\uC774 \uB2F4\uAE34 \uBA85\uC138\uC11C\uB97C \uBC1C\uD589\uD558\uB294 \uC815\uC0B0 \uCC98\uB9AC\uC785\uB2C8\uB2E4.",
32851
+ example: "\uAC1C\uC778 \uD06C\uB9AC\uC5D0\uC774\uD130 \uC218\uC775 1,000,000\uC6D0\uC5D0\uC11C \uD50C\uB7AB\uD3FC \uC218\uC218\uB8CC\uC640 \uC6D0\uCC9C\uC9D5\uC218 \uC138\uC561\uC744 \uD56D\uBAA9\uBCC4\uB85C \uBD84\uB9AC \uACC4\uC0B0\uD574 \uC2E4\uC9C0\uAE09\uC561\uC744 \uC785\uAE08\uD558\uACE0, \uC5F0\uB9D0\xB7\uC6D4\uBCC4 \uC9C0\uAE09\uBA85\uC138\uC11C \uD655\uC778 \uD654\uBA74\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4.",
32852
+ promptSnippet: "\uC6D0\uCC9C\uC9D5\uC218 \uC815\uC0B0 \uD654\uBA74\xB7\uACC4\uC0B0 \uB85C\uC9C1\uC5D0\uC11C\uB294 \uC0AC\uC5C5\uC790/\uAC1C\uC778 \uAD6C\uBD84\uACFC \uC138\uBC95 \uD655\uC778 \uC0C1\uD0DC, \uCD1D\uC561\xB7\uD50C\uB7AB\uD3FC \uC218\uC218\uB8CC\xB7\uACF5\uC81C \uC138\uC561\xB7\uC2E4\uC9C0\uAE09\uC561\uC758 \uD56D\uBAA9\uBCC4 \uBC18\uC62C\uB9BC \uAE30\uC900, \uADF8\uB9AC\uACE0 \uC218\uC815 \uC2DC \uC7AC\uACC4\uC0B0\xB7\uC99D\uBE59 \uBA85\uC138\uC11C \uC774\uB825\uC744 \uBA85\uD655\uD788 \uBD84\uB9AC\uD558\uC138\uC694."
32853
+ },
32854
+ en: {
32855
+ definition: "A payout calculation and reporting workflow where a platform deducts applicable withholding taxes alongside platform fees before disbursing net earnings to creators, instructors, or sellers, generating compliant tax statements.",
32856
+ example: "Before paying out an individual instructor\u2019s earnings, verify tax residency status, itemize gross earnings, platform fee, withheld tax, and net payout on the settlement statement.",
32857
+ promptSnippet: "Design withholding-tax settlement with verified payee tax profiles, itemized breakdowns (gross, fees, tax withheld, net payout), deterministic rounding rules, and immutable payout statements."
32858
+ }
32859
+ }
32860
+ },
32861
+ "partial-refund": {
32862
+ aliases: {
32863
+ ko: ["\uBD80\uBD84 \uCDE8\uC18C \uD658\uBD88", "\uC77C\uBD80 \uD488\uBAA9 \uD658\uBD88", "\uCC28\uC561 \uD658\uBD88 \uCC98\uB9AC", "\uC794\uC5EC \uD658\uBD88 \uAC00\uB2A5\uC561"],
32864
+ en: ["partial cancellation refund", "item-level refund", "partial credit return", "remaining refundable balance"]
32865
+ },
32866
+ text: {
32867
+ ko: {
32868
+ definition: "\uC804\uCCB4 \uC8FC\uBB38 \uAC00\uC6B4\uB370 \uC77C\uBD80 \uC0C1\uD488\xB7\uC218\uB7C9\uB9CC \uCDE8\uC18C\uD558\uAC70\uB098 \uBC30\uC1A1\uBE44\xB7\uC0AC\uC6A9 \uC77C\uC218\xB7\uCFE0\uD3F0 \uD560\uC778 \uBC30\uBD84\uC561\uC744 \uC81C\uC678\uD558\uACE0 \uB098\uBA38\uC9C0 \uAE08\uC561\uC758 \uC77C\uBD80\uBD84\uB9CC \uC6D0\uACB0\uC81C \uC218\uB2E8\uC73C\uB85C \uB3CC\uB824\uC8FC\uB294 \uD658\uBD88 \uBC29\uC2DD\uC785\uB2C8\uB2E4. \uC5EC\uB7EC \uCC28\uB840 \uBD80\uBD84 \uD658\uBD88\uC774 \uC77C\uC5B4\uB0A0 \uC218 \uC788\uC73C\uBBC0\uB85C \uCD5C\uCD08 \uACB0\uC81C\uC561\uC5D0\uC11C \uB204\uC801 \uD658\uBD88\uC561\uC744 \uBE80 \uC794\uC5EC \uD658\uBD88 \uAC00\uB2A5 \uAE08\uC561 \uAC80\uC99D\uC774 \uD544\uC218\uC785\uB2C8\uB2E4.",
32869
+ example: "3\uB9CC \uC6D0\uACFC 2\uB9CC \uC6D0 \uC0C1\uD488 \uBB36\uC74C \uC8FC\uBB38\uC5D0 5\uCC9C \uC6D0 \uC7A5\uBC14\uAD6C\uB2C8 \uCFE0\uD3F0\uC744 \uC368\uC11C 4\uB9CC 5\uCC9C \uC6D0\uC744 \uACB0\uC81C\uD588\uB2E4\uBA74, \uD55C \uC0C1\uD488\uB9CC \uBC18\uD488 \uC2DC \uCFE0\uD3F0 \uBE44\uB840 \uD560\uC778\uBD84\uACFC \uBC18\uD488 \uBC30\uC1A1\uBE44 \uCC28\uAC10 \uD6C4 \uC794\uC5EC \uD658\uBD88 \uD55C\uB3C4 \uC548\uC5D0\uC11C\uB9CC \uBD80\uBD84 \uD658\uBD88\uC744 \uC2B9\uC778\uD569\uB2C8\uB2E4.",
32870
+ promptSnippet: "\uBD80\uBD84 \uD658\uBD88 \uAE30\uB2A5\uC744 \uAD6C\uD604\uD560 \uB54C\uB294 \uC6D0\uACB0\uC81C \uAE08\uC561 \uB300\uBE44 \uB204\uC801 \uD658\uBD88\uC561\xB7\uC794\uC5EC \uD658\uBD88 \uAC00\uB2A5 \uD55C\uB3C4 \uAC80\uC99D, \uCFE0\uD3F0\xB7\uD3EC\uC778\uD2B8\xB7\uBC30\uC1A1\uBE44 \uC815\uC0B0 \uBC30\uBD84 \uADDC\uCE59, \uB2E4\uC911 \uBD80\uBD84 \uD658\uBD88 \uBA71\uB4F1\uC131 \uD0A4, \uADF8\uB9AC\uACE0 \uD488\uBAA9\uBCC4 \uD658\uBD88 \uC9C4\uD589 \uC0C1\uD0DC \uD45C\uC2DC\uB97C \uD568\uAED8 \uC124\uACC4\uD558\uC138\uC694."
32871
+ },
32872
+ en: {
32873
+ definition: "Refunding only a subset of order items, quantities, or net amounts\u2014after accounting for prorated coupons, points, or return shipping\u2014without canceling the entire transaction. Multiple partial refunds must never exceed the remaining refundable balance.",
32874
+ example: "When a buyer returns one item from a discounted multi-item order, compute net refund after proportional coupon adjustment and enforce remaining refundable balance checks.",
32875
+ promptSnippet: "Implement partial refunds with server-side remaining-balance validation, deterministic coupon/shipping allocation rules, per-request idempotency keys, and line-item refund status tracking."
32876
+ }
32877
+ }
32878
+ }
32879
+ };
32880
+
32881
+ // ../../packages/catalog/src/glossary/product-planning.ts
32882
+ var PRODUCT_PLANNING_GLOSSARY_DATA = {
32883
+ "net-promoter-score": {
32884
+ aliases: {
32885
+ ko: ["NPS", "\uC21C\uCD94\uCC9C\uC9C0\uC218", "\uC21C\uCD94\uCC9C\uACE0\uAC1D\uC9C0\uC218", "\uCD94\uCC9C \uC9C0\uC218", "\uCD94\uCC9C \uC758\uD5A5 \uC870\uC0AC"],
32886
+ en: ["NPS", "Net Promoter Score", "promoter score", "customer loyalty metric"]
32887
+ },
32888
+ text: {
32889
+ ko: {
32890
+ definition: "0~10\uC810 \uCD94\uCC9C \uC758\uD5A5 \uC751\uB2F5\uC5D0\uC11C \uCD94\uCC9C \uADF8\uB8F9(9~10\uC810) \uBE44\uC728\uC5D0\uC11C \uBE44\uCD94\uCC9C \uADF8\uB8F9(0~6\uC810) \uBE44\uC728\uC744 \uBE80 \uC9C0\uD45C(-100~100)\uC785\uB2C8\uB2E4. \uC911\uB9BD \uADF8\uB8F9(7~8\uC810)\uC740 \uBD84\uBAA8\uC5D0\uB294 \uD3EC\uD568\uB418\uC9C0\uB9CC \uBD84\uC790\uC5D0\uB294 \uB4E4\uC5B4\uAC00\uC9C0 \uC54A\uC73C\uBA70, \uBBF8\uC751\uB2F5\uC744 0\uC810\uC73C\uB85C \uCC98\uB9AC\uD558\uAC70\uB098 \uD3C9\uADE0 \uBCC4\uC810\xB7CSAT\uC640 \uD63C\uB3D9\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
32891
+ example: "\uC720\uD6A8 \uC751\uB2F5 100\uAC74 \uC911 \uCD94\uCC9C 50\uAC74(50%), \uC911\uB9BD 30\uAC74(30%), \uBE44\uCD94\uCC9C 20\uAC74(20%)\uC774\uBA74 \uC911\uB9BD\uC744 \uD3EC\uD568\uD55C 100\uAC74\uC744 \uBD84\uBAA8\uB85C \uACC4\uC0B0\uD574 NPS\uB294 30\uC774 \uB418\uBA70 \uBBF8\uC751\uB2F5 \uAC74\uC740 \uC9D1\uACC4\uC5D0\uC11C \uC81C\uC678\uD569\uB2C8\uB2E4.",
32892
+ promptSnippet: "\uC21C\uCD94\uCC9C\uC9C0\uC218(NPS) \uC124\uBB38\xB7\uC9D1\uACC4 \uC2A4\uD399\uC744 \uC815\uB9AC\uD560 \uB54C 0~10\uC810 \uCC99\uB3C4, \uCD94\uCC9C(9~10)\xB7\uC911\uB9BD(7~8)\xB7\uBE44\uCD94\uCC9C(0~6) \uBD84\uB958, \uC911\uB9BD\uC758 \uBD84\uBAA8 \uD3EC\uD568 \uADDC\uCE59, \uBBF8\uC751\uB2F5 \uC81C\uC678 \uAE30\uC900, \uD3C9\uADE0 \uBCC4\uC810\xB7CSAT\uC640\uC758 \uCC28\uC774\uB97C \uBA85\uC2DC\uD574 \uC918."
32893
+ },
32894
+ en: {
32895
+ definition: "A loyalty metric ranging from -100 to 100 calculated on 0-10 recommendation responses as (% Promoters 9-10) minus (% Detractors 0-6). Passives (7-8) count in the denominator only, non-responses are not 0, and it differs from average star ratings or CSAT.",
32896
+ example: "Out of 100 valid responses with 50 Promoters (50%), 30 Passives (30%), and 20 Detractors (20%), Passives stay in the 100-response denominator so NPS is 30, while non-responses are excluded.",
32897
+ promptSnippet: "Specify Net Promoter Score (NPS) survey and reporting rules with the 0-10 scale, Promoter (9-10)/Passive (7-8)/Detractor (0-6) buckets, denominator inclusion for Passives, non-response exclusion, and distinction from CSAT."
32898
+ }
32899
+ }
32900
+ },
32901
+ "active-users": {
32902
+ aliases: {
32903
+ ko: ["MAU", "WAU", "DAU", "\uC6D4\uAC04 \uD65C\uC131 \uC0AC\uC6A9\uC790", "\uC8FC\uAC04 \uD65C\uC131 \uC0AC\uC6A9\uC790", "\uC77C\uAC04 \uD65C\uC131 \uC0AC\uC6A9\uC790"],
32904
+ en: ["MAU", "WAU", "DAU", "monthly active users", "weekly active users", "daily active users"]
32905
+ },
32906
+ text: {
32907
+ ko: {
32908
+ definition: "\uC815\uD574\uC9C4 \uAE30\uAC04(\uC77C\uAC04 DAU\xB7\uC8FC\uAC04 WAU\xB7\uC6D4\uAC04 MAU) \uC548\uC5D0 \uC815\uC758\uB41C \uD575\uC2EC \uD589\uB3D9\uC744 1\uD68C \uC774\uC0C1 \uC218\uD589\uD55C \uC911\uBCF5 \uC81C\uAC70 \uC0AC\uC6A9\uC790 \uC218\uC785\uB2C8\uB2E4. \uACC4\uC815\uC758 \uD65C\uC131 \uC0C1\uD0DC(Active status), \uB204\uC801 \uAC00\uC785\uC790 \uC218, \uB2E8\uC21C \uC138\uC158\xB7\uBC29\uBB38 \uD69F\uC218\uC640\uB294 \uB2E4\uB985\uB2C8\uB2E4.",
32909
+ example: "\uB2E8\uC21C \uB85C\uADF8\uC778\uC774\uB098 \uD398\uC774\uC9C0 \uC0C8\uB85C\uACE0\uCE68\uC774 \uC544\uB2C8\uB77C \uBB38\uC11C \uD3B8\uC9D1\xB7\uC800\uC7A5 \uAC19\uC740 \uD575\uC2EC \uC774\uBCA4\uD2B8\uB97C \uC6D4\uAC04 \uAE30\uC900\uC73C\uB85C \uC0AC\uC6A9\uC790 ID\uBCC4 1\uD68C\uB9CC \uC9D1\uACC4\uD574 MAU\uB97C \uC0B0\uCD9C\uD569\uB2C8\uB2E4.",
32910
+ promptSnippet: "\uD65C\uC131 \uC0AC\uC6A9\uC790(DAU\xB7WAU\xB7MAU) \uC9C0\uD45C \uB610\uB294 \uC870\uD68C \uC694\uAC74\uC744 \uC124\uACC4\uD560 \uB54C\uB294 \uBA3C\uC800 \uC9D1\uACC4 \uAE30\uAC04 \uCC3D, \uAE30\uC900 \uD0C0\uC784\uC874, \uD65C\uC131\uC73C\uB85C \uC778\uC815\uD560 \uD575\uC2EC \uD589\uB3D9, \uC0AC\uC6A9\uC790 \uC2DD\uBCC4 \uBC0F \uC911\uBCF5 \uC81C\uAC70 \uADDC\uCE59\uC744 \uBA3C\uC800 \uD655\uC815\uD558\uB3C4\uB85D \uC694\uAD6C\uD574 \uC918."
32911
+ },
32912
+ en: {
32913
+ definition: "The count of deduplicated users who performed a defined core action at least once within a set period such as DAU, WAU, or MAU. It is distinct from active account status, cumulative signups, and raw session counts.",
32914
+ example: "Compute MAU by counting unique user IDs that triggered a qualifying core event\u2014such as saving a project\u2014at least once during the month, rather than counting every login or session.",
32915
+ promptSnippet: "Before implementing or reporting Active Users (DAU/WAU/MAU), require defining the exact time window, timezone, qualifying core action, and user identifier deduplication rules first."
32916
+ }
32917
+ }
32918
+ },
32919
+ "conversion-funnel": {
32920
+ aliases: {
32921
+ ko: ["\uD37C\uB110 \uB2E8\uACC4 \uBD84\uC11D", "\uC804\uD658 \uAE54\uB54C\uAE30", "\uB2E8\uACC4\uBCC4 \uC774\uD0C8 \uBD84\uC11D"],
32922
+ en: ["funnel analysis", "conversion pipeline", "funnel steps"]
32923
+ },
32924
+ text: {
32925
+ ko: {
32926
+ definition: "\uC0AC\uC6A9\uC790\uAC00 \uAC00\uC785, \uCCB4\uD5D8, \uACB0\uC81C \uAC19\uC740 \uBAA9\uD45C \uD589\uB3D9\uC5D0 \uC774\uB974\uAE30\uAE4C\uC9C0 \uAC70\uCE58\uB294 \uC21C\uCC28 \uB2E8\uACC4\uC640 \uAC01 \uAD6C\uAC04\uC758 \uD1B5\uACFC\xB7\uC774\uD0C8 \uD750\uB984\uC744 \uB098\uD0C0\uB0B4\uB294 \uBD84\uC11D \uBAA8\uD615\uC785\uB2C8\uB2E4. \uB2E8\uACC4 \uC21C\uC11C \uBCF4\uC7A5 \uC5EC\uBD80\uC640 \uD55C \uC0AC\uC6A9\uC790\uC758 \uC911\uBCF5 \uC9C4\uC785\uC744 \uC5B4\uB5BB\uAC8C \uBB36\uC744\uC9C0 \uBA3C\uC800 \uC815\uD574\uC57C \uB2E8\uACC4\uBCC4 \uBE44\uAD50\uAC00 \uC65C\uACE1\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
32927
+ example: "\uBC29\uBB38 \u2192 \uD68C\uC6D0\uAC00\uC785 \u2192 \uCCAB \uD504\uB85C\uC81D\uD2B8 \uC0DD\uC131 \u2192 \uC720\uB8CC \uC804\uD658 4\uB2E8\uACC4\uB97C \uC0AC\uC6A9\uC790 \uB2E8\uC704(User-scoped) \uC21C\uCC28 \uD37C\uB110\uB85C \uC9D1\uACC4\uD574 \uC5B4\uB290 \uAD6C\uAC04\uC5D0\uC11C \uC774\uD0C8\uC774 \uC9D1\uC911\uB418\uB294\uC9C0 \uD655\uC778\uD569\uB2C8\uB2E4.",
32928
+ promptSnippet: "\uC804\uD658 \uD37C\uB110 \uCC28\uD2B8\uB098 \uBD84\uC11D \uCFFC\uB9AC\uB97C \uC124\uACC4\uD560 \uB54C \uB2E8\uACC4 \uC774\uBCA4\uD2B8 \uBAA9\uB85D, \uC21C\uCC28 \uC644\uB8CC \uC81C\uC57D, \uC9D1\uACC4 \uB2E8\uC704(\uC0AC\uC6A9\uC790/\uC138\uC158), \uC804\uD658 \uD5C8\uC6A9 \uAE30\uAC04\uC744 \uBA3C\uC800 \uBA85\uC2DC\uD574 \uB2E8\uACC4\uBCC4 \uD1B5\uACFC\uC640 \uC774\uD0C8\uB960\uC744 \uC77C\uAD00\uB418\uAC8C \uACC4\uC0B0\uD558\uC138\uC694."
32929
+ },
32930
+ en: {
32931
+ definition: "An analytical model tracking the ordered sequence of steps users take toward a target action\u2014such as signup through checkout\u2014to reveal where drop-offs occur. Accurate funnels specify step ordering rules and whether counts deduplicate by user or session.",
32932
+ example: "A product team maps Visit -> Sign Up -> First Workspace -> Paid Upgrade as a user-scoped ordered funnel to pinpoint the largest drop-off transition.",
32933
+ promptSnippet: "When specifying a conversion funnel, define the exact ordered step events, counting unit (unique user vs. session), and conversion time limit so stage-to-stage drop-off remains comparable."
32934
+ }
32935
+ }
32936
+ },
32937
+ "conversion-rate": {
32938
+ aliases: {
32939
+ ko: ["\uC804\uD658 \uBE44\uC728", "\uBAA9\uD45C \uB2EC\uC131 \uBE44\uC728", "CVR"],
32940
+ en: ["CVR", "goal conversion rate", "conversion ratio"]
32941
+ },
32942
+ text: {
32943
+ ko: {
32944
+ definition: "\uAE30\uC900 \uC9D1\uB2E8(\uBD84\uBAA8) \uAC00\uC6B4\uB370 \uC815\uD574\uC9C4 \uBAA9\uD45C \uD589\uB3D9\uC744 \uC644\uB8CC\uD55C \uB300\uC0C1(\uBD84\uC790)\uC758 \uBE44\uC728\uC785\uB2C8\uB2E4. \uAC19\uC740 \uC774\uB984\uC758 \uC804\uD658\uC728\uC774\uB77C\uB3C4 \uBD84\uBAA8\uAC00 \uC804\uCCB4 \uBC29\uBB38 \uC138\uC158\uC778\uC9C0 \uACE0\uC720 \uC0AC\uC6A9\uC790 \uC218\uC778\uC9C0\uC5D0 \uB530\uB77C \uC218\uCE58\uAC00 \uD06C\uAC8C \uB2EC\uB77C\uC9C0\uBBC0\uB85C \uC0B0\uC2DD\uC744 \uD568\uAED8 \uBC1D\uD600\uC57C \uD569\uB2C8\uB2E4.",
32945
+ example: '\uCCB4\uD5D8 \uC2E0\uCCAD \uC644\uB8CC\uC728(%)\uC744 \uACC4\uC0B0\uD560 \uB54C "\uAC00\uACA9 \uD398\uC774\uC9C0 \uBC29\uBB38 \uACE0\uC720 \uC0AC\uC6A9\uC790 \uC218 \uB300\uBE44 \uCCB4\uD5D8 \uC591\uC2DD \uC81C\uCD9C \uC644\uB8CC \uC0AC\uC6A9\uC790 \uC218"\uB85C \uBD84\uC790\uC640 \uBD84\uBAA8\uB97C \uACE0\uC815\uD574 \uAE30\uAC04\uBCC4 \uBE44\uAD50\uB97C \uC720\uC9C0\uD569\uB2C8\uB2E4.',
32946
+ promptSnippet: "\uC804\uD658\uC728\uC744 \uD45C\uC2DC\uD558\uAC70\uB098 \uACC4\uC0B0\uD560 \uB54C\uB294 \uD37C\uC13C\uD2B8 \uC22B\uC790\uB9CC \uB2E8\uB3C5 \uD45C\uAE30\uD558\uC9C0 \uB9D0\uACE0 \uBD84\uC790(\uBAA9\uD45C \uC644\uB8CC \uAE30\uC900), \uBD84\uBAA8(\uBAA8\uC9D1\uB2E8 \uB2E8\uC704), \uC9D1\uACC4 \uAE30\uAC04, \uD45C\uBCF8 \uC218\uB97C \uD568\uAED8 \uBA85\uC2DC\uD558\uC138\uC694."
32947
+ },
32948
+ en: {
32949
+ definition: "The proportion of a defined denominator group that completes a target action, expressed as a percentage. Because user-based and session-based denominators produce very different numbers, conversion rates require an explicit formula.",
32950
+ example: "Checkout conversion rate is reported as unique users completing payment divided by unique users entering checkout during the same period, alongside raw counts.",
32951
+ promptSnippet: "Never display a conversion rate without documenting its exact numerator event, denominator population unit, time window, and underlying raw counts."
32952
+ }
32953
+ }
32954
+ },
32955
+ "cohort-analysis": {
32956
+ aliases: {
32957
+ ko: ["\uB3D9\uC77C \uC9D1\uB2E8 \uBD84\uC11D", "\uCF54\uD638\uD2B8 \uBE44\uAD50", "\uAC00\uC785 \uC2DC\uC810\uBCC4 \uADF8\uB8F9 \uBD84\uC11D"],
32958
+ en: ["cohort table", "cohort tracking", "user cohorts"]
32959
+ },
32960
+ text: {
32961
+ ko: {
32962
+ definition: "\uAC00\uC785 \uC8FC\uAC04\uC774\uB098 \uCCAB \uAD6C\uB9E4\uC6D4\uCC98\uB7FC \uB3D9\uC77C\uD55C \uC2DC\uC810\xB7\uC870\uAC74\uC73C\uB85C \uBB36\uC740 \uC0AC\uC6A9\uC790 \uC9D1\uB2E8(\uCF54\uD638\uD2B8)\uC758 \uD589\uB3D9 \uBCC0\uD654\uB97C \uACBD\uACFC \uAE30\uAC04(0\uC8FC\uCC28, 1\uC8FC\uCC28, 2\uC8FC\uCC28 \uB4F1)\uC5D0 \uB530\uB77C \uCD94\uC801\uD558\uB294 \uBC29\uBC95\uC785\uB2C8\uB2E4. \uC2E0\uADDC \uC720\uC785\uB7C9 \uC99D\uAC00\uC5D0 \uAC00\uB824\uC9C4 \uAE30\uC874 \uC0AC\uC6A9\uC790 \uC774\uD0C8 \uC5EC\uBD80\uB97C \uC804\uCCB4 \uD3C9\uADE0\uBCF4\uB2E4 \uC815\uD655\uD788 \uB4DC\uB7EC\uB0C5\uB2C8\uB2E4.",
32963
+ example: "\uC6D4\uBCC4 \uAC00\uC785 \uCF54\uD638\uD2B8 \uD589\uB82C\uC5D0\uC11C 1\uC6D4 \uAC00\uC785\uC790\uC640 3\uC6D4 \uAC00\uC785\uC790\uC758 \uAC00\uC785 \uD6C4 4\uC8FC\uCC28 \uC7AC\uC0AC\uC6A9\uB960\uC744 \uB098\uB780\uD788 \uBE44\uAD50\uD574 \uC628\uBCF4\uB529 \uAC1C\uD3B8 \uC804\uD6C4\uC758 \uC9C0\uC18D \uD6A8\uACFC\uB97C \uD655\uC778\uD569\uB2C8\uB2E4.",
32964
+ promptSnippet: "\uCF54\uD638\uD2B8 \uBD84\uC11D \uD45C\uB098 \uB9AC\uD3EC\uD2B8\uB97C \uAD6C\uD604\uD560 \uB54C \uCF54\uD638\uD2B8 \uBB36\uC74C \uAE30\uC900(\uAC00\uC785\uC77C\xB7\uCCAB \uD589\uB3D9\uC77C), \uACBD\uACFC \uAD6C\uAC04 \uB2E8\uC704(\uC77C\xB7\uC8FC\xB7\uC6D4), \uAE30\uC900 \uC2DC\uAC04\uB300\uC640 \uBBF8\uACBD\uACFC \uAD6C\uAC04 \uACF5\uBC31 \uCC98\uB9AC\uB97C \uBA85\uC2DC\uD558\uC138\uC694."
32965
+ },
32966
+ en: {
32967
+ definition: "Tracking groups of users who share a starting event or timeframe\u2014such as signup week\u2014across subsequent elapsed periods (Day 1, Week 2, Month 1). Cohort grids isolate behavioral changes over time without letting new-user growth mask retention drops.",
32968
+ example: "A monthly signup cohort matrix compares Week-4 repeat usage across January and March signups to evaluate whether an onboarding change improved follow-through.",
32969
+ promptSnippet: "Define the cohort entry event, cohort time bucket, elapsed-period intervals, timezone alignment, and blank handling for immature periods when building cohort analysis views."
32970
+ }
32971
+ }
32972
+ },
32973
+ "retention-rate": {
32974
+ aliases: {
32975
+ ko: ["\uB9AC\uD150\uC158 \uBE44\uC728", "\uC720\uC9C0\uC728", "\uC7AC\uBC29\uBB38 \uC720\uC9C0\uC728"],
32976
+ en: ["retention", "user retention", "cohort retention rate"]
32977
+ },
32978
+ text: {
32979
+ ko: {
32980
+ definition: "\uCD08\uAE30 \uAE30\uC900 \uC2DC\uC810\uC5D0 \uD65C\uB3D9\uD55C \uC0AC\uC6A9\uC790 \uC9D1\uB2E8 \uC911 \uD2B9\uC815 \uACBD\uACFC \uC2DC\uC810\uC774\uB098 \uAE30\uAC04 \uB4A4\uC5D0 \uB2E4\uC2DC \uB3CC\uC544\uC640 \uD575\uC2EC \uD589\uB3D9\uC744 \uC218\uD589\uD55C \uC0AC\uC6A9\uC790\uC758 \uBE44\uC728\uC785\uB2C8\uB2E4. \uC815\uD655\uD788 N\uC77C\uC9F8 \uBC29\uBB38(N-Day)\uC778\uC9C0 N\uC77C \uC774\uD6C4 \uB204\uC801 \uC7AC\uBC29\uBB38(Unbounded)\uC778\uC9C0 \uACC4\uC0B0 \uBC29\uC2DD\uC5D0 \uB530\uB77C \uC758\uBBF8\uAC00 \uB2EC\uB77C\uC9D1\uB2C8\uB2E4.",
32981
+ example: "\uD559\uC2B5 \uC571\uC5D0\uC11C \uCCAB \uC218\uC5C5 \uC644\uB8CC \uCF54\uD638\uD2B8\uB97C \uAE30\uC900\uC73C\uB85C 7\uC77C \uCC28(D7)\uC5D0 \uB2E4\uC2DC \uD559\uC2B5\uC744 \uC2E4\uD589\uD55C \uBE44\uC728\uC744 \uC9D1\uACC4\uD560 \uB54C, \uC544\uC9C1 7\uC77C\uC774 \uC9C0\uB098\uC9C0 \uC54A\uC740 \uCD5C\uADFC \uCF54\uD638\uD2B8\uB294 \uBD84\uBAA8\uC5D0\uC11C \uC81C\uC678\uD569\uB2C8\uB2E4.",
32982
+ promptSnippet: "\uC794\uC874\uC728\uC744 \uC815\uC758\uD560 \uB54C \uC2DC\uC791 \uAE30\uC900 \uD589\uB3D9, \uBCF5\uADC0\uB85C \uC778\uC815\uD560 \uC7AC\uBC29\uBB38 \uD589\uB3D9, \uACC4\uC0B0 \uBC29\uC2DD(N-Day\xB7\uAD6C\uAC04\xB7\uB204\uC801), \uADF8\uB9AC\uACE0 \uACBD\uACFC\uC77C \uBBF8\uB3C4\uB2EC \uCF54\uD638\uD2B8 \uC81C\uC678 \uADDC\uCE59\uC744 \uBA3C\uC800 \uACE0\uC815\uD558\uC138\uC694."
32983
+ },
32984
+ en: {
32985
+ definition: "The percentage of users from an initial cohort who return to perform a qualifying action at or within a later elapsed interval. Results vary meaningfully depending on whether retention uses exact N-Day, bracketed-window, or unbounded logic.",
32986
+ example: "An education app measures Day-7 retention as the share of first-lesson completers who launch a practice session on Day 7, excluding cohorts younger than seven days.",
32987
+ promptSnippet: "Specify the cohort start event, qualifying return action, retention mode (exact N-Day, bracket, or unbounded), and exclusion of immature cohorts when reporting retention rates."
32988
+ }
32989
+ }
32990
+ },
32991
+ "attribution-window": {
32992
+ aliases: {
32993
+ ko: ["\uC5B4\uD2B8\uB9AC\uBDF0\uC158 \uC708\uB3C4\uC6B0", "\uC131\uACFC \uC778\uC815 \uC720\uD6A8 \uAE30\uAC04", "\uC804\uD658 \uADC0\uC18D \uAE30\uAC04"],
32994
+ en: ["attribution lookback window", "conversion window", "lookback window"]
32995
+ },
32996
+ text: {
32997
+ ko: {
32998
+ definition: "\uAD11\uACE0 \uD074\uB9AD, \uCEA0\uD398\uC778 \uB178\uCD9C, \uC54C\uB9BC \uC5F4\uB78C \uAC19\uC740 \uC811\uC810 \uBC1C\uC0DD \uD6C4 \uBA70\uCE60 \uB610\uB294 \uBA87 \uC2DC\uAC04 \uC774\uB0B4\uC5D0 \uC77C\uC5B4\uB09C \uC804\uD658\uAE4C\uC9C0 \uADF8 \uC811\uC810\uC758 \uC131\uACFC\uB85C \uC778\uC815\uD560\uC9C0 \uC815\uD558\uB294 \uC720\uD6A8 \uC2DC\uAC04 \uBC94\uC704\uC785\uB2C8\uB2E4. \uAE30\uAC04\uC744 \uB108\uBB34 \uC9E7\uAC8C \uC7A1\uC73C\uBA74 \uC219\uACE0\uD615 \uC804\uD658\uC774 \uB204\uB77D\uB418\uACE0, \uB108\uBB34 \uAE38\uAC8C \uC7A1\uC73C\uBA74 \uBB34\uAD00\uD55C \uC7AC\uBC29\uBB38\uAE4C\uC9C0 \uACFC\uB300 \uADC0\uC18D\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
32999
+ example: "\uC774\uBA54\uC77C \uC628\uBCF4\uB529 \uC54C\uB9BC \uB9C1\uD06C\uB97C \uD074\uB9AD\uD55C \uB4A4 7\uC77C \uC774\uB0B4\uC5D0 \uC720\uB8CC \uD50C\uB79C\uC744 \uD65C\uC131\uD654\uD55C \uC804\uD658\uB9CC \uD574\uB2F9 \uCEA0\uD398\uC778 \uC131\uACFC\uB85C \uADC0\uC18D\uD558\uACE0, 7\uC77C \uC774\uD6C4 \uC804\uD658\uC740 \uC9C1\uC811 \uC720\uC785 \uB610\uB294 \uCD5C\uADFC \uC811\uC810\uC73C\uB85C \uBD84\uB958\uD569\uB2C8\uB2E4.",
33000
+ promptSnippet: "\uC804\uD658 \uADC0\uC18D\uC774\uB098 \uD37C\uB110 \uC5F0\uACC4\uB97C \uACC4\uC0B0\uD560 \uB54C \uD074\uB9AD\xB7\uB178\uCD9C \uAE30\uC900\uBCC4 \uAE30\uC5EC \uC778\uC815 \uAE30\uAC04(\uC608: 24\uC2DC\uAC04, 7\uC77C, 30\uC77C)\uACFC \uB3D9\uC77C \uC804\uD658\uC5D0 \uC5EC\uB7EC \uC811\uC810\uC774 \uACB9\uCE60 \uB54C\uC758 \uC6B0\uC120 \uADC0\uC18D \uADDC\uCE59\uC744 \uBA85\uC2DC\uD558\uC138\uC694."
33001
+ },
33002
+ en: {
33003
+ definition: "The bounded time horizon after a touchpoint\u2014such as an ad click, email open, or view\u2014during which a subsequent conversion is credited to that touchpoint. Too short a window misses considered decisions, while overly long windows inflate attribution.",
33004
+ example: "Subscriptions activated within 7 days of clicking an onboarding email are attributed to that email touchpoint, while conversions after day 7 fall outside the window.",
33005
+ promptSnippet: "Configure an explicit attribution window per touchpoint type (e.g., 1-day view, 7-day click) alongside tie-breaking rules when multiple touchpoints precede one conversion."
33006
+ }
33007
+ }
33008
+ },
33009
+ "anomaly-detection": {
33010
+ aliases: {
33011
+ ko: ["\uC9C0\uD45C \uAE09\uBCC0 \uAC10\uC9C0", "\uC774\uC0C1 \uC9D5\uD6C4 \uD0D0\uC9C0", "\uC784\uACC4\uCE58 \uC774\uD0C8 \uAC10\uC9C0"],
33012
+ en: ["anomaly alerting", "outlier detection", "metric spike detection"]
33013
+ },
33014
+ text: {
33015
+ ko: {
33016
+ definition: "\uAE30\uC900\uC120\uC774\uB098 \uACC4\uC808\uC131 \uD328\uD134\uC5D0\uC11C \uBC97\uC5B4\uB09C \uC9C0\uD45C \uAE09\uC99D\xB7\uAE09\uB77D\xB7\uC624\uB958\uC728 \uC0C1\uC2B9 \uAC19\uC740 \uBE44\uC815\uC0C1 \uBCC0\uB3D9\uC744 \uC790\uB3D9\uC73C\uB85C \uC2DD\uBCC4\uD574 \uC54C\uB9BC\uC774\uB098 \uC810\uAC80 \uD750\uB984\uC73C\uB85C \uC5F0\uACB0\uD558\uB294 \uBD84\uC11D \uAE30\uBC95\uC785\uB2C8\uB2E4. \uB300\uC2DC\uBCF4\uB4DC UI(User Interface)\uB294 \uC784\uACC4\uCE58 \uBBF8\uB9AC\uBCF4\uAE30\uB098 \uC810\uAC80 \uAD6C\uAC04 \uACBD\uBCF4 \uC77C\uC2DC \uC911\uC9C0\uB97C \uB2E4\uB8E8\uBA70, \uC2E4\uC81C \uC2DC\uACC4\uC5F4 \uBE44\uAD50\xB7\uD3C9\uAC00\xB7\uC54C\uB9BC \uBC1C\uC1A1\uC740 \uBC31\uC5D4\uB4DC \uBAA8\uB2C8\uD130\uB9C1 \uD30C\uC774\uD504\uB77C\uC778\uC5D0\uC11C \uC218\uD589\uD569\uB2C8\uB2E4.",
33017
+ example: "\uACB0\uC81C \uC2E4\uD328\uC728\uC774\uB098 \uAC00\uC785 \uAE09\uAC10\uC774 \uCD5C\uADFC 14\uC77C \uC774\uB3D9 \uAE30\uC900 \uBC94\uC704\uB97C 3\uD45C\uC900\uD3B8\uCC28 \uC774\uC0C1 \uBC97\uC5B4\uB098\uBA74 \uC6B4\uC601 \uCC44\uB110\uB85C \uC774\uC0C1 \uACBD\uBCF4\uB97C \uBCF4\uB0B4\uACE0, \uC608\uC815\uB41C \uBC30\uD3EC\xB7\uC810\uAC80 \uC2DC\uAC04\uC5D0\uB294 \uC77C\uC2DC \uC911\uC9C0(Mute) \uADDC\uCE59\uC73C\uB85C \uC624\uD0D0 \uC54C\uB9BC\uC744 \uC5B5\uC81C\uD569\uB2C8\uB2E4.",
33018
+ promptSnippet: "\uC774\uC0C1\uCE58 \uAC10\uC9C0 \uAE30\uB2A5\uC774\uB098 \uACBD\uBCF4 \uADDC\uCE59 UI\uB97C \uC124\uACC4\uD560 \uB54C \uB300\uC2DC\uBCF4\uB4DC\uC758 \uC784\uACC4\uCE58\xB7\uC77C\uC2DC \uC911\uC9C0 \uC124\uC815\uACFC \uC11C\uBC84 \uCE21 \uD3C9\uAC00 \uD30C\uC774\uD504\uB77C\uC778\uC744 \uAD6C\uBD84\uD558\uACE0, \uBE44\uAD50 \uAE30\uC900 \uAD6C\uAC04, \uCD5C\uC18C \uD45C\uBCF8 \uC870\uAC74, \uC911\uBCF5 \uC54C\uB9BC \uC5B5\uC81C\xB7\uC7AC\uC54C\uB9BC \uADDC\uCE59\uC744 \uBA85\uC2DC\uD558\uC138\uC694."
33019
+ },
33020
+ en: {
33021
+ definition: "Identifying unexpected spikes, drops, or error-rate deviations in metrics relative to historical baselines or thresholds so teams can investigate early. Dashboard UI handles threshold configuration and maintenance-window muting, while continuous evaluation and alert dispatch run in backend monitoring jobs.",
33022
+ example: "When checkout failure rate deviates sharply from its trailing baseline outside a scheduled maintenance mute window, a server rule emits an alert once minimum event volume is met.",
33023
+ promptSnippet: "Distinguish anomaly-rule configuration UI from backend evaluation pipelines, defining baseline lookback periods, minimum volume guards, maintenance-window muting, and alert deduplication."
33024
+ }
33025
+ }
33026
+ },
33027
+ "guardrail-metric": {
33028
+ aliases: {
33029
+ ko: ["\uBC29\uC5B4 \uC9C0\uD45C", "\uC548\uC804\uC7A5\uCE58 \uC9C0\uD45C", "\uC2E4\uD5D8 \uAC00\uB4DC\uB808\uC77C"],
33030
+ en: ["guardrail metrics", "safety metric", "counter-metric"]
33031
+ },
33032
+ text: {
33033
+ ko: {
33034
+ definition: "\uC8FC\uC694 \uBAA9\uD45C \uC9C0\uD45C\uAC00 \uC62C\uB77C\uAC00\uB294 \uAC83\uCC98\uB7FC \uBCF4\uC5EC\uB3C4 \uD398\uC774\uC9C0 \uC9C0\uC5F0, \uC624\uB958\uC728 \uAE09\uC99D, \uD658\uBD88\xB7\uD574\uC9C0 \uC99D\uAC00\uCC98\uB7FC \uC11C\uBE44\uC2A4 \uAC74\uAC15\uC131\uACFC \uC0AC\uC6A9\uC790 \uACBD\uD5D8\uC744 \uD574\uCE58\uC9C0 \uC54A\uB294\uC9C0 \uD568\uAED8 \uAC10\uC2DC\uD558\uB294 \uD558\uD55C\xB7\uC0C1\uD55C \uAE30\uC900 \uC9C0\uD45C\uC785\uB2C8\uB2E4. \uAE30\uB2A5 \uCD9C\uC2DC\uB098 \uC2E4\uD5D8\uC5D0\uC11C \uBAA9\uD45C \uC9C0\uD45C\uAC00 \uAC1C\uC120\uB418\uB354\uB77C\uB3C4 \uAC00\uB4DC\uB808\uC77C \uC9C0\uD45C\uAC00 \uD5C8\uC6A9 \uBC94\uC704\uB97C \uBC97\uC5B4\uB098\uBA74 \uBC30\uD3EC\uB97C \uBCF4\uB958\uD558\uAC70\uB098 \uB418\uB3CC\uB9BD\uB2C8\uB2E4.",
33035
+ example: "\uCD94\uCC9C \uBC30\uB108 \uB178\uCD9C\uC744 \uB298\uB824 \uD074\uB9AD\uB960\uC740 8% \uC0C1\uC2B9\uD588\uC9C0\uB9CC \uD398\uC774\uC9C0 LCP(Largest Contentful Paint) 95\uBC31\uBD84\uC704 \uC9C0\uC5F0\uACFC \uACE0\uAC1D \uBD88\uB9CC \uBB38\uC758\uC728\uC774 \uAC00\uB4DC\uB808\uC77C \uC784\uACC4\uCE58\uB97C \uB118\uC5B4 \uB864\uC544\uC6C3\uC744 \uC911\uB2E8\uD569\uB2C8\uB2E4.",
33036
+ promptSnippet: "\uC131\uACF5 \uC9C0\uD45C\uB9CC \uB2E8\uB3C5 \uD3C9\uAC00\uD558\uC9C0 \uB9D0\uACE0 \uC624\uB958\uC728, \uC751\uB2F5 \uC9C0\uC5F0, \uCDE8\uC18C\xB7\uD658\uBD88\uB960, \uC774\uD0C8 \uBB38\uC758 \uB4F1 \uD6FC\uC190\uB418\uC5B4\uC11C\uB294 \uC548 \uB420 \uAC00\uB4DC\uB808\uC77C \uC9C0\uD45C\uC640 \uD5C8\uC6A9 \uC784\uACC4\uCE58\uB97C \uD568\uAED8 \uC815\uC758\uD574 \uC2E4\uD5D8\xB7\uBC30\uD3EC \uD310\uB2E8\uC5D0 \uBC18\uC601\uD558\uC138\uC694."
33037
+ },
33038
+ en: {
33039
+ definition: "Metrics monitored alongside primary success goals to ensure a change or experiment does not degrade system reliability, page speed, error rates, or customer trust. Even if the primary metric improves, breaching a guardrail metric halts or rolls back the rollout.",
33040
+ example: "A new recommendation module raised click-through rate, but triggered a rollback because p95 latency and support complaint rate crossed their pre-set guardrail thresholds.",
33041
+ promptSnippet: "Pair every launch or experiment target with explicit guardrail metrics\u2014such as error rate, tail latency, refunds, or unsubscribe spikes\u2014and document the rollback threshold for each."
33042
+ }
33043
+ }
33044
+ },
33045
+ "data-freshness": {
33046
+ aliases: {
33047
+ ko: ["\uB370\uC774\uD130 \uBC18\uC601 \uC9C0\uC5F0", "\uC9D1\uACC4 \uCD5C\uC2E0\uC131", "\uCD5C\uC2E0 \uAC31\uC2E0 \uC2DC\uAC01"],
33048
+ en: ["freshness", "data latency", "refresh lag"]
33049
+ },
33050
+ text: {
33051
+ ko: {
33052
+ definition: "\uC2E4\uC81C \uC774\uBCA4\uD2B8\uAC00 \uBC1C\uC0DD\uD55C \uC2DC\uC810\uBD80\uD130 \uBD84\uC11D \uB300\uC2DC\uBCF4\uB4DC\uB098 \uB9AC\uD3EC\uD2B8 \uC870\uD68C \uACB0\uACFC\uC5D0 \uADF8 \uB370\uC774\uD130\uAC00 \uBC18\uC601\uB418\uAE30\uAE4C\uC9C0 \uAC78\uB9AC\uB294 \uC2DC\uAC04\uACFC \uD604\uC7AC \uAE30\uC900 \uC2DC\uC810\uC758 \uCD5C\uC2E0 \uC815\uB3C4\uC785\uB2C8\uB2E4. \uC2E4\uC2DC\uAC04 \uC9C0\uD45C\uC640 \uBC30\uCE58 \uC9D1\uACC4 \uC9C0\uD45C\uB294 \uBC18\uC601 \uC8FC\uAE30\uAC00 \uB2E4\uB974\uBBC0\uB85C \uD654\uBA74\uC5D0 \uB9C8\uC9C0\uB9C9 \uAC31\uC2E0 \uC2DC\uAC01\uACFC \uBBF8\uC9D1\uACC4 \uAD6C\uAC04\uC744 \uD568\uAED8 \uD45C\uC2DC\uD574\uC57C \uC624\uD310\uC744 \uB9C9\uC2B5\uB2C8\uB2E4.",
33053
+ example: '\uB9E4\uC2DC\uAC04 \uC815\uAC01 \uBC30\uCE58\uAC00 \uB3C4\uB294 \uB9E4\uCD9C \uB300\uC2DC\uBCF4\uB4DC \uC0C1\uB2E8\uC5D0 "\uB9C8\uC9C0\uB9C9 \uC9D1\uACC4: 14:00 KST (\uCD5C\uB300 60\uBD84 \uC9C0\uC5F0)" \uBC30\uC9C0\uB97C \uD45C\uAE30\uD574 \uBC29\uAE08 \uBC1C\uC0DD\uD55C \uC8FC\uBB38\uC774 \uBE60\uC9C4 \uC0C1\uD0DC\uB97C \uC7A5\uC560\uB85C \uC624\uC778\uD558\uC9C0 \uC54A\uAC8C \uD569\uB2C8\uB2E4.',
33054
+ promptSnippet: "\uC9C0\uD45C \uD654\uBA74\uACFC \uB9AC\uD3EC\uD2B8\uC5D0\uB294 \uAE30\uB300 \uB370\uC774\uD130 \uCD5C\uC2E0\uC131(\uC608: \uC2E4\uC2DC\uAC04, 15\uBD84, \uC77C \uBC30\uCE58)\uACFC \uB9C8\uC9C0\uB9C9 \uC9D1\uACC4 \uC644\uB8CC \uC2DC\uAC01\uC744 \uD568\uAED8 \uB178\uCD9C\uD558\uACE0, \uC544\uC9C1 \uC9D1\uACC4\uAC00 \uB05D\uB098\uC9C0 \uC54A\uC740 \uCD5C\uC2E0 \uC2DC\uAC04\uB300\uB294 \uC9C4\uD589 \uC911 \uC0C1\uD0DC\uC784\uC744 \uAD6C\uBD84\uD574 \uD45C\uC2DC\uD558\uC138\uC694."
33055
+ },
33056
+ en: {
33057
+ definition: "How recently analytics pipelines have ingested and processed source events relative to the present moment. Because streaming and batch pipelines update on different schedules, dashboards should display the last completed refresh timestamp and mark incomplete intervals.",
33058
+ example: 'An hourly sales report displays "Updated at 14:00 UTC (up to 60m pipeline lag)" so stakeholders do not mistake expected batch delay for dropped orders.',
33059
+ promptSnippet: "Display expected data freshness and the last completed aggregation timestamp on dashboards, clearly distinguishing partial current-day intervals from finalized metrics."
33060
+ }
33061
+ }
33062
+ },
33063
+ "metric-definition": {
33064
+ aliases: {
33065
+ ko: ["\uC9C0\uD45C \uC0B0\uC2DD \uBA85\uC138", "KPI \uC815\uC758\uC11C", "\uBA54\uD2B8\uB9AD \uC815\uC758"],
33066
+ en: ["metric spec", "metric formula", "KPI definition"]
33067
+ },
33068
+ text: {
33069
+ ko: {
33070
+ definition: "\uD2B9\uC815 \uC9C0\uD45C\uB97C \uACC4\uC0B0\uD558\uAE30 \uC704\uD55C \uC774\uBCA4\uD2B8 \uC18C\uC2A4, \uD544\uD130 \uC870\uAC74, \uC81C\uC678 \uB300\uC0C1(\uD14C\uC2A4\uD2B8 \uACC4\uC815\xB7\uBD07\xB7\uCDE8\uC18C \uAC74), \uBD84\uC790\xB7\uBD84\uBAA8, \uC911\uBCF5 \uC81C\uAC70 \uB2E8\uC704, \uC2DC\uAC04\uB300\uB97C \uBA85\uBB38\uD654\uD55C \uAE30\uC900 \uBB38\uC11C\uC785\uB2C8\uB2E4. \uAC19\uC740 \uC6A9\uC5B4\uB97C \uC4F0\uB354\uB77C\uB3C4 \uD300\uB9C8\uB2E4 \uC9C0\uD45C \uC815\uC758\uAC00 \uB2E4\uB974\uBA74 \uBCF4\uACE0\uC11C\uB9C8\uB2E4 \uC218\uCE58\uAC00 \uC5B4\uAE0B\uB098 \uC758\uC0AC\uACB0\uC815 \uC2E0\uB8B0\uAC00 \uAE68\uC9D1\uB2C8\uB2E4.",
33071
+ example: '"\uC6D4\uAC04 \uACB0\uC81C \uC644\uB8CC \uB9E4\uCD9C" \uC815\uC758\uC11C\uC5D0 \uD658\uBD88\xB7\uCDE8\uC18C \uAC74 \uC81C\uC678 \uC5EC\uBD80, \uBD80\uAC00\uC138 \uD3EC\uD568 \uC5EC\uBD80, \uACB0\uC81C \uC2B9\uC778 \uC2DC\uAC01 \uAE30\uC900 \uC2DC\uAC04\uB300(Asia/Seoul), \uB0B4\uBD80 QA(Quality Assurance) \uACC4\uC815 \uD544\uD130 \uC870\uAC74\uC744 \uD568\uAED8 \uAE30\uB85D\uD569\uB2C8\uB2E4.',
33072
+ promptSnippet: "\uC0C8 \uC9C0\uD45C\uB098 \uB300\uC2DC\uBCF4\uB4DC \uCE74\uB4DC\uB97C \uAD6C\uD604\uD558\uAE30 \uC804\uC5D0 \uC774\uBCA4\uD2B8\uBA85, \uD3EC\uD568\xB7\uC81C\uC678 \uD544\uD130, \uC911\uBCF5 \uC81C\uAC70 \uD0A4, \uBD84\uC790\xB7\uBD84\uBAA8 \uC0B0\uC2DD, \uAE30\uC900 \uC2DC\uAC04\uB300, \uB2E8\uC704(\uAC74\uC218\xB7\uBE44\uC728\xB7\uAE08\uC561)\uB97C \uD3EC\uD568\uD55C \uC9C0\uD45C \uC815\uC758 \uBA85\uC138\uB97C \uBA3C\uC800 \uD655\uC815\uD558\uC138\uC694."
33073
+ },
33074
+ en: {
33075
+ definition: "A canonical specification documenting the source events, inclusion and exclusion filters, deduplication key, numerator/denominator formula, timezone, and rounding rules for a metric. Shared definitions prevent different dashboards from reporting conflicting numbers under the same label.",
33076
+ example: 'The "Net Paid Orders" metric spec explicitly records currency normalization, test-account exclusion, UTC day boundaries, and whether canceled orders are deducted at cancellation or order time.',
33077
+ promptSnippet: "Establish a written metric definition covering source events, exclusions (bots, QA, refunds), deduplication unit, exact formula, and timezone before implementing charts or exports."
33078
+ }
33079
+ }
33080
+ },
33081
+ "success-criteria": {
30597
33082
  aliases: {
30598
- ko: ["\uC2A4\uCF08\uB808\uD1A4 UI", "\uBF08\uB300 \uD654\uBA74", "\uB85C\uB529 \uD50C\uB808\uC774\uC2A4\uD640\uB354", "\uC790\uB9AC \uC720\uC9C0 \uB85C\uB529", "\uB85C\uB529 \uC911 \uD68C\uC0C9 \uBC15\uC2A4"],
30599
- en: ["skeleton screen", "skeleton placeholder", "loading placeholder", "shimmer skeleton", "content placeholder"]
33083
+ ko: ["\uC644\uB8CC\xB7\uC131\uACFC \uAE30\uC900", "\uCD9C\uC2DC \uC131\uACF5 \uC870\uAC74", "\uD569\uACA9 \uAE30\uC900"],
33084
+ en: ["acceptance success criteria", "launch criteria", "target threshold"]
30600
33085
  },
30601
33086
  text: {
30602
33087
  ko: {
30603
- definition: "\uB370\uC774\uD130\uAC00 \uB3C4\uCC29\uD558\uAE30 \uC804 \uCD5C\uC885 \uCE74\uB4DC\uB098 \uBAA9\uB85D\uACFC \uAC19\uC740 \uD06C\uAE30\xB7\uBC30\uCE58\uC758 \uBE48 \uBF08\uB300 \uBC15\uC2A4\uB97C \uBA3C\uC800 \uBCF4\uC5EC \uC8FC\uC5B4 \uD654\uBA74\uC774 \uAC11\uC790\uAE30 \uBC00\uB9AC\uC9C0 \uC54A\uAC8C \uD558\uB294 \uB85C\uB529 \uD328\uD134\uC785\uB2C8\uB2E4.",
30604
- example: "\uC0C1\uD488 \uBAA9\uB85D\uC744 \uBD88\uB7EC\uC624\uB294 \uB3D9\uC548 \uC378\uB124\uC77C \uC0AC\uAC01\uD615\uACFC \uB450 \uC904\uC9DC\uB9AC \uD68C\uC0C9 \uB9C9\uB300\uB97C \uC2E4\uC81C \uCE74\uB4DC \uB192\uC774 \uADF8\uB300\uB85C \uBA3C\uC800 \uB744\uC6CC \uB450\uACE0, \uB370\uC774\uD130\uAC00 \uC624\uBA74 \uAC19\uC740 \uC790\uB9AC\uC5D0\uC11C \uCF58\uD150\uCE20\uB85C \uBC14\uAFC9\uB2C8\uB2E4. UI \uB370\uBAA8\uB294 \uD615\uD0DC \uC804\uD658 \uC2DC\uC5F0\uC774\uBA70 \uC2E4\uC81C \uB124\uD2B8\uC6CC\uD06C \uC694\uCCAD\uC744 \uC218\uD589\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
30605
- promptSnippet: "\uB370\uC774\uD130 \uB85C\uB529 \uC911\uC5D0\uB294 \uCD5C\uC885 \uCF58\uD150\uCE20\uC640 \uB3D9\uC77C\uD55C \uB192\uC774\xB7\uACA9\uC790 \uBE44\uC728\uC744 \uAC00\uC9C4 \uC2A4\uCF08\uB808\uD1A4 \uD50C\uB808\uC774\uC2A4\uD640\uB354\uB97C \uBA3C\uC800 \uB80C\uB354\uB9C1\uD558\uACE0, aria-busy\uC640 \uBD80\uB4DC\uB7EC\uC6B4 \uBD88\uD22C\uBA85\uB3C4 \uB610\uB294 \uC2DC\uBA38 \uC804\uD658\uC73C\uB85C \uB808\uC774\uC544\uC6C3 \uBC00\uB9BC(CLS) \uC5C6\uC774 \uC2E4\uC81C \uCF58\uD150\uCE20\uB85C \uAD50\uCCB4\uD574 \uC918. prefers-reduced-motion\uC5D0\uC11C\uB294 \uC560\uB2C8\uBA54\uC774\uC158\uC744 \uBA48\uCDB0 \uC918."
33088
+ definition: '\uAE30\uB2A5, \uC2E4\uD5D8, \uC628\uBCF4\uB529, \uD559\uC2B5 \uACFC\uC81C\uAC00 \uC758\uB3C4\uD55C \uBAA9\uC801\uC744 \uB2EC\uC131\uD588\uB2E4\uACE0 \uD310\uB2E8\uD558\uAE30 \uC704\uD574 \uC791\uC5C5 \uC2DC\uC791 \uC804\uC5D0 \uD569\uC758\uD558\uB294 \uAD6C\uCCB4\uC801\uC774\uACE0 \uCE21\uC815 \uAC00\uB2A5\uD55C \uAE30\uC900\uC785\uB2C8\uB2E4. \uBAA8\uD638\uD55C "\uAC1C\uC120" \uB300\uC2E0 \uBAA9\uD45C \uC218\uCE58, \uD3C9\uAC00 \uAE30\uAC04, \uD568\uAED8 \uCDA9\uC871\uD574\uC57C \uD560 \uC81C\uC57D \uC870\uAC74\uC744 \uBA85\uC2DC\uD574 \uC0AC\uD6C4 \uAE30\uC900 \uBCC0\uACBD\uC744 \uB9C9\uC2B5\uB2C8\uB2E4.',
33089
+ example: '\uAC80\uC0C9 \uAC1C\uD3B8\uC758 \uC131\uACF5 \uAE30\uC900\uC744 "\uCD9C\uC2DC \uD6C4 2\uC8FC\uAC04 \uBB34\uACB0\uACFC \uAC80\uC0C9 \uBE44\uC728 25% \uAC10\uC18C, \uAC80\uC0C9 \uD6C4 \uACB0\uACFC \uD074\uB9AD\uB960 \uC720\uC9C0, \uAC80\uC0C9 API p95 \uC751\uB2F5 300ms \uC774\uD558"\uB85C \uC0AC\uC804\uC5D0 \uD655\uC815\uD569\uB2C8\uB2E4.',
33090
+ promptSnippet: "\uD504\uB85C\uC81D\uD2B8\xB7\uC2E4\uD5D8\xB7\uAE30\uB2A5 \uC791\uC5C5\uC758 \uC131\uACF5 \uAE30\uC900\uC744 \uC815\uD560 \uB54C\uB294 \uCE21\uC815 \uC9C0\uD45C, \uBAA9\uD45C \uBCC0\uD654\uB7C9 \uB610\uB294 \uC808\uB300 \uC784\uACC4\uAC12, \uD3C9\uAC00 \uAE30\uAC04, \uADF8\uB9AC\uACE0 \uD6FC\uC190\uD558\uBA74 \uC548 \uB418\uB294 \uC81C\uC57D \uC870\uAC74\uC744 \uC2E4\uD589 \uC804\uC5D0 \uBA85\uC2DC\uD558\uC138\uC694."
30606
33091
  },
30607
33092
  en: {
30608
- definition: "A loading pattern that renders low-fidelity wireframe blocks matching the final layout dimensions before data arrives, preventing sudden layout shifts.",
30609
- example: "While a product feed fetches, show an avatar circle and two text bars inside the exact final card height, then swap them for real items in place. UI demos illustrate the visual transition without performing real network fetches.",
30610
- promptSnippet: 'While content is loading, render skeleton placeholders matching the exact height and grid proportions of the final layout with aria-busy="true", then swap in loaded content without layout shift while respecting prefers-reduced-motion.'
33093
+ definition: "Specific, measurable thresholds agreed upon before launch to decide whether a feature, experiment, or workflow achieved its intended outcome. Setting clear target values, evaluation windows, and constraints upfront prevents moving the goalposts afterward.",
33094
+ example: "A search redesign defines success criteria beforehand as reducing zero-result searches by 25% over 14 days while keeping result click-through steady and p95 latency under 300ms.",
33095
+ promptSnippet: "Define measurable success criteria upfront by pairing target metrics, required improvement or threshold values, evaluation duration, and non-regression constraints."
30611
33096
  }
30612
33097
  }
30613
33098
  },
30614
- "empty-state": {
33099
+ "churn-rate": {
30615
33100
  aliases: {
30616
- ko: ["\uBE48 \uD654\uBA74", "\uACB0\uACFC \uC5C6\uC74C \uD654\uBA74", "\uB370\uC774\uD130 \uC5C6\uC74C \uC548\uB0B4", "\uCD08\uAE30 \uBE48 \uC0C1\uD0DC", "\uAC80\uC0C9 \uACB0\uACFC \uC5C6\uC744 \uB54C"],
30617
- en: ["no results state", "zero state", "blank slate", "no data screen", "empty list fallback"]
33101
+ ko: ["\uACE0\uAC1D \uC774\uD0C8\uB960", "\uD574\uC9C0\uC728", "\uAD6C\uB3C5 \uCDE8\uC18C\uC728", "\uB9E4\uCD9C \uC774\uD0C8\uB960"],
33102
+ en: ["customer churn", "attrition rate", "cancellation rate", "revenue churn"]
30618
33103
  },
30619
33104
  text: {
30620
33105
  ko: {
30621
- definition: "\uC544\uC9C1 \uC0DD\uC131\uB41C \uD56D\uBAA9\uC774 \uC5C6\uAC70\uB098 \uAC80\uC0C9\xB7\uD544\uD130 \uC870\uAC74\uC5D0 \uB9DE\uB294 \uACB0\uACFC\uAC00 0\uAC74\uC77C \uB54C, \uC774\uC720\uC640 \uB2E4\uC74C \uD589\uB3D9\uC744 \uC548\uB0B4\uD574 \uC0AC\uC6A9\uC790\uAC00 \uB9C9\uD788\uC9C0 \uC54A\uAC8C \uB3D5\uB294 UI \uC0C1\uD0DC\uC785\uB2C8\uB2E4.",
30622
- example: '\uAC80\uC0C9\uC5B4\uC5D0 \uB9DE\uB294 \uB178\uD2B8\uAC00 \uC5C6\uC744 \uB54C \uBE48 \uC5EC\uBC31\uB9CC \uB0A8\uAE30\uB294 \uB300\uC2E0 "\uAC80\uC0C9 \uACB0\uACFC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4" \uBB38\uAD6C\uC640 [\uAC80\uC0C9\uC5B4 \uC9C0\uC6B0\uAE30] \uBC84\uD2BC\uC744 \uD568\uAED8 \uB450\uC5B4 \uBC14\uB85C \uC804\uCCB4 \uBAA9\uB85D\uC73C\uB85C \uB3CC\uC544\uAC08 \uC218 \uC788\uAC8C \uD569\uB2C8\uB2E4.',
30623
- promptSnippet: "\uBAA9\uB85D\uC774\uB098 \uAC80\uC0C9 \uACB0\uACFC\uAC00 \uBE44\uC5B4 \uC788\uC744 \uB54C \uB2E8\uC21C\uD788 \uBE48 \uD654\uBA74\uC744 \uB450\uC9C0 \uB9D0\uACE0, \uCC98\uC74C \uC0DD\uC131 \uC804\uC778\uC9C0 \uD544\uD130/\uAC80\uC0C9 \uACB0\uACFC 0\uAC74\uC778\uC9C0 \uC6D0\uC778\uC744 \uD55C \uC904\uB85C \uC54C\uB9B0 \uB4A4 [\uAC80\uC0C9 \uCD08\uAE30\uD654] \uB610\uB294 [\uC0C8 \uD56D\uBAA9 \uB9CC\uB4E4\uAE30] \uAC19\uC740 \uBCF5\uAD6C \uBC84\uD2BC\uC744 \uBC14\uB85C \uC81C\uACF5\uD574 \uC918."
33106
+ definition: "\uD2B9\uC815 \uAE30\uAC04 \uC2DC\uC791 \uC2DC\uC810\uC5D0 \uC720\uC9C0\uB418\uACE0 \uC788\uB358 \uACE0\uAC1D \uB610\uB294 \uBC18\uBCF5 \uB9E4\uCD9C(MRR) \uAC00\uC6B4\uB370 \uAE30\uAC04 \uC885\uB8CC \uC2DC\uC810\uAE4C\uC9C0 \uD574\uC9C0\xB7\uB9CC\uB8CC\uB85C \uBE60\uC838\uB098\uAC04 \uBE44\uC728\uC785\uB2C8\uB2E4. \uACE0\uAC1D \uC218 \uAE30\uC900(Logo Churn)\uACFC \uB9E4\uCD9C \uAE08\uC561 \uAE30\uC900(Revenue Churn), \uADF8\uB9AC\uACE0 \uD574\uC9C0 \uC694\uCCAD \uC2DC\uC810\uC774 \uC544\uB2CC \uC2E4\uC81C \uB9CC\uB8CC \uC2DC\uC810 \uC911 \uC5B4\uB5A4 \uAE30\uC900\uC73C\uB85C \uC9D1\uACC4\uD558\uB294\uC9C0 \uD1B5\uC77C\uD574\uC57C \uD569\uB2C8\uB2E4.",
33107
+ example: "\uC6D4\uCD08 \uC720\uB8CC \uAD6C\uB3C5 \uD300 500\uACF3 \uC911 \uD574\uB2F9 \uC6D4\uC5D0 \uAC31\uC2E0\uD558\uC9C0 \uC54A\uACE0 \uB9CC\uB8CC\uB41C 15\uACF3\uC744 \uC9D1\uACC4\uD574 \uC6D4\uAC04 \uACE0\uAC1D \uC774\uD0C8\uB960 3%\uB85C \uBCF4\uACE0\uD558\uB418, \uC77C\uC2DC\uC815\uC9C0(Pause) \uACC4\uC815\uC740 \uD574\uC9C0\uC640 \uBCC4\uB3C4\uB85C \uAD6C\uBD84\uD574 \uCD94\uC801\uD569\uB2C8\uB2E4.",
33108
+ promptSnippet: "\uC774\uD0C8\uB960(Churn Rate) \uB300\uC2DC\uBCF4\uB4DC\xB7\uC9C0\uD45C \uBA85\uC138\uC5D0\uC11C\uB294 \uACE0\uAC1D \uC218 \uC774\uD0C8\uACFC \uB9E4\uCD9C(MRR) \uC774\uD0C8 \uAD6C\uBD84, \uD574\uC9C0 \uC2E0\uCCAD\uC77C vs \uC2E4\uC81C \uB9CC\uB8CC\uC77C \uAE30\uC900, \uC77C\uC2DC\uC815\uC9C0\xB7\uC2E0\uADDC \uAC00\uC785\uC790 \uBD84\uBAA8 \uD3EC\uD568 \uC5EC\uBD80\uB97C \uBA3C\uC800 \uBA85\uD655\uD788 \uC815\uC758\uD558\uC138\uC694."
30624
33109
  },
30625
33110
  en: {
30626
- definition: "A dedicated UI state shown when a collection has no items yet or a search/filter returns zero matches, explaining why and offering a clear next action.",
30627
- example: 'When a search finds no matching notes, show a concise "No matching results" message paired with a [Clear search] button that restores the list and returns focus to the search input.',
30628
- promptSnippet: "Provide a purposeful empty state that distinguishes first-time creation from zero search/filter results, displays a concise status message, and includes a primary recovery action such as resetting filters or creating the first item."
33111
+ definition: "The percentage of active customers or recurring revenue lost over a defined period through cancellations or non-renewals. Reporting must clarify logo churn versus revenue churn and whether paused accounts or mid-period signups enter the denominator.",
33112
+ example: "Out of 500 active subscriptions at the start of the month, 15 expire without renewing, yielding 3% monthly logo churn while paused accounts are tracked separately.",
33113
+ promptSnippet: "Document churn rate definitions explicitly\u2014separating customer churn from MRR churn, cancellation request date from effective end date, and paused or new mid-period accounts from the starting cohort."
30629
33114
  }
30630
33115
  }
30631
33116
  },
30632
- "inline-validation": {
33117
+ "activation-metric": {
30633
33118
  aliases: {
30634
- ko: ["\uC2E4\uC2DC\uAC04 \uC785\uB825 \uAC80\uC0AC", "\uC785\uB825\uCC3D \uC624\uB958 \uD45C\uC2DC", "\uC778\uB77C\uC778 \uC5D0\uB7EC", "\uC785\uB825 \uC544\uB798 \uBE68\uAC04 \uC548\uB0B4", "\uD3FC \uC989\uC2DC \uAC80\uC99D"],
30635
- en: ["inline form validation", "field-level validation", "live field error", "input error feedback"]
33119
+ ko: ["\uD65C\uC131\uD654 \uC9C0\uD45C", "\uC544\uD558 \uBAA8\uBA3C\uD2B8 \uC9C0\uD45C", "\uC2E0\uADDC \uC0AC\uC6A9\uC790 \uC548\uCC29\uB960", "\uCCAB \uAC00\uCE58 \uB3C4\uB2EC\uB960"],
33120
+ en: ["user activation", "activation rate", "aha moment metric", "time to value"]
30636
33121
  },
30637
33122
  text: {
30638
33123
  ko: {
30639
- definition: "\uD3FC \uC804\uCCB4\uB97C \uC81C\uCD9C\uD558\uAE30 \uC804\uC774\uB098 \uAC01 \uC785\uB825 \uD544\uB4DC\uB97C \uBC97\uC5B4\uB09C \uC9C1\uD6C4, \uD574\uB2F9 \uC785\uB825\uCC3D \uBC14\uB85C \uC544\uB798\uC5D0 \uC624\uB958 \uC6D0\uC778\uACFC \uC218\uC815 \uC870\uAC74\uC744 \uC989\uC2DC \uD45C\uC2DC\uD558\uB294 \uAC80\uC99D \uBC29\uC2DD\uC785\uB2C8\uB2E4.",
30640
- example: "\uD68C\uC6D0\uAC00\uC785 \uC774\uBA54\uC77C \uC785\uB825\uCC3D\uC5D0\uC11C \uD3EC\uCEE4\uC2A4\uB97C \uC62E\uAE34 \uB4A4 \uD615\uC2DD\uC774 \uD2C0\uB838\uC744 \uB54C\uB9CC \uC785\uB825\uCC3D \uC544\uB798\uC5D0 \uBE68\uAC04 \uC548\uB0B4 \uBB38\uAD6C\uC640 aria-invalid \uC0C1\uD0DC\uB97C \uB744\uC6B0\uACE0, \uC62C\uBC14\uB974\uAC8C \uACE0\uCE58\uBA74 \uBC14\uB85C \uD574\uC81C\uD569\uB2C8\uB2E4. \uC774\uB294 \uD074\uB77C\uC774\uC5B8\uD2B8 \uC785\uB825 \uC548\uB0B4\uC774\uBA70 \uC2E4\uC81C \uC11C\uBC84 \uC911\uBCF5 \uD655\uC778\uC774\uB098 \uBCF4\uC548 \uAC80\uC99D\uC744 \uB300\uCCB4\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
30641
- promptSnippet: "\uC785\uB825 \uD544\uB4DC\uB294 \uCCAB blur \uB610\uB294 \uC81C\uCD9C \uC2DC\uC810\uBD80\uD130 \uC720\uD6A8\uC131\uC744 \uAC80\uC0AC\uD574 \uC624\uB958 \uBB38\uAD6C\uB97C \uC785\uB825\uCC3D \uBC14\uB85C \uC544\uB798\uC5D0 \uD45C\uC2DC\uD558\uACE0 aria-invalid \uBC0F aria-describedby\uB85C \uC5F0\uACB0\uD574 \uC918. \uC218\uC815 \uC911 \uC624\uB958\uAC00 \uD574\uC18C\uB418\uBA74 \uC989\uC2DC \uC815\uC0C1 \uC0C1\uD0DC\uB85C \uBCF5\uAD6C\uD558\uB418, \uD0C0\uC774\uD551 \uCCAB \uAE00\uC790\uBD80\uD130 \uC131\uAE09\uD788 \uACBD\uACE0\uB97C \uB744\uC6B0\uC9C0 \uB9C8."
33124
+ definition: "\uC2E0\uADDC \uAC00\uC785\uC790\uAC00 \uB2E8\uC21C \uD68C\uC6D0 \uB4F1\uB85D\uC5D0\uC11C \uBA48\uCD94\uC9C0 \uC54A\uACE0 \uC11C\uBE44\uC2A4\uC758 \uD575\uC2EC \uAC00\uCE58\uB97C \uCC98\uC74C\uC73C\uB85C \uACBD\uD5D8\uD588\uB2E4\uACE0 \uD310\uB2E8\uD558\uB294 \uD589\uB3D9 \uC644\uB8CC \uBE44\uC728\uACFC \uC18C\uC694 \uC2DC\uAC04\uC785\uB2C8\uB2E4. \uB2E8\uC21C \uB85C\uADF8\uC778\uC774\uB098 \uC774\uBA54\uC77C \uC778\uC99D\uC774 \uC544\uB2C8\uB77C \uC7A5\uAE30 \uC794\uC874\uC728\uACFC \uC0C1\uAD00\uC774 \uB192\uC740 \uC2E4\uC81C \uC0AC\uC6A9 \uB9C8\uC77C\uC2A4\uD1A4\uC744 \uAE30\uC900\uC73C\uB85C \uC7A1\uC2B5\uB2C8\uB2E4.",
33125
+ example: "\uD611\uC5C5 \uD234\uC5D0\uC11C \uAC00\uC785 \uD6C4 7\uC77C \uC774\uB0B4\uC5D0 \uCCAB \uBCF4\uB4DC\uB97C \uB9CC\uB4E4\uACE0 \uD300\uC6D0 1\uBA85 \uC774\uC0C1\uC744 \uCD08\uB300\uD55C \uBE44\uC728\uC744 \uCD08\uAE30 \uC548\uCC29 \uC9C0\uD45C\uB85C \uB450\uACE0, \uC628\uBCF4\uB529 \uCCB4\uD06C\uB9AC\uC2A4\uD2B8\uC758 \uAC01 \uB2E8\uACC4 \uC774\uD0C8\uACFC \uC5F0\uACB0\uD574 \uC810\uAC80\uD569\uB2C8\uB2E4.",
33126
+ promptSnippet: "\uCD08\uAE30 \uC548\uCC29 \uC9C0\uD45C(Activation Metric)\uB97C \uC124\uACC4\uD560 \uB54C\uB294 \uB2E8\uC21C \uAC00\uC785\uC774 \uC544\uB2C8\uB77C \uC11C\uBE44\uC2A4 \uD575\uC2EC \uAC00\uCE58\uB97C \uCCB4\uD5D8\uD55C \uAD6C\uCCB4\uC801 \uD589\uB3D9 \uC870\uD569\uACFC \uD310\uB2E8 \uAE30\uD55C(\uC608: \uAC00\uC785 \uD6C4 7\uC77C \uC774\uB0B4)\uC744 \uC815\uD558\uACE0 \uC628\uBCF4\uB529 \uB2E8\uACC4\uBCC4 \uC804\uD658 \uD37C\uB110\uACFC \uC5F0\uACB0\uD558\uC138\uC694."
30642
33127
  },
30643
33128
  en: {
30644
- definition: "Field-level validation that displays error reasons and fix guidance directly beside or beneath the relevant input after blur or submission rather than waiting for a separate error page.",
30645
- example: "Wait until a user blurs the email field before showing an inline format error linked via aria-describedby, then clear the error immediately once corrected. Client-side checks improve usability and never replace real server-side validation.",
30646
- promptSnippet: "Validate each input on blur or submit (not prematurely on the first keystroke), render concise error text directly below the field linked with aria-invalid and aria-describedby, and clear it immediately when fixed."
33129
+ definition: "The percentage of new signups who complete the key milestone or set of actions that demonstrates core product value within a target timeframe, strongly predicting long-term retention.",
33130
+ example: "Track the share of newly created workspaces that publish their first project and invite at least one teammate within 7 days of signup.",
33131
+ promptSnippet: "Define your activation metric around concrete value-realizing actions within a bounded post-signup window rather than passive logins, and pair it with onboarding step drop-offs."
30647
33132
  }
30648
33133
  }
30649
33134
  },
30650
- "progressive-disclosure": {
33135
+ "north-star-metric": {
30651
33136
  aliases: {
30652
- ko: ["\uB2E8\uACC4\uC801 \uC815\uBCF4 \uB178\uCD9C", "\uD544\uC694\uD560 \uB54C \uD3BC\uCE58\uAE30", "\uC544\uCF54\uB514\uC5B8 \uD3BC\uCE68", "\uACE0\uAE09 \uC635\uC158 \uC811\uAE30", "\uC815\uBCF4 \uACC4\uCE35\uD654"],
30653
- en: ["gradual reveal", "expandable details", "on-demand details", "collapsible details", "layered disclosure"]
33137
+ ko: ["\uD575\uC2EC \uB098\uCE68\uBC18 \uC9C0\uD45C", "\uB300\uD45C \uC131\uACFC \uC9C0\uD45C", "\uB178\uC2A4 \uC2A4\uD0C0 \uBA54\uD2B8\uB9AD", "\uC7A5\uAE30 \uAC00\uCE58 \uC9C0\uD45C"],
33138
+ en: ["NSM", "North Star Metric", "top-level product metric", "core value metric"]
30654
33139
  },
30655
33140
  text: {
30656
33141
  ko: {
30657
- definition: "\uCC98\uC74C\uC5D0\uB294 \uD575\uC2EC \uC815\uBCF4\uC640 \uAE30\uBCF8 \uC870\uC791\uB9CC \uAC04\uACB0\uD558\uAC8C \uBCF4\uC5EC \uC8FC\uACE0, \uC138\uBD80 \uC124\uBA85\xB7\uACE0\uAE09 \uC124\uC815\xB7\uBD80\uC18D \uD56D\uBAA9\uC740 \uC0AC\uC6A9\uC790\uAC00 \uC694\uCCAD\uD560 \uB54C \uD3BC\uCCD0 \uBCF4\uC5EC \uC8FC\uB294 \uC815\uBCF4 \uC124\uACC4 \uC6D0\uCE59\uC785\uB2C8\uB2E4.",
30658
- example: "\uC8FC\uBB38 \uD45C\uC5D0\uC11C\uB294 \uC8FC\uBB38\uBC88\uD638\uC640 \uC0C1\uD0DC\uB9CC \uAE30\uBCF8 \uD589\uC5D0 \uD45C\uC2DC\uD558\uACE0, \uC0C1\uC138 \uD589 \uD655\uC7A5 \uBC84\uD2BC\uC744 \uB20C\uB800\uC744 \uB54C\uB9CC \uBC30\uC1A1\uC9C0\xB7\uACB0\uC81C \uC218\uB2E8\xB7\uCC98\uB9AC \uC774\uB825\uC744 \uC544\uB798\uB85C \uD3BC\uCCD0 \uD654\uBA74 \uBCF5\uC7A1\uB3C4\uB97C \uB0AE\uCDA5\uB2C8\uB2E4.",
30659
- promptSnippet: "\uCD08\uAE30 \uD654\uBA74\uC5D0\uB294 \uD575\uC2EC \uC815\uBCF4\uC640 \uC8FC\uC694 \uC561\uC158\uB9CC \uB178\uCD9C\uD558\uACE0, \uBD80\uAC00 \uC124\uBA85\uC774\uB098 \uACE0\uAE09 \uC635\uC158\uC740 native button \uD1A0\uAE00(aria-expanded, aria-controls)\uB85C \uD544\uC694\uD560 \uB54C\uB9CC \uD3BC\uCCD0\uC9C0\uB3C4\uB85D \uC810\uC9C4\uC801 \uACF5\uAC1C \uAD6C\uC870\uB85C \uAD6C\uC131\uD574 \uC918."
33142
+ definition: "\uC81C\uD488\uC774 \uACE0\uAC1D\uC5D0\uAC8C \uC804\uB2EC\uD558\uB294 \uD575\uC2EC \uAC00\uCE58\uC640 \uC7A5\uAE30 \uBE44\uC988\uB2C8\uC2A4 \uC131\uACFC\uB97C \uD558\uB098\uC758 \uB300\uD45C \uC9C0\uD45C\uB85C \uC694\uC57D\uD574, \uC5EC\uB7EC \uAE30\uB2A5 \uD300\uC774 \uAC19\uC740 \uBC29\uD5A5\uC744 \uBCF4\uACE0 \uC6B0\uC120\uC21C\uC704\uB97C \uB9DE\uCD94\uB3C4\uB85D \uB3D5\uB294 \uCD5C\uC0C1\uC704 \uC9C0\uD45C\uC785\uB2C8\uB2E4. \uD398\uC774\uC9C0\uBDF0 \uAC19\uC740 \uD5C8\uC601 \uC9C0\uD45C(Vanity Metric)\uB97C \uD53C\uD558\uACE0 \uAC00\uB4DC\uB808\uC77C \uC9C0\uD45C\uC640 \uC9DD\uC9C0\uC5B4 \uADE0\uD615\uC744 \uC7A1\uC2B5\uB2C8\uB2E4.",
33143
+ example: '\uBB38\uC11C \uD611\uC5C5 \uD50C\uB7AB\uD3FC\uC774 \uCD1D \uAC00\uC785\uC790 \uC218 \uB300\uC2E0 "\uC8FC\uAC04 3\uBA85 \uC774\uC0C1\uC774 \uD568\uAED8 \uD3B8\uC9D1\uD55C \uD65C\uC131 \uBB38\uC11C \uC218"\uB97C \uBD81\uADF9\uC131 \uC9C0\uD45C\uB85C \uC0BC\uACE0, \uB85C\uB529 \uC18D\uB3C4\uC640 \uC624\uB958\uC728\uC744 \uAC00\uB4DC\uB808\uC77C\uB85C \uAC10\uC2DC\uD569\uB2C8\uB2E4.',
33144
+ promptSnippet: "\uBD81\uADF9\uC131 \uC9C0\uD45C(North Star Metric)\uC640 \uD558\uC704 \uBD84\uD574 \uD2B8\uB9AC\uB97C \uC124\uACC4\uD560 \uB54C \uC0AC\uC6A9\uC790 \uAC00\uCE58 \uC804\uB2EC\uC744 \uBC18\uC601\uD558\uB294 \uB300\uD45C \uC0B0\uC2DD\uC744 \uC815\uD558\uACE0, \uB2E8\uAE30 \uACFC\uCD5C\uC801\uD654\uB97C \uB9C9\uC744 \uAC00\uB4DC\uB808\uC77C \uC9C0\uD45C \uBC0F \uC138\uBD80 \uC785\uB825 \uC9C0\uD45C\uB97C \uD568\uAED8 \uC5F0\uACB0\uD558\uC138\uC694."
30660
33145
  },
30661
33146
  en: {
30662
- definition: "An interaction principle that shows only essential options upfront and reveals secondary details or advanced settings only when the user asks for them.",
30663
- example: "Show order ID and status in each summary row, and expand shipping address and item breakdown only when the user toggles the row disclosure button.",
30664
- promptSnippet: "Keep the default view focused on primary information and reveal secondary details or advanced controls on demand using accessible disclosure toggles (aria-expanded and aria-controls)."
33147
+ definition: "A single overarching metric capturing the core value a product delivers to customers and driving sustainable business growth, aligning cross-functional teams while balanced by guardrail metrics.",
33148
+ example: 'Instead of raw signups, a collaboration app chooses "weekly documents co-edited by 3+ teammates" as its North Star Metric alongside reliability guardrails.',
33149
+ promptSnippet: "Pair a North Star Metric that reflects genuine customer value (not vanity pageviews) with measurable driver inputs and protective guardrail metrics."
30665
33150
  }
30666
33151
  }
30667
33152
  },
30668
- "toast-and-snackbar": {
33153
+ "sample-quota": {
30669
33154
  aliases: {
30670
- ko: ["\uD1A0\uC2A4\uD2B8 \uC54C\uB9BC", "\uC2A4\uB0B5\uBC14 \uC54C\uB9BC", "\uC2E4\uD589 \uCDE8\uC18C \uBC30\uB108", "\uC7A0\uAE50 \uB728\uB294 \uC54C\uB9BC", "\uD558\uB2E8 \uC54C\uB9BC \uBC14"],
30671
- en: ["toast notification", "snackbar", "undo snackbar", "ephemeral notification", "status toast"]
33155
+ ko: ["\uC124\uBB38 \uD560\uB2F9\uB7C9", "\uC751\uB2F5\uC790 \uCFFC\uD130", "\uC138\uADF8\uBA3C\uD2B8\uBCC4 \uBAA9\uD45C \uD45C\uBCF8 \uC218", "\uD560\uB2F9 \uB9C8\uAC10"],
33156
+ en: ["survey quota", "respondent quota", "quota cap", "sampling quota"]
30672
33157
  },
30673
33158
  text: {
30674
33159
  ko: {
30675
- definition: "\uC0AC\uC6A9\uC790 \uC791\uC5C5\uC758 \uACB0\uACFC\uB098 \uC9E7\uC740 \uC0C1\uD0DC \uBCC0\uD654\uB97C \uD604\uC7AC \uD654\uBA74 \uD750\uB984\uC744 \uB04A\uC9C0 \uC54A\uACE0 \uD654\uBA74 \uBAA8\uC11C\uB9AC\uC5D0 \uC7A0\uAE50 \uB744\uC6CC \uC54C\uB9AC\uAC70\uB098 \uC2E4\uD589 \uCDE8\uC18C \uC561\uC158\uC744 \uC81C\uACF5\uD558\uB294 \uC77C\uC2DC\uC801 \uD53C\uB4DC\uBC31 \uCEF4\uD3EC\uB10C\uD2B8\uC785\uB2C8\uB2E4.",
30676
- example: '\uBB38\uC11C\uB97C \uBCF4\uAD00\uD568\uC73C\uB85C \uC62E\uAE34 \uC9C1\uD6C4 \uD558\uB2E8\uC5D0 "\uBB38\uC11C 1\uAC74\uC744 \uBCF4\uAD00\uD588\uC2B5\uB2C8\uB2E4 [\uC2E4\uD589 \uCDE8\uC18C]" \uC2A4\uB0B5\uBC14\uB97C \uB744\uC6CC \uC791\uC5C5\uC744 \uD655\uC778\uC2DC\uCF1C \uC8FC\uACE0, \uC2E4\uC218\uD55C \uACBD\uC6B0 \uBC14\uB85C \uB418\uB3CC\uB9B4 \uC218 \uC788\uAC8C \uD569\uB2C8\uB2E4.',
30677
- promptSnippet: '\uC791\uC5C5 \uC644\uB8CC\uB098 \uB418\uB3CC\uB9AC\uAE30 \uAC00\uB2A5\uD55C \uC0AD\uC81C \uD53C\uB4DC\uBC31\uC740 \uBAA8\uB2EC\uB85C \uD750\uB984\uC744 \uB9C9\uC9C0 \uB9D0\uACE0 role="status"\uB97C \uAC16\uCD98 \uD1A0\uC2A4\uD2B8/\uC2A4\uB0B5\uBC14\uB85C \uD45C\uC2DC\uD574 \uC918. \uC2E4\uD589 \uCDE8\uC18C \uBC84\uD2BC\uC774 \uC788\uB2E4\uBA74 \uD0A4\uBCF4\uB4DC \uD3EC\uCEE4\uC2A4\uC640 \uCDA9\uBD84\uD55C \uB300\uAE30 \uC2DC\uAC04\uC744 \uBCF4\uC7A5\uD574 \uC918.'
33160
+ definition: "\uC124\uBB38\uC870\uC0AC\uB098 \uC0AC\uC6A9\uC790 \uB9AC\uC11C\uCE58\uC5D0\uC11C \uC5F0\uB839\uB300\xB7\uC9C1\uAD70\xB7\uC694\uAE08\uC81C \uAC19\uC740 \uC138\uBD80 \uC138\uADF8\uBA3C\uD2B8\uBCC4 \uC751\uB2F5\uC774 \uD55C\uCABD\uC5D0 \uCE58\uC6B0\uCE58\uC9C0 \uC54A\uB3C4\uB85D \uBAA9\uD45C \uD45C\uBCF8 \uC218\uB97C \uD560\uB2F9\uD558\uACE0, \uD2B9\uC815 \uAD6C\uAC04\uC758 \uD560\uB2F9\uB7C9\uC774 \uCC28\uBA74 \uCD94\uAC00 \uC751\uB2F5\uC744 \uB9C8\uAC10\uD558\uAC70\uB098 \uB300\uCCB4 \uACBD\uB85C\uB85C \uC548\uB0B4\uD558\uB294 \uC81C\uC5B4 \uAE30\uC900\uC785\uB2C8\uB2E4.",
33161
+ example: "\uC720\uB8CC \uD50C\uB79C 200\uBA85, \uBB34\uB8CC \uD50C\uB79C 200\uBA85 \uBAA9\uD45C \uC124\uBB38\uC5D0\uC11C \uBB34\uB8CC \uD50C\uB79C \uC751\uB2F5\uC774 \uBA3C\uC800 200\uAC74\uC5D0 \uB3C4\uB2EC\uD558\uBA74 \uBB34\uB8CC \uD50C\uB79C \uC751\uB2F5\uC790\uB9CC \uC815\uC911\uD788 \uB9C8\uAC10 \uC548\uB0B4 \uD654\uBA74\uC73C\uB85C \uBD84\uAE30\uD558\uACE0 \uC720\uB8CC \uD50C\uB79C \uC218\uC9D1\uC740 \uACC4\uC18D \uC5F4\uC5B4 \uB461\uB2C8\uB2E4.",
33162
+ promptSnippet: "\uD45C\uBCF8 \uD560\uB2F9\uB7C9(Sample Quota)\uC774 \uC788\uB294 \uC124\uBB38\xB7\uB9AC\uC11C\uCE58 \uD750\uB984\uC5D0\uC11C\uB294 \uC751\uB2F5 \uD655\uC815 \uC2DC\uC810\uC758 \uC6D0\uC790\uC801 \uCE74\uC6B4\uD2B8 \uCC28\uAC10, \uC9C4\uD589 \uC911 \uC774\uD0C8\uB85C \uC778\uD55C \uBBF8\uC644\uB8CC \uC2AC\uB86F \uCC98\uB9AC, \uD560\uB2F9 \uCD08\uACFC \uC2DC \uC6B0\uD68C/\uB9C8\uAC10 \uC548\uB0B4\uB97C \uC124\uACC4\uD558\uC138\uC694."
30678
33163
  },
30679
33164
  en: {
30680
- definition: "A non-blocking temporary banner or floating message used to confirm an action or offer an immediate Undo option without interrupting the user\u2019s current flow.",
30681
- example: 'After archiving a document, display a bottom snackbar saying "Archived 1 document" with an [Undo] button instead of interrupting with a full-screen dialog.',
30682
- promptSnippet: 'Surface non-blocking action confirmations as a toast or snackbar inside an accessible live region (role="status"), ensuring any Undo action remains keyboard-reachable before dismissal.'
33165
+ definition: "Per-segment response caps used in surveys or research studies to ensure balanced representation across cohorts\u2014automatically closing or routing incoming respondents once a segment reaches its target count.",
33166
+ example: "Once the 200-response quota for free-tier users fills, new free-tier entrants receive a polite quota-full notice while paid-tier collection stays open.",
33167
+ promptSnippet: "Implement sample quotas with atomic capacity checks on final submission, clear handling for in-progress drafts when a quota closes, and transparent quota-reached messaging."
30683
33168
  }
30684
33169
  }
30685
33170
  },
30686
- "command-palette": {
33171
+ "saved-report-view": {
30687
33172
  aliases: {
30688
- ko: ["\uBA85\uB839 \uD314\uB808\uD2B8", "\uBE60\uB978 \uC2E4\uD589\uCC3D", "\uB2E8\uCD95\uD0A4 \uAC80\uC0C9\uCC3D", "Cmd+K \uBA54\uB274", "\uC2AC\uB798\uC2DC \uBA85\uB839\uCC3D"],
30689
- en: ["quick launcher", "command menu", "Cmd+K palette", "action switcher", "slash command menu"]
33173
+ ko: ["\uC800\uC7A5\uB41C \uBCF4\uAE30", "\uB9DE\uCDA4 \uD544\uD130 \uBDF0", "\uB300\uC2DC\uBCF4\uB4DC \uD504\uB9AC\uC14B", "\uACF5\uC720 \uB9AC\uD3EC\uD2B8 \uBDF0"],
33174
+ en: ["saved view", "report preset", "saved filter view", "custom dashboard view"]
30690
33175
  },
30691
33176
  text: {
30692
33177
  ko: {
30693
- definition: "\uD0A4\uBCF4\uB4DC \uB2E8\uCD95\uD0A4(\uC608: Cmd/Ctrl+K)\uB098 `/` \uC785\uB825\uC73C\uB85C \uC5F4\uC5B4 \uD398\uC774\uC9C0 \uC774\uB3D9, \uAC80\uC0C9, \uAE30\uB2A5 \uC2E4\uD589\uC744 \uB9C8\uC6B0\uC2A4 \uC5C6\uC774 \uBE60\uB974\uAC8C \uCC98\uB9AC\uD558\uB294 \uD1B5\uD569 \uAC80\uC0C9\uD615 \uBA85\uB839\uCC3D\uC785\uB2C8\uB2E4.",
30694
- example: '\uD611\uC5C5 \uD234\uC5D0\uC11C \uC5B4\uB290 \uD654\uBA74\uC5D0 \uC788\uB4E0 Cmd+K\uB97C \uB20C\uB7EC "\uB2E4\uD06C \uBAA8\uB4DC \uC804\uD658", "\uC0C8 \uBB38\uC11C \uB9CC\uB4E4\uAE30", "\uCD5C\uADFC \uD504\uB85C\uC81D\uD2B8 \uC5F4\uAE30"\uB97C \uBC14\uB85C \uAC80\uC0C9\uD558\uACE0 Enter\uB85C \uC2E4\uD589\uD569\uB2C8\uB2E4.',
30695
- promptSnippet: "Cmd/Ctrl+K\uB85C \uC5EC\uB2EB\uC744 \uC218 \uC788\uB294 \uCEE4\uB9E8\uB4DC \uD314\uB808\uD2B8\uB97C \uB9CC\uB4E4\uACE0, \uAC80\uC0C9 \uC785\uB825\uACFC \uBC29\uD5A5\uD0A4(ArrowUp/ArrowDown)\xB7Enter \uC120\uD0DD\xB7Escape \uB2EB\uAE30\xB7\uD3EC\uCEE4\uC2A4 \uBCF5\uADC0\uB97C \uBAA8\uB450 \uD0A4\uBCF4\uB4DC\uB9CC\uC73C\uB85C \uC870\uC791\uD560 \uC218 \uC788\uAC8C \uAD6C\uD604\uD574 \uC918."
33178
+ definition: "\uBD84\uC11D \uB300\uC2DC\uBCF4\uB4DC\uB098 \uB370\uC774\uD130 \uD14C\uC774\uBE14\uC5D0\uC11C \uC0AC\uC6A9\uC790\uAC00 \uC790\uC8FC \uC870\uD569\uD558\uB294 \uAE30\uAC04, \uD544\uD130 \uC870\uAC74, \uC815\uB82C, \uD45C\uC2DC \uC5F4 \uAD6C\uC131\uC744 \uC774\uB984\uACFC \uD568\uAED8 \uC800\uC7A5\uD574 \uB450\uACE0 \uC6D0\uD074\uB9AD\uC73C\uB85C \uB2E4\uC2DC \uBD88\uB7EC\uC624\uAC70\uB098 \uD300\uACFC \uACF5\uC720\uD560 \uC218 \uC788\uB294 \uC0C1\uD0DC \uC2A4\uB0C5\uC0F7\uC785\uB2C8\uB2E4. \uC6D0\uBCF8 \uC2A4\uD0A4\uB9C8\uAC00 \uBC14\uB00C\uAC70\uB098 \uD544\uD130 \uD56D\uBAA9\uC774 \uC0AD\uC81C\uB41C \uACBD\uC6B0\uC5D0\uB3C4 \uC548\uC804\uD558\uAC8C \uAE30\uBCF8\uAC12\uC73C\uB85C \uD3F4\uBC31\uD574\uC57C \uD569\uB2C8\uB2E4.",
33179
+ example: '\uC81C\uD488 \uB9E4\uB2C8\uC800\uAC00 "\uCD5C\uADFC 30\uC77C \uC720\uB8CC \uC804\uD658 \uD37C\uB110(\uBAA8\uBC14\uC77C \uC81C\uC678)" \uD544\uD130\xB7\uC5F4 \uAD6C\uC131\uC744 \uD300 \uACF5\uC720 \uBDF0\uB85C \uC800\uC7A5\uD574 \uB450\uBA74 \uC8FC\uAC04 \uD68C\uC758\uC5D0\uC11C \uB9E4\uBC88 \uD544\uD130\uB97C \uB2E4\uC2DC \uC124\uC815\uD558\uC9C0 \uC54A\uACE0 \uBC14\uB85C \uC5F4\uC5B4 \uD655\uC778\uD569\uB2C8\uB2E4.',
33180
+ promptSnippet: "\uC800\uC7A5\uB41C \uB9AC\uD3EC\uD2B8 \uBCF4\uAE30(Saved View) \uAE30\uB2A5\uC5D0\uB294 URL \uD30C\uB77C\uBBF8\uD130\xB7\uC800\uC7A5 \uC0C1\uD0DC \uB3D9\uAE30\uD654, \uAC1C\uC778/\uD300 \uACF5\uC720 \uBC94\uC704\uC640 \uD3B8\uC9D1 \uAD8C\uD55C \uBD84\uB9AC, \uBCC0\uACBD\uB428(Dirty) \uD45C\uC2DC\uC640 \uB36E\uC5B4\uC4F0\uAE30/\uC0C8 \uC774\uB984\uC73C\uB85C \uC800\uC7A5, \uADF8\uB9AC\uACE0 \uC0AD\uC81C\uB41C \uD544\uD130 \uD544\uB4DC \uBCF5\uC6D0 \uD3F4\uBC31\uC744 \uAD6C\uD604\uD558\uC138\uC694."
30696
33181
  },
30697
33182
  en: {
30698
- definition: "A keyboard-first modal launcher (typically opened via Cmd/Ctrl+K or `/`) that lets users search and trigger navigation, settings, or actions from anywhere.",
30699
- example: 'Press Cmd+K inside a workspace app to filter commands like "Switch theme" or "Open project" and execute them immediately with Enter.',
30700
- promptSnippet: "Build a keyboard-accessible command palette triggered by Cmd/Ctrl+K with live query filtering, ArrowUp/ArrowDown item navigation, Enter execution, Escape dismissal, and focus restoration."
33183
+ definition: "A persisted configuration of date ranges, filters, sorting, and visible columns in an analytics table or report that users can reload in one click or share with teammates, gracefully ignoring obsolete fields if schemas evolve.",
33184
+ example: 'Save "Last 30d Paid Funnel (Desktop)" as a shared team preset so stakeholders reopen the exact slice without rebuilding filters every week.',
33185
+ promptSnippet: 'Build saved report views with clear dirty-state indicators ("Save changes" vs. "Save as new"), personal versus team sharing permissions, URL sync, and graceful fallback when saved filter keys no longer exist.'
30701
33186
  }
30702
33187
  }
30703
- },
30704
- "focus-trap": {
33188
+ }
33189
+ };
33190
+
33191
+ // ../../packages/catalog/src/glossary/business-operations.ts
33192
+ var BUSINESS_OPERATIONS_GLOSSARY_DATA = {
33193
+ "objectives-and-key-results": {
30705
33194
  aliases: {
30706
- ko: ["\uD3EC\uCEE4\uC2A4 \uAC00\uB450\uAE30", "\uBAA8\uB2EC \uD3EC\uCEE4\uC2A4 \uAD00\uB9AC", "\uD0A4\uBCF4\uB4DC \uCD08\uC810 \uACE0\uC815", "\uBAA8\uB2EC \uBC16\uC73C\uB85C \uD3EC\uCEE4\uC2A4 \uC774\uD0C8 \uBC29\uC9C0"],
30707
- en: ["focus containment", "modal focus lock", "dialog focus management", "keyboard focus trap"]
33195
+ ko: ["OKR", "KR", "\uD575\uC2EC \uACB0\uACFC", "\uBAA9\uD45C \uAD00\uB9AC", "\uBAA9\uD45C\uC640 \uD575\uC2EC \uACB0\uACFC"],
33196
+ en: ["OKR", "KR", "key results", "goal framework", "objectives and key results"]
30708
33197
  },
30709
33198
  text: {
30710
33199
  ko: {
30711
- definition: "\uBAA8\uB2EC \uB2E4\uC774\uC5BC\uB85C\uADF8\uB098 \uB4DC\uB85C\uC5B4\uAC00 \uC5F4\uB824 \uC788\uB294 \uB3D9\uC548 Tab \uD0A4 \uC774\uB3D9\uC774 \uBC30\uACBD \uD654\uBA74\uC73C\uB85C \uBE60\uC838\uB098\uAC00\uC9C0 \uC54A\uACE0 \uB2E4\uC774\uC5BC\uB85C\uADF8 \uB0B4\uBD80 \uC694\uC18C\uB4E4 \uC0AC\uC774\uC5D0\uC11C\uB9CC \uC21C\uD658\uD558\uB3C4\uB85D \uC81C\uD55C\uD558\uACE0, \uB2EB\uD790 \uB54C \uC6D0\uB798 \uBC84\uD2BC\uC73C\uB85C \uD3EC\uCEE4\uC2A4\uB97C \uB3CC\uB824\uC8FC\uB294 \uC811\uADFC\uC131 \uAE30\uBC95\uC785\uB2C8\uB2E4.",
30712
- example: "\uC0AD\uC81C \uD655\uC778 \uBAA8\uB2EC\uC744 \uC5F4\uBA74 \uD3EC\uCEE4\uC2A4\uAC00 \uBAA8\uB2EC \uB0B4\uBD80\uB85C \uB4E4\uC5B4\uC624\uACE0 \uBC30\uACBD \uBC84\uD2BC\uC740 \uBE44\uD65C\uC131\uD654\uB418\uBA70, Escape\uB098 \uB2EB\uAE30\uB97C \uB204\uB974\uBA74 \uCC98\uC74C \uBAA8\uB2EC\uC744 \uC5F4\uC5C8\uB358 \uBC84\uD2BC\uC73C\uB85C \uCD08\uC810\uC774 \uB418\uB3CC\uC544\uAC11\uB2C8\uB2E4.",
30713
- promptSnippet: "\uBAA8\uB2EC\uC774\uB098 \uC2DC\uD2B8 \uB2E4\uC774\uC5BC\uB85C\uADF8\uB97C \uAD6C\uD604\uD560 \uB54C native <dialog> showModal() \uB610\uB294 \uD3EC\uCEE4\uC2A4 \uD2B8\uB7A9\uC744 \uC801\uC6A9\uD574 Tab \uD0A4\uAC00 \uBC30\uACBD\uC73C\uB85C \uC0C8\uC9C0 \uC54A\uAC8C \uD558\uACE0, Escape\xB7\uB2EB\uAE30 \uBC84\uD2BC \uC9C0\uC6D0\uACFC \uD568\uAED8 \uB2EB\uD78C \uB4A4 \uD2B8\uB9AC\uAC70 \uC694\uC18C\uB85C \uD3EC\uCEE4\uC2A4\uB97C \uBCF5\uADC0\uC2DC\uCF1C \uC918."
33200
+ definition: "\uB3C4\uC804\uC801\uC778 \uBAA9\uD45C(Objective)\uC640 \uADF8 \uB2EC\uC131 \uC5EC\uBD80\uB97C \uCE21\uC815\uD558\uB294 \uC815\uB7C9\xB7\uAC80\uC99D \uAC00\uB2A5\uD55C \uD575\uC2EC \uACB0\uACFC(Key Result)\uB97C \uC9DD\uC9C0\uC5B4 \uC131\uACFC\uB97C \uCD94\uC801\uD558\uB294 \uBAA9\uD45C \uAD00\uB9AC \uCCB4\uACC4\uC785\uB2C8\uB2E4. \uB2E8\uC21C \uD560 \uC77C(To-do) \uBAA9\uB85D\uACFC \uB2EC\uB9AC \uC791\uC5C5 \uB098\uC5F4\uC774 \uC544\uB2C8\uB77C \uACB0\uACFC \uBCC0\uD654\uC5D0 \uCD08\uC810\uC744 \uB461\uB2C8\uB2E4.",
33201
+ example: '"\uC2E0\uADDC \uC0AC\uC6A9\uC790 \uCCAB \uC8FC \uC548\uCC29 \uACBD\uD5D8 \uAC1C\uC120"\uC744 \uBAA9\uD45C\uB85C \uB450\uACE0, \uD575\uC2EC \uACB0\uACFC\uB85C "\uC628\uBCF4\uB529 \uC644\uB8CC\uC728 \uBCC0\uD654"\uB098 "\uCCAB \uD504\uB85C\uC81D\uD2B8 \uC0DD\uC131 \uBE44\uC911" \uAC19\uC740 \uACB0\uACFC \uC9C0\uD45C\uB97C \uC5F0\uACB0\uD574 \uC9C4\uCC99\uB3C4\uB97C \uC810\uAC80\uD569\uB2C8\uB2E4.',
33202
+ promptSnippet: "\uBAA9\uD45C\uC640 \uD575\uC2EC \uACB0\uACFC(OKR) \uAD00\uB9AC \uD750\uB984\uC744 \uC124\uACC4\uD560 \uB54C \uB3C4\uC804\uC801 \uBAA9\uD45C\uC640 \uCE21\uC815 \uAC00\uB2A5\uD55C \uD575\uC2EC \uACB0\uACFC(KR)\uB97C \uC5F0\uACB0\uD558\uACE0 \uB2E8\uC21C \uC791\uC5C5 \uCCB4\uD06C\uB9AC\uC2A4\uD2B8\uC640 \uAD6C\uBD84\uD558\uB418, \uC870\uC9C1\uB9C8\uB2E4 \uB2E4\uB978 \uBAA9\uD45C \uAC1C\uC218\xB7\uC8FC\uAE30\xB7\uCC44\uC810 \uBC29\uC2DD\uC740 \uACE0\uC815 \uADDC\uCE59\uC73C\uB85C \uAC15\uC81C\uD558\uC9C0 \uB9D0\uC544 \uC918."
30714
33203
  },
30715
33204
  en: {
30716
- definition: "An accessibility pattern that keeps Tab/Shift+Tab keyboard focus inside an active modal dialog or drawer and returns focus to the triggering element when closed.",
30717
- example: "Opening a confirmation dialog traps keyboard navigation inside the modal controls; pressing Escape closes it and restores focus to the button that opened it.",
30718
- promptSnippet: "Use native <dialog> showModal() or an explicit focus trap so Tab navigation stays inside the open modal, support Escape and explicit close controls, and restore focus to the original trigger on close."
33205
+ definition: "A goal-setting framework pairing aspirational Objectives with measurable Key Results (KRs) to track outcome progress rather than listing to-do tasks, without mandating fixed org-specific counts, cadences, or scoring rules.",
33206
+ example: 'Pair an Objective like "Improve first-week new user activation" with measurable outcome KRs such as onboarding completion rate, keeping day-to-day execution tasks tracked separately.',
33207
+ promptSnippet: "Design an Objectives and Key Results (OKR) tracking flow that links aspirational Objectives to measurable Key Results distinct from task lists, keeping target counts, review cadence, and scoring rules configurable per team."
30719
33208
  }
30720
33209
  }
30721
33210
  },
30722
- "virtual-scrolling": {
33211
+ "inventory-allocation": {
30723
33212
  aliases: {
30724
- ko: ["\uBAA9\uB85D \uAC00\uC0C1\uD654", "\uC708\uB3C4\uC789", "\uB300\uC6A9\uB7C9 \uB9AC\uC2A4\uD2B8 \uCD5C\uC801\uD654", "\uBCF4\uC774\uB294 \uC601\uC5ED\uB9CC \uB80C\uB354\uB9C1"],
30725
- en: ["list virtualization", "windowing", "virtual list", "windowed rendering"]
33213
+ ko: ["\uC7AC\uACE0 \uC120\uC810", "\uC8FC\uBB38 \uC7AC\uACE0 \uD560\uB2F9", "\uAC00\uC6A9 \uC7AC\uACE0 \uC608\uC57D", "\uC7AC\uACE0 \uD640\uB4DC"],
33214
+ en: ["stock allocation", "inventory reservation", "inventory hold", "stock commitment"]
30726
33215
  },
30727
33216
  text: {
30728
33217
  ko: {
30729
- definition: "\uC218\uCC9C~\uC218\uB9CC \uAC74\uC758 \uAE34 \uBAA9\uB85D\uC5D0\uC11C \uC804\uCCB4 \uC2A4\uD06C\uB864 \uB192\uC774\uB9CC \uC720\uC9C0\uD55C \uCC44 \uD604\uC7AC \uD654\uBA74 \uBDF0\uD3EC\uD2B8\uC640 \uC57D\uAC04\uC758 \uC5EC\uC720(overscan) \uBC94\uC704\uC5D0 \uB4E4\uC5B4\uC628 \uD589\uB9CC DOM\uC5D0 \uB80C\uB354\uB9C1\uD574 \uC131\uB2A5\uC744 \uC9C0\uD0A4\uB294 \uAE30\uBC95\uC785\uB2C8\uB2E4.",
30730
- example: "10,000\uAC74\uC758 \uB85C\uADF8 \uBAA9\uB85D\uC744 \uD55C \uBC88\uC5D0 DOM\uC5D0 \uC62C\uB9AC\uB294 \uB300\uC2E0 \uD604\uC7AC \uBCF4\uC774\uB294 15\uD589\uACFC \uC704\uC544\uB798 \uC5EC\uC720 10\uD589\uB9CC \uB9C8\uC6B4\uD2B8\uD574 \uC2A4\uD06C\uB864 \uBC84\uBC85\uC784\uC744 \uC904\uC785\uB2C8\uB2E4.",
30731
- promptSnippet: "\uD589 \uC218\uAC00 \uB9CE\uC740 \uAE34 \uBAA9\uB85D\uC5D0\uB294 \uC804\uCCB4 \uC2A4\uD06C\uB864 \uB192\uC774\uB97C \uBE48 \uC2A4\uD398\uC774\uC11C\uB85C \uC720\uC9C0\uD558\uBA74\uC11C \uD604\uC7AC \uBDF0\uD3EC\uD2B8 \uC8FC\uBCC0\uACFC overscan \uD589\uB9CC DOM\uC5D0 \uB80C\uB354\uB9C1\uD558\uB294 \uAC00\uC0C1 \uC2A4\uD06C\uB864\uC744 \uC801\uC6A9\uD558\uACE0, aria-setsize\uC640 aria-posinset\uC73C\uB85C \uC804\uCCB4 \uC21C\uBC88\uC744 \uC720\uC9C0\uD574 \uC918."
33218
+ definition: "\uC8FC\uBB38\uC774 \uC811\uC218\uB418\uAC70\uB098 \uACB0\uC81C\uAC00 \uC9C4\uD589\uB418\uB294 \uB3D9\uC548 \uBCF4\uC720 \uC7AC\uACE0(On-hand) \uAC00\uC6B4\uB370 \uD574\uB2F9 \uC8FC\uBB38 \uBAAB\uC744 \uAC00\uC6A9 \uC7AC\uACE0(Available)\uC5D0\uC11C \uBBF8\uB9AC \uBD84\uB9AC\xB7\uC608\uC57D\uD574 \uB2E4\uB978 \uC8FC\uBB38\uC5D0 \uC911\uBCF5 \uD310\uB9E4\uB418\uC9C0 \uC54A\uAC8C \uD558\uB294 \uBB3C\uB958\xB7\uCEE4\uBA38\uC2A4 \uC7AC\uACE0 \uC81C\uC5B4 \uBC29\uC2DD\uC785\uB2C8\uB2E4. \uACB0\uC81C \uC2DC\uAC04 \uCD08\uACFC\uB098 \uCDE8\uC18C \uC2DC \uC120\uC810\uB41C \uC7AC\uACE0\uB97C \uC989\uC2DC \uAC00\uC6A9 \uC0C1\uD0DC\uB85C \uBC18\uD658\uD574\uC57C \uD488\uC808 \uC624\uD0D0\uC744 \uB9C9\uC2B5\uB2C8\uB2E4.",
33219
+ example: "\uB9C8\uC9C0\uB9C9 \uC7AC\uACE0 1\uAC1C \uC0C1\uD488\uC758 \uACB0\uC81C\uB97C \uC2DC\uC791\uD558\uBA74 10\uBD84\uAC04 \uC784\uC2DC \uD560\uB2F9(Hold) \uC0C1\uD0DC\uB85C \uAC00\uC6A9 \uC218\uB7C9\uC744 0\uC73C\uB85C \uC904\uC774\uACE0, \uACB0\uC81C \uC644\uB8CC \uC2DC \uD655\uC815 \uCC28\uAC10, \uBBF8\uACB0\uC81C \uB9CC\uB8CC \uC2DC \uB2E4\uC2DC 1\uAC1C\uB85C \uBCF5\uC6D0\uD569\uB2C8\uB2E4.",
33220
+ promptSnippet: "\uC7AC\uACE0 \uD560\uB2F9 \uC120\uC810(Inventory Allocation)\uC744 \uAD6C\uD604\uD560 \uB54C\uB294 \uBCF4\uC720\xB7\uD560\uB2F9\xB7\uAC00\uC6A9 \uC218\uB7C9\uC744 \uBD84\uB9AC\uD558\uACE0, \uC6D0\uC790\uC801 \uC870\uAC74\uBD80 \uCC28\uAC10\uACFC \uACB0\uC81C \uB9CC\uB8CC \uC2DC \uC790\uB3D9 \uD574\uC81C \uD0C0\uC774\uBA38, \uCD9C\uACE0 \uCDE8\uC18C \uC2DC \uBCF5\uC6D0 \uACBD\uB85C\uB97C \uD568\uAED8 \uC124\uACC4\uD558\uC138\uC694."
30732
33221
  },
30733
33222
  en: {
30734
- definition: "A rendering optimization that preserves full scroll height while mounting only the visible rows plus a small overscan buffer in the DOM.",
30735
- example: "Instead of rendering 10,000 chat or log rows at once, mount only the ~25 rows near the current scroll position while keeping native scrollbar proportions accurate.",
30736
- promptSnippet: "Virtualize large lists by mounting only visible rows plus an overscan buffer between top/bottom spacer elements, preserving exact scroll height and aria-setsize/aria-posinset semantics."
33223
+ definition: "Reserving specific stock units from available-to-promise inventory when an order enters checkout or fulfillment so concurrent buyers cannot oversell the last item. Timed holds release stock automatically if checkout expires or orders cancel.",
33224
+ example: "When a buyer begins checkout on the final unit, place a 10-minute allocation hold so other shoppers see out-of-stock, releasing the hold automatically if payment never completes.",
33225
+ promptSnippet: "Separate on-hand, allocated, and available inventory counts using atomic conditional reservations, bounded checkout hold TTLs, and automatic release on timeout or cancellation."
30737
33226
  }
30738
33227
  }
30739
- }
30740
- };
30741
-
30742
- // ../../packages/catalog/src/glossary/engineering.ts
30743
- var ENGINEERING_GLOSSARY_DATA = {
30744
- debounce: {
33228
+ },
33229
+ "reverse-logistics": {
30745
33230
  aliases: {
30746
- ko: ["\uB514\uBC14\uC6B4\uC2F1", "\uC785\uB825 \uC9C0\uC5F0 \uD638\uCD9C", "\uD0C0\uC790 \uBA48\uCD98 \uB4A4 \uAC80\uC0C9", "\uC5F0\uC18D \uC785\uB825 \uBB36\uAE30", "API \uD638\uCD9C \uD69F\uC218 \uC904\uC774\uAE30"],
30747
- en: ["debouncing", "input delay", "trailing debounce", "search input throttling"]
33231
+ ko: ["\uC5ED\uBB3C\uB958", "\uBC18\uD488 \uAD50\uD658 \uC218\uAC70", "\uD68C\uC218 \uBC0F \uC7AC\uC785\uACE0", "\uBC18\uD488 \uAC80\uC218 \uBB3C\uB958"],
33232
+ en: ["return logistics", "reverse supply chain", "return pickup and restock", "RMA logistics"]
30748
33233
  },
30749
33234
  text: {
30750
33235
  ko: {
30751
- definition: "\uC5F0\uC18D\uD574\uC11C \uBE60\uB974\uAC8C \uBC1C\uC0DD\uD558\uB294 \uC774\uBCA4\uD2B8\uAC00 \uC77C\uC815 \uC2DC\uAC04 \uB3D9\uC548 \uBA48\uCD98 \uB4A4 \uB9C8\uC9C0\uB9C9 \uD55C \uBC88\uB9CC \uC2E4\uC81C \uD568\uC218\uB97C \uC2E4\uD589\uD558\uB3C4\uB85D \uC9C0\uC5F0\uC2DC\uD0A4\uB294 \uC81C\uC5B4 \uAE30\uBC95\uC785\uB2C8\uB2E4.",
30752
- example: '\uAC80\uC0C9\uCC3D\uC5D0 "\uC2A4\uCF08\uB808\uD1A4"\uC744 \uC785\uB825\uD558\uB294 \uB3D9\uC548 \uAE00\uC790\uB9C8\uB2E4 \uC11C\uBC84 \uC694\uCCAD\uC744 \uBCF4\uB0B4\uC9C0 \uC54A\uACE0, \uC785\uB825\uC774 250ms \uBA48\uCD98 \uB4A4 \uD55C \uBC88\uB9CC \uAC80\uC0C9 API\uB97C \uD638\uCD9C\uD558\uBA70 \uC5B8\uB9C8\uC6B4\uD2B8 \uC2DC \uB300\uAE30 \uD0C0\uC774\uBA38\uB97C \uC815\uB9AC\uD569\uB2C8\uB2E4.',
30753
- promptSnippet: "\uAC80\uC0C9 \uC785\uB825\uC774\uB098 \uC790\uB3D9 \uC800\uC7A5 \uC774\uBCA4\uD2B8\uC5D0\uB294 \uC785\uB825\uC774 \uC77C\uC815 \uC2DC\uAC04(\uC608: 250ms) \uBA48\uCD98 \uB4A4 \uB9C8\uC9C0\uB9C9 \uAC12\uC73C\uB85C\uB9CC \uC2E4\uD589\uB418\uB3C4\uB85D \uB514\uBC14\uC6B4\uC2A4\uB97C \uC801\uC6A9\uD558\uACE0, \uC774\uC804 \uB300\uAE30 \uD0C0\uC774\uBA38\uC640 \uCDE8\uC18C \uAC00\uB2A5\uD55C \uBE44\uB3D9\uAE30 \uC694\uCCAD\uC740 \uC5B8\uB9C8\uC6B4\uD2B8\uB098 \uC0C8 \uC785\uB825 \uC2DC \uC815\uB9AC\uD574 \uC918."
33236
+ definition: "\uACE0\uAC1D\uC5D0\uAC8C \uBC30\uC1A1\uB41C \uC0C1\uD488\uC744 \uBC18\uD488\xB7\uAD50\uD658\xB7\uC218\uB9AC \uC0AC\uC720\uB85C \uB2E4\uC2DC \uC218\uAC70\uD574 \uBB3C\uB958 \uC13C\uD130\uB85C \uC785\uACE0\uD558\uACE0, \uAC80\uC218 \uACB0\uACFC(\uC591\uD488\xB7\uBD88\uB7C9\xB7\uD3D0\uAE30)\uC5D0 \uB530\uB77C \uC7AC\uD310\uB9E4 \uAC00\uB2A5 \uC7AC\uACE0\uB85C \uBCF5\uC6D0\uD558\uAC70\uB098 \uD658\uBD88\xB7\uC7AC\uBC30\uC1A1\uC744 \uC644\uB8CC\uD558\uB294 \uC5ED\uBC29\uD5A5 \uBB3C\uB958 \uD750\uB984\uC785\uB2C8\uB2E4.",
33237
+ example: "\uACE0\uAC1D\uC774 \uBC18\uD488\uC744 \uC2E0\uCCAD\uD558\uBA74 \uD0DD\uBC30 \uD68C\uC218 \uC1A1\uC7A5\uC744 \uBC1C\uAE09\uD558\uACE0, \uC13C\uD130 \uC785\uACE0 \uD6C4 \uAC80\uC218 \uD1B5\uACFC \uC2DC\uC5D0\uB9CC \uAC00\uC6A9 \uC7AC\uACE0\uB85C \uB2E4\uC2DC \uD3B8\uC785\uD558\uBA70 \uD30C\uC190 \uD310\uC815 \uC2DC \uC190\uC0C1 \uC0AC\uC720 \uC0AC\uC9C4\uACFC \uD568\uAED8 \uB300\uCCB4 \uC815\uC0B0\uC744 \uC9C4\uD589\uD569\uB2C8\uB2E4.",
33238
+ promptSnippet: "\uBC18\uD488 \uD68C\uC218 \uBB3C\uB958(Reverse Logistics) \uD750\uB984\uC5D0\uB294 \uD68C\uC218 \uC694\uCCAD\xB7\uC218\uAC70 \uCD94\uC801, \uAC80\uC218 \uB2E8\uACC4(\uC815\uC0C1 \uC7AC\uC785\uACE0\xB7\uD3D0\uAE30\xB7\uBCF4\uB958) \uBD84\uB9AC, \uC120\uD658\uBD88 vs \uAC80\uC218 \uD6C4 \uD658\uBD88 \uC815\uCC45 \uBD84\uAE30, \uADF8\uB9AC\uACE0 \uC7AC\uC785\uACE0 \uC804 \uAC00\uC6A9 \uC7AC\uACE0 \uC624\uBC18\uC601 \uCC28\uB2E8\uC744 \uD3EC\uD568\uD558\uC138\uC694."
30754
33239
  },
30755
33240
  en: {
30756
- definition: "A rate-control technique that delays execution until a burst of rapid events settles for a specified quiet window, running only once with the latest input.",
30757
- example: "Rather than firing an API call on every keystroke while typing a search query, wait 250ms after the last keystroke and cancel pending timers on unmount.",
30758
- promptSnippet: "Debounce high-frequency handlers like search inputs or autosave (e.g., 250ms quiet window) so only the final value triggers work, and clean up pending timers or stale requests on unmount or newer input."
33241
+ definition: "The workflow of retrieving delivered goods from customers for returns, exchanges, or repairs\u2014tracking pickup, inspecting condition at the warehouse, and deciding whether items restock, refurbish, or trigger refunds.",
33242
+ example: "Issue a return pickup label on request, track transit back to the warehouse, and restock into sellable inventory only after inspection passes.",
33243
+ promptSnippet: "Model reverse logistics with pickup tracking, explicit inspection outcomes (restock, damaged, hold), refund-timing policy branching, and strict gating so uninspected returns never auto-restock."
30759
33244
  }
30760
33245
  }
30761
33246
  },
30762
- "optimistic-update": {
33247
+ "split-shipment": {
30763
33248
  aliases: {
30764
- ko: ["\uB099\uAD00\uC801 UI", "\uC120\uBC18\uC601 \uD6C4\uB3D9\uAE30\uD654", "\uC11C\uBC84 \uC751\uB2F5 \uC804\uC5D0 \uD654\uBA74 \uBA3C\uC800 \uBC14\uAFB8\uAE30", "\uC989\uC2DC \uBC18\uC601 \uD6C4 \uC2E4\uD328 \uC2DC \uBCF5\uAD6C"],
30765
- en: ["optimistic UI", "optimistic rendering", "instant UI update with rollback"]
33249
+ ko: ["\uBD80\uBD84 \uCD9C\uACE0", "\uD569\uD3EC\uC7A5 \uBC30\uC1A1", "\uBB36\uC74C \uBC30\uC1A1 \uBD84\uD560", "\uB2E4\uC911 \uC1A1\uC7A5 \uBC30\uC1A1"],
33250
+ en: ["partial shipment", "split delivery", "multi-parcel order", "consolidated shipping"]
30766
33251
  },
30767
33252
  text: {
30768
33253
  ko: {
30769
- definition: "\uC11C\uBC84 \uC694\uCCAD\uC774 \uC131\uACF5\uD560 \uAC83\uC774\uB77C\uACE0 \uAC00\uC815\uD574 UI \uC0C1\uD0DC\uB97C \uBA3C\uC800 \uC989\uC2DC \uBC18\uC601\uD558\uACE0, \uC2E4\uC81C \uC694\uCCAD\uC774 \uC2E4\uD328\uD558\uBA74 \uC774\uC804 \uC0C1\uD0DC\uB85C \uB418\uB3CC\uB9AC\uACE0 \uC624\uB958\uB97C \uC548\uB0B4\uD558\uB294 \uAC31\uC2E0 \uD328\uD134\uC785\uB2C8\uB2E4.",
30770
- example: "\uB313\uAE00 \uC88B\uC544\uC694 \uBC84\uD2BC\uC744 \uB204\uB974\uBA74 \uC989\uC2DC \uD65C\uC131 \uC0C1\uD0DC\uC640 +1\uC744 \uD45C\uC2DC\uD55C \uB4A4 \uC11C\uBC84\uC5D0 \uC800\uC7A5 \uC694\uCCAD\uC744 \uBCF4\uB0B4\uACE0, \uB124\uD2B8\uC6CC\uD06C\uAC00 \uC2E4\uD328\uD558\uBA74 \uC6D0\uB798 \uC22B\uC790\uB85C \uB864\uBC31\uD569\uB2C8\uB2E4. \uC815\uC801 UI \uB370\uBAA8\uB294 \uB85C\uCEEC \uC0C1\uD0DC \uC804\uD658\uB9CC \uC2DC\uC5F0\uD558\uBA70 \uC2E4\uC81C \uC11C\uBC84 \uB864\uBC31\uC744 \uAD6C\uD604\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
30771
- promptSnippet: "\uC88B\uC544\uC694 \uD1A0\uAE00\uC774\uB098 \uC791\uC5C5 \uC0C1\uD0DC \uBCC0\uACBD\uCC98\uB7FC \uCCB4\uAC10 \uC18D\uB3C4\uAC00 \uC911\uC694\uD55C \uC561\uC158\uC5D0\uB294 \uB099\uAD00\uC801 \uC5C5\uB370\uC774\uD2B8\uB97C \uC801\uC6A9\uD574 UI\uB97C \uBA3C\uC800 \uAC31\uC2E0\uD558\uACE0, \uC2E4\uC81C API \uC694\uCCAD\uC774 \uC2E4\uD328\uD558\uBA74 \uC9C1\uC804 \uC2A4\uB0C5\uC0F7\uC73C\uB85C \uB864\uBC31\uD55C \uB4A4 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC624\uB958 \uC548\uB0B4\uB97C \uD45C\uC2DC\uD574 \uC918."
33254
+ definition: "\uD558\uB098\uC758 \uC8FC\uBB38\uC5D0 \uD3EC\uD568\uB41C \uC5EC\uB7EC \uC0C1\uD488\uC774 \uCD9C\uACE0 \uCC3D\uACE0\xB7\uD310\uB9E4\uC790\xB7\uC785\uACE0 \uC77C\uC815\uC774 \uB2E4\uB97C \uB54C \uD488\uBAA9 \uB2E8\uC704\uB85C \uC5EC\uB7EC \uC1A1\uC7A5\uC73C\uB85C \uB098\uB204\uC5B4 \uBA3C\uC800 \uBC1C\uC1A1(\uBD84\uD560 \uBC30\uC1A1)\uD558\uAC70\uB098, \uAC19\uC740 \uCD9C\uACE0\uC9C0 \uC0C1\uD488\uC744 \uD55C \uC0C1\uC790\uB85C \uBAA8\uC544(\uD569\uD3EC\uC7A5) \uBC30\uC1A1\uBE44\uC640 \uC218\uB839 \uD69F\uC218\uB97C \uC904\uC774\uB294 \uCD9C\uACE0 \uC6B4\uC601 \uBC29\uC2DD\uC785\uB2C8\uB2E4.",
33255
+ example: "\uC989\uC2DC \uCD9C\uACE0 \uAC00\uB2A5\uD55C \uC154\uCE20\uC640 3\uC77C \uB4A4 \uC785\uACE0\uB418\uB294 \uAC00\uBC29\uC744 \uD55C \uBC88\uC5D0 \uC8FC\uBB38\uD588\uC744 \uB54C, \uAC01\uAC01 \uBCC4\uB3C4 \uC1A1\uC7A5\uC73C\uB85C \uCD9C\uACE0 \uD604\uD669\uC744 \uCD94\uC801\uD558\uACE0 \uAD6C\uB9E4 \uD655\uC815\xB7\uBD80\uBD84 \uCDE8\uC18C\uB3C4 \uBB36\uC74C \uB0B4 \uD488\uBAA9 \uB2E8\uC704\uB85C \uCC98\uB9AC\uD569\uB2C8\uB2E4.",
33256
+ promptSnippet: "\uBD84\uD560 \uBC30\uC1A1\uACFC \uD569\uD3EC\uC7A5(Split/Consolidated Shipment)\uC744 \uB2E4\uB8F0 \uB54C\uB294 \uC8FC\uBB38(Order)\uACFC \uBC30\uC1A1 \uD328\uD0A4\uC9C0(Shipment)\xB7\uC1A1\uC7A5(Tracking)\uC744 1:N \uAD6C\uC870\uB85C \uBD84\uB9AC\uD574 \uD488\uBAA9\uBCC4 \uC0C1\uD0DC\xB7\uBD80\uBD84 \uCDE8\uC18C\xB7\uBC30\uC1A1\uBE44 \uC815\uC0B0\uC744 \uB3C5\uB9BD \uCD94\uC801\uD558\uC138\uC694."
30772
33257
  },
30773
33258
  en: {
30774
- definition: "An update pattern that immediately applies the expected UI change before the server responds, then confirms on success or rolls back with an error if the request fails.",
30775
- example: "Toggling a heart reaction highlights the button right away while the save request is in flight, rolling back the count if the server rejects it. Static UI demos only toggle local state without real persistence.",
30776
- promptSnippet: "Apply optimistic updates for responsive interactions like reactions or status toggles by updating local state immediately, keeping a previous snapshot to roll back on API failure, and surfacing a clear error."
33259
+ definition: "Fulfilling one customer order across multiple shipments when items reside in different warehouses, come from separate sellers, or have different lead times\u2014or consolidating eligible items into one parcel to save shipping cost.",
33260
+ example: "Split an order containing an in-stock shirt and a backordered bag into two independent shipments with separate tracking numbers and item-level cancellation.",
33261
+ promptSnippet: "Separate order records from 1-to-many shipment packages so each parcel carries its own carrier, tracking status, partial cancellation handling, and shipping fee settlement."
30777
33262
  }
30778
33263
  }
30779
33264
  },
30780
- idempotency: {
33265
+ "proof-of-delivery": {
30781
33266
  aliases: {
30782
- ko: ["\uBA71\uB4F1\uC131 \uD0A4", "\uACB0\uC81C \uB450 \uBC88 \uBC29\uC9C0", "\uC911\uBCF5 \uACB0\uC81C \uB9C9\uAE30", "\uC911\uBCF5 \uC694\uCCAD \uBC29\uC9C0", "\uC7AC\uC2DC\uB3C4 \uC548\uC804\uC131"],
30783
- en: ["idempotency key", "duplicate request prevention", "prevent double charge", "safe retry"]
33267
+ ko: ["POD", "\uC218\uB839 \uC99D\uBE59", "\uBC30\uC1A1 \uC644\uB8CC \uC0AC\uC9C4", "\uC804\uC790 \uC11C\uBA85 \uC778\uC218\uC99D"],
33268
+ en: ["POD", "delivery confirmation proof", "recipient signature photo", "drop-off evidence"]
30784
33269
  },
30785
33270
  text: {
30786
33271
  ko: {
30787
- definition: "\uAC19\uC740 \uC694\uCCAD\uC744 \uB124\uD2B8\uC6CC\uD06C \uC7AC\uC2DC\uB3C4\uB098 \uB354\uBE14 \uD074\uB9AD\uC73C\uB85C \uC5EC\uB7EC \uBC88 \uBCF4\uB0B4\uB354\uB77C\uB3C4 \uC11C\uBC84 \uC0C1\uD0DC\uAC00 \uCC98\uC74C \uD55C \uBC88 \uCC98\uB9AC\uB41C \uAC83\uACFC \uB3D9\uC77C\uD558\uAC8C \uC720\uC9C0\uB418\uB294 \uC131\uC9C8\uC785\uB2C8\uB2E4.",
30788
- example: "\uACB0\uC81C \uC694\uCCAD\uB9C8\uB2E4 \uD074\uB77C\uC774\uC5B8\uD2B8\uAC00 \uACE0\uC720\uD55C Idempotency-Key\uB97C \uD568\uAED8 \uBCF4\uB0B4\uBA74, \uD0C0\uC784\uC544\uC6C3 \uD6C4 \uC7AC\uC804\uC1A1\uD558\uB354\uB77C\uB3C4 \uC11C\uBC84\uAC00 \uC774\uBBF8 \uCC98\uB9AC\uB41C \uB3D9\uC77C \uD0A4\uB97C \uAC10\uC9C0\uD574 \uB450 \uBC88 \uCD9C\uAE08\uD558\uC9C0 \uC54A\uACE0 \uAE30\uC874 \uACB0\uACFC\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4. \uC774\uB294 \uC11C\uBC84\xB7\uC6D0\uC7A5 \uC124\uACC4 \uC6D0\uCE59\uC774\uBA70 \uB2E8\uC21C UI \uBC84\uD2BC \uBE44\uD65C\uC131\uD654\uB9CC\uC73C\uB85C\uB294 \uBCF4\uC7A5\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
30789
- promptSnippet: "\uACB0\uC81C\xB7\uCD9C\uAE08\xB7\uC6F9\uD6C5 \uC7AC\uC2E4\uD589 \uB4F1 \uC911\uBCF5 \uC2E4\uD589\uB418\uBA74 \uC548 \uB418\uB294 \uBCC0\uACBD API\uC5D0\uB294 \uC694\uCCAD\uBCC4 \uACE0\uC720 idempotency key\uB97C \uC800\uC7A5\xB7\uAC80\uC99D\uD574 \uB3D9\uC77C \uD0A4\uC758 \uC7AC\uC2DC\uB3C4\uAC00 \uAE30\uC874 \uCC98\uB9AC \uACB0\uACFC\uB97C \uBC18\uD658\uD558\uB3C4\uB85D \uAD6C\uD604\uD558\uACE0, UI \uBC84\uD2BC \uC81C\uC5B4\uB9CC\uC73C\uB85C \uC911\uBCF5\uC744 \uB9C9\uC73C\uB824 \uD558\uC9C0 \uB9C8."
33272
+ definition: "\uB77C\uC2A4\uD2B8\uB9C8\uC77C \uBC30\uC1A1 \uAE30\uC0AC\uAC00 \uBB3C\uD488\uC744 \uC804\uB2EC\uD55C \uB4A4 \uC218\uB839\uC778 \uC11C\uBA85, \uBB38 \uC55E \uBC30\uCE58 \uC0AC\uC9C4, \uC218\uB839 \uC2DC\uAC01\uACFC GPS \uAE30\uB85D\uC744 \uB0A8\uACA8 \uC2E4\uC81C \uC778\uB3C4\uB97C \uAC1D\uAD00\uC801\uC73C\uB85C \uC99D\uBA85\uD558\uB294 \uC644\uB8CC \uC99D\uBE59 \uB370\uC774\uD130\uC785\uB2C8\uB2E4. \uBD84\uC2E4\xB7\uBBF8\uC218\uB839 \uD074\uB808\uC784 \uBD84\uC7C1 \uD574\uC18C\uC640 \uC815\uC0B0 \uD655\uC815\uC758 \uADFC\uAC70\uB85C \uC4F0\uC774\uBA70 \uAC1C\uC778 \uC8FC\uC18C\xB7\uCD9C\uC785 \uBE44\uBC00\uBC88\uD638 \uB4F1 \uBBFC\uAC10\uC815\uBCF4 \uB178\uCD9C\uC744 \uC81C\uD55C\uD574\uC57C \uD569\uB2C8\uB2E4.",
33273
+ example: "\uBC30\uC1A1 \uC644\uB8CC \uCC98\uB9AC \uC2DC \uAE30\uC0AC\uAC00 \uCD2C\uC601\uD55C \uD604\uC7A5 \uC0AC\uC9C4\uACFC \uC11C\uBA85\uC744 \uBE44\uACF5\uAC1C \uC2A4\uD1A0\uB9AC\uC9C0\uC5D0 \uC5C5\uB85C\uB4DC\uD558\uACE0, \uAD6C\uB9E4\uC790\uC5D0\uAC8C\uB294 \uC8FC\uBB38 \uC0C1\uC138\uC5D0\uC11C \uB9CC\uB8CC\uB418\uB294 \uC548\uC804 \uB9C1\uD06C\uB85C\uB9CC \uC99D\uBE59\uC744 \uC5F4\uB78C\uD558\uAC8C \uD569\uB2C8\uB2E4.",
33274
+ promptSnippet: "\uBC30\uC1A1 \uC644\uB8CC \uC99D\uBE59(POD) \uAE30\uB2A5\uC5D0\uB294 \uC0AC\uC9C4\xB7\uC11C\uBA85\xB7\uD0C0\uC784\uC2A4\uD0EC\uD504\xB7\uC218\uB839 \uBC29\uC2DD \uAE30\uB85D\uACFC \uD568\uAED8, \uC624\uD504\uB77C\uC778 \uD658\uACBD\uC758 \uC9C0\uC5F0 \uC5C5\uB85C\uB4DC \uC7AC\uC2DC\uB3C4 \uBC0F \uD0C0\uC778 \uC5F4\uB78C \uCC28\uB2E8\uACFC \uD604\uAD00 \uBE44\uBC00\uBC88\uD638 \uB4F1 \uAC1C\uC778\uC815\uBCF4 \uBCF4\uD638 \uCC98\uB9AC\uB97C \uD3EC\uD568\uD558\uC138\uC694."
30790
33275
  },
30791
33276
  en: {
30792
- definition: "A property ensuring that repeating the exact same operation\u2014due to retries, timeouts, or double clicks\u2014produces the same state as executing it once.",
30793
- example: "Attaching a unique Idempotency-Key per checkout attempt lets the backend recognize retried requests and return the original receipt instead of charging twice. UI button disabling alone cannot guarantee idempotency.",
30794
- promptSnippet: "Protect critical mutations such as payments, payouts, or webhook replays on the server using unique idempotency keys persisted atomically with the transaction, returning the original outcome on duplicate attempts."
33277
+ definition: "Verifiable evidence captured at final handoff\u2014such as a drop-off photo, recipient signature, timestamp, and location\u2014proving a shipment was delivered and resolving non-receipt disputes.",
33278
+ example: "A courier uploads a drop-off photo and signature to private storage upon delivery, exposing it only to authorized order participants via expiring links.",
33279
+ promptSnippet: "Implement Proof of Delivery (POD) with photo/signature capture, offline retry queuing for couriers, authorized-only access controls, and privacy protection for sensitive location or entry details."
30795
33280
  }
30796
33281
  }
30797
33282
  },
30798
- "role-based-access-control": {
33283
+ "cold-chain-monitoring": {
30799
33284
  aliases: {
30800
- ko: ["RBAC", "\uC5ED\uD560 \uAE30\uBC18 \uAD8C\uD55C", "\uAD8C\uD55C \uC81C\uC5B4", "\uAD00\uB9AC\uC790 \uC77C\uBC18 \uC0AC\uC6A9\uC790 \uAD8C\uD55C \uBD84\uB9AC", "\uCD5C\uC18C \uAD8C\uD55C"],
30801
- en: ["RBAC", "role based access control", "role permissions", "least privilege access"]
33285
+ ko: ["\uB0C9\uC7A5 \uB0C9\uB3D9 \uC720\uD1B5 \uAD00\uB9AC", "\uC800\uC628 \uBB3C\uB958 \uBAA8\uB2C8\uD130\uB9C1", "\uC628\uB3C4 \uC774\uD0C8 \uACBD\uBCF4", "\uC2E0\uC120\uC2DD\uD488 \uC628\uB3C4 \uCD94\uC801"],
33286
+ en: ["temperature-controlled logistics", "cold chain tracking", "thermal excursion alert", "perishable monitoring"]
30802
33287
  },
30803
33288
  text: {
30804
33289
  ko: {
30805
- definition: "\uAC1C\uBCC4 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC9C1\uC811 \uAD8C\uD55C\uC744 \uBD99\uC774\uB294 \uB300\uC2E0 \uAD00\uB9AC\uC790\xB7\uD3B8\uC9D1\uC790\xB7\uC5F4\uB78C\uC790 \uAC19\uC740 \uC5ED\uD560(Role)\uC5D0 \uAD8C\uD55C\uC744 \uBB36\uC5B4 \uBD80\uC5EC\uD558\uACE0, \uC11C\uBC84\uC640 UI\uC5D0\uC11C \uC5ED\uD560\uC5D0 \uB530\uB77C \uC811\uADFC\uC744 \uD1B5\uC81C\uD558\uB294 \uBC29\uC2DD\uC785\uB2C8\uB2E4.",
30806
- example: "\uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4\uC5D0\uC11C \uC5F4\uB78C\uC790 \uC5ED\uD560\uC740 \uBB38\uC11C\uB97C \uC77D\uC744 \uC218\uB9CC \uC788\uACE0 \uACB0\uC81C \uC124\uC815\uC774\uB098 \uAD6C\uC131\uC6D0 \uC0AD\uC81C API\uB294 \uC11C\uBC84\uC5D0\uC11C 403\uC73C\uB85C \uCC28\uB2E8\uD569\uB2C8\uB2E4. UI\uC5D0\uC11C \uBA54\uB274\uB97C \uC228\uAE30\uB294 \uAC83\uC740 \uBCF4\uC870 \uC218\uB2E8\uC77C \uBFD0 \uC2E4\uC81C \uAD8C\uD55C \uD1B5\uC81C\uB294 \uC11C\uBC84 \uC778\uAC00\uC5D0\uC11C \uAC15\uC81C\uD569\uB2C8\uB2E4.",
30807
- promptSnippet: "\uC5ED\uD560 \uAE30\uBC18 \uC811\uADFC \uC81C\uC5B4(RBAC)\uB97C \uC124\uACC4\uD560 \uB54C \uC5ED\uD560\uBCC4 \uD5C8\uC6A9 \uC561\uC158 \uB9E4\uD2B8\uB9AD\uC2A4\uC640 \uCD5C\uC18C \uAD8C\uD55C \uC6D0\uCE59\uC744 \uC815\uC758\uD558\uACE0, UI \uB178\uCD9C \uC81C\uC5B4\uC640 \uBCC4\uAC1C\uB85C \uBAA8\uB4E0 \uC11C\uBC84 API \uC5D4\uB4DC\uD3EC\uC778\uD2B8\uC5D0\uC11C \uD604\uC7AC \uC870\uC9C1\xB7\uC5ED\uD560 \uAD8C\uD55C\uC744 \uAC80\uC99D\uD574 \uC918. \uB9C8\uC9C0\uB9C9 \uCD5C\uACE0\uAD00\uB9AC\uC790 \uAC15\uB4F1\xB7\uC0AD\uC81C\uB3C4 \uCC28\uB2E8\uD574 \uC918."
33290
+ definition: "\uC2E0\uC120\uC2DD\uD488\xB7\uC758\uC57D\uD488\xB7\uC2DC\uC57D\uCC98\uB7FC \uC77C\uC815 \uC628\uB3C4 \uBC94\uC704\uB97C \uC720\uC9C0\uD574\uC57C \uD558\uB294 \uD654\uBB3C\uC744 \uBCF4\uAD00\xB7\uC6B4\uC1A1\uD558\uB294 \uC804 \uACFC\uC815\uC5D0\uC11C \uC13C\uC11C \uC628\uB3C4\uB97C \uC5F0\uC18D \uAE30\uB85D\uD558\uACE0, \uD5C8\uC6A9 \uBC94\uC704\uB97C \uBC97\uC5B4\uB09C \uC628\uB3C4 \uC774\uD0C8(Excursion) \uBC1C\uC0DD \uC2DC \uC989\uC2DC \uACBD\uBCF4\xB7\uD3D0\uAE30 \uACA9\uB9AC\xB7\uC7AC\uBC30\uC1A1 \uBCF4\uC0C1\uC744 \uC5F0\uACB0\uD558\uB294 \uD488\uC9C8 \uAD00\uB9AC \uCCB4\uACC4\uC785\uB2C8\uB2E4.",
33291
+ example: "\uB0C9\uC7A5 \uC758\uC57D\uD488 \uBC30\uC1A1 \uAD6C\uAC04\uC5D0\uC11C \uC628\uB3C4\uAC00 8\xB0C\uB97C 15\uBD84 \uC774\uC0C1 \uCD08\uACFC\uD558\uBA74 \uC6B4\uC1A1 \uC0C1\uD0DC\uC5D0 \uC628\uB3C4 \uC774\uD0C8 \uACBD\uACE0\uB97C \uAE30\uB85D\uD558\uACE0, \uACE0\uAC1D \uC778\uB3C4 \uC804 \uC790\uB3D9 \uACA9\uB9AC \uBC0F \uB300\uCCB4 \uCD9C\uACE0 \uC2B9\uC778\uC744 \uC694\uCCAD\uD569\uB2C8\uB2E4.",
33292
+ promptSnippet: "\uCF5C\uB4DC\uCCB4\uC778 \uC628\uB3C4 \uAD00\uB9AC \uD654\uBA74\uACFC \uC54C\uB9BC \uADDC\uCE59\uC5D0\uC11C\uB294 \uD5C8\uC6A9 \uC0C1\xB7\uD558\uD55C \uC628\uB3C4 \uBC0F \uC5F0\uC18D \uC774\uD0C8 \uC2DC\uAC04 \uAE30\uC900, \uAD6C\uAC04\uBCC4 \uC2DC\uACC4\uC5F4 \uCC28\uD2B8 \uD45C\uC2DC, \uC774\uD0C8 \uBC1C\uC0DD \uC2DC \uCD9C\uACE0\xB7\uC778\uC218 \uBCF4\uB958\uC640 \uD074\uB808\uC784\xB7\uC7AC\uBC30\uC1A1 \uC5F0\uACB0\uC744 \uD568\uAED8 \uAD6C\uD604\uD558\uC138\uC694."
30808
33293
  },
30809
33294
  en: {
30810
- definition: "An authorization model that assigns permissions to roles (such as Admin, Editor, Viewer) rather than individual users, enforcing access boundaries across APIs and views.",
30811
- example: "A Viewer can read workspace documents while billing mutations are rejected with 403 on the backend. Hiding buttons in the UI is only cosmetic; real enforcement lives in server authorization.",
30812
- promptSnippet: "Implement Role-Based Access Control (RBAC) with explicit role-permission mappings and least-privilege defaults, enforcing checks on every backend endpoint (not just hiding UI controls) and guarding against removing the last admin."
33295
+ definition: "End-to-end temperature monitoring across storage and transit for perishable goods or pharmaceuticals, logging sensor readings and triggering alerts, quarantine, or redelivery when temperatures breach safe thresholds.",
33296
+ example: "If refrigerated cargo stays above 8\xB0C for 15 minutes, flag an excursion event on the shipment timeline and initiate replacement dispatch before delivery.",
33297
+ promptSnippet: "Build cold-chain monitoring with configurable safe temperature bands and duration thresholds, time-series excursion highlights, quarantine holds, and automated claim or redelivery workflows."
33298
+ }
33299
+ }
33300
+ }
33301
+ };
33302
+
33303
+ // ../../packages/catalog/src/glossary/sales-marketing.ts
33304
+ var SALES_MARKETING_GLOSSARY_DATA = {
33305
+ "sales-lead": {
33306
+ aliases: {
33307
+ ko: ["\uB9AC\uB4DC", "\uC7A0\uC7AC\uACE0\uAC1D", "\uC7A0\uC7AC \uACE0\uAC1D", "\uC601\uC5C5 \uB9AC\uB4DC", "\uBB38\uC758 \uB9AC\uB4DC"],
33308
+ en: ["lead", "sales prospect", "sales lead", "inbound lead"]
33309
+ },
33310
+ text: {
33311
+ ko: {
33312
+ definition: "\uB3C4\uC785 \uBB38\uC758, \uC790\uB8CC \uC694\uCCAD, \uB370\uBAA8 \uC2E0\uCCAD \uB4F1\uC744 \uD1B5\uD574 \uAD6C\uB9E4 \uB610\uB294 \uACC4\uC57D \uAC00\uB2A5\uC131\uC744 \uBCF4\uC778 \uAC1C\uC778\uC774\uB098 \uC870\uC9C1(\uC7A0\uC7AC \uACE0\uAC1D)\uC785\uB2C8\uB2E4. \uC774\uBBF8 \uACB0\uC81C\uD55C \uC720\uB8CC \uACE0\uAC1D\uC774\uB098 \uC131\uC0AC\uB41C \uAC70\uB798(Closed-won), \uB2E8\uC21C \uC5F0\uB77D\uCC98 \uBA85\uB2E8\uACFC\uB294 \uAD6C\uBD84\uB429\uB2C8\uB2E4.",
33313
+ example: "\uC6F9\uC0AC\uC774\uD2B8\uC5D0\uC11C \uC81C\uD488 \uB370\uBAA8 \uC2E0\uCCAD \uC591\uC2DD\uC744 \uC81C\uCD9C\uD55C \uB2F4\uB2F9\uC790\uB97C \uC601\uC5C5 \uB9AC\uB4DC\uB85C \uB4F1\uB85D\uD574 \uC720\uC785 \uACBD\uB85C\uC640 \uB2F4\uB2F9\uC790\uB97C \uBC30\uC815\uD558\uACE0, \uC2E4\uC81C \uC720\uB8CC \uC804\uD658 \uC804\uAE4C\uC9C0\uB294 \uAE30\uC874 \uACE0\uAC1D \uACC4\uC815\uACFC \uBD84\uB9AC\uD574 \uD6C4\uC18D \uC0C1\uB2F4\uC744 \uC9C4\uD589\uD569\uB2C8\uB2E4.",
33314
+ promptSnippet: "\uC7A0\uC7AC \uACE0\uAC1D(Sales Lead) \uC811\uC218\xB7\uAD00\uB9AC \uD750\uB984\uC744 \uB9CC\uB4E4 \uB54C \uB9C8\uCF00\uD305\xB7\uC5F0\uB77D \uC218\uC2E0 \uB3D9\uC758 \uC5EC\uBD80, \uB2F4\uB2F9\uC790 \uBC30\uC815, \uC720\uC785 \uCD9C\uCC98, \uD6C4\uC18D \uC811\uCD09 \uC774\uB825\uC744 \uD568\uAED8 \uCD94\uC801\uD558\uACE0 \uC720\uB8CC \uACE0\uAC1D\uC774\uB098 \uB2E8\uC21C \uC5F0\uB77D\uCC98 \uBAA9\uB85D\uACFC \uC0C1\uD0DC\uB97C \uAD6C\uBD84\uD574 \uC918."
33315
+ },
33316
+ en: {
33317
+ definition: "An individual or organization that has expressed interest as a sales opportunity candidate, distinct from paying customers, closed-won deals, or an unvetted raw contact list.",
33318
+ example: "Record someone who submits a demo request form as a sales lead with intake source and assigned owner, tracking outreach before any paid conversion occurs.",
33319
+ promptSnippet: "Design a Sales Lead intake and tracking flow that records consent status, owner assignment, intake source, and follow-up contact history while keeping leads distinct from paying customers and raw contact lists."
30813
33320
  }
30814
33321
  }
30815
33322
  },
30816
- "server-sent-events": {
33323
+ "customer-relationship-management": {
30817
33324
  aliases: {
30818
- ko: ["SSE", "\uB2E8\uBC29\uD5A5 \uC11C\uBC84 \uC2A4\uD2B8\uB9AC\uBC0D", "\uC2E4\uC2DC\uAC04 \uD1A0\uD070 \uC2A4\uD2B8\uB9AC\uBC0D", "EventSource \uC2A4\uD2B8\uB9BC"],
30819
- en: ["SSE", "EventSource", "HTTP streaming", "unidirectional server push"]
33325
+ ko: ["CRM", "\uACE0\uAC1D \uAD00\uB9AC", "\uACE0\uAC1D \uAD00\uACC4 \uAD00\uB9AC", "\uC601\uC5C5 \uC774\uB825 \uAD00\uB9AC", "\uACE0\uAC1D \uD30C\uC774\uD504\uB77C\uC778"],
33326
+ en: ["CRM", "customer relationship management", "customer management", "sales pipeline CRM"]
30820
33327
  },
30821
33328
  text: {
30822
33329
  ko: {
30823
- definition: "\uD558\uB098\uC758 HTTP \uC5F0\uACB0\uC744 \uC720\uC9C0\uD55C \uCC44 \uC11C\uBC84\uAC00 \uD074\uB77C\uC774\uC5B8\uD2B8\uB85C \uD14D\uC2A4\uD2B8 \uC774\uBCA4\uD2B8 \uC2A4\uD2B8\uB9BC\uC744 \uB2E8\uBC29\uD5A5\uC73C\uB85C \uC2E4\uC2DC\uAC04 \uBC00\uC5B4\uC8FC\uB294 \uC6F9 \uD45C\uC900 \uAE30\uC220\uC785\uB2C8\uB2E4.",
30824
- example: "AI \uCC57\uBD07 \uB2F5\uBCC0\uC774 \uC0DD\uC131\uB418\uB294 \uB300\uB85C \uD1A0\uD070 \uC870\uAC01\uC744 \uD654\uBA74\uC5D0 \uD55C \uAE00\uC790\uC529 \uD758\uB824\uBCF4\uB0B4\uAC70\uB098, \uC9C4\uD589 \uC911\uC778 \uC791\uC5C5 \uB85C\uADF8\uB97C \uBE0C\uB77C\uC6B0\uC800\uAC00 \uC911\uB2E8(AbortController) \uBC0F \uC7AC\uC5F0\uACB0\uD560 \uC218 \uC788\uAC8C \uC2A4\uD2B8\uB9AC\uBC0D\uD569\uB2C8\uB2E4.",
30825
- promptSnippet: "AI \uC751\uB2F5\uC774\uB098 \uC2E4\uC2DC\uAC04 \uC9C4\uD589 \uB85C\uADF8\uB97C \uB2E8\uBC29\uD5A5\uC73C\uB85C \uC2A4\uD2B8\uB9AC\uBC0D\uD560 \uB54C \uC11C\uBC84 \uC804\uC1A1 \uC774\uBCA4\uD2B8(SSE) \uADDC\uACA9\uC744 \uC0AC\uC6A9\uD558\uACE0, \uD074\uB77C\uC774\uC5B8\uD2B8\uC5D0\uB294 \uC911\uC9C0(AbortController), \uC5F0\uACB0 \uB04A\uAE40 \uC548\uB0B4, \uB9C8\uC9C0\uB9C9 \uC218\uC2E0 \uC774\uBCA4\uD2B8 ID \uAE30\uBC18 \uBCF5\uAD6C \uD750\uB984\uC744 \uD568\uAED8 \uAD6C\uD604\uD574 \uC918."
33330
+ definition: "\uC7A0\uC7AC \uACE0\uAC1D\uACFC \uAE30\uC874 \uACE0\uAC1D\uC744 \uB300\uC0C1\uC73C\uB85C \uC0C1\uB2F4\xB7\uC601\uC5C5\xB7\uC9C0\uC6D0 \uC0C1\uD638\uC791\uC6A9\uACFC \uAC70\uB798 \uC774\uB825\uC744 \uD55C \uD750\uB984\uC73C\uB85C \uAD00\uB9AC\uD558\uB294 \uCCB4\uACC4\uC785\uB2C8\uB2E4. \uB2E8\uC21C \uC2A4\uD504\uB808\uB4DC\uC2DC\uD2B8 \uBAA9\uB85D\uC774\uB098 \uD2B9\uC815 \uC0C1\uC6A9 \uC81C\uD488\uBA85\uACFC \uB3D9\uC77C\uC2DC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
33331
+ example: "\uBB38\uC758 \uC811\uC218\uBD80\uD130 \uC0C1\uB2F4 \uBA54\uBAA8, \uC81C\uC548 \uB2E8\uACC4, \uACC4\uC57D \uD6C4 \uC9C0\uC6D0 \uC774\uB825\uAE4C\uC9C0 \uACE0\uAC1D \uB2E8\uC704\uB85C \uC5F0\uACB0\uD574 \uB2F4\uB2F9\uC790\uAC00 \uBC14\uB00C\uC5B4\uB3C4 \uB9E5\uB77D\uC744 \uC774\uC5B4\uC11C \uC751\uB300\uD560 \uC218 \uC788\uAC8C \uD569\uB2C8\uB2E4.",
33332
+ promptSnippet: "\uACE0\uAC1D \uAD00\uACC4 \uAD00\uB9AC(CRM) \uAE30\uB2A5\uC744 \uC124\uACC4\uD560 \uB54C \uC811\uADFC \uC81C\uC5B4, \uC911\uBCF5 \uACE0\uAC1D \uBCD1\uD569\xB7\uBC29\uC9C0, \uAC1C\uC778\uC815\uBCF4(PII) \uCD5C\uC18C\uD654, \uB2F4\uB2F9\uC790 \uC9C0\uC815, \uB2E8\uACC4\xB7\uC0C1\uD0DC \uAD00\uB9AC\uB97C \uD3EC\uD568\uD558\uACE0 \uB2E8\uC21C \uD45C\uB098 \uD2B9\uC815 \uC81C\uD488 \uC885\uC18D \uAD6C\uC870\uB85C \uB450\uC9C0 \uB9D0\uC544 \uC918."
30826
33333
  },
30827
33334
  en: {
30828
- definition: "A web standard allowing a server to push real-time text events over a single long-lived HTTP connection from server to client.",
30829
- example: "Stream LLM response tokens incrementally as they are generated while supporting user-triggered AbortController cancellation and automatic reconnection.",
30830
- promptSnippet: "Use Server-Sent Events (SSE) for unidirectional streaming such as LLM token output or live status feeds, pairing it with AbortController cancellation, disconnect banners, and safe reconnect handling."
33335
+ definition: "A workflow and system for managing interactions, consultations, sales stages, and support history across leads and existing customers, not synonymous with spreadsheets or any specific vendor product.",
33336
+ example: "Link inquiry notes, consultation history, deal stages, and post-sale support records under a deduplicated account timeline with clear ownership.",
33337
+ promptSnippet: "Architect Customer Relationship Management (CRM) workflows with role-based access control, record deduplication, PII minimization, owner assignment, and explicit status lifecycle management."
30831
33338
  }
30832
33339
  }
30833
33340
  },
30834
- "retrieval-augmented-generation": {
33341
+ "coupon-stacking-rule": {
30835
33342
  aliases: {
30836
- ko: ["RAG", "\uBB38\uC11C \uAC80\uC0C9 \uAE30\uBC18 \uB2F5\uBCC0", "\uCD9C\uCC98 \uC778\uC6A9 AI", "\uC9C0\uC2DD \uAE30\uBC18 \uAC80\uC0C9 \uC99D\uAC15", "\uD560\uB8E8\uC2DC\uB124\uC774\uC158 \uC904\uC774\uAE30"],
30837
- en: ["RAG", "retrieval augmented generation", "grounded generation", "citation-backed AI"]
33343
+ ko: ["\uCFE0\uD3F0 \uBCD1\uD589 \uC0AC\uC6A9 \uADDC\uCE59", "\uD560\uC778 \uC911\uBCF5 \uC801\uC6A9", "\uD504\uB85C\uBAA8\uC158 \uC6B0\uC120\uC21C\uC704", "\uCFE0\uD3F0 \uC870\uD569 \uC81C\uD55C"],
33344
+ en: ["promotion stacking", "discount stacking rules", "coupon combination policy", "promo exclusivity"]
30838
33345
  },
30839
33346
  text: {
30840
33347
  ko: {
30841
- definition: "\uC5B8\uC5B4 \uBAA8\uB378\uC774 \uD559\uC2B5 \uAE30\uC5B5\uC5D0\uB9CC \uC758\uC874\uD558\uC9C0 \uC54A\uB3C4\uB85D \uC678\uBD80 \uBB38\uC11C\xB7\uC9C0\uC2DD\uBCA0\uC774\uC2A4\uC5D0\uC11C \uAD00\uB828 \uADFC\uAC70\uB97C \uBA3C\uC800 \uAC80\uC0C9\uD574 \uD504\uB86C\uD504\uD2B8 \uBB38\uB9E5\uC5D0 \uC8FC\uC785\uD55C \uB4A4, \uCD9C\uCC98\uC640 \uD568\uAED8 \uB2F5\uBCC0\uC744 \uC0DD\uC131\uD558\uAC8C \uD558\uB294 \uC544\uD0A4\uD14D\uCC98\uC785\uB2C8\uB2E4.",
30842
- example: "\uC0AC\uB0B4 \uADDC\uC815 \uCC57\uBD07\uC774 \uC9C8\uBB38\uACFC \uAD00\uB828\uB41C \uCD5C\uC2E0 \uBB38\uC11C \uB2E8\uB77D 3\uAC74\uC744 \uBA3C\uC800 \uCC3E\uC544 \uCEE8\uD14D\uC2A4\uD2B8\uC5D0 \uB123\uACE0, \uB2F5\uBCC0 \uBB38\uC7A5 \uB05D\uC5D0 [1], [2] \uC778\uB77C\uC778 \uC778\uC6A9 \uCE69\uC744 \uBD99\uC5EC \uC6D0\uBB38 \uADFC\uAC70\uB97C \uBC14\uB85C \uD655\uC778\uD560 \uC218 \uC788\uAC8C \uD569\uB2C8\uB2E4.",
30843
- promptSnippet: "\uAC80\uC0C9 \uC99D\uAC15 \uC0DD\uC131(RAG) \uD750\uB984\uC5D0\uC11C\uB294 \uC0AC\uC6A9\uC790 \uC9C8\uC758\uB85C \uAC80\uC99D\uB41C \uBB38\uC11C\uB97C \uBA3C\uC800 \uAC80\uC0C9\uD574 \uCEE8\uD14D\uC2A4\uD2B8 \uC608\uC0B0 \uC548\uC5D0 \uC8FC\uC785\uD558\uACE0, \uB2F5\uBCC0\uC5D0\uB294 \uC778\uB77C\uC778 \uCD9C\uCC98 \uC778\uC6A9\uACFC \uADFC\uAC70\uAC00 \uBD80\uC871\uD560 \uB54C \uBAA8\uB978\uB2E4\uACE0 \uB2F5\uD558\uB294 \uAC00\uB4DC\uB808\uC77C\uC744 \uD3EC\uD568\uD574 \uC918."
33348
+ definition: "\uC7A5\uBC14\uAD6C\uB2C8 \uACB0\uC81C \uC2DC \uC0C1\uD488 \uD560\uC778, \uC7A5\uBC14\uAD6C\uB2C8 \uCFE0\uD3F0, \uB4F1\uAE09 \uD61C\uD0DD, \uD504\uB85C\uBAA8\uC158 \uCF54\uB4DC\uB97C \uB3D9\uC2DC\uC5D0 \uC5EC\uB7EC \uAC1C \uC801\uC6A9\uD560 \uC218 \uC788\uB294\uC9C0, \uBD88\uAC00\uD558\uB2E4\uBA74 \uC5B4\uB290 \uC21C\uC11C\uB97C \uBA3C\uC800 \uACC4\uC0B0\uD558\uACE0 \uC5B4\uB5A4 \uD61C\uD0DD\uC774 \uC6B0\uC120\uD558\uB294\uC9C0 \uC815\uD558\uB294 \uD560\uC778 \uC815\uCC45 \uADDC\uCE59\uC785\uB2C8\uB2E4. \uC911\uBCF5 \uCC28\uB2E8 \uC0AC\uC720\uB97C \uBA85\uD655\uD788 \uBCF4\uC5EC \uC8FC\uC5B4\uC57C \uACB0\uC81C \uC774\uD0C8\uC744 \uC904\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
33349
+ example: '"\uC2E0\uADDC 20% \uCFE0\uD3F0"\uACFC "\uC8FC\uB9D0 5,000\uC6D0 \uD560\uC778 \uCFE0\uD3F0"\uC774 \uC0C1\uD638 \uBC30\uD0C0 \uC124\uC815\uC77C \uB54C, \uC0AC\uC6A9\uC790\uAC00 \uB450 \uBC88\uC9F8 \uCFE0\uD3F0\uC744 \uACE0\uB974\uBA74 \uC790\uB3D9 \uB300\uCCB4 \uC5EC\uBD80\uC640 \uD560\uC778 \uAE08\uC561 \uBE44\uAD50\uB97C \uBCF4\uC5EC \uC8FC\uACE0 \uC801\uC6A9 \uC21C\uC11C\uB97C \uC77C\uAD00\uB418\uAC8C \uACC4\uC0B0\uD569\uB2C8\uB2E4.',
33350
+ promptSnippet: "\uCFE0\uD3F0 \uC911\uBCF5 \uC801\uC6A9 \uADDC\uCE59\uC744 \uAD6C\uD604\uD560 \uB54C \uCFE0\uD3F0\xB7\uB4F1\uAE09\xB7\uD504\uB85C\uBAA8\uC158 \uAC04 \uBCD1\uD589 \uD5C8\uC6A9/\uBC30\uD0C0 \uB9E4\uD2B8\uB9AD\uC2A4, \uC815\uB960\xB7\uC815\uC561 \uACC4\uC0B0 \uC21C\uC11C, \uCD5C\uC18C \uACB0\uC81C \uAE08\uC561 \uAC80\uC99D, \uBD80\uBD84 \uCDE8\uC18C \uC2DC \uCFE0\uD3F0 \uBC18\uD658 \uADDC\uCE59\uACFC \uBD88\uAC00 \uC0AC\uC720 \uC548\uB0B4\uB97C \uBA85\uD655\uD788 \uC124\uACC4\uD558\uC138\uC694."
30844
33351
  },
30845
33352
  en: {
30846
- definition: "An AI architecture that retrieves relevant passages from an external knowledge base before generation and injects them into the prompt context so answers stay grounded and citable.",
30847
- example: "A policy assistant retrieves the top matching handbook excerpts, passes them within the token budget, and renders inline citation chips linking back to each source.",
30848
- promptSnippet: "Design the Retrieval-Augmented Generation (RAG) pipeline to retrieve relevant documents within the context token budget, attach inline source citations to claims, and fall back safely when no supporting evidence is found."
33353
+ definition: "Pricing policy rules determining whether product discounts, cart coupons, promo codes, and loyalty credits can combine at checkout\u2014and in what order they calculate or override one another when mutually exclusive.",
33354
+ example: "When a user enters a promo code that cannot stack with an active cart coupon, explain the conflict and preview which option yields the larger discount.",
33355
+ promptSnippet: "Enforce coupon stacking rules on the backend with an explicit exclusivity matrix, deterministic percent-vs-fixed calculation order, minimum spend re-checks, and clear replacement previews in checkout."
30849
33356
  }
30850
33357
  }
30851
33358
  },
30852
- "dead-letter-queue": {
33359
+ "win-back-campaign": {
30853
33360
  aliases: {
30854
- ko: ["DLQ", "\uC2E4\uD328 \uC791\uC5C5 \uBCF4\uAD00 \uD050", "\uC6F9\uD6C5 \uC2E4\uD328 \uC7AC\uCC98\uB9AC \uD050", "\uC7AC\uC2DC\uB3C4 \uCD08\uACFC \uD050"],
30855
- en: ["DLQ", "dead letter queue", "failed job queue", "poison message queue"]
33361
+ ko: ["\uC708\uBC31 \uCEA0\uD398\uC778", "\uD574\uC9C0 \uBC29\uC5B4 \uC624\uD37C", "\uAD6C\uB3C5 \uC77C\uC2DC\uC815\uC9C0 \uC804\uD658", "\uC7AC\uAC00\uC785 \uC720\uB3C4 \uD61C\uD0DD"],
33362
+ en: ["win-back flow", "churn save offer", "cancellation deflection", "reactivation campaign"]
30856
33363
  },
30857
33364
  text: {
30858
33365
  ko: {
30859
- definition: "\uBC31\uADF8\uB77C\uC6B4\uB4DC \uC791\uC5C5\uC774\uB098 \uC6F9\uD6C5 \uC804\uC1A1\uC774 \uC815\uD574\uC9C4 \uC7AC\uC2DC\uB3C4 \uD69F\uC218\uB97C \uBAA8\uB450 \uCD08\uACFC\uD574 \uC2E4\uD328\uD588\uC744 \uB54C \uBA54\uC2DC\uC9C0\uB97C \uBC84\uB9AC\uC9C0 \uC54A\uACE0 \uBCC4\uB3C4 \uD050\uC5D0 \uACA9\uB9AC\uD574 \uC6D0\uC778 \uC870\uC0AC\uC640 \uC218\uB3D9 \uC7AC\uC2E4\uD589\uC744 \uAC00\uB2A5\uD558\uAC8C \uD558\uB294 \uD328\uD134\uC785\uB2C8\uB2E4.",
30860
- example: "\uACB0\uC81C \uC644\uB8CC \uC6F9\uD6C5\uC774 \uC0C1\uB300 \uC11C\uBC84 \uC7A5\uC560\uB85C 5\uD68C \uC5F0\uC18D \uC2E4\uD328\uD558\uBA74 \uB370\uB4DC \uB808\uD130 \uD050(DLQ)\uB85C \uC774\uB3D9\uC2DC\uCF1C \uC6B4\uC601\uC790\uAC00 \uC624\uB958 \uC6D0\uC778\uC744 \uD655\uC778\uD55C \uB4A4 \uBA71\uB4F1\uC131 \uC788\uAC8C \uB2E4\uC2DC \uC804\uC1A1\uD560 \uC218 \uC788\uAC8C \uD569\uB2C8\uB2E4.",
30861
- promptSnippet: "\uBE44\uB3D9\uAE30 \uC6F9\uD6C5\xB7\uC54C\uB9BC\xB7\uACB0\uC81C \uD6C4\uCC98\uB9AC \uC6CC\uCEE4\uC5D0\uB294 \uC9C0\uC218 \uBC31\uC624\uD504 \uC7AC\uC2DC\uB3C4\uC640 \uD568\uAED8 \uCD5C\uB300 \uC7AC\uC2DC\uB3C4 \uCD08\uACFC \uC2DC \uBA54\uC2DC\uC9C0\uB97C \uACA9\uB9AC\uD558\uB294 \uB370\uB4DC \uB808\uD130 \uD050(DLQ)\uB97C \uB450\uACE0, \uC6B4\uC601\uC790\uAC00 \uC624\uB958 payload\uB97C \uC870\uD68C\uD574 \uBA71\uB4F1\uD558\uAC8C \uC7AC\uC2E4\uD589\uD560 \uC218 \uC788\uAC8C \uD574 \uC918."
33366
+ definition: "\uAD6C\uB3C5 \uD574\uC9C0\uB97C \uC2DC\uB3C4\uD558\uAC70\uB098 \uC774\uBBF8 \uB9CC\uB8CC\xB7\uC774\uD0C8\uD55C \uACE0\uAC1D\uC5D0\uAC8C \uD574\uC9C0 \uC0AC\uC720\uB97C \uD655\uC778\uD55C \uB4A4 \uAD6C\uB3C5 \uC77C\uC2DC\uC815\uC9C0, \uD558\uC704 \uD50C\uB79C \uC804\uD658, \uC77C\uC815 \uAE30\uAC04 \uD560\uC778 \uD61C\uD0DD \uB4F1\uC744 \uC81C\uC548\uD574 \uC720\uC9C0 \uB610\uB294 \uBCF5\uADC0\uB97C \uC720\uB3C4\uD558\uB294 \uB9AC\uD150\uC158 \uD750\uB984\uC785\uB2C8\uB2E4. \uCD5C\uC885 \uD574\uC9C0 \uBC84\uD2BC\uC740 \uAC00\uB3C5\uC131 \uC788\uAC8C \uC720\uC9C0\uD558\uBA74\uC11C \uC9C4\uC815\uC131 \uC788\uB294 \uB300\uC548\uC744 \uC81C\uC2DC\uD574\uC57C \uB2E4\uD06C \uD328\uD134\uC744 \uD53C\uD569\uB2C8\uB2E4.",
33367
+ example: '\uAD6C\uB3C5 \uD574\uC9C0 \uC124\uBB38\uC5D0\uC11C "\uC7A0\uC2DC \uC26C\uACE0 \uC2F6\uC5B4\uC694"\uB97C \uACE0\uB978 \uACE0\uAC1D\uC5D0\uAC8C \uD574\uC9C0 \uB300\uC2E0 1\uAC1C\uC6D4 \uC77C\uC2DC\uC815\uC9C0 \uC635\uC158\uC744 \uC81C\uC548\uD558\uB418, \uC0AC\uC6A9\uC790\uAC00 \uC6D0\uD558\uBA74 \uD55C \uBC88\uC758 \uD074\uB9AD\uC73C\uB85C \uC989\uC2DC \uD574\uC9C0\uB97C \uB9C8\uCE60 \uC218 \uC788\uAC8C \uB461\uB2C8\uB2E4.',
33368
+ promptSnippet: "\uD574\uC9C0 \uBC29\uC5B4\uC640 \uC7AC\uAD6C\uB3C5 \uC720\uB3C4(Win-Back) \uD750\uB984\uC744 \uC124\uACC4\uD560 \uB54C \uD574\uC9C0 \uC0AC\uC720\uBCC4 \uB9DE\uCDA4 \uB300\uC548(\uC77C\uC2DC\uC815\uC9C0\xB7\uB2E4\uC6B4\uADF8\uB808\uC774\uB4DC\xB7\uC720\uC608 \uD560\uC778)\uC744 \uC81C\uC2DC\uD558\uB418 \uCD5C\uC885 \uD574\uC9C0 \uC644\uB8CC \uBC84\uD2BC\uC744 \uC228\uAE30\uAC70\uB098 \uBC29\uD574\uD558\uC9C0 \uB9D0\uACE0, \uD61C\uD0DD \uC801\uC6A9 \uD69F\uC218\xB7\uC545\uC6A9 \uC81C\uD55C\uB3C4 \uC11C\uBC84\uC5D0\uC11C \uAD00\uB9AC\uD558\uC138\uC694."
30862
33369
  },
30863
33370
  en: {
30864
- definition: "A dedicated holding queue where messages or webhook deliveries are routed after exhausting all retry attempts, preventing silent data loss and enabling inspection and replay.",
30865
- example: "When an outbound billing webhook fails 5 times due to a partner outage, move the payload to a Dead-Letter Queue (DLQ) so operators can inspect the error and safely replay it later.",
30866
- promptSnippet: "Configure exponential-backoff retries paired with a Dead-Letter Queue (DLQ) for exhausted jobs or webhooks, exposing failure metadata and an idempotent manual replay action."
33371
+ definition: "A retention and reactivation workflow that offers departing or churned subscribers tailored alternatives\u2014such as pausing, downgrading, or limited-time discounts\u2014while keeping final cancellation transparent and free of dark patterns.",
33372
+ example: 'When a canceling user selects "Too expensive right now," offer a downgrade or 30-day pause while keeping the "Confirm cancellation" button clearly accessible.',
33373
+ promptSnippet: "Design win-back and cancel-save flows with reason-matched options (pause, downgrade, limited offer), server-enforced offer eligibility limits, and an unobstructed final cancellation path."
30867
33374
  }
30868
33375
  }
30869
33376
  },
30870
- "audit-log": {
33377
+ "unsubscribe-suppression": {
30871
33378
  aliases: {
30872
- ko: ["\uBCF4\uC548 \uAC10\uC0AC \uB85C\uADF8", "\uBCC0\uACBD \uC774\uB825 \uAE30\uB85D", "\uAD00\uB9AC\uC790 \uD65C\uB3D9 \uB85C\uADF8", "\uB204\uAC00 \uC5B8\uC81C \uBC14\uAFE8\uB294\uC9C0 \uAE30\uB85D"],
30873
- en: ["audit trail", "activity audit log", "security event log", "change history log"]
33379
+ ko: ["\uC218\uC2E0 \uAC70\uBD80 \uBAA9\uB85D", "\uBC1C\uC1A1 \uC81C\uC678 \uC5B5\uC81C \uB9AC\uC2A4\uD2B8", "\uB9C8\uCF00\uD305 \uC218\uC2E0 \uCCA0\uD68C", "\uC635\uD2B8\uC544\uC6C3 \uAD00\uB9AC"],
33380
+ en: ["suppression list", "opt-out suppression", "do-not-contact list", "unsubscribe enforcement"]
30874
33381
  },
30875
33382
  text: {
30876
33383
  ko: {
30877
- definition: "\uB204\uAC00\xB7\uC5B8\uC81C\xB7\uC5B4\uB5A4 \uB300\uC0C1\uC5D0\xB7\uBB34\uC2A8 \uBCC0\uACBD\uC774\uB098 \uC5F4\uB78C\uC744 \uC218\uD589\uD588\uB294\uC9C0 \uBCC0\uC870\uD558\uAE30 \uC5B4\uB835\uAC8C \uC2DC\uAC04\uC21C\uC73C\uB85C \uB0A8\uAE30\uB294 \uCD94\uC801 \uAE30\uB85D\uC785\uB2C8\uB2E4.",
30878
- example: "\uAD00\uB9AC\uC790\uAC00 \uD300\uC6D0\uC758 \uC5ED\uD560\uC744 \uBCC0\uACBD\uD558\uAC70\uB098 API \uD0A4\uB97C \uD3D0\uAE30\uD558\uBA74 \uD589\uC704\uC790, IP, \uB300\uC0C1 \uB9AC\uC18C\uC2A4, \uBCC0\uACBD \uC804\uD6C4 \uC694\uC57D\uC744 \uAC10\uC0AC \uB85C\uADF8\uC5D0 \uB0A8\uAE30\uB418 \uBE44\uBC00\uBC88\uD638\uB098 \uD1A0\uD070 \uC6D0\uBB38\uC740 \uB9C8\uC2A4\uD0B9\uD569\uB2C8\uB2E4.",
30879
- promptSnippet: "\uAD8C\uD55C \uBCC0\uACBD, API \uD0A4 \uBC1C\uAE09\xB7\uD3D0\uAE30, \uBBFC\uAC10 \uD30C\uC77C \uB2E4\uC6B4\uB85C\uB4DC \uAC19\uC740 \uC911\uC694 \uC774\uBCA4\uD2B8\uB9C8\uB2E4 \uD589\uC704\uC790\xB7\uC2DC\uAC01\xB7\uB300\uC0C1\xB7\uC694\uCCAD \uBA54\uD0C0\uB370\uC774\uD130\uB97C \uAC10\uC0AC \uB85C\uADF8(Audit Log)\uC5D0 \uCD94\uAC00 \uC804\uC6A9\uC73C\uB85C \uAE30\uB85D\uD558\uACE0, \uBE44\uBC00\uAC12\uACFC \uAC1C\uC778\uC815\uBCF4\uB294 \uB9C8\uC2A4\uD0B9\uD574 \uC918."
33384
+ definition: "\uB9C8\uCF00\uD305 \uC774\uBA54\uC77C, \uBB38\uC790, \uD478\uC2DC \uC54C\uB9BC \uB4F1\uC5D0\uC11C \uC0AC\uC6A9\uC790\uAC00 \uC218\uC2E0 \uAC70\uBD80\uB97C \uC694\uCCAD\uD558\uAC70\uB098 \uBC18\uC1A1(Hard Bounce)\xB7\uC2A4\uD338 \uC2E0\uACE0\uAC00 \uBC1C\uC0DD\uD55C \uC8FC\uC18C\uB97C \uC804\uC5ED \uC81C\uC678 \uBAA9\uB85D(Suppression List)\uC5D0 \uC989\uC2DC \uB4F1\uB85D\uD574 \uC608\uC57D\uB41C \uCEA0\uD398\uC778\uC774\uB098 \uC7AC\uBC1C\uC1A1 \uC2DC\uC5D0\uB3C4 \uC790\uB3D9\uC73C\uB85C \uBC1C\uC1A1\uC744 \uCC28\uB2E8\uD558\uB294 \uC900\uBC95\xB7\uD488\uC9C8 \uAD00\uB9AC \uC7A5\uCE58\uC785\uB2C8\uB2E4. \uBCF4\uC548 \uC778\uC99D\uC774\uB098 \uACB0\uC81C \uC601\uC218\uC99D \uAC19\uC740 \uD544\uC218 \uAC70\uB798\uC131(Transactional) \uC54C\uB9BC\uACFC\uB294 \uCC44\uB110\xB7\uB3D9\uC758\uB97C \uBD84\uB9AC\uD569\uB2C8\uB2E4.",
33385
+ example: "\uC608\uC57D \uBC1C\uC1A1 3\uC2DC\uAC04 \uC804\uC5D0 \uCEA0\uD398\uC778 \uB300\uC0C1 \uC2A4\uB0C5\uC0F7\uC744 \uBF51\uC544 \uB450\uC5C8\uB354\uB77C\uB3C4 \uC2E4\uC81C \uBC1C\uC1A1 \uC9C1\uC804\uC5D0 \uC218\uC2E0 \uAC70\uBD80 \uC81C\uC678 \uBAA9\uB85D\uACFC \uB2E4\uC2DC \uB300\uC870\uD574 \uBC29\uAE08 \uC218\uC2E0 \uAC70\uBD80\uD55C \uC0AC\uC6A9\uC790\uC5D0\uAC8C\uB294 \uBA54\uC77C\uC774 \uB098\uAC00\uC9C0 \uC54A\uAC8C \uB9C9\uC2B5\uB2C8\uB2E4.",
33386
+ promptSnippet: "\uC54C\uB9BC\xB7\uCEA0\uD398\uC778 \uBC1C\uC1A1 \uD30C\uC774\uD504\uB77C\uC778\uC5D0\uB294 \uC6D0\uD074\uB9AD \uC218\uC2E0 \uAC70\uBD80 \uCC98\uB9AC\uC640 \uC989\uC2DC \uBC18\uC601\uB418\uB294 \uC81C\uC678 \uBAA9\uB85D(Suppression List)\uC744 \uB450\uACE0, \uC608\uC57D \uBC1C\uC1A1 \uC9C1\uC804 \uCD5C\uC885 \uD544\uD130\uB9C1\uACFC \uAC70\uB798\uC131 \uD544\uC218 \uC54C\uB9BC\xB7\uB9C8\uCF00\uD305 \uC54C\uB9BC \uCC44\uB110 \uBD84\uB9AC\uB97C \uBC18\uB4DC\uC2DC \uAD6C\uD604\uD558\uC138\uC694."
30880
33387
  },
30881
33388
  en: {
30882
- definition: "An append-only chronological record capturing who performed what action, on which resource, and when\u2014used for security review, compliance, and incident investigation.",
30883
- example: "Record role changes, API key revocations, and sensitive file downloads with actor, timestamp, and before/after summary while redacting secrets or raw tokens.",
30884
- promptSnippet: "Emit append-only audit log entries for security- and billing-sensitive events (actor, timestamp, target resource, action outcome) while redacting credentials and sensitive PII."
33389
+ definition: "An authoritative opt-out registry containing unsubscribed recipients, hard bounces, and spam complaints that automatically suppresses promotional deliveries right before send\u2014even for pre-scheduled campaigns\u2014while staying separate from mandatory transactional notices.",
33390
+ example: "Even after snapshotting a scheduled broadcast audience hours earlier, re-check the suppression list at send time so anyone who just unsubscribed is skipped immediately.",
33391
+ promptSnippet: "Enforce unsubscribe suppression lists at final dispatch time (not only at campaign creation), support instant one-click opt-out without login barriers, and strictly separate marketing from transactional messages."
30885
33392
  }
30886
33393
  }
30887
- }
30888
- };
30889
-
30890
- // ../../packages/catalog/src/glossary/workflow.ts
30891
- var WORKFLOW_GLOSSARY_DATA = {
30892
- "human-in-the-loop": {
33394
+ },
33395
+ "custom-quote-offer": {
30893
33396
  aliases: {
30894
- ko: ["HITL", "\uD734\uBA3C\uC778\uB354\uB8E8\uD504", "\uC0AC\uB78C \uC2B9\uC778 \uB2E8\uACC4", "\uC5D0\uC774\uC804\uD2B8 \uC2E4\uD589 \uC804 \uD655\uC778", "\uC704\uD5D8 \uC791\uC5C5 \uC2B9\uC778"],
30895
- en: ["HITL", "human in the loop", "human approval guardrail", "manual review gate"]
33397
+ ko: ["\uB9DE\uCDA4 \uACAC\uC801\uC11C", "\uC5ED\uC81C\uC548 \uC624\uD37C", "B2B \uACAC\uC801 \uB9CC\uB8CC", "\uB9C8\uC77C\uC2A4\uD1A4 \uACAC\uC801"],
33398
+ en: ["custom proposal", "counter-offer quote", "expiring quote", "B2B custom offer"]
30896
33399
  },
30897
33400
  text: {
30898
33401
  ko: {
30899
- definition: "AI \uC5D0\uC774\uC804\uD2B8\uB098 \uC790\uB3D9\uD654 \uC6CC\uD06C\uD50C\uB85C\uAC00 \uB418\uB3CC\uB9AC\uAE30 \uC5B4\uB824\uC6B4 \uC791\uC5C5(\uC0AD\uC81C\xB7\uACB0\uC81C\xB7\uC678\uBD80 \uBC1C\uC1A1 \uB4F1)\uC744 \uC2E4\uD589\uD558\uAE30 \uC9C1\uC804\uC5D0 \uC2E4\uD589\uC744 \uBA48\uCD94\uACE0 \uC0AC\uB78C\uC758 \uBA85\uC2DC\uC801 \uC2B9\uC778 \uB610\uB294 \uAC70\uC808\uC744 \uC694\uAD6C\uD558\uB294 \uC548\uC804 \uC808\uCC28\uC785\uB2C8\uB2E4.",
30900
- example: "AI \uBE44\uC11C\uAC00 \uACE0\uAC1D\uC5D0\uAC8C \uD658\uBD88 \uBA54\uC77C\uC744 \uBC1C\uC1A1\uD558\uAC70\uB098 DB \uD14C\uC774\uBE14\uC744 \uC218\uC815\uD558\uAE30 \uC804\uC5D0 \uC601\uD5A5 \uBC94\uC704\uC640 \uC2E4\uD589 \uD30C\uB77C\uBBF8\uD130\uB97C \uCE74\uB4DC\uB85C \uBCF4\uC5EC \uC8FC\uACE0 [\uC2B9\uC778] \uBC84\uD2BC\uC744 \uB204\uB978 \uACBD\uC6B0\uC5D0\uB9CC \uC2E4\uC81C \uB3C4\uAD6C\uB97C \uC2E4\uD589\uD569\uB2C8\uB2E4.",
30901
- promptSnippet: "AI \uC5D0\uC774\uC804\uD2B8\uB098 \uC790\uB3D9\uD654 \uD30C\uC774\uD504\uB77C\uC778\uC5D0\uC11C \uD30C\uAD34\uC801\xB7\uAE08\uC804\uC801\xB7\uC678\uBD80 \uC804\uD30C \uC791\uC5C5\uC740 \uC790\uB3D9 \uC2E4\uD589\uD558\uC9C0 \uB9D0\uACE0 \uC778\uAC04 \uAC1C\uC785 \uC2B9\uC778(HITL) \uAC8C\uC774\uD2B8\uB97C \uB450\uC5B4 \uB300\uC0C1\uACFC \uD30C\uB77C\uBBF8\uD130 \uC694\uC57D\uC744 \uBCF4\uC5EC \uC900 \uB4A4 \uBA85\uC2DC\uC801 \uC2B9\uC778 \uD6C4\uC5D0\uB9CC \uC9C4\uD589\uB418\uAC8C \uD574 \uC918."
33402
+ definition: "\uC815\uD615\uD654\uB41C \uC815\uAC00 \uC0C1\uD488 \uB300\uC2E0 \uAD6C\uB9E4\uC790\uC758 \uC694\uAD6C \uBC94\uC704\xB7\uC218\uB7C9\xB7\uC77C\uC815\uC5D0 \uB9DE\uCDB0 \uD310\uB9E4\uC790\uB098 \uC601\uC5C5\uD300\uC774 \uAC00\uACA9, \uC791\uC5C5 \uBC94\uC704, \uB0A9\uAE30, \uBD84\uD560 \uC9C0\uAE09 \uB9C8\uC77C\uC2A4\uD1A4\uACFC \uC720\uD6A8 \uB9CC\uB8CC \uAE30\uD55C\uC744 \uB2F4\uC544 \uBC1C\uC1A1\uD558\uB294 \uB9DE\uCDA4\uD615 \uAC70\uB798 \uC81C\uC548\uC785\uB2C8\uB2E4. \uC870\uAC74 \uBCC0\uACBD\uC774\uB098 \uC5ED\uC81C\uC548\uC774 \uC624\uAC08 \uB54C \uC774\uC804 \uBC84\uC804 \uACAC\uC801\uC744 \uBB34\uD6A8\uD654\uD558\uACE0 \uC218\uB77D \uB2F9\uC2DC \uAC00\uACA9 \uC870\uAC74\uC744 \uC2A4\uB0C5\uC0F7\uC73C\uB85C \uACE0\uC815\uD574\uC57C \uBD84\uC7C1\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",
33403
+ example: "\uC678\uC8FC \uB9C8\uCF13\uD50C\uB808\uC774\uC2A4\uC5D0\uC11C \uD310\uB9E4\uC790\uAC00 3\uB2E8\uACC4 \uB9C8\uC77C\uC2A4\uD1A4\uACFC 7\uC77C \uC720\uD6A8\uAE30\uAC04\uC774 \uC801\uD78C \uB9DE\uCDA4 \uACAC\uC801\uC744 \uBCF4\uB0B4\uBA74, \uAD6C\uB9E4\uC790\uAC00 \uC5ED\uC81C\uC548 \uC2DC \uAE30\uC874 \uACAC\uC801\uC740 \uB300\uCCB4\uB428 \uC0C1\uD0DC\uB85C \uB2EB\uD788\uACE0 \uC218\uB77D\uD55C \uACAC\uC801 \uAE08\uC561\uC73C\uB85C \uC5D0\uC2A4\uD06C\uB85C \uACB0\uC81C\uAC00 \uC5F4\uB9BD\uB2C8\uB2E4.",
33404
+ promptSnippet: "\uB9DE\uCDA4 \uACAC\uC801 \uC81C\uC548(Custom Quote) \uD750\uB984\uC5D0\uB294 \uACAC\uC801 \uBC84\uC804\xB7\uB9CC\uB8CC \uC2DC\uAC01 \uAD00\uB9AC, \uC5ED\uC81C\uC548 \uC2DC \uAD6C\uBC84\uC804 \uBB34\uD6A8\uD654, \uC218\uB77D \uC2DC\uC810 \uAC00\uACA9\xB7\uB9C8\uC77C\uC2A4\uD1A4 \uC2A4\uB0C5\uC0F7 \uACE0\uC815, \uADF8\uB9AC\uACE0 \uC218\uB77D \uD6C4 \uACC4\uC57D\xB7\uACB0\uC81C \uC5F0\uACB0\uC744 \uD568\uAED8 \uAD6C\uD604\uD558\uC138\uC694."
30902
33405
  },
30903
33406
  en: {
30904
- definition: "A workflow guardrail that pauses an AI agent or automation before high-impact or irreversible actions, requiring explicit human approval or rejection to proceed.",
30905
- example: "Before an agent sends external emails or deletes records, pause execution and surface the exact tool parameters and impact summary for a user to approve or reject.",
30906
- promptSnippet: "Gate irreversible, financial, or external-facing automated actions behind a Human-in-the-Loop (HITL) approval step that displays exact parameters and risk context before execution."
33407
+ definition: "A tailored commercial proposal specifying custom scope, pricing, delivery schedule, milestone splits, and an expiration deadline. Counter-offers supersede prior revisions, and acceptance snapshots the agreed terms for checkout or contracting.",
33408
+ example: "A marketplace seller sends a 3-milestone quote valid for 7 days; if the buyer submits a counter-offer, the previous quote locks as superseded before the revised terms can be accepted.",
33409
+ promptSnippet: "Build custom quote workflows with versioned revisions, strict expiration timestamps, superseding rules on counter-offers, and immutable term snapshots upon acceptance."
30907
33410
  }
30908
33411
  }
30909
33412
  },
30910
- "service-level-agreement": {
33413
+ "referral-attribution": {
30911
33414
  aliases: {
30912
- ko: ["SLA", "\uC751\uB300 \uBAA9\uD45C \uC2DC\uAC04", "\uCC98\uB9AC \uAE30\uD55C \uC57D\uC18D", "\uC9C0\uC6D0 \uD2F0\uCF13 \uB9C8\uAC10 \uAE30\uD55C", "SLA \uD0C0\uC774\uBA38"],
30913
- en: ["SLA", "response time target", "resolution target", "support SLA timer"]
33415
+ ko: ["\uCD94\uCC9C\uC778 \uADC0\uC18D", "\uC18C\uAC1C \uACBD\uB85C \uCD94\uC801", "\uB808\uD37C\uB7F4 \uC5B4\uD2B8\uB9AC\uBDF0\uC158", "\uC5D0\uC774\uC804\uC2DC \uC18C\uC2A4 \uADC0\uC18D"],
33416
+ en: ["referral tracking", "source attribution", "partner referral credit", "recruiter source attribution"]
30914
33417
  },
30915
33418
  text: {
30916
33419
  ko: {
30917
- definition: "\uACE0\uAC1D\uC9C0\uC6D0\xB7\uC6B4\uC601 \uC870\uC9C1\uC774 \uBB38\uC758\uB098 \uC7A5\uC560\uC5D0 \uCCAB \uC751\uB2F5\xB7\uD574\uACB0\uC744 \uC644\uB8CC\uD558\uAE30\uB85C \uC57D\uC18D\uD55C \uBAA9\uD45C \uC2DC\uAC04\uACFC \uC601\uC5C5\uC2DC\uAC04 \uACC4\uC0B0\xB7\uC784\uBC15 \uACBD\uACE0\xB7\uC5D0\uC2A4\uCEEC\uB808\uC774\uC158 \uAE30\uC900\uC785\uB2C8\uB2E4.",
30918
- example: "\uAE34\uAE09 \uBB38\uC758\uB294 \uCCAB \uC751\uB2F5 1\uC2DC\uAC04 \uC774\uB0B4 SLA\uB97C \uC801\uC6A9\uD558\uACE0, \uACE0\uAC1D \uB2F5\uBCC0\uC744 \uAE30\uB2E4\uB9AC\uB294 \uB3D9\uC548\uC5D0\uB294 \uD0C0\uC774\uBA38\uB97C \uC77C\uC2DC\uC815\uC9C0\uD558\uBA70, \uB9C8\uAC10 15\uBD84 \uC804\uC5D0\uB294 \uB2F4\uB2F9 \uD300\uC5D0 \uACBD\uACE0\uB97C \uBCF4\uB0C5\uB2C8\uB2E4.",
30919
- promptSnippet: "\uBB38\uC758 \uD050\uB098 \uC6B4\uC601 \uC6CC\uD06C\uD50C\uB85C\uC5D0 \uC11C\uBE44\uC2A4 \uC218\uC900 \uD611\uC57D(SLA) \uAE30\uC900\uC744 \uBC18\uC601\uD560 \uB54C \uC6B0\uC120\uC21C\uC704\uBCC4 \uBAA9\uD45C \uC2DC\uAC04, \uC601\uC5C5\uC2DC\uAC04 \uAE30\uC900 \uD0C0\uC774\uBA38, \uACE0\uAC1D \uB300\uAE30 \uC911 \uC77C\uC2DC\uC815\uC9C0 \uC870\uAC74, \uC784\uBC15\xB7\uCD08\uACFC \uC2DC \uC5D0\uC2A4\uCEEC\uB808\uC774\uC158 \uADDC\uCE59\uC744 \uBA85\uD655\uD788 \uBD84\uB9AC\uD574 \uC124\uACC4\uD574 \uC918."
33420
+ definition: "\uCD94\uCC9C \uB9C1\uD06C, \uCD08\uB300 \uCF54\uB4DC, \uCC44\uC6A9 \uD5E4\uB4DC\uD5CC\uD305 \uC5D0\uC774\uC804\uC2DC, \uD30C\uD2B8\uB108 \uC720\uC785\uC744 \uD1B5\uD574 \uB4E4\uC5B4\uC628 \uAC00\uC785\uC790\uB098 \uC9C0\uC6D0\uC790\uC758 \uC6D0\uCC9C(Source)\uACFC \uAE30\uC5EC \uC8FC\uCCB4\uB97C \uADDC\uC815\uC5D0 \uB530\uB77C \uAE30\uB85D\uD574 \uBCF4\uC0C1\xB7\uC218\uC218\uB8CC \uC815\uC0B0\uC758 \uADFC\uAC70\uB85C \uC0BC\uB294 \uADC0\uC18D \uAD00\uB9AC \uADDC\uCE59\uC785\uB2C8\uB2E4. \uB3D9\uC77C \uB300\uC0C1\uC774 \uC5EC\uB7EC \uACBD\uB85C\uB85C \uC911\uBCF5 \uC720\uC785\uB420 \uB54C \uCD5C\uCD08 \uC811\uC810\xB7\uCD5C\uADFC \uC811\uC810\xB7\uC720\uD6A8 \uC18C\uC720 \uAE30\uAC04 \uC911 \uC5B4\uB290 \uADDC\uCE59\uC744 \uB530\uB97C\uC9C0 \uBBF8\uB9AC \uD655\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.",
33421
+ example: "\uCC44\uC6A9 \uC2DC\uC2A4\uD15C\uC5D0\uC11C \uCD94\uCC9C\uC778\uC774 \uBA3C\uC800 \uB4F1\uB85D\uD55C \uD6C4\uBCF4\uC790\uAC00 30\uC77C \uC774\uB0B4\uC5D0 \uB2E4\uB978 \uACBD\uB85C\uB85C \uC911\uBCF5 \uC9C0\uC6D0\uD558\uB354\uB77C\uB3C4 \uC720\uD6A8 \uC18C\uC720 \uAE30\uAC04 \uC548\uC758 \uCD5C\uCD08 \uCD94\uCC9C\uC778\uC5D0\uAC8C \uC18C\uAC1C \uADC0\uC18D\uC744 \uC720\uC9C0\uD558\uACE0 \uD0C0\uC784\uB77C\uC778\uC5D0 \uADFC\uAC70\uB97C \uB0A8\uAE41\uB2C8\uB2E4.",
33422
+ promptSnippet: "\uCD94\uCC9C \uC720\uC785 \uADC0\uC18D(Referral Attribution) \uB85C\uC9C1\uC5D0\uC11C\uB294 \uC911\uBCF5 \uC720\uC785 \uC2DC \uC6B0\uC120\uC21C\uC704(\uCD5C\uCD08 vs \uCD5C\uADFC), \uC18C\uC720\uAD8C \uC720\uD6A8 \uAE30\uAC04 \uB9CC\uB8CC, \uC790\uAE30 \uCD94\uCC9C\xB7\uBD80\uC815 \uC911\uBCF5 \uCC28\uB2E8, \uADF8\uB9AC\uACE0 \uBCF4\uC0C1\xB7\uC815\uC0B0 \uD655\uC815 \uC2DC\uC810(\uC608: \uC785\uC0AC 90\uC77C\xB7\uACB0\uC81C \uC644\uB8CC)\uC744 \uBA85\uD655\uD788 \uC815\uC758\uD558\uC138\uC694."
30920
33423
  },
30921
33424
  en: {
30922
- definition: "A formal commitment defining target first-response and resolution times for support or operations, including business-hour calendars, pause states, and escalation rules.",
30923
- example: "Apply a 1-hour first-response SLA to urgent tickets, pause the clock while waiting on customer reply, and flag approaching breaches before timeout.",
30924
- promptSnippet: "Model Service-Level Agreement (SLA) tracking with priority-based target durations, business-hours calculation, explicit pause states (e.g., waiting on customer), and breach escalation alerts."
33425
+ definition: "Rules for crediting a signup, purchase, or job candidate to the referring user, partner, or agency when tracking rewards or fees\u2014explicitly defining precedence, ownership windows, and duplicate-submission resolution.",
33426
+ example: "In an applicant tracking system, keep referral attribution locked to the original agency within a 90-day ownership window if the candidate reapplies directly, logging every source event.",
33427
+ promptSnippet: "Define referral attribution rules with explicit first-touch vs. last-touch precedence, ownership expiration windows, self-referral/fraud checks, and clear qualifying payout events."
33428
+ }
33429
+ }
33430
+ }
33431
+ };
33432
+
33433
+ // ../../packages/catalog/src/glossary/education-operations.ts
33434
+ var EDUCATION_OPERATIONS_GLOSSARY_DATA = {
33435
+ "learning-management-system": {
33436
+ aliases: {
33437
+ ko: ["LMS", "\uD559\uC2B5 \uAD00\uB9AC", "\uD559\uC2B5 \uAD00\uB9AC \uC2DC\uC2A4\uD15C", "\uC628\uB77C\uC778 \uAC15\uC758 \uC2DC\uC2A4\uD15C", "\uC218\uAC15 \uAD00\uB9AC"],
33438
+ en: ["LMS", "learning management system", "learning platform", "course management"]
33439
+ },
33440
+ text: {
33441
+ ko: {
33442
+ definition: "\uD559\uC2B5\uC790 \uB4F1\uB85D, \uBC18\xB7\uCF54\uD638\uD2B8 \uC6B4\uC601, \uAC15\uC88C \uBC30\uC815, \uCC38\uC5EC\xB7\uC9C4\uB3C4\uC728 \uCD94\uC801, \uACFC\uC81C\xB7\uD3C9\uAC00\uB97C \uD1B5\uD569 \uAD00\uB9AC\uD558\uB294 \uC2DC\uC2A4\uD15C\uC785\uB2C8\uB2E4. \uCF58\uD150\uCE20 \uC81C\uC791\xB7\uBC1C\uD589 \uC911\uC2EC\uC758 CMS\uC640 \uAD6C\uBD84\uB418\uBA70, \uD559\uC2B5\uC790 \uAD8C\uD55C\uACFC \uC9C4\uB3C4 \uC0B0\uC815 \uAE30\uC900\uC740 \uC11C\uBE44\uC2A4 \uC815\uCC45\uC5D0 \uB9DE\uCDB0 \uD655\uC778\uD574\uC57C \uD569\uB2C8\uB2E4.",
33443
+ example: "\uCF54\uD638\uD2B8\uBCC4\uB85C \uC218\uAC15\uC0DD\uC744 \uBC30\uC815\uD558\uACE0 \uAC01 \uCC28\uC2DC \uC644\uB8CC \uC5EC\uBD80\uC640 \uD034\uC988 \uC81C\uCD9C \uC0C1\uD0DC\uB97C \uAE30\uB85D\uD574 \uAC15\uC0AC\uC640 \uAD00\uB9AC\uC790\uAC00 \uC774\uC218 \uD604\uD669\uC744 \uD655\uC778\uD569\uB2C8\uB2E4.",
33444
+ promptSnippet: "\uD559\uC2B5 \uAD00\uB9AC \uC2DC\uC2A4\uD15C(LMS) \uAE30\uB2A5\uC744 \uC124\uACC4\uD560 \uB54C \uD559\uC2B5\uC790\xB7\uBC18/\uCF54\uD638\uD2B8\xB7\uAC15\uC88C \uBC30\uC815\xB7\uCC38\uC5EC/\uC9C4\uB3C4\xB7\uD3C9\uAC00 \uC5D4\uD2F0\uD2F0\uB97C \uBD84\uB9AC\uD574 CMS\uC640 \uAD6C\uBD84\uD558\uACE0, \uD559\uC2B5\uC790 \uAD8C\uD55C \uBC94\uC704\uC640 \uC9C4\uB3C4\uC728 \uACC4\uC0B0 \uAE30\uC900\uC744 \uC11C\uBE44\uC2A4 \uC815\uCC45\uC5D0 \uB9DE\uAC8C \uBA3C\uC800 \uD655\uC778\uD558\uB3C4\uB85D \uD574 \uC918."
33445
+ },
33446
+ en: {
33447
+ definition: "A system for managing learners, cohorts or classes, course assignments, participation/progress tracking, and assessments. It differs from a CMS, and learner permissions plus progress calculation rules must be confirmed per service.",
33448
+ example: "Assign learners to a cohort, track module participation and assessment submissions per enrollment, and surface completion status for instructors.",
33449
+ promptSnippet: "Model a Learning Management System (LMS) around learners, cohorts, course assignments, progress, and assessments distinct from a CMS, confirming learner permission boundaries and progress calculation rules per service."
30925
33450
  }
30926
33451
  }
30927
33452
  },
30928
- "know-your-customer": {
33453
+ "curriculum-alignment": {
30929
33454
  aliases: {
30930
- ko: ["KYC", "\uACE0\uAC1D \uC2E0\uC6D0 \uD655\uC778", "\uD310\uB9E4\uC790 \uC785\uC810 \uBCF8\uC778\uC778\uC99D", "\uC2E0\uBD84\uC99D \uC778\uC99D \uB2E8\uACC4", "\uD55C\uB3C4 \uC0C1\uD5A5 \uC2EC\uC0AC"],
30931
- en: ["KYC", "identity verification", "customer verification", "seller onboarding KYC"]
33455
+ ko: ["\uAD50\uC721\uACFC\uC815 \uC5F0\uACC4", "\uC131\uCDE8\uAE30\uC900 \uC5F0\uACC4", "\uCEE4\uB9AC\uD058\uB7FC \uB9E4\uD551", "\uD559\uC2B5 \uBAA9\uD45C \uC5F0\uACC4", "\uAD50\uACFC \uC5F0\uACC4"],
33456
+ en: ["curriculum alignment", "curriculum mapping", "standards alignment", "learning objective alignment"]
30932
33457
  },
30933
33458
  text: {
30934
33459
  ko: {
30935
- definition: "\uAE08\uC735\xB7\uC815\uC0B0\xB7\uB9C8\uCF13\uD50C\uB808\uC774\uC2A4 \uC11C\uBE44\uC2A4\uAC00 \uBC95\uC801 \uADDC\uC81C\uC640 \uBD80\uC815 \uAC70\uB798 \uBC29\uC9C0\uB97C \uC704\uD574 \uC0AC\uC6A9\uC790\uC758 \uC2E4\uBA85\xB7\uC0AC\uC5C5\uC790\xB7\uACC4\uC88C \uC18C\uC720 \uC5EC\uBD80\uB97C \uB2E8\uACC4\uBCC4\uB85C \uAC80\uC99D\uD558\uB294 \uC808\uCC28\uC785\uB2C8\uB2E4.",
30936
- example: "\uD540\uD14C\uD06C \uC9C0\uAC11\uC774\uB098 \uC624\uD508\uB9C8\uCF13\uC5D0\uC11C \uBBF8\uC778\uC99D \uACC4\uC815\uC740 \uC18C\uC561 \uC870\uD68C\uB9CC \uD5C8\uC6A9\uD558\uACE0, \uC2E0\uBD84\uC99D\xB7\uACC4\uC88C \uC778\uC99D(KYC)\uC744 \uB9C8\uCCD0\uC57C \uCD9C\uAE08\uC774\uB098 \uD310\uB9E4\uC790 \uC815\uC0B0 \uD55C\uB3C4\uB97C \uC5F4\uC5B4 \uC90D\uB2C8\uB2E4.",
30937
- promptSnippet: "\uACB0\uC81C\xB7\uC815\uC0B0\xB7\uCD9C\uAE08 \uAE30\uB2A5\uC774 \uD3EC\uD568\uB41C \uC11C\uBE44\uC2A4\uC5D0\uC11C\uB294 \uACE0\uAC1D \uD655\uC778 \uC808\uCC28(KYC)\uC758 \uAC80\uC99D \uB2E8\uACC4(\uBBF8\uC81C\uCD9C\xB7\uC2EC\uC0AC \uC911\xB7\uC2B9\uC778\xB7\uBCF4\uB958)\uB97C \uBD84\uB9AC\uD558\uACE0, \uBBF8\uC644\uB8CC \uC0C1\uD0DC\uC758 \uAE30\uB2A5 \uC81C\uD55C\uACFC \uBC18\uB824 \uC0AC\uC720 \uC7AC\uC81C\uCD9C \uD750\uB984\uC744 \uC124\uACC4\uD574 \uC918."
33460
+ definition: "\uCF58\uD150\uCE20\xB7\uC2E4\uC2B5 \uD65C\uB3D9\uC744 \uC815\uD574\uC9C4 \uD559\uC2B5 \uBAA9\uD45C\uB098 \uC131\uCDE8\uAE30\uC900\uC5D0 \uB300\uC751\uD574 \uB9E4\uD551\uD558\uB294 \uACFC\uC815\uC785\uB2C8\uB2E4. \uD56D\uBAA9\uC744 \uC5F0\uACC4\uD588\uB2E4\uACE0 \uD574\uC11C \uACF5\uC2DD \uC778\uC99D \uD68D\uB4DD\uC774\uB098 \uAD50\uC721\uACFC\uC815 \uC804\uCCB4 \uBC94\uC704 \uCDA9\uC871\uC744 \uC790\uB3D9\uC73C\uB85C \uC758\uBBF8\uD558\uC9C0\uB294 \uC54A\uC2B5\uB2C8\uB2E4.",
33461
+ example: "\uBE14\uB85D \uCF54\uB529 \uC2E4\uC2B5 \uB2E8\uC6D0\uC744 \uD574\uB2F9 \uD559\uB144\uAD70 \uBB38\uC81C \uBD84\uD574 \uC131\uCDE8\uAE30\uC900\uC5D0 \uC5F0\uACB0\uD558\uBA74\uC11C, \uC5B4\uB5A4 \uD65C\uB3D9\uC774 \uADFC\uAC70\uC778\uC9C0\uC640 \uC544\uC9C1 \uB2E4\uB8E8\uC9C0 \uC54A\uC740 \uBBF8\uD3EC\uD568 \uAE30\uC900\uC744 \uD568\uAED8 \uAE30\uB85D\uD569\uB2C8\uB2E4.",
33462
+ promptSnippet: "\uAD50\uC721\uACFC\uC815 \uC5F0\uACC4(\uB9E4\uD551) \uAE30\uB2A5\uC744 \uC124\uACC4\uD560 \uB54C \uAE30\uC900 \uBC84\uC804, \uB300\uC0C1 \uD559\uB144\xB7\uC218\uC900, \uC5F0\uACC4 \uADFC\uAC70\xB7\uC0AC\uC720, \uBBF8\uCDA9\uC871 \uACF5\uBC31(Gap)\uC744 \uBA85\uC2DC\uD558\uAC8C \uD558\uACE0, \uC5F0\uACC4 \uD45C\uC2DC\uB9CC\uC73C\uB85C \uACF5\uC2DD \uC778\uC99D\uC774\uB098 \uC804\uCCB4 \uCDA9\uC871\uC744 \uB2E8\uC815\uD558\uC9C0 \uC54A\uB3C4\uB85D \uAD6C\uC131\uD574 \uC918."
30938
33463
  },
30939
33464
  en: {
30940
- definition: "A regulated verification workflow used by fintech and marketplace platforms to confirm user or merchant identity, business legitimacy, and payout account ownership.",
30941
- example: "Restrict withdrawals and seller payouts while an account is unverified or pending KYC review, and show clear resubmission guidance if documents are rejected.",
30942
- promptSnippet: "Structure Know Your Customer (KYC) onboarding with explicit verification states (unverified, under review, approved, rejected), capability limits per tier, and clear resubmission feedback."
33465
+ definition: "The process of mapping learning content or activities to defined learning objectives or achievement standards. Linking an item does not imply official certification or complete curriculum coverage.",
33466
+ example: "Map a hands-on coding lesson to a target grade-level standard version, documenting the supporting activity rationale alongside any uncovered standard gaps.",
33467
+ promptSnippet: "Structure curriculum alignment records to capture standard version, target grade/level, alignment evidence/rationale, and uncovered gaps, without implying official certification or full coverage."
30943
33468
  }
30944
33469
  }
30945
33470
  },
30946
- "user-onboarding": {
33471
+ "course-prerequisite": {
30947
33472
  aliases: {
30948
- ko: ["\uC628\uBCF4\uB529 \uD750\uB984", "\uCD08\uAE30 \uC124\uC815 \uAC00\uC774\uB4DC", "\uC2DC\uC791\uD558\uAE30 \uCCB4\uD06C\uB9AC\uC2A4\uD2B8", "\uCCAB \uC0AC\uC6A9\uC790 \uC548\uB0B4"],
30949
- en: ["onboarding flow", "getting started checklist", "first-run experience", "activation checklist"]
33473
+ ko: ["\uC120\uC218 \uACFC\uBAA9 \uC870\uAC74", "\uC774\uC218 \uC120\uD589 \uC694\uAC74", "\uC218\uAC15 \uC790\uACA9 \uAC80\uC99D", "\uB2E8\uACC4 \uC7A0\uAE08 \uD574\uC81C"],
33474
+ en: ["prerequisite course", "course gating", "required prior completion", "module prerequisite"]
30950
33475
  },
30951
33476
  text: {
30952
33477
  ko: {
30953
- definition: "\uC0C8\uB85C \uAC00\uC785\uD55C \uC0AC\uC6A9\uC790\uB098 \uD300\uC774 \uC11C\uBE44\uC2A4\uC758 \uCCAB \uD575\uC2EC \uAC00\uCE58\uB97C \uBE60\uB974\uAC8C \uACBD\uD5D8\uD558\uB3C4\uB85D \uCD08\uAE30 \uC124\uC815\xB7\uD544\uC218 \uC785\uB825\xB7\uB458\uB7EC\uBCF4\uAE30 \uB2E8\uACC4\uB97C \uC21C\uC11C\uB300\uB85C \uC548\uB0B4\uD558\uB294 \uD750\uB984\uC785\uB2C8\uB2E4.",
30954
- example: '\uD300 \uD611\uC5C5 SaaS \uAC00\uC785 \uC9C1\uD6C4 "1. \uD504\uB85C\uD544 \uC124\uC815 \u2192 2. \uD300\uC6D0 \uCD08\uB300 \u2192 3. \uCCAB \uD504\uB85C\uC81D\uD2B8 \uB9CC\uB4E4\uAE30" \uCCB4\uD06C\uB9AC\uC2A4\uD2B8\uC640 \uC9C4\uD589\uB960 \uB9C9\uB300\uB97C \uBCF4\uC5EC \uC8FC\uC5B4 \uC774\uD0C8 \uC5C6\uC774 \uC2DC\uC791\uD558\uAC8C \uD569\uB2C8\uB2E4.',
30955
- promptSnippet: "\uC2E0\uADDC \uC0AC\uC6A9\uC790 \uC628\uBCF4\uB529\uC740 \uD55C \uBC88\uC5D0 \uBAA8\uB4E0 \uC124\uC815\uC744 \uAC15\uC694\uD558\uC9C0 \uB9D0\uACE0 3~4\uAC1C\uC758 \uC791\uC740 \uC644\uB8CC \uAC00\uB2A5\uD55C \uB2E8\uACC4\uC640 \uC9C4\uD589\uB960 \uD45C\uC2DC\uB85C \uB098\uB204\uACE0, \uAC74\uB108\uB6F0\uAE30\uC640 \uB098\uC911\uC5D0 \uC774\uC5B4\uD558\uAE30\uB97C \uD5C8\uC6A9\uD574 \uC918."
33478
+ definition: "\uC2EC\uD654 \uAC15\uC88C\uB098 \uB2E4\uC74C \uB2E8\uC6D0\uC744 \uC218\uAC15\xB7\uC81C\uCD9C\uD558\uAE30 \uC804\uC5D0 \uBC18\uB4DC\uC2DC \uBA3C\uC800 \uC774\uC218\uD558\uAC70\uB098 \uD1B5\uACFC\uD574\uC57C \uD558\uB294 \uC120\uD589 \uACFC\uBAA9\xB7\uC9C4\uB2E8 \uD3C9\uAC00\xB7\uC810\uC218 \uAE30\uC900\uC785\uB2C8\uB2E4. \uBBF8\uCDA9\uC871 \uC2DC \uB2E8\uC21C\uD788 \uC7A0\uAE08 \uC544\uC774\uCF58\uB9CC \uBCF4\uC5EC \uC8FC\uC9C0 \uC54A\uACE0 \uBD80\uC871\uD55C \uC120\uC218 \uACFC\uBAA9 \uBAA9\uB85D\uACFC \uBC14\uB85C \uC774\uB3D9 \uACBD\uB85C\uB97C \uC548\uB0B4\uD558\uBA70, \uAD00\uB9AC\uC790\uC758 \uC608\uC678 \uC218\uAC15 \uC2B9\uC778(Override) \uC5EC\uBD80\uB97C \uC815\uCC45\uC73C\uB85C \uBD84\uB9AC\uD569\uB2C8\uB2E4.",
33479
+ example: '"\uBE44\uB3D9\uAE30 \uC0C1\uD0DC \uAD00\uB9AC" \uAC15\uC88C\uB294 "TypeScript \uAE30\uCD08" \uC774\uC218\uB97C \uC120\uC218 \uC694\uAC74\uC73C\uB85C \uB450\uACE0, \uBBF8\uC774\uC218 \uC218\uAC15\uC0DD\uC5D0\uAC8C\uB294 \uC7A0\uAE08 \uC0AC\uC720\uC640 \uC120\uC218 \uAC15\uC88C \uBC14\uB85C\uAC00\uAE30\uB97C \uBCF4\uC5EC \uC8FC\uB418 \uAD00\uB9AC\uC790 \uC608\uC678 \uBA74\uC81C\uAC00 \uBD80\uC5EC\uB41C \uACBD\uC6B0\uC5D0\uB9CC \uC7A0\uAE08\uC744 \uD489\uB2C8\uB2E4.',
33480
+ promptSnippet: "\uC120\uC218 \uD559\uC2B5 \uC694\uAC74 \uAE30\uB2A5\uC744 \uC124\uACC4\uD560 \uB54C \uC774\uC218 \uC644\uB8CC\xB7\uCD5C\uC18C \uD569\uACA9 \uC810\uC218 \uC870\uAC74, \uC21C\uD658 \uC758\uC874\uC131(A\u2192B\u2192A) \uBC29\uC9C0, \uBBF8\uCDA9\uC871 \uD559\uC2B5\uC790\uC5D0\uAC8C \uBD80\uC871 \uC870\uAC74\uACFC \uBC14\uB85C\uAC00\uAE30 \uC548\uB0B4, \uADF8\uB9AC\uACE0 \uC6B4\uC601\uC790\uC758 \uC0AC\uC720 \uAE30\uB85D\uD615 \uC608\uC678 \uC2B9\uC778(Override)\uC744 \uD568\uAED8 \uAD6C\uD604\uD558\uC138\uC694."
30956
33481
  },
30957
33482
  en: {
30958
- definition: "A guided activation flow that helps new users or teams complete essential setup steps and reach their first meaningful outcome without feeling overwhelmed.",
30959
- example: 'After sign-up, present a 3-step checklist ("Profile", "Invite teammates", "Create first project") with a live progress indicator and optional skip.',
30960
- promptSnippet: "Design user onboarding as a concise 3-4 step checklist with visible progress, clear next-action cues, and safe skip/resume support so users reach core value quickly."
33483
+ definition: "Prior courses, modules, or minimum assessment scores a learner must complete before enrolling in or unlocking an advanced unit\u2014pairing clear missing-requirement links with optional audited instructor overrides.",
33484
+ example: 'Lock "Async State Patterns" until "TypeScript Foundations" reaches completion, showing a checklist link to the missing prerequisite unless an instructor grants an override.',
33485
+ promptSnippet: "Enforce course prerequisites with cycle-free dependency checks, clear visual explanations linking learners to incomplete prerequisites, and audited admin/instructor override support."
30961
33486
  }
30962
33487
  }
30963
33488
  },
30964
- "escrow-settlement": {
33489
+ "grading-rubric-appeal": {
30965
33490
  aliases: {
30966
- ko: ["\uC5D0\uC2A4\uD06C\uB85C \uACB0\uC81C \uC815\uC0B0", "\uAD6C\uB9E4 \uD655\uC815 \uD6C4 \uC9C0\uAE09", "\uB300\uAE08 \uBCF4\uAD00 \uC815\uC0B0", "\uC815\uC0B0 \uBCF4\uB958 \uBC0F \uBD84\uC7C1 \uCC98\uB9AC"],
30967
- en: ["escrow payout", "held funds settlement", "buyer confirmation release", "marketplace escrow"]
33491
+ ko: ["\uCC44\uC810 \uB8E8\uBE0C\uB9AD", "\uC131\uC801 \uC7AC\uAC80\uD1A0 \uC694\uCCAD", "\uD3C9\uAC00 \uC774\uC758 \uC81C\uAE30", "\uCC44\uC810 \uAE30\uC900 \uACF5\uAC1C"],
33492
+ en: ["grading rubric", "grade appeal", "regrade request", "score review workflow"]
30968
33493
  },
30969
33494
  text: {
30970
33495
  ko: {
30971
- definition: "\uAD6C\uB9E4\uC790\uC640 \uD310\uB9E4\uC790 \uC0AC\uC774 \uAC70\uB798\uC5D0\uC11C \uD50C\uB7AB\uD3FC\uC774 \uACB0\uC81C \uB300\uAE08\uC744 \uC548\uC804\uD558\uAC8C \uBCF4\uAD00\uD558\uACE0 \uC788\uB2E4\uAC00, \uAD6C\uB9E4 \uD655\uC815\xB7\uBC30\uC1A1 \uC644\uB8CC\xB7\uB9C8\uC77C\uC2A4\uD1A4 \uAC80\uC218\uAC00 \uB05D\uB09C \uB4A4 \uC218\uC218\uB8CC\uB97C \uCC28\uAC10\uD574 \uC815\uC0B0\uD574 \uC8FC\uB294 \uD750\uB984\uC785\uB2C8\uB2E4.",
30972
- example: "\uB9C8\uCF13\uD50C\uB808\uC774\uC2A4\uC5D0\uC11C \uAD6C\uB9E4\uC790\uAC00 \uACB0\uC81C\uD558\uBA74 \uB300\uAE08\uC740 \uC5D0\uC2A4\uD06C\uB85C \uB300\uAE30 \uC0C1\uD0DC\uB85C \uBB36\uC774\uACE0, \uC0C1\uD488 \uC218\uB839 \uD6C4 [\uAD6C\uB9E4 \uD655\uC815]\uC744 \uB204\uB974\uAC70\uB098 \uC790\uB3D9 \uD655\uC815 \uAE30\uAC04\uC774 \uC9C0\uB098\uBA74 \uC218\uC218\uB8CC\uB97C \uC81C\uC678\uD55C \uAE08\uC561\uC774 \uD310\uB9E4\uC790\uC5D0\uAC8C \uC815\uC0B0\uB429\uB2C8\uB2E4.",
30973
- promptSnippet: "\uB9C8\uCF13\uD50C\uB808\uC774\uC2A4\uB098 \uC678\uC8FC \uAC70\uB798\uC5D0\uB294 \uACB0\uC81C \uB300\uAE08\uC744 \uC989\uC2DC \uCD9C\uAE08\uC2DC\uD0A4\uC9C0 \uC54A\uACE0 \uBCF4\uAD00 \u2192 \uAD6C\uB9E4 \uD655\uC815(\uB610\uB294 \uAE30\uD55C \uB9CC\uB8CC) \u2192 \uC218\uC218\uB8CC \uCC28\uAC10 \uC815\uC0B0 \u2192 \uBD84\uC7C1 \uC2DC \uC9C0\uAE09 \uBCF4\uB958 \uC0C1\uD0DC\uB97C \uAC70\uCE58\uB294 \uC5D0\uC2A4\uD06C\uB85C \uC815\uC0B0 \uD750\uB984\uC744 \uC801\uC6A9\uD574 \uC918."
33496
+ definition: "\uC11C\uC220\uD615\xB7\uC2E4\uC2B5 \uACFC\uC81C\uB97C \uD3C9\uAC00\uD560 \uB54C \uD56D\uBAA9\uBCC4 \uBC30\uC810\uACFC \uAC10\uC810 \uAE30\uC900\uC744 \uBA85\uC2DC\uD55C \uCC44\uC810 \uAE30\uC900\uD45C(Rubric)\uB97C \uC81C\uACF5\uD558\uACE0, \uC131\uC801 \uACF5\uAC1C \uD6C4 \uC815\uD574\uC9C4 \uAE30\uAC04 \uC548\uC5D0 \uD559\uC2B5\uC790\uAC00 \uBB38\uD56D\uBCC4 \uADFC\uAC70\uB97C \uB4E4\uC5B4 \uC131\uC801 \uC7AC\uAC80\uD1A0\xB7\uC774\uC758\uC2E0\uCCAD\uC744 \uC811\uC218\uD558\uACE0 \uAC15\uC0AC\uAC00 \uC218\uC815 \uC0AC\uC720\uC640 \uD568\uAED8 \uC810\uC218\uB97C \uD655\uC815\uD558\uB294 \uD3C9\uAC00 \uD750\uB984\uC785\uB2C8\uB2E4.",
33497
+ example: "\uC2DC\uD5D8 \uACB0\uACFC \uD654\uBA74\uC5D0\uC11C \uBB38\uD56D\uBCC4 \uB8E8\uBE0C\uB9AD \uB4DD\uC810\uACFC \uAC10\uC810 \uCF54\uBA58\uD2B8\uB97C \uD3BC\uCCD0 \uBCF8 \uB4A4, \uCC44\uC810 \uACF5\uAC1C \uD6C4 48\uC2DC\uAC04 \uC774\uB0B4\uC5D0 3\uBC88 \uBB38\uD56D\uC5D0 \uB300\uD55C \uC7AC\uAC80\uD1A0 \uC694\uCCAD\uC744 \uC81C\uCD9C\uD574 \uAC15\uC0AC\uC758 \uC870\uC815 \uC774\uB825\uACFC \uD568\uAED8 \uCD5C\uC885 \uC810\uC218\uB97C \uD655\uC815\uD569\uB2C8\uB2E4.",
33498
+ promptSnippet: "\uCC44\uC810 \uAE30\uC900\uD45C\uC640 \uC131\uC801 \uC774\uC758\uC2E0\uCCAD \uD750\uB984\uC5D0\uB294 \uBB38\uD56D\uBCC4 \uB8E8\uBE0C\uB9AD \uBC30\uC810 \uAD6C\uC870, \uC774\uC758\uC2E0\uCCAD \uD5C8\uC6A9 \uB9C8\uAC10 \uCC3D, \uC7AC\uAC80\uD1A0 \uC694\uCCAD \uC2DC \uC810\uC218 \uC870\uC815 \uC804\uD6C4 \uAC12\uACFC \uBCC0\uACBD \uC0AC\uC720\uC758 \uAC10\uC0AC \uAE30\uB85D, \uADF8\uB9AC\uACE0 \uCD5C\uC885 \uD655\uC815 \uC7A0\uAE08\uC744 \uD3EC\uD568\uD558\uC138\uC694."
30974
33499
  },
30975
33500
  en: {
30976
- definition: "A marketplace settlement workflow where the platform holds buyer funds safely until delivery confirmation or milestone sign-off, then releases net payouts after fee deduction.",
30977
- example: "Hold order funds in escrow at checkout and release the seller payout minus platform fees only after buyer confirmation or auto-confirm expiry, pausing payout if a dispute opens.",
30978
- promptSnippet: "Model escrow settlement with distinct ledger states\u2014held on payment, frozen during active disputes, and released net of platform fees upon buyer confirmation or milestone approval."
33501
+ definition: "A transparent assessment workflow pairing criterion-level scoring rubrics with a time-bounded window for learners to contest scores on specific items and receive an audited regrade decision.",
33502
+ example: "Learners expand item-by-item rubric feedback on their graded exam and submit a regrade request on Question 3 within 48 hours, recording any score adjustment and instructor rationale.",
33503
+ promptSnippet: "Implement rubric-based grading and appeals with explicit criterion weights, bounded appeal deadlines, status tracking (submitted, under review, adjusted/upheld), and an audit trail of score revisions."
30979
33504
  }
30980
33505
  }
30981
33506
  },
30982
- proration: {
33507
+ "certificate-verification": {
30983
33508
  aliases: {
30984
- ko: ["\uD504\uB85C\uB808\uC774\uC158", "\uC911\uB3C4 \uBCC0\uACBD \uCC28\uC561 \uACC4\uC0B0", "\uB0A8\uC740 \uAE30\uAC04 \uC77C\uD560 \uC815\uC0B0", "\uC694\uAE08\uC81C \uC5C5\uADF8\uB808\uC774\uB4DC \uCC28\uC561"],
30985
- en: ["pro-rata billing", "prorated charge", "mid-cycle plan adjustment", "seat proration"]
33509
+ ko: ["\uC218\uB8CC\uC99D \uAC80\uC99D", "\uC774\uC218\uC99D \uC9C4\uC704 \uD655\uC778", "\uC790\uACA9\uC99D \uBC1C\uAE09 \uBC88\uD638 \uC870\uD68C", "\uC218\uB8CC \uC778\uC99D \uB9C1\uD06C"],
33510
+ en: ["certificate check", "credential verification", "completion certificate lookup", "tamper-evident certificate"]
30986
33511
  },
30987
33512
  text: {
30988
33513
  ko: {
30989
- definition: "\uAD6C\uB3C5 \uACB0\uC81C \uC8FC\uAE30 \uB3C4\uC911\uC5D0 \uC694\uAE08\uC81C\uB97C \uBCC0\uACBD\uD558\uAC70\uB098 \uD300 \uC88C\uC11D \uC218\uB97C \uB298\uB9AC\uACE0 \uC904\uC77C \uB54C, \uB0A8\uC740 \uC0AC\uC6A9 \uC77C\uC218\xB7\uC2DC\uAC04 \uBE44\uC728\uC5D0 \uB9DE\uCDB0 \uCD94\uAC00 \uCCAD\uAD6C\uC561\uC774\uB098 \uD06C\uB808\uB527 \uCC28\uC561\uC744 \uC815\uC0B0\uD558\uB294 \uADDC\uCE59\uC785\uB2C8\uB2E4.",
30990
- example: "\uC6D4\uAC04 30\uC77C \uC8FC\uAE30 \uC911 15\uC77C\uC774 \uB0A8\uC740 \uC2DC\uC810\uC5D0 \uC88C\uC11D\uC744 1\uAC1C \uCD94\uAC00\uD558\uBA74 \uC804\uCCB4 \uD55C \uB2EC \uC694\uAE08\uC774 \uC544\uB2C8\uB77C \uB0A8\uC740 15\uC77C\uCE58 \uC808\uBC18 \uAE08\uC561\uB9CC \uACC4\uC0B0\uD574 \uCCAD\uAD6C\uC11C\uC5D0 \uBC18\uC601\uD569\uB2C8\uB2E4.",
30991
- promptSnippet: "\uAD6C\uB3C5 \uD50C\uB79C \uC5C5\uADF8\uB808\uC774\uB4DC\xB7\uB2E4\uC6B4\uADF8\uB808\uC774\uB4DC \uB610\uB294 \uC88C\uC11D \uC99D\uAC10 \uC2DC \uACB0\uC81C \uC8FC\uAE30 \uB0A8\uC740 \uAE30\uAC04\uC5D0 \uB530\uB978 \uC77C\uD560 \uACC4\uC0B0(Proration) \uC801\uC6A9 \uC5EC\uBD80\uC640 \uC608\uC0C1 \uCC28\uC561\xB7\uC801\uC6A9 \uC2DC\uC810(\uC989\uC2DC vs \uB2E4\uC74C \uC8FC\uAE30)\uC744 \uBCC0\uACBD \uD655\uC778 \uD654\uBA74\uC5D0 \uBBF8\uB9AC \uBCF4\uC5EC \uC918."
33514
+ definition: "\uC815\uD574\uC9C4 \uC774\uC218 \uAE30\uC900\uC744 \uCDA9\uC871\uD55C \uD559\uC2B5\uC790\uC5D0\uAC8C \uACE0\uC720 \uAC80\uC99D \uBC88\uD638\uAC00 \uB2F4\uAE34 \uC218\uB8CC\uC99D\uC744 \uBC1C\uAE09\uD558\uACE0, \uC678\uBD80 \uCC44\uC6A9 \uB2F4\uB2F9\uC790\uB098 \uC81C3\uC790\uAC00 \uACF5\uAC1C \uAC80\uC99D \uB9C1\uD06C\uB098 \uCF54\uB4DC\uB85C \uBC1C\uAE09 \uC0AC\uC2E4\xB7\uBC1C\uAE09\uC77C\xB7\uC720\uD6A8/\uCDE8\uC18C \uC0C1\uD0DC\uB97C \uD655\uC778\uD560 \uC218 \uC788\uAC8C \uD558\uB294 \uAC80\uC99D \uCCB4\uACC4\uC785\uB2C8\uB2E4. \uC218\uB8CC \uAE30\uC900 \uBCC0\uACBD\uC774\uB098 \uC624\uB958 \uBC1C\uAE09 \uC2DC \uC218\uB8CC\uC99D \uD3D0\uAE30(Revocation) \uC0C1\uD0DC\uB3C4 \uBC18\uC601\uD560 \uC218 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4.",
33515
+ example: "\uACFC\uBAA9 80% \uC774\uC0C1 \uC9C4\uB3C4\uC640 \uCD5C\uC885 \uD3C9\uAC00 \uD1B5\uACFC \uC2DC \uACE0\uC720 \uCF54\uB4DC `CERT-2026-8491`\uC744 \uBC1C\uAE09\uD558\uACE0, \uAC80\uC99D \uD398\uC774\uC9C0\uC5D0\uC11C \uC131\uBA85\xB7\uACFC\uC815\uBA85\xB7\uBC1C\uAE09\uC77C\uACFC \uD604\uC7AC \uC720\uD6A8 \uC0C1\uD0DC\uB97C \uD655\uC778\uD558\uB418 \uBBFC\uAC10 \uAC1C\uC778\uC815\uBCF4\uB294 \uB178\uCD9C\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
33516
+ promptSnippet: "\uC218\uB8CC\uC99D \uBC1C\uAE09 \uAC80\uC99D \uAE30\uB2A5\uC5D0\uB294 \uC218\uB8CC \uC694\uAC74 \uCDA9\uC871 \uAC80\uC99D\uACFC \uACE0\uC720 \uAC80\uC99D ID \uBC1C\uAE09, \uACF5\uAC1C \uAC80\uC99D \uD398\uC774\uC9C0\uC758 \uCD5C\uC18C \uC815\uBCF4 \uB178\uCD9C(\uC131\uBA85\xB7\uACFC\uC815\xB7\uBC1C\uAE09\uC77C\xB7\uC720\uD6A8/\uD3D0\uAE30 \uC0C1\uD0DC), \uC7AC\uBC1C\uAE09/\uCDE8\uC18C(Revoke) \uCC98\uB9AC \uBC0F \uB9C1\uD06C \uC6D0\uD074\uB9AD \uBCF5\uC0AC\uB97C \uAD6C\uD604\uD558\uC138\uC694."
30992
33517
  },
30993
33518
  en: {
30994
- definition: "A billing calculation that adjusts charges or credits proportionally based on the remaining days in a billing cycle when a plan or seat count changes mid-cycle.",
30995
- example: "Adding a team seat halfway through a 30-day billing cycle charges roughly half the monthly seat price rather than the full month.",
30996
- promptSnippet: "Preview prorated charges or credits clearly before confirming mid-cycle plan or seat changes, specifying whether adjustments apply immediately or on the next invoice."
33519
+ definition: "Issuing uniquely identified completion credentials to eligible learners and providing a public lookup endpoint or link where third parties can confirm authenticity, issue date, and whether the certificate remains valid or has been revoked.",
33520
+ example: "Upon passing the final exam and attendance requirement, generate a unique verification ID that resolves on a public check page showing recipient, course, date, and valid/revoked status without leaking private contact details.",
33521
+ promptSnippet: "Design certificate issuance and verification with strict completion eligibility checks, unguessable verification IDs, minimal PII exposure on public lookup pages, and explicit revocation states."
30997
33522
  }
30998
33523
  }
30999
33524
  },
31000
- "grace-period": {
33525
+ "cohort-enrollment-window": {
31001
33526
  aliases: {
31002
- ko: ["\uC720\uC608\uAE30\uAC04", "\uACB0\uC81C \uC2E4\uD328 \uC720\uC608", "\uD0C8\uD1F4 \uCCA0\uD68C \uAE30\uAC04", "\uC2DC\uD06C\uB9BF \uAD50\uCCB4 \uC720\uC608"],
31003
- en: ["grace window", "dunning grace period", "deletion grace period", "dual-valid window"]
33527
+ ko: ["\uAE30\uC218 \uBAA8\uC9D1 \uAE30\uAC04", "\uCF54\uD638\uD2B8 \uC218\uAC15 \uC2E0\uCCAD \uAE30\uAC04", "\uC218\uAC15 \uAE30\uAC04 \uC81C\uC5B4", "\uAE30\uC218\uBCC4 \uD559\uC2B5 \uC77C\uC815"],
33528
+ en: ["enrollment period", "cohort registration window", "cohort access dates", "intake window"]
31004
33529
  },
31005
33530
  text: {
31006
33531
  ko: {
31007
- definition: "\uACB0\uC81C \uC2E4\uD328\xB7\uAD6C\uB3C5 \uB9CC\uB8CC\xB7\uD68C\uC6D0 \uD0C8\uD1F4 \uC694\uCCAD\xB7API \uC2DC\uD06C\uB9BF \uAD50\uCCB4 \uAC19\uC740 \uC804\uD658\uC774 \uBC1C\uC0DD\uD55C \uB4A4, \uC989\uC2DC \uCC28\uB2E8\uD558\uAC70\uB098 \uC601\uAD6C \uC0AD\uC81C\uD558\uC9C0 \uC54A\uACE0 \uBCF5\uAD6C\xB7\uC804\uD658\uD560 \uC218 \uC788\uB3C4\uB85D \uD5C8\uC6A9\uD558\uB294 \uC77C\uC815 \uC720\uC608 \uC2DC\uAC04\uC785\uB2C8\uB2E4.",
31008
- example: "\uC815\uAE30 \uACB0\uC81C\uAC00 \uC2E4\uD328\uD574\uB3C4 \uC989\uC2DC \uACC4\uC815\uC744 \uC7A0\uADF8\uC9C0 \uC54A\uACE0 7\uC77C\uAC04 \uC720\uC608 \uAE30\uAC04 \uBC30\uB108\uC640 \uACB0\uC81C \uC218\uB2E8 \uAD50\uCCB4 \uC548\uB0B4\uB97C \uB744\uC6CC \uC815\uC0C1 \uBCF5\uAD6C\uD560 \uC218 \uC788\uAC8C \uD569\uB2C8\uB2E4.",
31009
- promptSnippet: "\uACB0\uC81C \uC2E4\uD328, \uD574\uC9C0 \uC608\uC57D, \uACC4\uC815 \uC0AD\uC81C, \uC6F9\uD6C5 \uC2DC\uD06C\uB9BF \uAD50\uCCB4\uC5D0\uB294 \uC989\uC2DC \uCC28\uB2E8 \uB300\uC2E0 \uBA85\uC2DC\uC801 \uC720\uC608 \uAE30\uAC04(Grace Period)\uACFC \uB0A8\uC740 \uAE30\uD55C \uBC30\uB108\xB7\uBCF5\uAD6C \uC561\uC158\uC744 \uC81C\uACF5\uD574 \uC758\uB3C4\uCE58 \uC54A\uC740 \uC11C\uBE44\uC2A4 \uC911\uB2E8\uC744 \uC904\uC5EC \uC918."
33532
+ definition: "\uAE30\uC218(Cohort) \uB2E8\uC704\uB85C \uC6B4\uC601\uD558\uB294 \uAD50\uC721 \uACFC\uC815\uC5D0\uC11C \uBAA8\uC9D1 \uC2DC\uC791\xB7\uB9C8\uAC10\uC77C, \uC2E4\uC81C \uD559\uC2B5 \uC5F4\uB78C \uAE30\uAC04, \uC218\uB8CC \uD6C4 \uBCF5\uC2B5 \uD5C8\uC6A9 \uAE30\uAC04\uC744 \uD0C0\uC784\uC874 \uAE30\uC900\uC73C\uB85C \uBD84\uB9AC \uC81C\uC5B4\uD558\uB294 \uC77C\uC815 \uAD00\uB9AC \uADDC\uCE59\uC785\uB2C8\uB2E4. \uAC19\uC740 \uAC15\uC88C\uB77C\uB3C4 1\uAE30\uC640 2\uAE30 \uC218\uAC15\uC0DD\uC774 \uC11C\uB85C \uB2E4\uB978 \uB9C8\uAC10\uC77C\uACFC \uC815\uC6D0\xB7\uB300\uAE30\uC5F4\uC744 \uC801\uC6A9\uBC1B\uB3C4\uB85D \uAC15\uC88C \uD15C\uD50C\uB9BF\uACFC \uAE30\uC218 \uC778\uC2A4\uD134\uC2A4\uB97C \uBD84\uB9AC\uD569\uB2C8\uB2E4.",
33533
+ example: "\uBD04 3\uAE30 \uCF54\uD638\uD2B8\uB294 3\uC6D4 1~14\uC77C \uBAA8\uC9D1, 3\uC6D4 15\uC77C~4\uC6D4 30\uC77C \uD559\uC2B5 \uC9C4\uD589, \uC774\uD6C4 30\uC77C\uAC04 \uC77D\uAE30 \uC804\uC6A9 \uBCF5\uC2B5 \uAE30\uAC04\uC73C\uB85C \uC124\uC815\uD574 \uB9C8\uAC10 \uD6C4 \uC2E0\uADDC \uB4F1\uB85D\uC740 \uB9C9\uACE0 \uAE30\uC874 \uAE30\uC218 \uC9C4\uB3C4\uB294 \uBCF4\uC874\uD569\uB2C8\uB2E4.",
33534
+ promptSnippet: "\uAE30\uC218\uC81C \uC218\uAC15 \uAE30\uAC04 \uAD00\uB9AC\uC5D0\uC11C\uB294 \uAC15\uC88C \uCF58\uD150\uCE20\uC640 \uAE30\uC218(Cohort) \uC77C\uC815 \uC778\uC2A4\uD134\uC2A4\uB97C \uBD84\uB9AC\uD558\uACE0, \uBAA8\uC9D1 \uAE30\uAC04\xB7\uC218\uAC15 \uAE30\uAC04\xB7\uBCF5\uC2B5(\uC77D\uAE30 \uC804\uC6A9) \uAE30\uAC04\uC744 \uD0C0\uC784\uC874\uACFC \uD568\uAED8 \uBA85\uC2DC\uD558\uBA70 \uAE30\uC218 \uC815\uC6D0 \uB9C8\uAC10\uACFC \uAE30\uC218 \uC774\uB3D9 \uC2DC \uC9C4\uB3C4 \uCC98\uB9AC \uC815\uCC45\uC744 \uBA85\uD655\uD788 \uB450\uC138\uC694."
31010
33535
  },
31011
33536
  en: {
31012
- definition: "A configured buffer window after payment failure, cancellation, deletion request, or credential rotation during which users can recover or transition before hard enforcement.",
31013
- example: "After a recurring card charge fails, grant a 7-day grace period with a persistent banner to update payment details before downgrading entitlements.",
31014
- promptSnippet: "Include an explicit grace period with countdown banners and recovery actions for failed renewals, scheduled account deletions, or dual-valid secret rotations before hard cutoff."
33537
+ definition: "Separating course content from cohort-specific schedules\u2014registration open/close dates, active instruction period, and post-course read-only review access\u2014so each cohort enforces its own capacity and deadlines cleanly.",
33538
+ example: "Cohort 3 opens registration March 1\u201314, runs live instruction through April 30, and transitions automatically to a 30-day read-only archive afterward.",
33539
+ promptSnippet: "Separate reusable course definitions from cohort enrollment instances, defining timezone-aware registration, active study, and read-only review windows plus seat caps and cohort-transfer policies."
31015
33540
  }
31016
33541
  }
31017
33542
  },
31018
- "maker-checker-approval": {
33543
+ "timed-exam-submission": {
31019
33544
  aliases: {
31020
- ko: ["\uBA54\uC774\uCEE4 \uCCB4\uCEE4", "2\uC778 \uC2B9\uC778 \uCCB4\uACC4", "\uAD50\uCC28 \uC2B9\uC778", "\uACE0\uC704\uD5D8 \uC791\uC5C5 \uACB0\uC7AC", "4-eyes \uC6D0\uCE59"],
31021
- en: ["maker-checker", "four-eyes principle", "two-person approval", "peer sign-off"]
33545
+ ko: ["\uC2DC\uD5D8 \uD0C0\uC774\uBA38 \uC790\uB3D9 \uC81C\uCD9C", "\uC2DC\uAC04 \uC81C\uD55C \uC2DC\uD5D8", "\uC751\uC2DC \uC2DC\uAC04 \uB9CC\uB8CC \uC81C\uCD9C", "\uB2F5\uC548 \uC784\uC2DC \uC800\uC7A5"],
33546
+ en: ["timed assessment", "exam countdown auto-submit", "test timer submission", "assessment timeout"]
31022
33547
  },
31023
33548
  text: {
31024
33549
  ko: {
31025
- definition: "\uACE0\uC561 \uCD9C\uAE08, \uAD8C\uD55C \uC2B9\uACA9, \uC6B4\uC601 \uC124\uC815 \uBCC0\uACBD \uAC19\uC740 \uACE0\uC704\uD5D8 \uC791\uC5C5\uC744 \uC694\uCCAD\uD558\uB294 \uC0AC\uB78C(Maker)\uACFC \uC774\uB97C \uAC80\uD1A0\xB7\uC2B9\uC778\uD558\uB294 \uC0AC\uB78C(Checker)\uC744 \uBD84\uB9AC\uD574 \uB2E8\uB3C5 \uC2E4\uC218\uB098 \uC545\uC6A9\uC744 \uB9C9\uB294 \uC2B9\uC778 \uC6CC\uD06C\uD50C\uB85C\uC785\uB2C8\uB2E4.",
31026
- example: "\uB2F4\uB2F9\uC790 A\uAC00 \uB300\uB7C9 \uC815\uC0B0 \uC9C0\uAE09\uC744 \uAE30\uC548\uD558\uB354\uB77C\uB3C4 \uBCF8\uC778 \uACC4\uC815\uC740 \uC2B9\uC778 \uBC84\uD2BC\uC774 \uB9C9\uD600 \uC788\uACE0, \uB2E4\uB978 \uAD00\uB9AC\uC790 B\uAC00 \uB0B4\uC6A9\uC744 \uAC80\uD1A0\uD55C \uB4A4 \uC2B9\uC778\uD574\uC57C\uB9CC \uC2E4\uD589\uB429\uB2C8\uB2E4.",
31027
- promptSnippet: "\uACE0\uC704\uD5D8 \uC6B4\uC601 \uC791\uC5C5\uC5D0\uB294 \uC694\uCCAD\uC790(Maker)\uC640 \uC2B9\uC778\uC790(Checker)\uB97C \uB3D9\uC77C \uC778\uBB3C\uB85C \uD5C8\uC6A9\uD558\uC9C0 \uC54A\uB294 \uC774\uC911 \uC2B9\uC778 \uC6CC\uD06C\uD50C\uB85C\uB97C \uB450\uACE0, \uC2B9\uC778 \uB9CC\uB8CC \uC2DC\uAC04\xB7\uBC18\uB824 \uC0AC\uC720\xB7\uAC10\uC0AC \uB85C\uADF8\uB97C \uD568\uAED8 \uAE30\uB85D\uD574 \uC918."
33550
+ definition: "\uC751\uC2DC \uC2DC\uC791 \uC2DC\uAC01\uBD80\uD130 \uC81C\uD55C \uC2DC\uAC04\uC774 \uD750\uB974\uB294 \uC628\uB77C\uC778 \uC2DC\uD5D8\uC5D0\uC11C \uB2F5\uC548\uC744 \uC8FC\uAE30\uC801\uC73C\uB85C \uC784\uC2DC \uC800\uC7A5\uD574 \uB450\uACE0, \uBE0C\uB77C\uC6B0\uC800 \uC0C8\uB85C\uACE0\uCE68\uC774\uB098 \uC77C\uC2DC \uB04A\uAE40\uC5D0\uB3C4 \uC11C\uBC84 \uAE30\uC900 \uB0A8\uC740 \uC2DC\uAC04\uC744 \uB3D9\uAE30\uD654\uD558\uBA70 \uC885\uB8CC \uC2DC\uAC01 \uB3C4\uB798 \uC2DC \uBBF8\uC81C\uCD9C \uB2F5\uC548\uC744 \uC790\uB3D9 \uC81C\uCD9C\xB7\uB9C8\uAC10\uD558\uB294 \uD3C9\uAC00 \uBA54\uCEE4\uB2C8\uC998\uC785\uB2C8\uB2E4. \uD074\uB77C\uC774\uC5B8\uD2B8 \uC2DC\uACC4 \uC870\uC791\uC774\uB098 \uB9C8\uAC10 \uC9C1\uC804 \uC911\uBCF5 \uC81C\uCD9C\uC744 \uC11C\uBC84 \uC2DC\uAC01 \uAC80\uC99D\uC73C\uB85C \uB9C9\uC544\uC57C \uD569\uB2C8\uB2E4.",
33551
+ example: "60\uBD84 \uC81C\uD55C \uC2DC\uD5D8\uC5D0\uC11C \uC751\uC2DC\uC790\uAC00 \uBB38\uC81C\uB97C \uD480 \uB54C\uB9C8\uB2E4 \uB85C\uCEEC\uACFC \uC11C\uBC84\uC5D0 \uCD08\uC548\uC744 \uC800\uC7A5\uD558\uACE0, \uC885\uB8CC 5\uBD84 \uC804 \uACBD\uACE0 \uBC30\uB108\uB97C \uB744\uC6B4 \uB4A4 \uC11C\uBC84 \uB9C8\uAC10 \uC2DC\uAC01\uC774 \uC9C0\uB098\uBA74 \uB9C8\uC9C0\uB9C9 \uC800\uC7A5 \uB2F5\uC548\uC744 \uAE30\uC900\uC73C\uB85C \uC790\uB3D9 \uD655\uC815\uD569\uB2C8\uB2E4.",
33552
+ promptSnippet: "\uC81C\uD55C \uC2DC\uAC04 \uC2DC\uD5D8 \uC790\uB3D9 \uC81C\uCD9C \uAE30\uB2A5\uC740 \uD074\uB77C\uC774\uC5B8\uD2B8 \uCE74\uC6B4\uD2B8\uB2E4\uC6B4\uC5D0 \uC758\uC874\uD558\uC9C0 \uB9D0\uACE0 \uC11C\uBC84 \uAE30\uC900 \uC2DC\uC791\xB7\uB9C8\uAC10 \uC2DC\uAC01\uC744 \uAE30\uC900\uC73C\uB85C \uB0A8\uC740 \uC2DC\uAC04\uC744 \uACC4\uC0B0\uD558\uBA70, \uB2F5\uC548 \uC790\uB3D9 \uC784\uC2DC \uC800\uC7A5, \uC7AC\uC811\uC18D \uBCF5\uAD6C, \uC885\uB8CC \uC784\uBC15 \uACBD\uACE0 \uBC0F \uB9C8\uAC10 \uC2DC \uBA71\uB4F1 \uC790\uB3D9 \uC81C\uCD9C\uC744 \uAD6C\uD604\uD558\uC138\uC694."
31028
33553
  },
31029
33554
  en: {
31030
- definition: "A governance workflow requiring two distinct authorized people\u2014a Maker who initiates a high-risk action and a Checker who independently reviews and approves it.",
31031
- example: "An operator who drafts a bulk payout or production permission change cannot self-approve; a second reviewer must approve before execution.",
31032
- promptSnippet: "Enforce Maker-Checker dual-control approval on high-risk actions by blocking self-approval on the backend, adding request expiration and rejection reasons, and logging every decision."
33555
+ definition: "An online exam workflow that anchors countdown deadlines to server start/end timestamps, autosaves in-progress answers against disconnects or refreshes, warns before expiry, and idempotently auto-submits saved answers when time runs out.",
33556
+ example: "A 60-minute exam autosaves draft selections periodically, renders a 5-minute remaining warning banner, and finalizes the latest saved answers at the server deadline even if the tab closes.",
33557
+ promptSnippet: "Anchor timed exam deadlines to server timestamps rather than client clocks, autosave answer drafts resiliently, warn clearly before timeout, and execute idempotent server-enforced auto-submission at cutoff."
31033
33558
  }
31034
33559
  }
31035
33560
  }
@@ -31039,7 +33564,13 @@ var WORKFLOW_GLOSSARY_DATA = {
31039
33564
  var GLOSSARY_BODIES = {
31040
33565
  ...UI_GLOSSARY_DATA,
31041
33566
  ...ENGINEERING_GLOSSARY_DATA,
31042
- ...WORKFLOW_GLOSSARY_DATA
33567
+ ...WORKFLOW_GLOSSARY_DATA,
33568
+ ...CUSTOMER_SUPPORT_GLOSSARY_DATA,
33569
+ ...PAYMENTS_SETTLEMENT_GLOSSARY_DATA,
33570
+ ...PRODUCT_PLANNING_GLOSSARY_DATA,
33571
+ ...BUSINESS_OPERATIONS_GLOSSARY_DATA,
33572
+ ...SALES_MARKETING_GLOSSARY_DATA,
33573
+ ...EDUCATION_OPERATIONS_GLOSSARY_DATA
31043
33574
  };
31044
33575
  function buildGlossaryTerm(meta) {
31045
33576
  const body = GLOSSARY_BODIES[meta.id];
@@ -31304,7 +33835,7 @@ function searchTechniques(options = {}) {
31304
33835
  // package.json
31305
33836
  var package_default = {
31306
33837
  name: "@keke1933/vibe-dictionary-mcp",
31307
- version: "0.13.0",
33838
+ version: "0.15.0",
31308
33839
  license: "MIT",
31309
33840
  author: "leejh96",
31310
33841
  description: "Read-only local MCP for searching Vibe Dictionary techniques, domain knowledge, and glossary terms",
@@ -31434,7 +33965,7 @@ function createServer() {
31434
33965
  instructions: [
31435
33966
  "Find UI, graphics, layout, style, pixel art, video and AI native techniques. Search for a few candidates, compare summaries, useCases and matchedOn fields, then get_technique by exact ID only for the selected prompts.",
31436
33967
  'Before choosing designs for an education, community, commerce, booking, subscription, collaboration, customer-support, auth/account, notification, CMS/publishing, file/media, marketplace, event/check-in, recruiting/ATS, analytics, security/RBAC, logistics, fintech/wallet, healthcare, form/workflow-automation or AI agent service, use search_domain_knowledge with a short domain or workflow phrase such as "LMS", "\uD68C\uC6D0 \uC804\uC6A9", "\uBD80\uBD84 \uD658\uBD88", "\uD0C0\uC784\uC2AC\uB86F", "\uC815\uAE30 \uACB0\uC81C", "\uCE78\uBC18", "\uD5EC\uD504\uB370\uC2A4\uD06C", "RBAC", "\uD569\uD3EC\uC7A5", "\uBCF5\uC2DD \uC6D0\uC7A5" or "\uD1A0\uD070 \uC608\uC0B0". Compare summaries, useCases and matchedOn fields, then call get_domain_knowledge by a returned ID for concepts, workflows, pitfalls, open decisions, sources, related technique IDs and a reference prompt. Search supports bilingual aliases and ranked keyword matching, not semantic AI. If no entry fits, retry fewer terms or a synonym, or browse with an empty query. Workflows and examples are design references, not established policies. Do not assume answers to the open questions. Related designs do not implement the domain rules.',
31437
- 'To look up or clarify UI, engineering or workflow vocabulary such as "skeleton loading", "empty state", "debounce", "optimistic update", "\uACB0\uC81C \uB450 \uBC88 \uBC29\uC9C0", "RBAC" or "\uC774\uC911 \uC2B9\uC778", use search_glossary with a short Korean or English phrase or natural alias. search_glossary searches both languages and aliases regardless of output locale and omits full examples and promptSnippet; call get_glossary_term with a returned ID for the full example, ready-to-use promptSnippet and verified relatedTechniqueIds/relatedDomainIds you can pass directly to get_technique or get_domain_knowledge. Glossary examples and prompts are reference material, not implemented backend policies.',
33968
+ 'To look up or clarify UI, engineering, workflow, customer support, payments and settlement, planning and analytics, business operations, sales and marketing or education planning and operations vocabulary such as "skeleton loading", "empty state", "debounce", "optimistic update", "\uACB0\uC81C \uB450 \uBC88 \uBC29\uC9C0", "RBAC" or "\uC774\uC911 \uC2B9\uC778", use search_glossary with a short Korean or English phrase or natural alias. search_glossary searches both languages and aliases regardless of output locale and omits full examples and promptSnippet; call get_glossary_term with a returned ID for the full example, ready-to-use promptSnippet and verified relatedTechniqueIds/relatedDomainIds you can pass directly to get_technique or get_domain_knowledge. Glossary examples and prompts are reference material, not implemented backend policies.',
31438
33969
  "The calling assistant interprets the user request and generates short Korean or English search phrases for one effect at a time. The MCP performs bilingual weighted keyword/alias matching and runs no AI model. Extract concrete effects and targets; omit uncertain filters. For broad requests such as a clean or premium webpage, use the stated purpose and preferences; do not equate an adjective with one fixed style. Ask for clarification when missing context prevents a meaningful choice.",
31439
33970
  "For requests combining techniques, search distinct needs such as style, layout and interaction separately. Retrieve the selected prompts, then decide where each technique applies and compare their visual treatment, inputs and timing for conflicts. The tools do not compose techniques or check compatibility; the calling assistant makes those judgments.",
31440
33971
  "Use target/trigger filters only for required demo inputs. Compare summaries and useCases against the original request. If candidates are missing or unsuitable, retry a synonym, the other language or fewer modifiers, and remove only filters that are not required. Reset offset to zero when changing the query or filters. Do not select an unrelated result merely because it ranks first; clarify if useful candidates still cannot be found. Scores are not probabilities. locale selects output language independently of search language. These read-only tools return reference data only."
@@ -31539,7 +34070,7 @@ function createServer() {
31539
34070
  });
31540
34071
  server.registerTool("search_glossary", {
31541
34072
  title: "Search glossary / \uC6A9\uC5B4 \uC0AC\uC804 \uAC80\uC0C9",
31542
- description: 'Search Korean and English UI, engineering and workflow glossary terms by name, aliases (including natural user descriptions such as "\uACB0\uC81C \uB450 \uBC88 \uBC29\uC9C0"), definition, example and prompt. Bilingual normalization and weighted term coverage rank results regardless of output locale; this is not semantic AI search. Nonempty queries return score (not confidence) and matchedOn field names; empty queries browse catalog order. Non-matching queries return an empty list with total 0. Results exclude full example and promptSnippet; use get_glossary_term with a returned ID for full details and ready-to-use promptSnippet.',
34073
+ description: 'Search Korean and English glossary terms across UI, engineering, workflow, customer support, payments and settlement, planning and analytics, business operations, sales and marketing, and education planning and operations by name, aliases (including natural user descriptions such as "\uACB0\uC81C \uB450 \uBC88 \uBC29\uC9C0"), definition, example and prompt. Bilingual normalization and weighted term coverage rank results regardless of output locale; this is not semantic AI search. Nonempty queries return score (not confidence) and matchedOn field names; empty queries browse catalog order. Non-matching queries return an empty list with total 0. Results exclude full example and promptSnippet; use get_glossary_term with a returned ID for full details and ready-to-use promptSnippet.',
31543
34074
  inputSchema: {
31544
34075
  query: z.string().max(500).default("").describe("Short Korean/English term, acronym or natural description; omit to browse."),
31545
34076
  locale: localeSchema,