PageSourceSearch

https://pebpung.github.io/

html pebpung.github.io collected 2026-10-03 09:44:51 UTC 25,418 bytes, 43 lines download raw bytes

1<!DOCTYPE html><html dir="ltr" lang="ko" class="false"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/x-icon" href="/favicon.ico"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="manifest" href="/manifest.json"><link rel="canonical" href="https://pebpung.github.io/"><meta name="generator" content="Astro v7.1.1"><!-- Warm up connections to external origins used below --><link rel="preconnect" href="https://spoqa.github.io" crossorigin><link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin><link rel="dns-prefetch" href="https://pagead2.googlesyndication.com"><link rel="dns-prefetch" href="https://www.googletagmanager.com"><!-- Load Font (non-render-blocking: preload then swap to stylesheet) --><link rel="preload" as="style" href="https://spoqa.github.io/spoqa-han-sans/css/SpoqaHanSansNeo.css" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="https://spoqa.github.io/spoqa-han-sans/css/SpoqaHanSansNeo.css"></noscript><!-- KaTeX Math Rendering (non-render-blocking) --><link rel="preload" as="style" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css"></noscript><!-- General Meta Tags --><title>ML감자</title><meta name="title" content="ML감자"><meta name="description" content="ML감자 - AI Engineer Blog"><meta name="author" content="pebpung"><link rel="sitemap" type="application/xml" href="/sitemap.xml"><meta name="google-adsense-account" content="ca-pub-2853897577129853">
1<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2853897577129853" crossorigin="anonymous"></script>
1<!-- Open Graph / Facebook --><meta property="og:title" content="ML감자"><meta property="og:description" content="ML감자 - AI Engineer Blog"><meta property="og:url" content="https://pebpung.github.io/"><meta property="og:image" content="https://pebpung.github.io/astropaper-og.jpg"><!-- Article Published/Modified time --><!-- Twitter --><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://pebpung.github.io/"><meta property="twitter:title" content="ML감자"><meta property="twitter:description" content="ML감자 - AI Engineer Blog"><meta property="twitter:image" content="https://pebpung.github.io/astropaper-og.jpg"><!-- Google JSON-LD Structured data -->
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"BlogPosting","headline":"ML감자","image":"https://pebpung.github.io/astropaper-og.jpg","datePublished":"undefined","author":[{"@type":"Person","name":"pebpung","url":"https://github.com/PEBpung"}]}</script>
1<!-- Enable RSS feed auto-discovery  --><!-- https://docs.astro.build/en/recipes/rss/#enabling-rss-feed-auto-discovery --><link rel="alternate" type="application/rss+xml" title="ML감자" href="https://pebpung.github.io/rss.xml"><meta name="theme-color" content=""><meta name="google-site-verification" content="jhz_ZekXaLWItUeQ0yjvYwGFHR9A9oD6lqOCbJVZhZ4">
vendor: 63 bytes, line 1
1<script async src="https://www.googletagmanager.com/gtag/js?id=
1G-Z39NHBJGVV
vendor: 11 bytes, line 1
1"></script>
1<script>(function(){const gaId = "G-Z39NHBJGVV";
2
3            window.dataLayer = window.dataLayer || [];
4            function gtag() {
5              dataLayer.push(arguments);
6            }
7            gtag("js", new Date());
8            gtag("config", gaId, { send_page_view: false });
9            document.addEventListener("astro:page-load", () => {
10              gtag("event", "page_view", {
11                page_title: document.title,
12                page_location: location.href,
13                page_path: location.pathname + location.search,
14              });
15            });
16          })();</script>
16<meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="animate">
16<script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.6Spq5I16.js"></script>
16<!-- Minimal inline script to prevent FOUC - sets theme immediately -->
16<script>
17      (function () {
18        const initialColorScheme = ""; // "light" | "dark"
19        const currentTheme = localStorage.getItem("theme");
20
21        function getPreferTheme() {
22          if (currentTheme) return currentTheme;
23          if (initialColorScheme) return initialColorScheme;
24          return window.matchMedia("(prefers-color-scheme: dark)").matches
25            ? "dark"
26            : "light";
27        }
28
29        const themeValue = getPreferTheme();
30
31        // Set theme immediately to prevent flash
32        document.firstElementChild?.setAttribute("data-theme", themeValue);
33
34        // Export minimal API for external script
35        window.theme = {
36          themeValue: themeValue,
37          getTheme: () => window.theme.themeValue,
38          setTheme: val => {
39            window.theme.themeValue = val;
40          },
41        };
42      })();
43    </script>
43<link rel="stylesheet" href="/_astro/Footer.Cn4hK9De.css"></head><body><a id="skip-to-content" href="#main-content" class="absolute start-16 -top-full z-50 bg-background px-3 py-2 text-accent backdrop-blur-lg transition-all focus:top-4">Skip to content</a><header class="app-layout flex flex-col items-center justify-between sm:flex-row"><div id="top-nav-wrap" class="py-4 sm:py-6 border-b border-border relative w-full bg-background flex items-baseline justify-between sm:items-center"><a href="/" class="absolute py-1 text-xl leading-8 font-semibold whitespace-nowrap sm:static sm:my-auto sm:text-2xl sm:leading-none">ML감자</a><nav id="nav-menu" class="flex w-full flex-col items-center sm:ms-2 sm:flex-row sm:justify-end sm:space-x-4 sm:py-0"><button id="menu-btn" class="focus-outline self-end p-2 sm:hidden" aria-label="Open Menu" aria-expanded="false" aria-controls="menu-items"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="hidden" id="close-icon"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M18 6l-12 12" /><path d="M6 6l12 12" /></svg><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-menu-deep" id="menu-icon"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M4 6h16" /><path d="M7 12h13" /><path d="M10 18h10" /></svg></button><ul id="menu-items" class="mt-4 grid w-44 grid-cols-2 place-content-center gap-2 [&amp;>li>a]:block [&amp;>li>a]:px-4 [&amp;>li>a]:py-3 [&amp;>li>a]:text-center [&amp;>li>a]:font-medium [&amp;>li>a]:hover:text-accent sm:[&amp;>li>a]:px-2 sm:[&amp;>li>a]:py-1 hidden sm:mt-0 sm:flex sm:w-auto sm:gap-x-5 sm:gap-y-0"><li class="col-span-2"><a href="/posts" class="nav-link">Posts</a></li><li class="col-span-2"><a href="/tags" class="nav-link">Tags</a></li><li class="col-span-2"><a href="/about" class="nav-link">About</a></li><li class="col-span-2"><a href="/archives" title="Archives" aria-label="archives" class="group inline-flex items-center gap-1 hover:text-accent focus-outline flex justify-center p-3 sm:p-1"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="hidden sm:inline-block"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M3 4m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" /><path d="M5 8v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-10" /><path d="M10 12l4 0" /></svg><span class="sm:sr-only">Archives</span></a></li><li class="col-span-1 flex items-center justify-center"><a href="/search" title="Search" aria-label="search" class="group inline-flex items-center gap-1 hover:text-accent focus-outline flex p-3 sm:p-1"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-search"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" /><path d="M21 21l-6 -6" /></svg><span class="sr-only">Search</span></a></li><li class="col-span-1 flex items-center justify-center"><button id="theme-btn" class="focus-outline relative size-12 p-4 sm:size-8 hover:[&amp;&gt;svg]:stroke-accent" title="Toggles light &amp; dark" aria-label="auto" aria-live="polite"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="absolute top-[50%] left-[50%] -translate-[50%] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" /></svg><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="absolute top-[50%] left-[50%] -translate-[50%] scale-0 rotate-90 transition-all dark:scale-100 dar
43k:rotate-0"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M14.828 14.828a4 4 0 1 0 -5.656 -5.656a4 4 0 0 0 5.656 5.656z" /><path d="M6.343 17.657l-1.414 1.414" /><path d="M6.343 6.343l-1.414 -1.414" /><path d="M17.657 6.343l1.414 -1.414" /><path d="M17.657 17.657l1.414 1.414" /><path d="M4 12h-2" /><path d="M12 4v-2" /><path d="M20 12h2" /><path d="M12 20v2" /></svg></button></li></ul></nav></div></header>
43<script type="module">function e(){let e=document.querySelector(`#menu-btn`),t=document.querySelector(`#menu-items`),n=document.querySelector(`#menu-icon`),r=document.querySelector(`#close-icon`);!e||!t||!n||!r||(e.onclick=()=>{let i=e.getAttribute(`aria-expanded`)===`true`;e.setAttribute(`aria-expanded`,i?`false`:`true`),e.setAttribute(`aria-label`,i?`Open Menu`:`Close Menu`),t.classList.toggle(`hidden`),n.classList.toggle(`hidden`),r.classList.toggle(`hidden`)})}e(),window.__headerNavBound||(document.addEventListener(`astro:after-swap`,e),window.__headerNavBound=!0);</script>
43<main id="main-content" data-layout="index" class="mx-auto w-full max-w-5xl px-4"><div class="grid gap-6 py-6 lg:gap-12 lg:py-12 lg:grid-cols-[260px_1fr]"><!-- Sidebar --><div class="border-b border-border pb-6 lg:sticky lg:top-12 lg:self-start lg:border-b-0 lg:pb-0"><!-- Vertical centered layout on all viewports --><aside class="flex flex-col items-center text-center"><img src="/assets/img/profile/ocean.jpeg" alt="pebpung" class="mb-4 size-28 rounded-full object-cover ring-4 ring-accent/20 lg:size-36"><h1 class="text-xl font-bold lg:text-2xl">ML감자</h1><p class="mt-1 text-sm text-foreground/60">@pebpung</p><p class="mt-2 text-sm leading-relaxed text-foreground/80">AI Engineer at BHSN</p><div class="mt-4 flex gap-2 lg:mt-5"><a href="https://github.com/PEBpung" title="ML감자 on GitHub" class="group inline-flex items-center gap-1 hover:text-accent rounded-full bg-muted p-2.5 transition-colors hover:bg-accent/20 hover:rotate-6"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="inline-block size-5 fill-transparent stroke-current stroke-2 opacity-80"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5" /></svg><span class="sr-only">ML감자 on GitHub</span></a></div></aside><!-- Tags --><div class="mt-5 flex flex-wrap justify-center gap-2.5 lg:mt-8"><a href="/tags/ai/" class="rounded-full bg-accent/10 px-3 py-1 text-xs font-medium text-accent transition-colors hover:bg-accent/25">#AI</a><a href="/tags/anomaly-detection/" class="rounded-full bg-accent/10 px-3 py-1 text-xs font-medium text-accent transition-colors hover:bg-accent/25">#Anomaly Detection</a><a href="/tags/api/" class="rounded-full bg-accent/10 px-3 py-1 text-xs font-medium text-accent transition-colors hover:bg-accent/25">#API</a><a href="/tags/autoencoder/" class="rounded-full bg-accent/10 px-3 py-1 text-xs font-medium text-accent transition-colors hover:bg-accent/25">#AutoEncoder</a><a href="/tags/chatbot/" class="rounded-full bg-accent/10 px-3 py-1 text-xs font-medium text-accent transition-colors hover:bg-accent/25">#ChatBot</a><a href="/tags/data/" class="rounded-full bg-accent/10 px-3 py-1 text-xs font-medium text-accent transition-colors hover:bg-accent/25">#Data</a><a href="/tags/devops/" class="rounded-full bg-accent/10 px-3 py-1 text-xs font-medium text-accent transition-colors hover:bg-accent/25">#DevOps</a><a href="/tags/docker/" class="rounded-full bg-accent/10 px-3 py-1 text-xs font-medium text-accent transition-colors hover:bg-accent/25">#Docker</a></div></div><!-- Posts --><div class="pt-2"><section id="recent-posts" class="pb-6"><h2 class="text-2xl font-semibold tracking-wide">Recent Posts</h2><ul><li class="group relative my-8 pl-5 before:absolute before:left-0 before:top-0 before:h-full before:w-1 before:rounded before:bg-accent/25 before:transition-colors hover:before:bg-accent"><div class="flex items-start justify-between gap-4"><div class="min-w-0 flex-1"><a href="/posts/2025-08-16-vllm-1" class="inline-block text-lg font-medium text-accent decoration-dashed underline-offset-4 hover:underline focus-visible:no-underline focus-visible:underline-offset-0"><h3 style="view-transition-name:v-llm이란-빠르고-효율적인-ai-추론을-위한-오픈소스-라이브러리">vLLM이란? 빠르고 효율적인 AI 추론을 위한 오픈소스 라이브러리</h3></a><div class="flex items-center gap-x-2 opacity-80"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="inline-block size-6 min-w-5.5 scale-90"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z" /><path d="M16 3v4" />
43<path d="M8 3v4" /><path d="M4 11h16" /><path d="M7 14h.013" /><path d="M10.01 14h.005" /><path d="M13.01 14h.005" /><path d="M16.015 14h.005" /><path d="M13.015 17h.005" /><path d="M7.01 17h.005" /><path d="M10.01 17h.005" /></svg><time class="text-sm" datetime="2025-08-16T09:00:00.000Z">16 Aug, 2025</time></div><p class="mt-1 leading-relaxed">OS 가상 메모리 기법을 LLM 서빙에 활용한 PagedAttention 방식</p></div></div></li><li class="group relative my-8 pl-5 before:absolute before:left-0 before:top-0 before:h-full before:w-1 before:rounded before:bg-accent/25 before:transition-colors hover:before:bg-accent"><div class="flex items-start justify-between gap-4"><div class="min-w-0 flex-1"><a href="/posts/2025-08-10-long-context-llm-1" class="inline-block text-lg font-medium text-accent decoration-dashed underline-offset-4 hover:underline focus-visible:no-underline focus-visible:underline-offset-0"><h3 style="view-transition-name:long-context-llm-1-pre-training부터-post-training까지-data-전략">Long Context LLM (1): Pre-training부터 Post-training까지 data 전략</h3></a><div class="flex items-center gap-x-2 opacity-80"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="inline-block size-6 min-w-5.5 scale-90"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z" /><path d="M16 3v4" /><path d="M8 3v4" /><path d="M4 11h16" /><path d="M7 14h.013" /><path d="M10.01 14h.005" /><path d="M13.01 14h.005" /><path d="M16.015 14h.005" /><path d="M13.015 17h.005" /><path d="M7.01 17h.005" /><path d="M10.01 17h.005" /></svg><time class="text-sm" datetime="2025-08-10T09:00:00.000Z">10 Aug, 2025</time></div><p class="mt-1 leading-relaxed">lost-in-the-middle 문제를 해결하는 방법</p></div></div></li><li class="group relative my-8 pl-5 before:absolute before:left-0 before:top-0 before:h-full before:w-1 before:rounded before:bg-accent/25 before:transition-colors hover:before:bg-accent"><div class="flex items-start justify-between gap-4"><div class="min-w-0 flex-1"><a href="/posts/2025-03-16-llama-factory-1" class="inline-block text-lg font-medium text-accent decoration-dashed underline-offset-4 hover:underline focus-visible:no-underline focus-visible:underline-offset-0"><h3 style="view-transition-name:l-la-ma-factory-초보자-가이드-쉽게-시작하는-llm-파인튜닝">LLaMA-Factory 초보자 가이드: 쉽게 시작하는 LLM 파인튜닝</h3></a><div class="flex items-center gap-x-2 opacity-80"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="inline-block size-6 min-w-5.5 scale-90"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z" /><path d="M16 3v4" /><path d="M8 3v4" /><path d="M4 11h16" /><path d="M7 14h.013" /><path d="M10.01 14h.005" /><path d="M13.01 14h.005" /><path d="M16.015 14h.005" /><path d="M13.015 17h.005" /><path d="M7.01 17h.005" /><path d="M10.01 17h.005" /></svg><time class="text-sm" datetime="2025-03-16T09:00:00.000Z">16 Mar, 2025</time></div><p class="mt-1 leading-relaxed">입문자도 따라하는 GUI로 LLM 파인튜닝 하기</p></div></div></li><li class="group relative my-8 pl-5 before:absolute before:left-0 before:top-0 before:h-full before:w-1 before:rounded before:bg-accent/25 before:transition-colors hover:before:bg-accent"><div class="flex items-start justify-between gap-4"><div class="min-w-0 flex-1"><a href="/posts/2023-04-30-chatbot-1" class="inline-block text-lg font-medium text-accent decoration-dashed underline-offset-4 hover:underline focus-visible:no-underline focus-visible:underline-offset-0"><h3 style="view-transition-name:나만의-chatbot-app-만들어보기-opls-활용">나만의 Chatbot APP 만들어보기: OPLS 활용 </h3></a><div class="flex items-center gap-x-2 opacity-80"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="inline-block size-6 min-w-5.5 scale-90"><path stroke="none" d="M0 0h24v24H0z" fill="none" />
43<path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z" /><path d="M16 3v4" /><path d="M8 3v4" /><path d="M4 11h16" /><path d="M7 14h.013" /><path d="M10.01 14h.005" /><path d="M13.01 14h.005" /><path d="M16.015 14h.005" /><path d="M13.015 17h.005" /><path d="M7.01 17h.005" /><path d="M10.01 17h.005" /></svg><time class="text-sm" datetime="2023-04-30T09:00:00.000Z">30 Apr, 2023</time></div><p class="mt-1 leading-relaxed">OPLS stack을 활용하여 나만의 Chatbot APP 만들기</p></div></div></li><li class="group relative my-8 pl-5 before:absolute before:left-0 before:top-0 before:h-full before:w-1 before:rounded before:bg-accent/25 before:transition-colors hover:before:bg-accent"><div class="flex items-start justify-between gap-4"><div class="min-w-0 flex-1"><a href="/posts/2022-12-31-retrospect" class="inline-block text-lg font-medium text-accent decoration-dashed underline-offset-4 hover:underline focus-visible:no-underline focus-visible:underline-offset-0"><h3 style="view-transition-name:2022-년-회고-밀도있는-성장">2022년 회고: 밀도있는 성장</h3></a><div class="flex items-center gap-x-2 opacity-80"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="inline-block size-6 min-w-5.5 scale-90"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z" /><path d="M16 3v4" /><path d="M8 3v4" /><path d="M4 11h16" /><path d="M7 14h.013" /><path d="M10.01 14h.005" /><path d="M13.01 14h.005" /><path d="M16.015 14h.005" /><path d="M13.015 17h.005" /><path d="M7.01 17h.005" /><path d="M10.01 17h.005" /></svg><time class="text-sm" datetime="2022-12-31T09:00:00.000Z">31 Dec, 2022</time></div><p class="mt-1 leading-relaxed">한 해를 마무리하며 작성한 글입니다.</p></div></div></li><li class="group relative my-8 pl-5 before:absolute before:left-0 before:top-0 before:h-full before:w-1 before:rounded before:bg-accent/25 before:transition-colors hover:before:bg-accent"><div class="flex items-start justify-between gap-4"><div class="min-w-0 flex-1"><a href="/posts/2022-12-24-bentoml" class="inline-block text-lg font-medium text-accent decoration-dashed underline-offset-4 hover:underline focus-visible:no-underline focus-visible:underline-offset-0"><h3 style="view-transition-name:bento-ml을-이용한-빠른-ml-모델-배포">BentoML을 이용한 빠른 ML 모델 배포</h3></a><div class="flex items-center gap-x-2 opacity-80"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="inline-block size-6 min-w-5.5 scale-90"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z" /><path d="M16 3v4" /><path d="M8 3v4" /><path d="M4 11h16" /><path d="M7 14h.013" /><path d="M10.01 14h.005" /><path d="M13.01 14h.005" /><path d="M16.015 14h.005" /><path d="M13.015 17h.005" /><path d="M7.01 17h.005" /><path d="M10.01 17h.005" /></svg><time class="text-sm" datetime="2022-12-24T09:00:00.000Z">24 Dec, 2022</time></div><p class="mt-1 leading-relaxed">ML 모델을 서비스할 때 사용되는 강력한 오픈 소스 툴킷</p></div></div></li></ul></section><div class="my-8 text-center"><a href="/posts/" class="group inline-flex items-center gap-1 hover:text-accent">All Posts<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="inline-block rtl:-rotate-180"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M5 12l14 0" /><path d="M13 18l6 -6" /><path d="M13 6l6 6" /></svg></a></div></div></div></main><footer class="app-layout mt-auto"><div class="py-6 sm:py-4 border-t border-border flex flex-col items-center justify-between sm:flex-row-reverse"><div class="flex flex-wrap items-center gap-1"><a href="https://github.com/PEBpung" title="ML감자 on GitHub" class="group inline-flex items-center gap-1 hover:text-accent p-2 hover:rotate-6 sm:p-1"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="inline-block size-6 scale-125 fill-transparent stroke-current stroke-2 opacity-90 group-hover:fill-transparent sm:scale-110"><path stroke="none" d="M0 0h24v24H0z" fill="none" />
43<path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5" /></svg><span class="sr-only">ML감자 on GitHub</span></a></div><div class="my-2 flex flex-col items-center whitespace-nowrap sm:flex-row"><span>Copyright &#169; 2026</span><span class="hidden sm:inline">&nbsp;|&nbsp;</span><span>All rights reserved.</span></div></div></footer><!-- Load full theme logic -->
43<script type="module">var e=`theme`,t=`light`,n=`dark`;function r(){return localStorage.getItem(e)||(window.matchMedia(`(prefers-color-scheme: dark)`).matches?n:t)}var i=window.theme?.themeValue??r();function a(){localStorage.setItem(e,i),o()}function o(){document.firstElementChild?.setAttribute(`data-theme`,i),document.querySelector(`#theme-btn`)?.setAttribute(`aria-label`,i);let e=document.body;if(e){let t=window.getComputedStyle(e).backgroundColor;document.querySelector(`meta[name='theme-color']`)?.setAttribute(`content`,t)}}window.theme?(window.theme.setPreference=a,window.theme.reflectPreference=o):window.theme={themeValue:i,setPreference:a,reflectPreference:o,getTheme:()=>i,setTheme:e=>{i=e}},o();function s(){o();let e=document.querySelector(`#theme-btn`);e&&(e.onclick=()=>{i=i===t?n:t,window.theme?.setTheme(i),a()})}s(),document.addEventListener(`astro:after-swap`,s),document.addEventListener(`astro:before-swap`,e=>{let t=e,n=document.querySelector(`meta[name='theme-color']`)?.getAttribute(`content`);n&&t.newDocument.querySelector(`meta[name='theme-color']`)?.setAttribute(`content`,n)}),window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,({matches:e})=>{i=e?n:t,window.theme?.setTheme(i),a()});</script>
43</body></html>
43<script type="module">function e(){document.querySelector(`#main-content`)?.dataset?.layout&&sessionStorage.setItem(`backUrl`,`/`)}window.__indexBackUrlBound||(document.addEventListener(`astro:page-load`,e),window.__indexBackUrlBound=!0),e();</script>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.