@keke1933/vibe-dictionary-mcp 0.14.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 (2) hide show
  1. package/dist/index.js +2408 -375
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -30732,716 +30732,2569 @@ var GLOSSARY_LINK_META = [
30732
30732
  category: "education-operations",
30733
30733
  relatedTechniqueIds: ["ly-dual-list-transfer", "ly-transposable-comparison-matrix"],
30734
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
+ }
30735
32362
  }
30736
- ];
32363
+ };
30737
32364
 
30738
- // ../../packages/catalog/src/glossary/ui.ts
30739
- var UI_GLOSSARY_DATA = {
30740
- "skeleton-loading": {
32365
+ // ../../packages/catalog/src/glossary/workflow.ts
32366
+ var WORKFLOW_GLOSSARY_DATA = {
32367
+ "human-in-the-loop": {
30741
32368
  aliases: {
30742
- 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"],
30743
- en: ["skeleton screen", "skeleton placeholder", "loading placeholder", "shimmer skeleton", "content placeholder"]
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"]
30744
32371
  },
30745
32372
  text: {
30746
32373
  ko: {
30747
- 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.",
30748
- 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.",
30749
- 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."
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."
30750
32377
  },
30751
32378
  en: {
30752
- definition: "A loading pattern that renders low-fidelity wireframe blocks matching the final layout dimensions before data arrives, preventing sudden layout shifts.",
30753
- 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.",
30754
- 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.'
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."
30755
32382
  }
30756
32383
  }
30757
32384
  },
30758
- "empty-state": {
32385
+ "user-onboarding": {
30759
32386
  aliases: {
30760
- 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"],
30761
- en: ["no results state", "zero state", "blank slate", "no data screen", "empty list fallback"]
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"]
30762
32389
  },
30763
32390
  text: {
30764
32391
  ko: {
30765
- 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.",
30766
- 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.',
30767
- 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."
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."
30768
32395
  },
30769
32396
  en: {
30770
- 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.",
30771
- 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.',
30772
- 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."
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."
30773
32400
  }
30774
32401
  }
30775
32402
  },
30776
- "inline-validation": {
32403
+ "grace-period": {
30777
32404
  aliases: {
30778
- 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"],
30779
- en: ["inline form validation", "field-level validation", "live field error", "input error feedback"]
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"]
30780
32645
  },
30781
32646
  text: {
30782
32647
  ko: {
30783
- 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.",
30784
- 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.",
30785
- 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."
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."
30786
32651
  },
30787
32652
  en: {
30788
- 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.",
30789
- 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.",
30790
- 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."
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."
30791
32656
  }
30792
32657
  }
30793
32658
  },
30794
- "progressive-disclosure": {
32659
+ "ticket-merging": {
30795
32660
  aliases: {
30796
- 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"],
30797
- en: ["gradual reveal", "expandable details", "on-demand details", "collapsible details", "layered disclosure"]
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"]
30798
32663
  },
30799
32664
  text: {
30800
32665
  ko: {
30801
- 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.",
30802
- 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.",
30803
- 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."
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."
30804
32669
  },
30805
32670
  en: {
30806
- definition: "An interaction principle that shows only essential options upfront and reveals secondary details or advanced settings only when the user asks for them.",
30807
- 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.",
30808
- 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)."
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."
30809
32674
  }
30810
32675
  }
30811
32676
  },
30812
- "toast-and-snackbar": {
32677
+ "priority-escalation": {
30813
32678
  aliases: {
30814
- 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"],
30815
- en: ["toast notification", "snackbar", "undo snackbar", "ephemeral notification", "status toast"]
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"]
30816
32681
  },
30817
32682
  text: {
30818
32683
  ko: {
30819
- 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.",
30820
- 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.',
30821
- 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.'
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."
30822
32687
  },
30823
32688
  en: {
30824
- 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.",
30825
- 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.',
30826
- 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.'
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."
30827
32692
  }
30828
32693
  }
30829
32694
  },
30830
- "command-palette": {
32695
+ "first-contact-resolution": {
30831
32696
  aliases: {
30832
- 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"],
30833
- en: ["quick launcher", "command menu", "Cmd+K palette", "action switcher", "slash command menu"]
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"]
30834
32699
  },
30835
32700
  text: {
30836
32701
  ko: {
30837
- 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.",
30838
- 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.',
30839
- 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."
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."
30840
32705
  },
30841
32706
  en: {
30842
- 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.",
30843
- example: 'Press Cmd+K inside a workspace app to filter commands like "Switch theme" or "Open project" and execute them immediately with Enter.',
30844
- 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."
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."
30845
32710
  }
30846
32711
  }
30847
- },
30848
- "focus-trap": {
32712
+ }
32713
+ };
32714
+
32715
+ // ../../packages/catalog/src/glossary/payments-settlement.ts
32716
+ var PAYMENTS_SETTLEMENT_GLOSSARY_DATA = {
32717
+ "know-your-customer": {
30849
32718
  aliases: {
30850
- 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"],
30851
- en: ["focus containment", "modal focus lock", "dialog focus management", "keyboard focus trap"]
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"]
30852
32721
  },
30853
32722
  text: {
30854
32723
  ko: {
30855
- 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.",
30856
- 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.",
30857
- 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."
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."
30858
32727
  },
30859
32728
  en: {
30860
- 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.",
30861
- 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.",
30862
- 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."
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."
30863
32732
  }
30864
32733
  }
30865
32734
  },
30866
- "virtual-scrolling": {
32735
+ "escrow-settlement": {
30867
32736
  aliases: {
30868
- 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"],
30869
- en: ["list virtualization", "windowing", "virtual list", "windowed rendering"]
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"]
30870
32739
  },
30871
32740
  text: {
30872
32741
  ko: {
30873
- 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.",
30874
- 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.",
30875
- 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."
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."
30876
32745
  },
30877
32746
  en: {
30878
- definition: "A rendering optimization that preserves full scroll height while mounting only the visible rows plus a small overscan buffer in the DOM.",
30879
- 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.",
30880
- 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."
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."
30881
32750
  }
30882
32751
  }
30883
32752
  },
30884
- "call-to-action": {
32753
+ proration: {
30885
32754
  aliases: {
30886
- ko: ["CTA", "\uCF5C\uD22C\uC561\uC158", "\uD589\uB3D9 \uC720\uB3C4 \uBC84\uD2BC", "\uC8FC\uC694 \uD589\uB3D9 \uBC84\uD2BC", "\uD575\uC2EC \uC804\uD658 \uC694\uC18C"],
30887
- en: ["CTA", "call to action button", "primary action", "conversion trigger", "action link"]
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"]
30888
32757
  },
30889
32758
  text: {
30890
32759
  ko: {
30891
- 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.",
30892
- 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.',
30893
- 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."
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."
30894
32763
  },
30895
32764
  en: {
30896
- 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).",
30897
- 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.',
30898
- 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."
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."
30899
32768
  }
30900
32769
  }
30901
32770
  },
30902
- "floating-action-button": {
32771
+ "dunning-management": {
30903
32772
  aliases: {
30904
- 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"],
30905
- en: ["FAB", "floating button", "primary floating button", "floating action"]
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"]
30906
32775
  },
30907
32776
  text: {
30908
32777
  ko: {
30909
- 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.",
30910
- 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.',
30911
- 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."
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."
30912
32781
  },
30913
32782
  en: {
30914
- 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.",
30915
- 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.',
30916
- 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."
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."
30917
32786
  }
30918
32787
  }
30919
32788
  },
30920
- "safe-area": {
32789
+ "double-entry-ledger": {
30921
32790
  aliases: {
30922
- 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"],
30923
- en: ["safe area inset", "notch safe margin", "viewport safe area", "home indicator inset"]
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"]
30924
32793
  },
30925
32794
  text: {
30926
32795
  ko: {
30927
- 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.",
30928
- 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.",
30929
- 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."
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."
30930
32799
  },
30931
32800
  en: {
30932
- 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.",
30933
- 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.",
30934
- 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."
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."
30935
32804
  }
30936
32805
  }
30937
- }
30938
- };
30939
-
30940
- // ../../packages/catalog/src/glossary/engineering.ts
30941
- var ENGINEERING_GLOSSARY_DATA = {
30942
- debounce: {
32806
+ },
32807
+ "usage-based-billing": {
30943
32808
  aliases: {
30944
- 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"],
30945
- en: ["debouncing", "input delay", "trailing debounce", "search input throttling"]
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"]
30946
32811
  },
30947
32812
  text: {
30948
32813
  ko: {
30949
- 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.",
30950
- 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.',
30951
- 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."
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."
30952
32817
  },
30953
32818
  en: {
30954
- 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.",
30955
- 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.",
30956
- 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."
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."
30957
32822
  }
30958
32823
  }
30959
32824
  },
30960
- "optimistic-update": {
32825
+ "payment-reconciliation": {
30961
32826
  aliases: {
30962
- 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"],
30963
- en: ["optimistic UI", "optimistic rendering", "instant UI update with rollback"]
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"]
30964
32829
  },
30965
32830
  text: {
30966
32831
  ko: {
30967
- 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.",
30968
- 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.",
30969
- 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."
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."
30970
32835
  },
30971
32836
  en: {
30972
- 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.",
30973
- 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.",
30974
- 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."
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."
30975
32840
  }
30976
32841
  }
30977
32842
  },
30978
- idempotency: {
32843
+ "withholding-tax-settlement": {
30979
32844
  aliases: {
30980
- 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"],
30981
- en: ["idempotency key", "duplicate request prevention", "prevent double charge", "safe retry"]
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"]
30982
32847
  },
30983
32848
  text: {
30984
32849
  ko: {
30985
- 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.",
30986
- 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.",
30987
- 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."
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."
30988
32853
  },
30989
32854
  en: {
30990
- 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.",
30991
- 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.",
30992
- 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."
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."
30993
32858
  }
30994
32859
  }
30995
32860
  },
30996
- "role-based-access-control": {
32861
+ "partial-refund": {
30997
32862
  aliases: {
30998
- 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"],
30999
- en: ["RBAC", "role based access control", "role permissions", "least privilege access"]
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"]
31000
32865
  },
31001
32866
  text: {
31002
32867
  ko: {
31003
- 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.",
31004
- 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.",
31005
- 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."
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."
31006
32871
  },
31007
32872
  en: {
31008
- 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.",
31009
- 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.",
31010
- 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."
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."
31011
32876
  }
31012
32877
  }
31013
- },
31014
- "server-sent-events": {
32878
+ }
32879
+ };
32880
+
32881
+ // ../../packages/catalog/src/glossary/product-planning.ts
32882
+ var PRODUCT_PLANNING_GLOSSARY_DATA = {
32883
+ "net-promoter-score": {
31015
32884
  aliases: {
31016
- ko: ["SSE", "\uB2E8\uBC29\uD5A5 \uC11C\uBC84 \uC2A4\uD2B8\uB9AC\uBC0D", "\uC2E4\uC2DC\uAC04 \uD1A0\uD070 \uC2A4\uD2B8\uB9AC\uBC0D", "EventSource \uC2A4\uD2B8\uB9BC"],
31017
- en: ["SSE", "EventSource", "HTTP streaming", "unidirectional server push"]
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"]
31018
32887
  },
31019
32888
  text: {
31020
32889
  ko: {
31021
- 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.",
31022
- 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.",
31023
- 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."
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."
31024
32893
  },
31025
32894
  en: {
31026
- definition: "A web standard allowing a server to push real-time text events over a single long-lived HTTP connection from server to client.",
31027
- example: "Stream LLM response tokens incrementally as they are generated while supporting user-triggered AbortController cancellation and automatic reconnection.",
31028
- 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."
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."
31029
32898
  }
31030
32899
  }
31031
32900
  },
31032
- "retrieval-augmented-generation": {
32901
+ "active-users": {
31033
32902
  aliases: {
31034
- 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"],
31035
- en: ["RAG", "retrieval augmented generation", "grounded generation", "citation-backed AI"]
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"]
31036
32905
  },
31037
32906
  text: {
31038
32907
  ko: {
31039
- 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.",
31040
- 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.",
31041
- 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."
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."
31042
32911
  },
31043
32912
  en: {
31044
- 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.",
31045
- 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.",
31046
- 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."
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."
31047
32916
  }
31048
32917
  }
31049
32918
  },
31050
- "dead-letter-queue": {
32919
+ "conversion-funnel": {
31051
32920
  aliases: {
31052
- ko: ["DLQ", "\uC2E4\uD328 \uC791\uC5C5 \uBCF4\uAD00 \uD050", "\uC6F9\uD6C5 \uC2E4\uD328 \uC7AC\uCC98\uB9AC \uD050", "\uC7AC\uC2DC\uB3C4 \uCD08\uACFC \uD050"],
31053
- en: ["DLQ", "dead letter queue", "failed job queue", "poison message queue"]
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"]
31054
32923
  },
31055
32924
  text: {
31056
32925
  ko: {
31057
- 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.",
31058
- 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.",
31059
- 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."
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."
31060
32929
  },
31061
32930
  en: {
31062
- 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.",
31063
- 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.",
31064
- 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."
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."
31065
32934
  }
31066
32935
  }
31067
32936
  },
31068
- "audit-log": {
32937
+ "conversion-rate": {
31069
32938
  aliases: {
31070
- 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"],
31071
- en: ["audit trail", "activity audit log", "security event log", "change history log"]
32939
+ ko: ["\uC804\uD658 \uBE44\uC728", "\uBAA9\uD45C \uB2EC\uC131 \uBE44\uC728", "CVR"],
32940
+ en: ["CVR", "goal conversion rate", "conversion ratio"]
31072
32941
  },
31073
32942
  text: {
31074
32943
  ko: {
31075
- 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.",
31076
- 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.",
31077
- 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."
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."
31078
32947
  },
31079
32948
  en: {
31080
- definition: "An append-only chronological record capturing who performed what action, on which resource, and when\u2014used for security review, compliance, and incident investigation.",
31081
- example: "Record role changes, API key revocations, and sensitive file downloads with actor, timestamp, and before/after summary while redacting secrets or raw tokens.",
31082
- 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."
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."
31083
32952
  }
31084
32953
  }
31085
32954
  },
31086
- "http-live-streaming": {
32955
+ "cohort-analysis": {
31087
32956
  aliases: {
31088
- 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"],
31089
- en: ["HLS", "m3u8 playlist", "adaptive streaming", "HLS video streaming", "segmented HTTP streaming"]
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"]
31090
32959
  },
31091
32960
  text: {
31092
32961
  ko: {
31093
- 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.",
31094
- 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.",
31095
- 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."
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."
31096
32965
  },
31097
32966
  en: {
31098
- 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.",
31099
- 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.",
31100
- 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."
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."
31101
32970
  }
31102
32971
  }
31103
32972
  },
31104
- "content-delivery-network": {
32973
+ "retention-rate": {
31105
32974
  aliases: {
31106
- ko: ["CDN", "\uC5E3\uC9C0 \uCE90\uC2DC", "\uBD84\uC0B0 \uCE90\uC2DC", "\uCF58\uD150\uCE20 \uC804\uC1A1\uB9DD", "\uC5E3\uC9C0 \uC11C\uBC84 \uCE90\uC2F1"],
31107
- en: ["CDN", "edge cache", "content distribution", "edge caching", "distributed edge delivery"]
32975
+ ko: ["\uB9AC\uD150\uC158 \uBE44\uC728", "\uC720\uC9C0\uC728", "\uC7AC\uBC29\uBB38 \uC720\uC9C0\uC728"],
32976
+ en: ["retention", "user retention", "cohort retention rate"]
31108
32977
  },
31109
32978
  text: {
31110
32979
  ko: {
31111
- 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.",
31112
- 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.",
31113
- 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."
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."
31114
32983
  },
31115
32984
  en: {
31116
- 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).",
31117
- 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.",
31118
- 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."
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."
31119
32988
  }
31120
32989
  }
31121
32990
  },
31122
- "content-management-system": {
32991
+ "attribution-window": {
31123
32992
  aliases: {
31124
- 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"],
31125
- en: ["CMS", "editorial system", "headless CMS", "content publishing system", "editorial workflow"]
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"]
31126
32995
  },
31127
32996
  text: {
31128
32997
  ko: {
31129
- 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.",
31130
- 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.",
31131
- 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."
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."
31132
33001
  },
31133
33002
  en: {
31134
- 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.",
31135
- 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.",
31136
- 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."
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."
31137
33006
  }
31138
33007
  }
31139
33008
  },
31140
- "supervised-learning": {
33009
+ "anomaly-detection": {
31141
33010
  aliases: {
31142
- 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"],
31143
- en: ["supervised ML", "labeled training", "classification and regression", "labeled dataset learning"]
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"]
31144
33013
  },
31145
33014
  text: {
31146
33015
  ko: {
31147
- 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.",
31148
- 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.",
31149
- 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."
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."
31150
33019
  },
31151
33020
  en: {
31152
- 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).",
31153
- 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.",
31154
- 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."
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."
31155
33024
  }
31156
33025
  }
31157
33026
  },
31158
- "unsupervised-learning": {
33027
+ "guardrail-metric": {
31159
33028
  aliases: {
31160
- ko: ["\uBE44\uC9C0\uB3C4\uD559\uC2B5", "\uAD70\uC9D1\uD654", "\uD328\uD134 \uD0D0\uC0C9", "\uD074\uB7EC\uC2A4\uD130\uB9C1", "\uCC28\uC6D0 \uCD95\uC18C \uD559\uC2B5"],
31161
- en: ["unsupervised ML", "clustering", "pattern discovery", "dimensionality reduction", "unlabeled data learning"]
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"]
31162
33031
  },
31163
33032
  text: {
31164
33033
  ko: {
31165
- 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.",
31166
- 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.",
31167
- 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."
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."
31168
33037
  },
31169
33038
  en: {
31170
- 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).",
31171
- 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.",
31172
- 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."
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."
31173
33042
  }
31174
33043
  }
31175
33044
  },
31176
- "reinforcement-learning": {
33045
+ "data-freshness": {
31177
33046
  aliases: {
31178
- 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"],
31179
- en: ["RL", "reward-based learning", "policy learning", "agent-environment learning"]
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"]
31180
33049
  },
31181
33050
  text: {
31182
33051
  ko: {
31183
- 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.",
31184
- 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.",
31185
- 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."
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."
31186
33055
  },
31187
33056
  en: {
31188
- 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.",
31189
- 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.",
31190
- 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.'
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."
31191
33060
  }
31192
33061
  }
31193
- }
31194
- };
31195
-
31196
- // ../../packages/catalog/src/glossary/workflow.ts
31197
- var WORKFLOW_GLOSSARY_DATA = {
31198
- "human-in-the-loop": {
33062
+ },
33063
+ "metric-definition": {
31199
33064
  aliases: {
31200
- 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"],
31201
- en: ["HITL", "human in the loop", "human approval guardrail", "manual review gate"]
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"]
31202
33067
  },
31203
33068
  text: {
31204
33069
  ko: {
31205
- 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.",
31206
- 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.",
31207
- 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."
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."
31208
33073
  },
31209
33074
  en: {
31210
- 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.",
31211
- 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.",
31212
- 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."
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."
31213
33078
  }
31214
33079
  }
31215
33080
  },
31216
- "user-onboarding": {
33081
+ "success-criteria": {
31217
33082
  aliases: {
31218
- 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"],
31219
- en: ["onboarding flow", "getting started checklist", "first-run experience", "activation checklist"]
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"]
31220
33085
  },
31221
33086
  text: {
31222
33087
  ko: {
31223
- 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.",
31224
- 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.',
31225
- 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."
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."
31226
33091
  },
31227
33092
  en: {
31228
- definition: "A guided activation flow that helps new users or teams complete essential setup steps and reach their first meaningful outcome without feeling overwhelmed.",
31229
- example: 'After sign-up, present a 3-step checklist ("Profile", "Invite teammates", "Create first project") with a live progress indicator and optional skip.',
31230
- 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."
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."
31231
33096
  }
31232
33097
  }
31233
33098
  },
31234
- "grace-period": {
33099
+ "churn-rate": {
31235
33100
  aliases: {
31236
- ko: ["\uC720\uC608\uAE30\uAC04", "\uACB0\uC81C \uC2E4\uD328 \uC720\uC608", "\uD0C8\uD1F4 \uCCA0\uD68C \uAE30\uAC04", "\uC2DC\uD06C\uB9BF \uAD50\uCCB4 \uC720\uC608"],
31237
- en: ["grace window", "dunning grace period", "deletion grace period", "dual-valid window"]
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"]
31238
33103
  },
31239
33104
  text: {
31240
33105
  ko: {
31241
- 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.",
31242
- 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.",
31243
- 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."
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."
31244
33109
  },
31245
33110
  en: {
31246
- definition: "A configured buffer window after payment failure, cancellation, deletion request, or credential rotation during which users can recover or transition before hard enforcement.",
31247
- example: "After a recurring card charge fails, grant a 7-day grace period with a persistent banner to update payment details before downgrading entitlements.",
31248
- 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."
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."
31249
33114
  }
31250
33115
  }
31251
33116
  },
31252
- "maker-checker-approval": {
33117
+ "activation-metric": {
31253
33118
  aliases: {
31254
- 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"],
31255
- en: ["maker-checker", "four-eyes principle", "two-person approval", "peer sign-off"]
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"]
31256
33121
  },
31257
33122
  text: {
31258
33123
  ko: {
31259
- 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.",
31260
- 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.",
31261
- 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."
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."
31262
33127
  },
31263
33128
  en: {
31264
- 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.",
31265
- example: "An operator who drafts a bulk payout or production permission change cannot self-approve; a second reviewer must approve before execution.",
31266
- 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."
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."
31267
33132
  }
31268
33133
  }
31269
33134
  },
31270
- "account-deactivation": {
33135
+ "north-star-metric": {
31271
33136
  aliases: {
31272
- ko: ["\uACC4\uC815 \uBE44\uD65C\uC131\uD654", "\uACC4\uC815 \uC911\uC9C0", "\uACC4\uC815 \uD734\uBA74", "\uC0AC\uC6A9 \uC81C\uD55C", "\uC811\uADFC \uC815\uC9C0"],
31273
- en: ["account deactivation", "account suspension", "disable account", "soft deactivation"]
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"]
31274
33139
  },
31275
33140
  text: {
31276
33141
  ko: {
31277
- 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.",
31278
- 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.",
31279
- 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."
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."
31280
33145
  },
31281
33146
  en: {
31282
- 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.",
31283
- 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.",
31284
- 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."
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."
31285
33150
  }
31286
33151
  }
31287
- }
31288
- };
31289
-
31290
- // ../../packages/catalog/src/glossary/customer-support.ts
31291
- var CUSTOMER_SUPPORT_GLOSSARY_DATA = {
31292
- "service-level-agreement": {
33152
+ },
33153
+ "sample-quota": {
31293
33154
  aliases: {
31294
- 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"],
31295
- en: ["SLA", "response time target", "resolution target", "support SLA timer"]
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"]
31296
33157
  },
31297
33158
  text: {
31298
33159
  ko: {
31299
- 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.",
31300
- 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.",
31301
- 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."
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."
31302
33163
  },
31303
33164
  en: {
31304
- definition: "A formal commitment defining target first-response and resolution times for support or operations, including business-hour calendars, pause states, and escalation rules.",
31305
- 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.",
31306
- 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."
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."
31307
33168
  }
31308
33169
  }
31309
33170
  },
31310
- "voice-of-customer": {
33171
+ "saved-report-view": {
31311
33172
  aliases: {
31312
- ko: ["VOC", "\uACE0\uAC1D\uC758 \uC18C\uB9AC", "\uACE0\uAC1D \uD53C\uB4DC\uBC31", "\uACE0\uAC1D \uC758\uACAC", "\uACE0\uAC1D \uAC74\uC758"],
31313
- en: ["VOC", "Voice of Customer", "customer feedback", "customer voice", "customer insights"]
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"]
31314
33175
  },
31315
33176
  text: {
31316
33177
  ko: {
31317
- 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.",
31318
- 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.",
31319
- 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."
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."
31320
33181
  },
31321
33182
  en: {
31322
- 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.",
31323
- 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.",
31324
- 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."
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.'
31325
33186
  }
31326
33187
  }
31327
33188
  }
31328
33189
  };
31329
33190
 
31330
- // ../../packages/catalog/src/glossary/payments-settlement.ts
31331
- var PAYMENTS_SETTLEMENT_GLOSSARY_DATA = {
31332
- "know-your-customer": {
33191
+ // ../../packages/catalog/src/glossary/business-operations.ts
33192
+ var BUSINESS_OPERATIONS_GLOSSARY_DATA = {
33193
+ "objectives-and-key-results": {
31333
33194
  aliases: {
31334
- 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"],
31335
- en: ["KYC", "identity verification", "customer verification", "seller onboarding KYC"]
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"]
31336
33197
  },
31337
33198
  text: {
31338
33199
  ko: {
31339
- 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.",
31340
- 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.",
31341
- 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."
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."
31342
33203
  },
31343
33204
  en: {
31344
- definition: "A regulated verification workflow used by fintech and marketplace platforms to confirm user or merchant identity, business legitimacy, and payout account ownership.",
31345
- example: "Restrict withdrawals and seller payouts while an account is unverified or pending KYC review, and show clear resubmission guidance if documents are rejected.",
31346
- promptSnippet: "Structure Know Your Customer (KYC) onboarding with explicit verification states (unverified, under review, approved, rejected), capability limits per tier, and clear resubmission feedback."
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."
31347
33208
  }
31348
33209
  }
31349
33210
  },
31350
- "escrow-settlement": {
33211
+ "inventory-allocation": {
31351
33212
  aliases: {
31352
- 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"],
31353
- en: ["escrow payout", "held funds settlement", "buyer confirmation release", "marketplace escrow"]
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"]
31354
33215
  },
31355
33216
  text: {
31356
33217
  ko: {
31357
- 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.",
31358
- 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.",
31359
- 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."
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."
31360
33221
  },
31361
33222
  en: {
31362
- 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.",
31363
- 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.",
31364
- 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."
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."
31365
33226
  }
31366
33227
  }
31367
33228
  },
31368
- proration: {
33229
+ "reverse-logistics": {
31369
33230
  aliases: {
31370
- 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"],
31371
- en: ["pro-rata billing", "prorated charge", "mid-cycle plan adjustment", "seat proration"]
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"]
31372
33233
  },
31373
33234
  text: {
31374
33235
  ko: {
31375
- 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.",
31376
- 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.",
31377
- 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."
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."
31378
33239
  },
31379
33240
  en: {
31380
- 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.",
31381
- example: "Adding a team seat halfway through a 30-day billing cycle charges roughly half the monthly seat price rather than the full month.",
31382
- 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."
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."
31383
33244
  }
31384
33245
  }
31385
- }
31386
- };
31387
-
31388
- // ../../packages/catalog/src/glossary/product-planning.ts
31389
- var PRODUCT_PLANNING_GLOSSARY_DATA = {
31390
- "net-promoter-score": {
33246
+ },
33247
+ "split-shipment": {
31391
33248
  aliases: {
31392
- ko: ["NPS", "\uC21C\uCD94\uCC9C\uC9C0\uC218", "\uC21C\uCD94\uCC9C\uACE0\uAC1D\uC9C0\uC218", "\uCD94\uCC9C \uC9C0\uC218", "\uCD94\uCC9C \uC758\uD5A5 \uC870\uC0AC"],
31393
- en: ["NPS", "Net Promoter Score", "promoter score", "customer loyalty metric"]
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"]
31394
33251
  },
31395
33252
  text: {
31396
33253
  ko: {
31397
- 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.",
31398
- 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.",
31399
- 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."
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."
31400
33257
  },
31401
33258
  en: {
31402
- 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.",
31403
- 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.",
31404
- 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."
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."
31405
33262
  }
31406
33263
  }
31407
33264
  },
31408
- "active-users": {
33265
+ "proof-of-delivery": {
31409
33266
  aliases: {
31410
- 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"],
31411
- en: ["MAU", "WAU", "DAU", "monthly active users", "weekly active users", "daily active users"]
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"]
31412
33269
  },
31413
33270
  text: {
31414
33271
  ko: {
31415
- 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.",
31416
- 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.",
31417
- 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."
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."
31418
33275
  },
31419
33276
  en: {
31420
- 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.",
31421
- 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.",
31422
- 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."
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."
31423
33280
  }
31424
33281
  }
31425
- }
31426
- };
31427
-
31428
- // ../../packages/catalog/src/glossary/business-operations.ts
31429
- var BUSINESS_OPERATIONS_GLOSSARY_DATA = {
31430
- "objectives-and-key-results": {
33282
+ },
33283
+ "cold-chain-monitoring": {
31431
33284
  aliases: {
31432
- ko: ["OKR", "KR", "\uD575\uC2EC \uACB0\uACFC", "\uBAA9\uD45C \uAD00\uB9AC", "\uBAA9\uD45C\uC640 \uD575\uC2EC \uACB0\uACFC"],
31433
- en: ["OKR", "KR", "key results", "goal framework", "objectives and key results"]
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"]
31434
33287
  },
31435
33288
  text: {
31436
33289
  ko: {
31437
- 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.",
31438
- 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.',
31439
- 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."
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."
31440
33293
  },
31441
33294
  en: {
31442
- 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.",
31443
- 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.',
31444
- 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."
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."
31445
33298
  }
31446
33299
  }
31447
33300
  }
@@ -31484,6 +33337,96 @@ var SALES_MARKETING_GLOSSARY_DATA = {
31484
33337
  promptSnippet: "Architect Customer Relationship Management (CRM) workflows with role-based access control, record deduplication, PII minimization, owner assignment, and explicit status lifecycle management."
31485
33338
  }
31486
33339
  }
33340
+ },
33341
+ "coupon-stacking-rule": {
33342
+ aliases: {
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"]
33345
+ },
33346
+ text: {
33347
+ ko: {
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."
33351
+ },
33352
+ en: {
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."
33356
+ }
33357
+ }
33358
+ },
33359
+ "win-back-campaign": {
33360
+ aliases: {
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"]
33363
+ },
33364
+ text: {
33365
+ ko: {
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."
33369
+ },
33370
+ en: {
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."
33374
+ }
33375
+ }
33376
+ },
33377
+ "unsubscribe-suppression": {
33378
+ aliases: {
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"]
33381
+ },
33382
+ text: {
33383
+ ko: {
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."
33387
+ },
33388
+ en: {
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."
33392
+ }
33393
+ }
33394
+ },
33395
+ "custom-quote-offer": {
33396
+ aliases: {
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"]
33399
+ },
33400
+ text: {
33401
+ ko: {
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."
33405
+ },
33406
+ en: {
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."
33410
+ }
33411
+ }
33412
+ },
33413
+ "referral-attribution": {
33414
+ aliases: {
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"]
33417
+ },
33418
+ text: {
33419
+ ko: {
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."
33423
+ },
33424
+ en: {
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
+ }
31487
33430
  }
31488
33431
  };
31489
33432
 
@@ -31524,6 +33467,96 @@ var EDUCATION_OPERATIONS_GLOSSARY_DATA = {
31524
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."
31525
33468
  }
31526
33469
  }
33470
+ },
33471
+ "course-prerequisite": {
33472
+ aliases: {
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"]
33475
+ },
33476
+ text: {
33477
+ ko: {
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."
33481
+ },
33482
+ en: {
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."
33486
+ }
33487
+ }
33488
+ },
33489
+ "grading-rubric-appeal": {
33490
+ aliases: {
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"]
33493
+ },
33494
+ text: {
33495
+ ko: {
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."
33499
+ },
33500
+ en: {
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."
33504
+ }
33505
+ }
33506
+ },
33507
+ "certificate-verification": {
33508
+ aliases: {
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"]
33511
+ },
33512
+ text: {
33513
+ ko: {
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."
33517
+ },
33518
+ en: {
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."
33522
+ }
33523
+ }
33524
+ },
33525
+ "cohort-enrollment-window": {
33526
+ aliases: {
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"]
33529
+ },
33530
+ text: {
33531
+ ko: {
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."
33535
+ },
33536
+ en: {
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."
33540
+ }
33541
+ }
33542
+ },
33543
+ "timed-exam-submission": {
33544
+ aliases: {
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"]
33547
+ },
33548
+ text: {
33549
+ ko: {
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."
33553
+ },
33554
+ en: {
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."
33558
+ }
33559
+ }
31527
33560
  }
31528
33561
  };
31529
33562
 
@@ -31802,7 +33835,7 @@ function searchTechniques(options = {}) {
31802
33835
  // package.json
31803
33836
  var package_default = {
31804
33837
  name: "@keke1933/vibe-dictionary-mcp",
31805
- version: "0.14.0",
33838
+ version: "0.15.0",
31806
33839
  license: "MIT",
31807
33840
  author: "leejh96",
31808
33841
  description: "Read-only local MCP for searching Vibe Dictionary techniques, domain knowledge, and glossary terms",