@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css");@import url("https://cdn.jsdelivr.net/gh/joungkyun/font-d2coding@v1.3.2/d2coding.css");:root{--max-width:1100px;--font-sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Roboto,"Helvetica Neue","Segoe UI","Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",sans-serif;--font-mono:"D2Coding","D2 Coding",Consolas,"Courier New",monospace;--default-font-family:var(--font-sans);--code-font-family:var(--font-mono)}.wmde-markdown,.wmde-markdown-var{color-scheme:light;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-storage-modifier-import:#24292f;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#24292f;--color-prettylights-syntax-markup-bold:#24292f;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#eaeef2;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-brackethighlighter-angle:#57606a;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-fg-default:#24292f;--color-fg-muted:#57606a;--color-fg-subtle:#6e7781;--color-canvas-default:#fff;--color-canvas-subtle:#f6f8fa;--color-border-default:#d0d7de;--color-border-muted:#d8dee4;--color-neutral-muted:rgba(175,184,193,.2);--color-accent-fg:#0969da;--color-accent-emphasis:#0969da;--color-accent-subtle:rgba(9,105,218,.1);--color-attention-subtle:#fff8c5;--color-danger-fg:#d1242f;--color-danger-emphasis:#cf222e;--color-attention-fg:#9a6700;--color-attention-emphasis:#9a6700;--color-done-fg:#8250df;--color-done-emphasis:#8250df;--color-success-fg:#1a7f37;--color-success-emphasis:#1f883d;--color-copied-active-bg:#2e9b33}.wmde-markdown-var[data-color-mode*=dark],.wmde-markdown[data-color-mode*=dark],[data-color-mode*=dark] .wmde-markdown,[data-color-mode*=dark] .wmde-markdown-var,body[data-color-mode*=dark] .wmde-markdown{color-scheme:dark;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-storage-modifier-import:#c9d1d9;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-variable:#ffa657;--color-prettylights-syntax-brackethighlighter-unmatched:#f85149;--color-prettylights-syntax-invalid-illegal-text:#f0f6fc;--color-prettylights-syntax-invalid-illegal-bg:#8e1519;--color-prettylights-syntax-carriage-return-text:#f0f6fc;--color-prettylights-syntax-carriage-return-bg:#b62324;--color-prettylights-syntax-string-regexp:#7ee787;--color-prettylights-syntax-markup-list:#f2cc60;--color-prettylights-syntax-markup-heading:#1f6feb;--color-prettylights-syntax-markup-italic:#c9d1d9;--color-prettylights-syntax-markup-bold:#c9d1d9;--color-prettylights-syntax-markup-deleted-text:#ffdcd7;--color-prettylights-syntax-markup-deleted-bg:#67060c;--color-prettylights-syntax-markup-inserted-text:#aff5b4;--color-prettylights-syntax-markup-inserted-bg:#033a16;--color-prettylights-syntax-markup-changed-text:#ffdfb6;--color-prettylights-syntax-markup-changed-bg:#5a1e02;--color-prettylights-syntax-markup-ignored-text:#c9d1d9;--color-prettylights-syntax-markup-ignored-bg:#1158c7;--color-prettylights-syntax-meta-diff-range:#d2a8ff;--color-prettylights-syntax-brackethighlighter-angle:#8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant-other-reference-link:#a5d6ff;--color-fg-default:#c9d1d9;--color-fg-muted:#8b949e;--color-fg-subtle:#484f58;--color-canvas-default:#0d1117;--color-canvas-subtle:#161b22;--color-border-default:#30363d;--color-border-muted:#21262d;--color-neutral-muted:hsla(215,8%,47%,.4);--color-accent-fg:#58a6ff;--color-accent-emphasis:#1f6feb;--color-accent-subtle:rgba(56,139,253,.15);--color-attention-subtle:rgba(187,128,9,.15);--color-danger-fg:#f85149;--color-danger-emphasis:#da3633;--color-attention-fg:#d29922;--color-attention-emphasis:#9e6a03;--color-done-fg:#a371f7;--color-done-emphasis:#8957e5;--color-success-fg:#3fb950;--color-success-emphasis:#238636;--color-copied-active-bg:#2e9b33}.radix-themes{--default-font-family:var(--font-sans);--code-font-family:var(--font-mono)}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;font-family:var(--font-sans)}a{color:inherit}.post-card{transition:transform .2s ease,box-shadow .2s ease}.post-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-4)}.search-result-item:hover{background-color:var(--gray-3)}.wmde-markdown{-webkit-text-size-adjust:100%;font-family:var(--font-sans);font-size:16px;line-height:1.8;word-wrap:break-word;color:var(--color-fg-default);background-color:transparent}.wmde-markdown:after,.wmde-markdown:before{display:table;content:""}.wmde-markdown:after{clear:both}.wmde-markdown>:first-child{margin-top:0!important}.wmde-markdown>:last-child{margin-bottom:0!important}.wmde-markdown a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.wmde-markdown a:hover{text-decoration:underline}.wmde-markdown a:not([href]){color:inherit;text-decoration:none}.wmde-markdown b,.wmde-markdown strong{font-weight:600}.wmde-markdown mark{background-color:var(--color-attention-subtle);color:var(--color-fg-default)}.wmde-markdown h1,.wmde-markdown h2,.wmde-markdown h3,.wmde-markdown h4,.wmde-markdown h5,.wmde-markdown h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.wmde-markdown h1{font-size:2em}.wmde-markdown h1,.wmde-markdown h2{padding-bottom:.3em;border-bottom:1px solid var(--color-border-muted)}.wmde-markdown h2{font-size:1.5em}.wmde-markdown h3{font-size:1.25em}.wmde-markdown h4{font-size:1em}.wmde-markdown h5{font-size:.875em}.wmde-markdown h6{font-size:.85em;color:var(--color-fg-muted)}.wmde-markdown blockquote,.wmde-markdown details,.wmde-markdown dl,.wmde-markdown ol,.wmde-markdown p,.wmde-markdown pre,.wmde-markdown table,.wmde-markdown ul{margin-top:0;margin-bottom:16px}.wmde-markdown blockquote{margin:0;padding:0 1em;color:var(--color-fg-muted);border-left:.25em solid var(--color-border-default)}.wmde-markdown blockquote>:first-child{margin-top:0}.wmde-markdown blockquote>:last-child{margin-bottom:0}.wmde-markdown ol,.wmde-markdown ul{margin-top:0;margin-bottom:0;padding-left:2em}.wmde-markdown ol ol,.wmde-markdown ol ul,.wmde-markdown ul ol,.wmde-markdown ul ul{margin-top:0;margin-bottom:0}.wmde-markdown ol ol,.wmde-markdown ul ol{list-style-type:lower-roman}.wmde-markdown ol ol ol,.wmde-markdown ol ul ol,.wmde-markdown ul ol ol,.wmde-markdown ul ul ol{list-style-type:lower-alpha}.wmde-markdown li>p{margin-top:16px}.wmde-markdown li+li{margin-top:.25em}.wmde-markdown hr{box-sizing:content-box;overflow:hidden;background:transparent;border:0;border-bottom:1px solid var(--color-border-muted);height:.25em;padding:0;margin:24px 0;background-color:var(--color-border-default)}.wmde-markdown img{display:inline-block;border-style:none;max-width:100%;box-sizing:content-box;background-color:transparent;border-radius:var(--radius-2)}.wmde-markdown table{border-spacing:0;border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto}.wmde-markdown table th{font-weight:600}.wmde-markdown table td,.wmde-markdown table th{padding:6px 13px;border:1px solid var(--color-border-default)}.wmde-markdown table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.wmde-markdown table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.wmde-markdown code,.wmde-markdown tt{padding:.2em .4em;margin:0;font-size:85%;font-family:var(--font-mono);background-color:var(--color-neutral-muted);border-radius:6px}.wmde-markdown code br,.wmde-markdown tt br{display:none}.wmde-markdown pre{position:relative;margin-top:0;margin-bottom:16px;font-family:var(--font-mono);font-size:85%;line-height:1.45;word-wrap:normal;background-color:var(--color-canvas-subtle);border-radius:6px}.wmde-markdown pre>code::-webkit-scrollbar{background:transparent;width:8px;height:8px}.wmde-markdown pre>code::-webkit-scrollbar-thumb{background:var(--color-fg-muted);border-radius:10px}.wmde-markdown pre code,.wmde-markdown pre tt{display:block;max-width:auto;padding:1em 1.2em;margin:0;overflow:auto;line-height:1.5;word-wrap:normal;white-space:pre;font-size:100%;background-color:transparent;border:0}.wmde-markdown pre .copied{visibility:hidden;display:flex;position:absolute;cursor:pointer;color:var(--color-fg-default);top:6px;right:6px;border-radius:5px;background:var(--color-border-default);padding:6px;font-size:12px;transition:all .3s}.wmde-markdown pre .copied .octicon-copy{display:block}.wmde-markdown pre .copied .octicon-check{display:none}.wmde-markdown pre:hover .copied{visibility:visible}.wmde-markdown pre:hover .copied:hover{background:var(--color-prettylights-syntax-entity-tag);color:var(--color-canvas-default)}.wmde-markdown pre .copied.active,.wmde-markdown pre:hover .copied:active{background:var(--color-copied-active-bg);color:var(--color-canvas-default)}.wmde-markdown pre .copied.active .octicon-copy{display:none}.wmde-markdown pre .copied.active .octicon-check{display:block}.wmde-markdown .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.wmde-markdown a.anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.wmde-markdown .anchor:focus{outline:none}.wmde-markdown h1 .octicon-link,.wmde-markdown h2 .octicon-link,.wmde-markdown h3 .octicon-link,.wmde-markdown h4 .octicon-link,.wmde-markdown h5 .octicon-link,.wmde-markdown h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}.wmde-markdown h1:hover .anchor,.wmde-markdown h2:hover .anchor,.wmde-markdown h3:hover .anchor,.wmde-markdown h4:hover .anchor,.wmde-markdown h5:hover .anchor,.wmde-markdown h6:hover .anchor{text-decoration:none}.wmde-markdown h1:hover .anchor .octicon-link,.wmde-markdown h2:hover .anchor .octicon-link,.wmde-markdown h3:hover .anchor .octicon-link,.wmde-markdown h4:hover .anchor .octicon-link,.wmde-markdown h5:hover .anchor .octicon-link,.wmde-markdown h6:hover .anchor .octicon-link{visibility:visible}.wmde-markdown .token.cdata,.wmde-markdown .token.comment,.wmde-markdown .token.doctype,.wmde-markdown .token.prolog{color:var(--color-prettylights-syntax-comment)}.wmde-markdown .token.namespace{opacity:.7}.wmde-markdown .token.constant,.wmde-markdown .token.deleted,.wmde-markdown .token.property,.wmde-markdown .token.selector,.wmde-markdown .token.symbol,.wmde-markdown .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.wmde-markdown .token.maybe-class-name{color:var(--color-prettylights-syntax-variable)}.wmde-markdown .token.attr-name,.wmde-markdown .token.boolean,.wmde-markdown .token.builtin,.wmde-markdown .token.char,.wmde-markdown .token.number,.wmde-markdown .token.operator,.wmde-markdown .token.property-access,.wmde-markdown .token.selector .token.class,.wmde-markdown .token.string{color:var(--color-prettylights-syntax-constant)}.wmde-markdown .token.deleted{color:var(--color-prettylights-syntax-markup-deleted-text)}.wmde-markdown .code-line .token.deleted{background-color:var(--color-prettylights-syntax-markup-deleted-bg)}.wmde-markdown .token.inserted{color:var(--color-prettylights-syntax-markup-inserted-text)}.wmde-markdown .code-line .token.inserted{background-color:var(--color-prettylights-syntax-markup-inserted-bg)}.wmde-markdown .token.variable{color:var(--color-prettylights-syntax-constant)}.wmde-markdown .language-css .token.string,.wmde-markdown .style .token.string,.wmde-markdown .token.atrule,.wmde-markdown .token.attr-value,.wmde-markdown .token.class-name,.wmde-markdown .token.color,.wmde-markdown .token.entity,.wmde-markdown .token.function,.wmde-markdown .token.url{color:var(--color-prettylights-syntax-string)}.wmde-markdown .token.important,.wmde-markdown .token.keyword,.wmde-markdown .token.regex,.wmde-markdown .token.rule{color:var(--color-prettylights-syntax-keyword)}.wmde-markdown .token.coord{color:var(--color-prettylights-syntax-meta-diff-range)}.wmde-markdown .token.bold,.wmde-markdown .token.important{font-weight:700}.wmde-markdown .token.italic{font-style:italic}.wmde-markdown .token.entity{cursor:help}.wmde-markdown .highlight-line{background-color:var(--color-neutral-muted)}.wmde-markdown .code-line.line-number:before{display:inline-block;width:1rem;text-align:right;margin-right:16px;color:var(--color-fg-subtle);content:attr(line);white-space:nowrap}.wmde-markdown .markdown-alert{padding:.5rem 1em;color:inherit;margin-bottom:16px;border-left:.25em solid var(--color-border-default)}.wmde-markdown .markdown-alert>:last-child{margin-bottom:0!important}.wmde-markdown .markdown-alert .markdown-alert-title{display:flex;align-items:center;line-height:1;font-weight:500;font-size:14px}.wmde-markdown .markdown-alert .markdown-alert-title svg.octicon{margin-right:8px!important}.wmde-markdown .markdown-alert.markdown-alert-note{border-left-color:var(--color-accent-emphasis)}.wmde-markdown .markdown-alert.markdown-alert-note .markdown-alert-title{color:var(--color-accent-fg)}.wmde-markdown .markdown-alert.markdown-alert-tip{border-left-color:var(--color-success-emphasis)}.wmde-markdown .markdown-alert.markdown-alert-tip .markdown-alert-title{color:var(--color-success-fg)}.wmde-markdown .markdown-alert.markdown-alert-important{border-left-color:var(--color-done-emphasis)}.wmde-markdown .markdown-alert.markdown-alert-important .markdown-alert-title{color:var(--color-done-fg)}.wmde-markdown .markdown-alert.markdown-alert-warning{border-left-color:var(--color-attention-emphasis)}.wmde-markdown .markdown-alert.markdown-alert-warning .markdown-alert-title{color:var(--color-attention-fg)}.wmde-markdown .markdown-alert.markdown-alert-caution{border-left-color:var(--color-danger-emphasis)}.wmde-markdown .markdown-alert.markdown-alert-caution .markdown-alert-title{color:var(--color-danger-fg)}.wmde-markdown .task-list-item{list-style-type:none}.wmde-markdown .task-list-item label{font-weight:400}.wmde-markdown .contains-task-list input[type=checkbox],.wmde-markdown .task-list-item-checkbox{margin:0 .2em .25em -1.6em;vertical-align:middle}.wmde-markdown .footnotes{font-size:12px;color:var(--color-fg-muted);border-top:1px solid var(--color-border-default)}.wmde-markdown .footnotes ol{padding-left:16px}.wmde-markdown .footnotes li{position:relative}.wmde-markdown .footnotes li:target:before{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-24px;pointer-events:none;content:"";border:2px solid var(--color-accent-emphasis);border-radius:6px}.wmde-markdown .footnotes li:target{color:var(--color-fg-default)}.wmde-markdown kbd{display:inline-block;padding:3px 5px;font:11px var(--font-mono);line-height:10px;color:var(--color-fg-default);vertical-align:middle;border-bottom-color:var(--color-neutral-muted);border:1px solid var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted)}.wmde-markdown details,.wmde-markdown kbd{background-color:var(--color-canvas-subtle)}.wmde-markdown details{border:1px solid var(--color-border-default);border-radius:6px;padding:0;margin-bottom:16px}.wmde-markdown details summary{cursor:pointer;padding:12px 16px;font-weight:600;list-style:none;display:flex;align-items:center;gap:8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.wmde-markdown details summary::-webkit-details-marker{display:none}.wmde-markdown details summary:before{content:"▶";font-size:.75em;transition:transform .2s ease}.wmde-markdown details[open] summary:before{transform:rotate(90deg)}.wmde-markdown details[open] summary{border-bottom:1px solid var(--color-border-default)}.wmde-markdown details>:not(summary){padding:0 16px}.wmde-markdown details>:not(summary):first-of-type{padding-top:16px}.wmde-markdown details>:not(summary):last-child{padding-bottom:16px}.wmde-markdown details:not([open])>:not(summary){display:none!important}.wmde-markdown .spoiler{background-color:var(--color-fg-default);color:transparent;padding:2px 4px;border-radius:4px;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.wmde-markdown .spoiler:hover{background-color:var(--color-fg-muted)}.wmde-markdown .spoiler.revealed,.wmde-markdown .spoiler:active{background-color:var(--color-neutral-muted);color:var(--color-fg-default);-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.wmde-markdown .text-red{color:#d1242f}.wmde-markdown .text-orange{color:#bc4c00}.wmde-markdown .text-yellow{color:#9a6700}.wmde-markdown .text-green{color:#1a7f37}.wmde-markdown .text-blue{color:#0969da}.wmde-markdown .text-purple{color:#8250df}.wmde-markdown .text-pink{color:#bf3989}.wmde-markdown .text-gray{color:#57606a}[data-color-mode*=dark] .wmde-markdown .text-red{color:#f85149}[data-color-mode*=dark] .wmde-markdown .text-orange{color:#ffa657}[data-color-mode*=dark] .wmde-markdown .text-yellow{color:#d29922}[data-color-mode*=dark] .wmde-markdown .text-green{color:#3fb950}[data-color-mode*=dark] .wmde-markdown .text-blue{color:#58a6ff}[data-color-mode*=dark] .wmde-markdown .text-purple{color:#a371f7}[data-color-mode*=dark] .wmde-markdown .text-pink{color:#db61a2}[data-color-mode*=dark] .wmde-markdown .text-gray{color:#8b949e}.wmde-markdown .bg-red{background-color:rgba(255,129,130,.3)}.wmde-markdown .bg-orange{background-color:rgba(255,166,87,.3)}.wmde-markdown .bg-yellow{background-color:rgba(255,212,59,.3)}.wmde-markdown .bg-green{background-color:rgba(63,185,80,.3)}.wmde-markdown .bg-blue{background-color:rgba(88,166,255,.3)}.wmde-markdown .bg-purple{background-color:rgba(163,113,247,.3)}.wmde-markdown .bg-pink{background-color:rgba(219,97,162,.3)}.wmde-markdown .bg-gray{background-color:hsla(212,9%,58%,.3)}.header-mobile{display:none}@media (max-width:640px){.header-desktop{display:none}.header-mobile{display:block}}.blog-post-layout{position:relative}.blog-post-sidebar{display:none}.toc-mobile{display:block}.toc-desktop{display:none}@media (min-width:1400px){.blog-post-sidebar{display:block;position:fixed;top:100px;left:calc(50% + 500px);width:220px;max-height:calc(100vh - 120px);overflow-y:auto}.toc-mobile{display:none}.toc-desktop{display:block}}.toc-desktop a:hover,.toc-mobile a:hover{color:var(--accent-11)!important}@media (min-width:768px){html{overflow-y:overlay;scrollbar-width:thin;scrollbar-color:transparent transparent}html:hover{scrollbar-color:hsla(0,0%,50%,.4) transparent}html::-webkit-scrollbar{width:8px;background:transparent}html::-webkit-scrollbar-track{background:transparent}html::-webkit-scrollbar-thumb{background:transparent;border-radius:4px;-webkit-transition:background .3s ease;transition:background .3s ease}html:hover::-webkit-scrollbar-thumb{background:hsla(0,0%,50%,.4)}html::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,50%,.6)}}@media (min-width:768px){.dark html:hover,[data-color-mode*=dark] html:hover{scrollbar-color:hsla(0,0%,78%,.3) transparent}.dark html:hover::-webkit-scrollbar-thumb,[data-color-mode*=dark] html:hover::-webkit-scrollbar-thumb{background:hsla(0,0%,78%,.3)}.dark html::-webkit-scrollbar-thumb:hover,[data-color-mode*=dark] html::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,78%,.5)}}