1<!doctype html> 2<html lang="en"> 3 <head><meta charset="utf-8"> 4<meta name="viewport" content="width=device-width, initial-scale=1"> 5<title>ìê° ì¤íìì¤ íë - ohah</title>
6<script>{;const saved = localStorage.getItem('rspress-theme-appearance');const preferDark = window.matchMedia('(prefers-color-scheme: dark)').matches;const defaultTheme = 'auto';const theme = saved === 'light' || saved === 'dark' || saved === 'auto' ? saved : defaultTheme;const isDark = theme === 'auto' ? preferDark : theme === 'dark';document.documentElement.classList.toggle('dark', isDark);document.documentElement.classList.toggle('rp-dark', isDark);document.documentElement.style.colorScheme = isDark ? 'dark' : 'light';}</script>
6 7<link href="/static/css/styles.6afadd1d74.css" rel="stylesheet"> 8<link rel="preload" href="/static/js/async/route-1c22031d4c09.18f4a82f0f.js" as="script">
9<script defer src="/static/js/styles.5db056e0eb.js"></script>
vendor: 1 bytes, line 9
9
10<script defer src="/static/js/lib-react.9e85229ab3.js"></script>
vendor: 1 bytes, line 10
10
11<script defer src="/static/js/lib-router.2637f090c7.js"></script>
vendor: 1 bytes, line 11
11
12<script defer src="/static/js/y.a594bfc419.js"></script>
vendor: 1 bytes, line 12
12
13<script defer src="/static/js/index.db369632c0.js"></script>
13 14<meta http-equiv="X-UA-Compatible" content="IE=edge"> 15<meta name="generator" content="Rspress v2.0.22"> 16<meta property="og:type" content="website"> 17<meta property="og:title" content="ìê° ì¤íìì¤ íë - ohah"> 18<meta name="description" content="ë§¤ë¬ ê¸°ì¬í ì¤íìì¤ íëì ì 리í©ëë¤."> 19<meta property="og:description" content="ë§¤ë¬ ê¸°ì¬í ì¤íìì¤ íëì ì 리í©ëë¤."></head> 20 21 <body> 22 <div id="__rspress_root"><header class="rp-nav"><div class="rp-nav__left"><div class="rp-nav__title"><a href="/" class="rp-nav__title__link rp-link"><span>ohah</span></a></div></div><div class="rp-nav__right"><button class="rp-search-button"><div class="rp-search-button__content"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="none" viewBox="0 0 20 21" class="rp-search-button__icon"><path fill="currentColor" d="M8.333 1.913A6.667 6.667 0 0 1 15 8.58c0 1.54-.525 2.957-1.402 4.085l4.49 4.492a.834.834 0 0 1-1.177 1.178l-4.491-4.49a6.64 6.64 0 0 1-4.087 1.402 6.667 6.667 0 0 1 0-13.334m0 1.667a5 5 0 1 0 0 10 5 5 0 0 0 0-10"></path></svg><span class="rp-search-button__word">Search</span></div><div class="rp-search-button__hotkey" style="opacity:0"><span></span><span>K</span></div></button><div class="rp-search-button--mobile"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="none" viewBox="0 0 20 21"><path fill="currentColor" d="M8.333 1.913A6.667 6.667 0 0 1 15 8.58c0 1.54-.525 2.957-1.402 4.085l4.49 4.492a.834.834 0 0 1-1.177 1.178l-4.491-4.49a6.64 6.64 0 0 1-4.087 1.402 6.667 6.667 0 0 1 0-13.334m0 1.667a5 5 0 1 0 0 10 5 5 0 0 0 0-10"></path></svg></div><ul class="rp-nav-menu rp-nav-menu--right"><li class="rp-nav-menu__item rp-nav-menu__item--active"><a href="/monthly-opensource/index.html" class="rp-nav-menu__item__container rp-link">ìê° ì¤íìì¤</a></li><li class="rp-nav-menu__item"><a href="/reviews/index.html" class="rp-nav-menu__item__container rp-link">리뷰</a></li><li class="rp-nav-menu__item"><a href="/today-commit/index.html" class="rp-nav-menu__item__container rp-link">ì¤ëì 커ë°</a></li></ul><div class="rp-nav__others"><div class="rp-nav-menu__divider"></div><div class="rp-switch-appearance"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 24 24" class="rp-switch-appearance__icon rp-switch-appearance__icon--sun"><path fill="currentColor" d="m7.001 15.848-1.226 1.226a.58.58 0 0 0 0 .818.58.58 0 0 0 .818 0l1.226-1.226a.58.58 0 0 0 0-.818.58.58 0 0 0-.818 0m-.352-8.735a.584.584 0 0 0 .825-.825L6.237 5.051a.584.584 0 0 0-.825.825zM5.011 11.07h-1.75a.584.584 0 0 0 0 1.167h1.75c.324 0 .584-.26.584-.583a.585.585 0 0 0-.584-.584m7.003-5.835c.324 0 .584-.26.584-.584V2.9a.58.58 0 0 0-.584-.584.58.58 0 0 0-.583.583V4.65c0 .323.262.584.583.584m5.616 1.621 1.226-1.225a.58.58 0 0 0 0-.818.58.58 0 0 0-.818 0l-1.226 1.225a.58.58 0 0 0 0 .818.576.576 0 0 0 .818 0m3.138 4.214h-1.75a.58.58 0 0 0-.584.584c0 .324.26.584.583.584h1.751a.584.584 0 1 0 0-1.167m-3.389 5.124a.584.584 0 0 0-.825.825l1.238 1.238a.584.584 0 0 0 .825-.826zm-5.365-9.795a5.256 5.256 0 0 0-5.257 5.258 5.256 5.256 0 0 0 5.257 5.257 5.256 5.256 0 0 0 5.257-5.257 5.256 5.256 0 0 0-5.257-5.258m0 11.675a.58.58 0 0 0-.583.583v1.751a.582.582 0 1 0 1.167 0v-1.75a.584.584 0 0 0-.584-.584"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" fill="currentColor" viewBox="0 0 19 19" class="rp-switch-appearance__icon rp-switch-appearance__icon--moon"><path fill="currentColor" d="M9.166 0a9.2 9.2 0 0 1 1.857.188.834.834 0 0 1 .042 1.623 4.47 4.47 0 1 0 5.457 5.457l.048-.135a.834.834 0 0 1 1.575.177q.186.902.188 1.856A9.168 9.168 0 1 1 9.166 0"></path></svg></div><div class="rp-social-links"><a href="https://github.com/ohah" target="_blank" rel="noopener noreferrer" class="rp-social-links__item"><div class="rp-social-links__icon"><div class="rp-social-links__icon"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 24 24"><path fill="currentColor" d="M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></div></div></a><ul class="rp-hover-group rp-hover-group--hidden rp-hover-group--right"></ul></div></div><button aria-label="mobile hamburger" class="rp-nav-hamburger rp-nav-hamburger__sm"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 21 21"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.667" d="M3.645 5.225h13.333M3.645 10.225h13.333M3.645 15.225h13.333"></path></svg></button><button aria-label="mobile hamburger" class="rp-nav-hamburger rp-nav-hamburger__md"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" fill="none" viewBox="0 0 21 21"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.667" d="M3.645 5.225h13.333M3.645 10.225h13.333M3.645 15.225h13.333"></path></svg><ul class="rp-hover-group rp-hover-group--hidden rp-hover-group--right"><div class="rp-nav-menu__others-mobile__container"><div class="rp-nav-hamburger__md__hover-group"><div class="rp-nav-screen-appearance"><div class="rp-nav-screen-appearance__left">Theme</div><div class="rp-nav-screen-appearance__right"></div></div><div class="rp-nav-screen-divider"></div><div class="rp-social-links"><a href="https://github.com/ohah" target="_blank" rel="noopener noreferrer" class="rp-social-links__item"><div class="rp-social-links__icon"><div class="rp-social-links__icon">
22<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 24 24"><path fill="currentColor" d="M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></div></div></a><ul class="rp-hover-group rp-hover-group--hidden rp-hover-group--right"></ul></div></div></div></ul></button></div></header><div class="rp-doc-layout__menu"><div class="rp-sidebar-menu"><button type="button" class="rp-sidebar-menu__left"><svg width="1em" height="1em" viewBox="0 0 32 32"><path fill="currentColor" d="M4 6h24v2H4zm0 18h24v2H4zm0-12h24v2H4zm0 6h24v2H4z"></path></svg><span>Menu</span></button><button type="button" class="rp-sidebar-menu__right"><span class="rp-sidebar-menu__right__text">ON THIS PAGE</span><svg width="14" height="14" class="rp-progress-circle"><circle cx="7" cy="7" r="6" stroke-linecap="round" fill="none" stroke="var(--rp-c-divider-light)" stroke-width="2"></circle><circle cx="7" cy="7" r="6" stroke-linecap="round" fill="none" stroke="var(--rp-c-brand)" stroke-width="2" stroke-dasharray="37.69911184307752" stroke-dashoffset="37.69911184307752" transform="rotate(-90 7 7)" style="transition:stroke-dashoffset 0.3s"></circle></svg><svg width="1em" height="1em" viewBox="0 0 32 32" class="rp-sidebar-menu__right__icon" style="transform:rotate(0deg);transition:transform 0.2s ease-out"><path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></button></div></div><div class="rp-doc-layout__container"><aside class="rp-doc-layout__sidebar rp-scrollbar"><a href="/monthly-opensource/index.html" class="rp-sidebar-item rp-sidebar-item--active rp-link" style="padding-left:12px" data-depth="0"><div class="rp-sidebar-item__left"><span class="rp-doc">ìê° ì¤íìì¤</span></div><div class="rp-sidebar-item__right"></div></a><div class="rp-sidebar-item rp-sidebar-group" style="padding-left:12px" data-depth="0"><div class="rp-sidebar-item__left"><span class="rp-doc">Hwpjs</span></div><div class="rp-sidebar-item__right"><div style="cursor:pointer;transition:transform 0.2s ease-out;transform:rotate(0deg)"><svg width="1em" height="1em" viewBox="0 0 32 32"><path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></div></div><div style="display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out"><div style="overflow:hidden"><a href="/monthly-opensource/hwpjs/background.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">1. ê°ë° ë°°ê²½</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.12.05</span></div></a><a href="/monthly-opensource/hwpjs/tech-stack.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2. 기ì ì¤í</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.12.06</span></div></a><a href="/monthly-opensource/hwpjs/development.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3. ê°ë° ê³¼ì </span></div><div class="rp-sidebar-item__right"></div></a><a href="/monthly-opensource/hwpjs/development-1.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-1. 구조 ì¡ê¸°</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">
2225.12.06</span></div></a><a href="/monthly-opensource/hwpjs/development-2.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-2. ì½ì´ ê°ë°í기</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.12.10</span></div></a><a href="/monthly-opensource/hwpjs/development-3.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-3. ë°°í¬(NAPI-RS)</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.01.17</span></div></a><a href="/monthly-opensource/hwpjs/development-4.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-4. ë°°í¬(Craby)</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.01.17</span></div></a><a href="/monthly-opensource/hwpjs/development-5.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-5. ë°°í¬(WebAssembly)</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.01.18</span></div></a><a href="/monthly-opensource/hwpjs/development-6.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-6. HTML ë·°ì´ ê³ ëí</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.23</span></div></a><a href="/monthly-opensource/hwpjs/development-7.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-7. í
ì´ë¸ ë ëë§ ìì±ë ëì´ê¸°</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.14</span></div></a><a href="/monthly-opensource/hwpjs/development-8.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-8. LineSeg í©ì±ê³¼ íì´ì§ë¤ì´ì
</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.15</span></div></a><a href="/monthly-opensource/hwpjs/development-9.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-9. Rust 를 ì ê³ Zig ë¡ ë¤ì ì°ë¤</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.09.21</span></div></a><a href="/monthly-opensource/hwpjs/development-10.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-10. HWPX를 ì´ê³ , ì½ìë¤ë ê²ì ê²ì¦íë¤</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.09.26</span></div></a></div></div><div class="rp-sidebar-item rp-sidebar-group" style="padding-left:12px" data-depth="0"><div class="rp-sidebar-item__left"><span class="rp-doc">í¬ë¡ë¯¸ì</span></div><div class="rp-sidebar-item__right"><div style="cursor:pointer;transition:transform 0.2s ease-out;transform:rotate(0deg)"><svg width="1em" height="1em" viewBox="0 0 32 32"><path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></div></div><div style="display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out"><div style="overflow:hidden"><a href="/monthly-opensource/chromium/background.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">1. ê°ë° ë°°ê²½</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">
2225.12.15</span></div></a><a href="/monthly-opensource/chromium/setup.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2. íê²½ ì¤ì </span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">ìì± ìì </span></div></a><a href="/monthly-opensource/chromium/first-contribution.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3. 첫 ë²ì§¸ 기ì¬</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">ìì± ìì </span></div></a><a href="/monthly-opensource/chromium/code-review.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">4. ì½ë 리뷰 ê³¼ì </span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">ìì± ìì </span></div></a><a href="/monthly-opensource/chromium/merge.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">5. ë¨¸ì§ ë° í기</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">ìì± ìì </span></div></a></div></div><div class="rp-sidebar-item rp-sidebar-group" style="padding-left:12px" data-depth="0"><div class="rp-sidebar-item__left"><span class="rp-doc">Craby</span></div><div class="rp-sidebar-item__right"><div style="cursor:pointer;transition:transform 0.2s ease-out;transform:rotate(0deg)"><svg width="1em" height="1em" viewBox="0 0 32 32"><path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></div></div><div style="display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out"><div style="overflow:hidden"><a href="/monthly-opensource/craby/background.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">1. ê°ë° ë°°ê²½</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.01.18</span></div></a><a href="/monthly-opensource/craby/development.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2. ê¸°ì¬ ê³¼ì </span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.11.15</span></div></a><a href="/monthly-opensource/craby/development-1.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2-1. EventEmitter 기ì¬</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.11.15</span></div></a><a href="/monthly-opensource/craby/development-2.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2-2. codegen íì´ë¡ë ìì </span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.11.24</span></div></a><a href="/monthly-opensource/craby/development-3.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2-3. ArrayBuffer Vec ë³í ë²ê·¸ ìì </span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.12.21</span></div></a></div></div><div class="rp-sidebar-item rp-sidebar-group" style="padding-left:12px" data-depth="0"><div class="rp-sidebar-item__left"><span class="rp-doc">Chrome Remote Debugger</span></div><div class="rp-sidebar-item__right"><div style="cursor:pointer;transition:transform 0.2s ease-out;transform:rotate(0deg)"><svg width="1em" height="1em" viewBox="0 0 32 32">
22<path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></div></div><div style="display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out"><div style="overflow:hidden"><a href="/monthly-opensource/crd/background.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">1. ê°ë° ë°°ê²½</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.03</span></div></a><a href="/monthly-opensource/crd/tech-stack.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2. 기ì ì¤í</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.14</span></div></a><a href="/monthly-opensource/crd/development.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3. ê°ë° ê³¼ì </span></div><div class="rp-sidebar-item__right"></div></a><a href="/monthly-opensource/crd/development-1.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-1. CDP í´ë¼ì´ì¸í¸ì ìë² êµ¬í</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.12.20</span></div></a><a href="/monthly-opensource/crd/development-2.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-2. DevTools íë¡ í¸ìë ì°ë</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.12.21</span></div></a><a href="/monthly-opensource/crd/development-3.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-3. ì¸ì
리íë ì´ (rrweb)</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.12.23</span></div></a><a href="/monthly-opensource/crd/development-4.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-4. PostMessageì iframe 모ë</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.12.25</span></div></a><a href="/monthly-opensource/crd/development-5.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-5. NPM ë°°í¬ì init() API</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.12.27</span></div></a><a href="/monthly-opensource/crd/development-6.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-6. CSS ëë©ì¸ê³¼ Styles í</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.12.29</span></div></a><a href="/monthly-opensource/crd/development-7.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-7. í
ì¤í¸ì ì½ë íì§</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.12.30</span></div></a><a href="/monthly-opensource/crd/development-8.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-8. React Native Inspector</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.09</span></div></a><a href="/monthly-opensource/crd/development-9.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-9. ë§ë¬´ë¦¬ì íê³ </span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.15</span></div></a></div></div><div class="rp-sidebar-item rp-sidebar-group" style="padding-left:12px" data-depth="0"><div class="rp-sidebar-item__left"><span class="rp-doc">Electron MCP Server</span></div><div class="rp-sidebar-item__right"><div style="cursor:pointer;transition:transform 0.2s ease-out;transform:rotate(0deg)"><svg width="1em" height="1em" viewBox="0 0 32 32">
22<path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></div></div><div style="display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out"><div style="overflow:hidden"><a href="/monthly-opensource/electron-mcp-server/background.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">1. ê°ë° ë°°ê²½</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.02</span></div></a><a href="/monthly-opensource/electron-mcp-server/tech-stack.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2. 기ì ì¤í</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.03</span></div></a><a href="/monthly-opensource/electron-mcp-server/development.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3. ê°ë° ê³¼ì </span></div><div class="rp-sidebar-item__right"></div></a><a href="/monthly-opensource/electron-mcp-server/development-1.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-1. CDP ì°ëê³¼ MCP ìë²</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.04</span></div></a><a href="/monthly-opensource/electron-mcp-server/development-2.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-2. ë©ì¸ íë¡ì¸ì¤ 모ëí°ë§</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.05</span></div></a><a href="/monthly-opensource/electron-mcp-server/development-3.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-3. í í° ìµì í ëìì </span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.05</span></div></a><a href="/monthly-opensource/electron-mcp-server/development-4.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-4. ê°ì²´ íìê³¼ ì°ê²° ì¤ë¹ ë¤ë¬ê¸°</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.18</span></div></a></div></div><div class="rp-sidebar-item rp-sidebar-group" style="padding-left:12px" data-depth="0"><div class="rp-sidebar-item__left"><span class="rp-doc">React Native MCP</span></div><div class="rp-sidebar-item__right"><div style="cursor:pointer;transition:transform 0.2s ease-out;transform:rotate(0deg)"><svg width="1em" height="1em" viewBox="0 0 32 32"><path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></div></div><div style="display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out"><div style="overflow:hidden"><a href="/monthly-opensource/react-native-mcp/background.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">1. ê°ë° ë°°ê²½</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.07</span></div></a><a href="/monthly-opensource/react-native-mcp/tech-stack.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2. 기ì ì¤í</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.19</span></div></a><a href="/monthly-opensource/react-native-mcp/development.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3. ê°ë° ê³¼ì </span></div><div class="rp-sidebar-item__right"></div></a><a href="/monthly-opensource/react-native-mcp/development-1.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-1. ë°íì ì¸ì ì
ê³¼ Fiber í¸ë¦¬</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.19</span></div></a><a href="/monthly-opensource/react-native-mcp/development-2.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-2. 48ê° ë구ì ëë°ì´ì¤ ì ì´</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.23</span></div></a><a href="/monthly-opensource/react-native-mcp/development-3.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-3. í í° ìµì íì ìì ì±</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.05</span></div></a><a href="/monthly-opensource/react-native-mcp/development-4.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-4. ì°ê²° ì§ë¨ê³¼ Snapshot·Refs CLI</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.21</span></div></a></div></div><div class="rp-sidebar-item rp-sidebar-group" style="padding-left:12px" data-depth="0"><div class="rp-sidebar-item__left"><span class="rp-doc">React WASM Table</span></div><div class="rp-sidebar-item__right"><div style="cursor:pointer;transition:transform 0.2s ease-out;transform:rotate(0deg)"><svg width="1em" height="1em" viewBox="0 0 32 32">
22<path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></div></div><div style="display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out"><div style="overflow:hidden"><a href="/monthly-opensource/react-wasm-table/background.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">1. ê°ë° ë°°ê²½</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.24</span></div></a><a href="/monthly-opensource/react-wasm-table/tech-stack.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2. 기ì ì¤í</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.25</span></div></a><a href="/monthly-opensource/react-wasm-table/development.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3. ê°ë° ê³¼ì </span></div><div class="rp-sidebar-item__right"></div></a><a href="/monthly-opensource/react-wasm-table/development-1.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-1. ìí¤í
ì² ì¤ê³ì WASM ì½ì´</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.25</span></div></a><a href="/monthly-opensource/react-wasm-table/development-2.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-2. Canvas ë ëë§ê³¼ ì ë¡ì¹´í¼</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.28</span></div></a><a href="/monthly-opensource/react-wasm-table/development-3.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-3. TanStack API í¸íê³¼ ì»´í¬ëí¸</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.05</span></div></a><a href="/monthly-opensource/react-wasm-table/development-4.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-4. 모ë°ì¼ í°ì¹ ìëª
ê³¼ ë°°í¬ ì¤ë¹</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.10</span></div></a></div></div><div class="rp-sidebar-item rp-sidebar-group" style="padding-left:12px" data-depth="0"><div class="rp-sidebar-item__left"><span class="rp-doc">Cheolsu Proxy</span></div><div class="rp-sidebar-item__right"><div style="cursor:pointer;transition:transform 0.2s ease-out;transform:rotate(0deg)"><svg width="1em" height="1em" viewBox="0 0 32 32"><path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></div></div><div style="display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out"><div style="overflow:hidden"><a href="/monthly-opensource/cheolsu-proxy/background.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">1. ê°ë° ë°°ê²½</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.08.14</span></div></a><a href="/monthly-opensource/cheolsu-proxy/tech-stack.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2. 기ì ì¤í</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.09.26</span></div></a><a href="/monthly-opensource/cheolsu-proxy/development.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3. ê°ë° ê³¼ì </span></div><div class="rp-sidebar-item__right"></div></a><a href="/monthly-opensource/cheolsu-proxy/development-1.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-1. TLSìì ì ì</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">
2225.10.14</span></div></a><a href="/monthly-opensource/cheolsu-proxy/development-2.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-2. 첫 기ë¥ë¤ê³¼ 1ì°¨ ì기</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">25.10.19</span></div></a><a href="/monthly-opensource/cheolsu-proxy/development-3.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-3. ë¶í: íê²½ êµì²´ì ë°ëª¬</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.02.28</span></div></a><a href="/monthly-opensource/cheolsu-proxy/development-4.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-4. MCP ìë²ì ì¸í°ì
í¸ ê·ì¹</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.05</span></div></a><a href="/monthly-opensource/cheolsu-proxy/development-5.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-5. TUIì ì¤í¬ë¦½í
ìì§</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.07</span></div></a><a href="/monthly-opensource/cheolsu-proxy/development-6.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-6. ë¤í¬ í
ë§ì ìì¤í
í¸ë ì´</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.08</span></div></a><a href="/monthly-opensource/cheolsu-proxy/development-7.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-7. ê¸°ë¥ ííì ë </span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.09</span></div></a><a href="/monthly-opensource/cheolsu-proxy/development-8.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-8. ë³´ìê³¼ íë¡í ì½ íì¥</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.10</span></div></a><a href="/monthly-opensource/cheolsu-proxy/development-9.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-9. 리í©í ë§ê³¼ v0.1.0</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.12</span></div></a><a href="/monthly-opensource/cheolsu-proxy/development-10.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-10. ë¦´ë¦¬ì¤ ì´íì ì¬ë´ íì©</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.14</span></div></a><a href="/monthly-opensource/cheolsu-proxy/development-11.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-11. CLI íµí©ê³¼ ì¸ì¦ì ìì í</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.21</span></div></a><a href="/monthly-opensource/cheolsu-proxy/development-12.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-12. ì¶ì ë¤ì ìì ì± ì ê²</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.09.26</span></div></a></div></div><div class="rp-sidebar-item rp-sidebar-group" style="padding-left:12px" data-depth="0"><div class="rp-sidebar-item__left"><span class="rp-doc">ZNTC (구 ZTS · Zig TypeScript Transpiler)</span></div><div class="rp-sidebar-item__right"><div style="cursor:pointer;transition:transform 0.2s ease-out;transform:rotate(0deg)"><svg width="1em" height="1em" viewBox="0 0 32 32">
22<path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></div></div><div style="display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out"><div style="overflow:hidden"><a href="/monthly-opensource/zts/background.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">1. ê°ë° 배경과 ë기</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.18</span></div></a><a href="/monthly-opensource/zts/tech-stack.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2. 기ì ì¤íê³¼ ì¤ê³ ì² í</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.18</span></div></a><a href="/monthly-opensource/zts/development.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3. ê°ë° ê³¼ì </span></div><div class="rp-sidebar-item__right"></div></a><a href="/monthly-opensource/zts/development-1.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-1. Phase 1~2: ë ìì íì</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.18</span></div></a><a href="/monthly-opensource/zts/development-2.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-2. Phase 3~5: í¸ëì¤í¬ë¨¸ì ì½ëì </span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.18</span></div></a><a href="/monthly-opensource/zts/development-3.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-3. Test262 100% ë¬ì±ê¸°</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.20</span></div></a><a href="/monthly-opensource/zts/development-4.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-4. ë²ë¤ë¬ Phase B1~B2</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.21</span></div></a><a href="/monthly-opensource/zts/development-5.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-5. Dev Serverì HMR</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.22</span></div></a><a href="/monthly-opensource/zts/development-6.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-6. ì¤ëª¨í¬ í
ì¤í¸ì ì¤ì í¸íì±</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.23</span></div></a><a href="/monthly-opensource/zts/development-7.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-7. í¸ëì¤íì¼ ì í©ì± 9.5%â74.1%</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.24</span></div></a><a href="/monthly-opensource/zts/development-8.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-8. ìí¬íë¡ì°ì AI íì
ë°©ì</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.26</span></div></a><a href="/monthly-opensource/zts/development-9.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-9. ES5 ë¤ì´ë ë²¨ë§ ìì±ê³¼ ë²ë¤ë¬ ê³ ëí</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.04.07</span></div></a><a href="/monthly-opensource/zts/development-10.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-10. React Native íë«í¼ê³¼ 4/7 ìì ì±ë¥</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.04.07</span></div></a><a href="/monthly-opensource/zts/development-11.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-11. Metro ëë±ì± â RN HMR ì¬ì¤ê³</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.04.10</span></div></a><a href="/monthly-opensource/zts/development-12.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-12. í¸íì± ê²¹ì¸µ â ìí´ë ·Stage 3 decorator·ESTree</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.04.14</span></div></a><a href="/monthly-opensource/zts/development-13.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-13. Metro ê²½ê³ íì ê³¼ 근본 ìì ìì¹</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.04.18</span></div></a><a href="/monthly-opensource/zts/development-14.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-14. RFC ìë¦¬ì¦ â References·AST ì¬ì¤ê³Â·HMR íë¡íì¼</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.04.23</span></div></a><a href="/monthly-opensource/zts/development-15.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-15. "íë¡ëì
ì´ë¼ë ë§" â config·CJS DCE·styled/emotion í¸ëì¤í¬ë¨¸</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.04.30</span></div></a><a href="/monthly-opensource/zts/development-16.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-16. binding-lite·ë©ëª¨ë¦¬ ì¤ì¼Â·í¨í¤ì§ ë¶ë¦¬, ê·¸ë¦¬ê³ ì´ë¦ì´ ë°ë ë </span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.05.07</span></div></a><a href="/monthly-opensource/zts/development-17.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-17. 0.1.0ì í¥í´ â íë¬ê·¸ì¸ íµì¼Â·íì¼ ë¶ë¦¬Â·ë°°í¬ íì´íë¼ì¸Â·Codex íê³ </span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.05.12</span></div></a><a href="/monthly-opensource/zts/development-18.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-18. minify 격차 ì¶ê²©ê³¼ Module Federation â 0.1.0ì ìì§ preview</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.05.19</span></div></a><a href="/monthly-opensource/zts/development-19.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-19. 0.1.0ì ì¤ì ë¡ ëë ë¤ â ê·¸ë¦¬ê³ ë§ë ê²ì ëë리ë ì´í</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.05.31</span></div></a><a href="/monthly-opensource/zts/development-20.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-20. "1ìê° íê³ ì¶ì´ì" â ìì ë³´ì¡´ HMRê³¼ ëì¤í¬ ìºì, 0.1.2</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.06.30</span></div></a><a href="/monthly-opensource/zts/development-21.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-21. ì´ì í를 ë°ë¼ê°ë ì¬ë¦ â preserve-modulesì 0.1.3·0.1.4</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.08.10</span></div></a><a href="/monthly-opensource/zts/development-22.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-22. ë¤ì´ë 벨ë§ì ì미를 ì§í¤ë ì¬ë³¼ í</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.09.26</span></div></a></div></div><div class="rp-sidebar-item rp-sidebar-group" style="padding-left:12px" data-depth="0"><div class="rp-sidebar-item__left"><span class="rp-doc">Suji (ë©í° ë°±ìë ë°ì¤í¬í± íë ììí¬)</span></div><div class="rp-sidebar-item__right"><div style="cursor:pointer;transition:transform 0.2s ease-out;transform:rotate(0deg)"><svg width="1em" height="1em" viewBox="0 0 32 32">
22<path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></div></div><div style="display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out"><div style="overflow:hidden"><a href="/monthly-opensource/suji/background.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">1. ê°ë° ë°°ê²½</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.30</span></div></a><a href="/monthly-opensource/suji/tech-stack.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2. 기ì ì¤íê³¼ 구조</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.03.30</span></div></a><a href="/monthly-opensource/suji/development.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3. ê°ë° ê³¼ì </span></div><div class="rp-sidebar-item__right"></div></a><a href="/monthly-opensource/suji/development-1.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-1. ì¼ì£¼ì¼ ë§ì íë ììí¬ ëª¨ì ê°ì¶ê¸°</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.04.06</span></div></a><a href="/monthly-opensource/suji/development-2.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-2. Electron í¨ë¦¬í° â 창과 ë¤ì´í°ë¸ API</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.05.02</span></div></a><a href="/monthly-opensource/suji/development-3.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-3. CEF를 ë¼ì´ë´ê³ 모ë°ì¼ë¡</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.05.19</span></div></a><a href="/monthly-opensource/suji/development-4.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-4. ì¸ OSì ì¼ê³± ì¸ì´, ê·¸ë¦¬ê³ ì ì ê°ì¬</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.06.20</span></div></a></div></div><div class="rp-sidebar-item rp-sidebar-group" style="padding-left:12px" data-depth="0"><div class="rp-sidebar-item__left"><span class="rp-doc">Maru (Zig ë¤ì´í°ë¸ í°ë¯¸ë)</span></div><div class="rp-sidebar-item__right"><div style="cursor:pointer;transition:transform 0.2s ease-out;transform:rotate(0deg)"><svg width="1em" height="1em" viewBox="0 0 32 32"><path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></div></div><div style="display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out"><div style="overflow:hidden"><a href="/monthly-opensource/maru/background.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">1. ê°ë° ë°°ê²½</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.06.03</span></div></a><a href="/monthly-opensource/maru/tech-stack.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2. 기ì ì¤íê³¼ ê·ì¨</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">
2226.06.03</span></div></a><a href="/monthly-opensource/maru/development.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3. ê°ë° ê³¼ì </span></div><div class="rp-sidebar-item__right"></div></a><a href="/monthly-opensource/maru/development-1.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-1. ë¹ ì ì¥ììì 첫 ê¸ìê¹ì§</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.06.12</span></div></a><a href="/monthly-opensource/maru/development-2.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-2. í°ë¯¸ëë¤ìì§ê¸°</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.06.30</span></div></a><a href="/monthly-opensource/maru/development-3.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-3. í°ë¯¸ë ë°ì¼ë¡</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.07.16</span></div></a><a href="/monthly-opensource/maru/development-4.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-4. íì¼ í¨ëê³¼ ìì ì¸ì
</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.07.31</span></div></a><a href="/monthly-opensource/maru/development-5.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-5. ë¤ì ë¯ì´ê³ ì¹ê¸°, ê·¸ë¦¬ê³ íë«í¼ íì¥</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.08.17</span></div></a><a href="/monthly-opensource/maru/development-6.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-6. ì격ì¼ë¡, ê·¸ë¦¬ê³ ë°ì¼ë¡</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.09.14</span></div></a><a href="/monthly-opensource/maru/development-7.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-7. ì¸ì´ ìë²ê° ë¶ëë¤</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.09.21</span></div></a><a href="/monthly-opensource/maru/development-8.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3-8. ë¤ì ì¼ë ì´ì´ì§ë ìì
</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.09.26</span></div></a></div></div><div class="rp-sidebar-item rp-sidebar-group" style="padding-left:12px" data-depth="0"><div class="rp-sidebar-item__left"><span class="rp-doc">@ohah/pdf (Zig wasm PDF ìì§)</span></div><div class="rp-sidebar-item__right"><div style="cursor:pointer;transition:transform 0.2s ease-out;transform:rotate(0deg)"><svg width="1em" height="1em" viewBox="0 0 32 32"><path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></div></div><div style="display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out"><div style="overflow:hidden"><a href="/monthly-opensource/pdf/background.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">1. ê°ë° ë°°ê²½</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.08.30</span></div></a><a href="/monthly-opensource/pdf/tech-stack.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">2. 기ì ì¤í</span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.08.30</span></div></a><a href="/monthly-opensource/pdf/development.html" class="rp-sidebar-item rp-sidebar-item--group-item rp-link" style="padding-left:calc(12px * 1 + 12px)" data-depth="1"><div class="rp-sidebar-item__left"><span class="rp-doc">3. ê°ë° ê³¼ì </span></div><div class="rp-sidebar-item__right"><span class="rp-badge rp-badge--info">26.09.26</span></div></a></div></div></aside><div class="rp-doc-layout__doc"><main class="rp-doc-layout__doc-container"><div class="rp-doc rspress-doc"><!--$--><h1 class="rp-toc-include" id="ìê°-ì¤íìì¤-íë"><a href="#ìê°-ì¤íìì¤-íë" class="rp-header-anchor rp-link" aria-hidden="true">
22#</a>ìê° ì¤íìì¤ íë<!-- --> </h1> 23<p>ë§¤ë¬ ê¸°ì¬í ì¤íìì¤ íëì ì 리í©ëë¤.</p> 24<div class="rp-callout rp-callout--danger"><div class="rp-callout__title">Danger</div><div class="rp-callout__content"><p> 25ê°ì¸ íë¡ì í¸ì¸ ê²½ì° 1ë¬ ì´ë´ì ìµì íëì ë°°í¬ê° ìê±°ë</p><p>ê³µê° ì¤íìì¤ì íë¬ì íëì ì»¤ë° ì´ìì íì§ ìì¼ë©´ í´ë¹ ë¸ë¡ê·¸ë í기ë©ëë¤.</p></div></div> 26<h2 class="rp-toc-include" id="기ì¬--릴리ì¦-íìë¼ì¸"><a href="#기ì¬--릴리ì¦-íìë¼ì¸" class="rp-header-anchor rp-link" aria-hidden="true">#</a>ê¸°ì¬ Â· ë¦´ë¦¬ì¦ íìë¼ì¸</h2> 27<h3 class="rp-toc-include" id="2025ë -11ì"><a href="#2025ë -11ì" class="rp-header-anchor rp-link" aria-hidden="true">#</a>2025ë 11ì</h3> 28<div class="rp-table-scroll-container rp-scrollbar"><table><thead><tr><th>ë ì§</th><th>íë¡ì í¸</th><th>íë</th></tr></thead><tbody><tr><td>11-02</td><td><a href="https://github.com/ohah/ime-composition-scroll" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/ime-composition-scroll</a></td><td>íê¸ IME ì ë ¥ ì ì¤í¬ë¡¤ 문ì ì¬í ë¼ì´ë¸ë¬ë¦¬ ê³µê°</td></tr><tr><td>11-05</td><td><a href="https://github.com/leegeunhyeok/craby" target="_blank" rel="noopener noreferrer" class="rp-link">leegeunhyeok/craby</a></td><td><a href="https://github.com/leegeunhyeok/craby/pull/46" target="_blank" rel="noopener noreferrer" class="rp-link">docs: fix typo #46</a> â merged (11-05)</td></tr><tr><td>11-15</td><td><a href="https://github.com/leegeunhyeok/craby" target="_blank" rel="noopener noreferrer" class="rp-link">leegeunhyeok/craby</a></td><td><a href="https://github.com/leegeunhyeok/craby/pull/67" target="_blank" rel="noopener noreferrer" class="rp-link">feat: Add EventEmitter support with onProgress and onError signals #67</a> â merged (11-23)</td></tr><tr><td>11-24</td><td><a href="https://github.com/leegeunhyeok/craby" target="_blank" rel="noopener noreferrer" class="rp-link">leegeunhyeok/craby</a></td><td><a href="https://github.com/leegeunhyeok/craby/pull/70" target="_blank" rel="noopener noreferrer" class="rp-link">fix(codegen): cxx_generator.rs fix payload extraction #70</a> â merged (11-26)</td></tr><tr><td>11-29</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td><a href="https://www.npmjs.com/package/@ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/hwpjs 0.1.0-rc.1</a> NPM ë°°í¬ (11-29)</td></tr></tbody></table></div> 29<h3 class="rp-toc-include" id="2025ë -12ì"><a href="#2025ë -12ì" class="rp-header-anchor rp-link" aria-hidden="true">#</a>2025ë 12ì</h3> 30<div class="rp-table-scroll-container rp-scrollbar"><table><thead><tr><th>ë ì§</th><th>íë¡ì í¸</th><th>íë</th></tr></thead><tbody><tr><td>12-06</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td><a href="https://github.com/ohah/hwpjs/releases/tag/%40ohah/hwpjs%400.1.0-rc.3" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/hwpjs 0.1.0-rc.2, rc.3</a> NPM ë°°í¬ (12-06)</td></tr><tr><td>12-13</td><td><a href="https://github.com/ohah/executeJS" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/executeJS</a></td><td>Node.js ë°íì ì í, ìë ë¤ì´ë¡ë, npm í¨í¤ì§ ìë ì¤ì¹ â PR <a href="https://github.com/ohah/executeJS/pull/27" target="_blank" rel="noopener noreferrer" class="rp-link">#27</a>, <a href="https://github.com/ohah/executeJS/pull/28" target="_blank" rel="noopener noreferrer" class="rp-link">#28</a>, <a href="https://github.com/ohah/executeJS/pull/29" target="_blank" rel="noopener noreferrer" class="rp-link">#29</a> merged (12-12~13)</td></tr><tr><td>12-15</td><td><a href="https://github.com/oxc-project/website" target="_blank" rel="noopener noreferrer" class="rp-link">oxc-project/website</a></td><td><a href="https://github.com/oxc-project/website/pull/706" target="_blank" rel="noopener noreferrer" class="rp-link">docs(contribute): update VS Code extension debug build settings #706</a> â merged (12-16)</td></tr><tr><td>12-20</td><td><a href="https://github.com/ohah/chrome-remote-devtools" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/chrome-remote-devtools</a></td><td>íë¡ì í¸ ìì â ì´ê¸° ì¤ì , CDP í´ë¼ì´ì¸í¸/ìë² êµ¬í, DevTools íë¡ í¸ìë ì°ë</td></tr><tr><td>12-21</td><td><a href="https://github.com/leegeunhyeok/craby" target="_blank" rel="noopener noreferrer" class="rp-link">leegeunhyeok/craby</a></td><td><a href="https://github.com/leegeunhyeok/craby/pull/78" target="_blank" rel="noopener noreferrer" class="rp-link">fix(codegen): fix Vec length bug in ArrayBuffer to Vec<u8> conversion #78</a> â merged (12-22)</td></tr><tr><td>12-27</td><td><a href="https://github.com/ohah/chrome-remote-devtools" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/chrome-remote-devtools</a></td><td><a href="https://github.com/ohah/chrome-remote-devtools/releases/tag/chrome-remote-devtools-client-v0.1.0-rc.1" target="_blank" rel="noopener noreferrer" class="rp-link">client v0.1.0-rc.1</a>, <a href="https://github.com/ohah/chrome-remote-devtools/releases/tag/chrome-remote-devtools-server-v0.1.0-rc.1" target="_blank" rel="noopener noreferrer" class="rp-link">server v0.1.0-rc.1</a> GitHub ë¦´ë¦¬ì¦ (12-27)</td></tr></tbody></table></div> 31<h3 class="rp-toc-include" id="2026ë -1ì"><a href="#2026ë -1ì" class="rp-header-anchor rp-link" aria-hidden="true">
31#</a>2026ë 1ì</h3> 32<div class="rp-table-scroll-container rp-scrollbar"><table><thead><tr><th>ë ì§</th><th>íë¡ì í¸</th><th>íë</th></tr></thead><tbody><tr><td>01-17</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td><a href="https://github.com/ohah/hwpjs/releases/tag/%40ohah/hwpjs%400.1.0-rc.4" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/hwpjs 0.1.0-rc.4</a> NPM ë°°í¬ (01-17) â HTML ë·°ì´, í ì´ë¸ 캡ì , íì´ì§ ë²í¸ ë ëë§ ì¶ê°</td></tr></tbody></table></div> 33<h3 class="rp-toc-include" id="2026ë -2ì"><a href="#2026ë -2ì" class="rp-header-anchor rp-link" aria-hidden="true">#</a>2026ë 2ì</h3> 34<div class="rp-table-scroll-container rp-scrollbar"><table><thead><tr><th>ë ì§</th><th>íë¡ì í¸</th><th>íë</th></tr></thead><tbody><tr><td>02-04</td><td><a href="https://github.com/ohah/electron-mcp-server" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/electron-mcp-server</a></td><td><a href="https://github.com/ohah/electron-mcp-server/releases/tag/v0.1.0-rc.2" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/electron-mcp-server 0.1.0-rc.1, rc.2</a> NPM ë°°í¬ (02-04)</td></tr><tr><td>02-05</td><td><a href="https://github.com/ohah/electron-mcp-server" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/electron-mcp-server</a></td><td><a href="https://github.com/ohah/electron-mcp-server/releases/tag/v0.1.0-rc.3" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/electron-mcp-server 0.1.0-rc.3</a> NPM ë°°í¬ (02-05)</td></tr><tr><td>02-09</td><td><a href="https://github.com/ohah/chrome-remote-devtools" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/chrome-remote-devtools</a></td><td><a href="https://github.com/ohah/chrome-remote-devtools/releases/tag/chrome-remote-devtools-rn-inspector-v0.1.0-rc.1" target="_blank" rel="noopener noreferrer" class="rp-link">rn-inspector v0.1.0-rc.1</a> ë¦´ë¦¬ì¦ (02-09)</td></tr><tr><td>02-19</td><td><a href="https://github.com/ohah/react-native-mcp" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/react-native-mcp</a></td><td><a href="https://github.com/ohah/react-native-mcp/releases/tag/react-native-mcp-server-v0.1.0-rc.1" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/react-native-mcp-server 0.1.0-rc.1</a> NPM ë°°í¬ (02-19)</td></tr><tr><td>02-23</td><td><a href="https://github.com/ohah/react-native-mcp" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/react-native-mcp</a></td><td><a href="https://github.com/ohah/react-native-mcp/releases" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/react-native-mcp-server 0.1.0-rc.2~rc.6</a> NPM ë°°í¬ (02-23)</td></tr><tr><td>02-23</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td><a href="https://github.com/ohah/hwpjs/releases/tag/%40ohah/hwpjs%400.1.0-rc.5" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/hwpjs 0.1.0-rc.5</a> NPM ë°°í¬ (02-23)</td></tr><tr><td>02-24</td><td><a href="https://github.com/ohah/react-native-mcp" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/react-native-mcp</a></td><td><a href="https://github.com/ohah/react-native-mcp/releases" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/react-native-mcp-server 0.1.0-rc.7, rc.8</a> NPM ë°°í¬ (02-24)</td></tr><tr><td>02-26</td><td><a href="https://github.com/ohah/react-native-mcp" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/react-native-mcp</a></td><td><a href="https://github.com/ohah/react-native-mcp/releases/tag/react-native-mcp-server-v0.1.0-rc.9" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/react-native-mcp-server 0.1.0-rc.9</a> NPM ë°°í¬ (02-26)</td></tr></tbody></table></div> 35<h3 class="rp-toc-include" id="2026ë -3ì"><a href="#2026ë -3ì" class="rp-header-anchor rp-link" aria-hidden="true">#</a>2026ë 3ì</h3> 36<div class="rp-table-scroll-container rp-scrollbar"><table><thead><tr><th>
36ë ì§</th><th>íë¡ì í¸</th><th>íë</th></tr></thead><tbody><tr><td>03-01</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td><a href="https://github.com/ohah/hwpjs/releases/tag/%40ohah/hwpjs%400.1.0-rc.6" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/hwpjs 0.1.0-rc.6</a> NPM ë°°í¬ (03-01)</td></tr><tr><td>03-04</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td><a href="https://github.com/ohah/hwpjs/releases/tag/%40ohah/hwpjs%400.1.0-rc.7" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/hwpjs 0.1.0-rc.7</a> NPM ë°°í¬ (03-04)</td></tr><tr><td>03-05</td><td><a href="https://github.com/ohah/react-native-mcp" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/react-native-mcp</a></td><td><a href="https://github.com/ohah/react-native-mcp/releases/tag/react-native-mcp-server-v0.1.0-rc.10" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/react-native-mcp-server 0.1.0-rc.10</a> NPM ë°°í¬ (03-05)</td></tr><tr><td>03-05</td><td><a href="https://github.com/ohah/electron-mcp-server" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/electron-mcp-server</a></td><td><a href="https://github.com/ohah/electron-mcp-server/releases/tag/v0.1.0-rc.5" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/electron-mcp-server 0.1.0-rc.4, rc.5</a> NPM ë°°í¬ (03-05)</td></tr><tr><td>03-09</td><td><a href="https://github.com/ohah/react-wasm-table" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/react-wasm-table</a></td><td><a href="https://github.com/ohah/react-wasm-table/commit/e16d1dc6" target="_blank" rel="noopener noreferrer" class="rp-link">React effect ì¬ì¤í ë¤ìë í°ì¹ ìí ì ì§</a> â 모ë°ì¼ ì¤í¬ë¡¤ íê· ìì </td></tr><tr><td>03-13</td><td><a href="https://github.com/ohah/cheolsu-proxy" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/cheolsu-proxy</a></td><td><a href="https://github.com/ohah/cheolsu-proxy/releases/tag/v0.1.0" target="_blank" rel="noopener noreferrer" class="rp-link">cheolsu-proxy v0.1.0</a> â 첫 ë¦´ë¦¬ì¦ (03-13)</td></tr><tr><td>03-14</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td><a href="https://github.com/ohah/hwpjs/releases/tag/%40ohah/hwpjs%400.1.0-rc.8" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/hwpjs 0.1.0-rc.8</a> NPM ë°°í¬ (03-14) â í ì´ë¸ border íì»´ ì본 ì¼ì¹, ì¤ì²© í ì´ë¸ ì§ì</td></tr><tr><td>03-15</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td><a href="https://github.com/ohah/hwpjs/releases/tag/%40ohah/hwpjs%400.1.0-rc.10" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/hwpjs 0.1.0-rc.9, rc.10</a> NPM ë°°í¬ (03-15) â LineSeg í©ì±, íì´ì§ë¤ì´ì ê°ì </td></tr><tr><td>03-15</td><td><a href="https://github.com/ohah/react-native-mcp" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/react-native-mcp</a></td><td><a href="https://github.com/ohah/react-native-mcp/releases" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/react-native-mcp-server 0.1.0-rc.11, rc.12</a> NPM ë°°í¬ (03-15)</td></tr><tr><td>03-16</td><td><a href="https://github.com/ohah/react-native-mcp" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/react-native-mcp</a></td><td><a href="https://github.com/ohah/react-native-mcp/releases" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/react-native-mcp-server 0.1.0-rc.13, rc.14</a> NPM ë°°í¬ (03-16)</td></tr><tr><td>03-18</td><td><a href="https://github.com/ohah/electron-mcp-server" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/electron-mcp-server</a></td><td><a href="https://github.com/ohah/electron-mcp-server/releases/tag/v0.1.0-rc.6" target="_blank" rel="noopener noreferrer" class="rp-link">v0.1.0-rc.6</a> â CDP ê°ì²´ íì ê°ì , íì í¬í¸ ì¤ìº ë³ë ¬í·ìºì</td></tr><tr><td>03-19</td><td><a href="https://github.com/ohah/react-native-mcp" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/react-native-mcp</a></td><td>doctor ì§ë¨ íë, <a href="https://github.com/ohah/react-native-mcp/pull/122" target="_blank" rel="noopener noreferrer" class="rp-link">WebView ììì ë¤ì´í°ë¸ í #122</a>, E2E ë¨ê³ ì¬ìë</td></tr><tr><td>03-21</td><td><a href="https://github.com/ohah/react-native-mcp" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/react-native-mcp</a></td><td><a href="https://github.com/ohah/react-native-mcp/pull/125" target="_blank" rel="noopener noreferrer" class="rp-link">rn-mcp CLIì Snapshot·Refs #125</a> â íë©´ ì¤ë ì·ê³¼ ì°¸ì¡°ë¡ ì¡°ìíë ëª ë ¹í ê²½ë¡</td></tr></tbody></table></div> 37<h3 class="rp-toc-include" id="2026ë -4ì"><a href="#2026ë -4ì" class="rp-header-anchor rp-link" aria-hidden="true">
37#</a>2026ë 4ì</h3> 38<div class="rp-table-scroll-container rp-scrollbar"><table><thead><tr><th>ë ì§</th><th>íë¡ì í¸</th><th>íë</th></tr></thead><tbody><tr><td>04-01</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>Flow íì RN ì¤íì¼ 50/50 íµê³¼ + JSX ë°íì 3모ë(automatic/classic/preserve) ì§ì</td></tr><tr><td>04-02</td><td><a href="https://github.com/ohah/suji" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/suji</a></td><td><a href="https://github.com/ohah/suji/releases/tag/libnode-v24.14.1" target="_blank" rel="noopener noreferrer" class="rp-link">libnode v24.14.1</a> GitHub ë¦´ë¦¬ì¦ (04-02) â CEF + Node.js ë°±ìë íµí©</td></tr><tr><td>04-02</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>Flow match expression â if-else IIFE codegen + ES5 async/await state machine ì§ì ë³í</td></tr><tr><td>04-03</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td><code>__esm</code> ëí¼ ê¸°ë° WrapKind.esm + ES2022 private method ë¤ì´ë ë²¨ë§ + Hermes ê²ì¦ CI</td></tr><tr><td>04-04</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>RN/Hermes í¸í â ES5 class IIFE ë³í + <code>__callSuper</code>/<code>Reflect.construct</code> ë¤ì´í°ë¸ extends</td></tr><tr><td>04-05</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>JSX codegen â Transformer í¨ì¤ ì´ì (Phase 1~2) + ë²ë¤ 모ë automatic import injection</td></tr><tr><td>04-06</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>block scoping 구í + AST íµí©(old/new â append-only) + tagged template / new.target ES5</td></tr><tr><td>04-07</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>kangax compat-table ES5 ë¤ì´ë ë²¨ë§ 99% ë¬ì± + SWC ë¹êµ í ì¤í¸ CI</td></tr><tr><td>04-08</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>HMR react-refresh polyfill íë«í¼ë³ ìµì í + bundler 200모ë 78.9ms ê°ì </td></tr><tr><td>04-09</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>sourcemap line_offsets ì¤ë³µ fix + HMR graph_changed ê²½ë¡ SET ë¹êµ + Metro ì¤íì¼ í°ë¯¸ë ì¶ë ¥</td></tr><tr><td>04-10</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>hashbang ë¤ì´ë ë²¨ë§ + ES2023 íê² + <code>@zts/core</code> NAPI ì í + <code>import.meta.glob</code> (Vite í¸í)</td></tr><tr><td>04-11</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>TC39 Stage 3 decorator ë³í + UMD/AMD external ìì¡´ì± + HTTPS dev server</td></tr><tr><td>04-12</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>worklet auto-workletization + closure analysis shadowing fix + ES5 super() ìì ê°ì </td></tr><tr><td>04-13</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>PluginState 구조 ë¶ë¦¬ + worklet Phase 6 ìì± + RSC <code>"use client"</code> directive ë³´ì¡´</td></tr><tr><td>04-14</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>TypeScript declaration ìì± + <code>#x in obj</code> Ergonomic Brand Check + RN preset ES5 매í¸ë¦ì¤ íì¥</td></tr><tr><td>04-15</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>bundler ì¬ë³¼ í ì´ë¸ / ImportBinding / ExportBinding ì¬ì¤ê³ + Metro í¸í PR 30ê±´ 머ì§</td></tr><tr><td>04-16</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>
38asset_registry 모ë ì ë°ì´í¸ + named re-export getter fix + onResolve disabled flag</td></tr><tr><td>04-17</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>const enum ííì íê°ê¸° + private field compound assignment + optional chain private read</td></tr><tr><td>04-18</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>tree_shaker BFS â fixpoint íµí© + tsconfig paths / baseUrl ì§ì + minify_syntax ê°ì </td></tr><tr><td>04-19</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>semantic analysis #1634 ìë¦¬ì¦ â namespace tree-shaking / dead-scope gating / const promotion</td></tr><tr><td>04-20</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>minify ì§ì¤ â unused expr simplify(#1650) / private field name mangle(#1632) / dead store elimination(#1644)</td></tr><tr><td>04-22</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>HMR breakdown sub-phase + lazy sourcemap ì¸íë¼ + watcher-driven mtime cache</td></tr><tr><td>04-23</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>#1779 ModuleGraph slice â Accessor í¨í´ + #1579 require.context ASTâcodegen 4ë¨ê³</td></tr><tr><td>04-24</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>require.context 4ë¨ê³ 구í ìë£ + 문ì ì¬ì´í¸ Tauri í¤ ë¦¬ë´ì¼</td></tr><tr><td>04-25</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td><a href="https://github.com/ohah/zts/pull/1885" target="_blank" rel="noopener noreferrer" class="rp-link">#1885</a> bundler ì¸íë¼ Phase 1~2 â Rollup í¸íë¥ 64% â 93%</td></tr><tr><td>04-26</td><td><a href="https://github.com/ohah/suji" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/suji</a></td><td>Phase 5 기ë¥(Tray·Notification·ì ì ë¨ì¶í¤Â·ìëì° ìëª ì£¼ê¸°Â·íì¼ ìì¤í ì½ì´ API) + Phase 7 IPC ë³´ì ê²ì¦</td></tr><tr><td>04-27</td><td><a href="https://github.com/ohah/bungae" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/bungae</a></td><td>React Native codegenì Babel ëí¼ ëì ì§ì ì ì©íëë¡ ì í</td></tr><tr><td>04-28</td><td><a href="https://github.com/ohah/suji" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/suji</a></td><td>Electron í¸í API íë©´ íì¥ â window ë¼ì´íì¬ì´í´ ì´ë²¤í¸(ready-to-show·will-resize·show/hide ë±)</td></tr><tr><td>04-28</td><td><a href="https://github.com/ohah/cheolsu-proxy" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/cheolsu-proxy</a></td><td><a href="https://github.com/ohah/cheolsu-proxy/commit/c9c7e30b" target="_blank" rel="noopener noreferrer" class="rp-link">TLS ìë íµê³¼ ë³´ê°</a> â ì°ì ì¤í¨Â·ë§ë£Â·ì°¨ë¨ ì ì± ì 구ë¶</td></tr><tr><td>04-29</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>string enum reverse mapping ì ê±° + ìí 모ë ESM live binding ë³´ì¡´ + let TDZ ë³´ì¡´</td></tr><tr><td>04-30</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>CSS-in-JS í¸ëì¤í¬ë¨¸ â styled-components(withConfig·ssr·pure·namespace)ì emotion ì§ì ê°í</td></tr><tr><td>04-30</td><td><a href="https://github.com/ohah/cheolsu-proxy" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/cheolsu-proxy</a></td><td><a href="https://github.com/ohah/cheolsu-proxy/releases/tag/v0.1.1" target="_blank" rel="noopener noreferrer" class="rp-link">cheolsu-proxy v0.1.1</a> ë¦´ë¦¬ì¦ (04-30)</td></tr></tbody></table></div> 39<h3 class="rp-toc-include" id="2026ë -5ì"><a href="#2026ë -5ì" class="rp-header-anchor rp-link" aria-hidden="true">
39#</a>2026ë 5ì</h3> 40<div class="rp-table-scroll-container rp-scrollbar"><table><thead><tr><th>ë ì§</th><th>íë¡ì í¸</th><th>íë</th></tr></thead><tbody><tr><td>05-01</td><td><a href="https://github.com/warpdotdev/warp" target="_blank" rel="noopener noreferrer" class="rp-link">warpdotdev/warp</a></td><td><a href="https://github.com/warpdotdev/warp/pull/9713" target="_blank" rel="noopener noreferrer" class="rp-link">fix(ime): preserve Korean IME last syllable across commits #9713</a> â ì ì¶(미머ì§)</td></tr><tr><td>05-04</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>React Native 0.78~0.85 codegen ì¤ë ì· ë§¤í¸ë¦ì¤ + <code>codegenNativeCommands â dispatchCommand</code> wrapper</td></tr><tr><td>05-05</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td><code>@zts/web</code>·<code>@zts/server</code> í¨í¤ì§ ë¶ë¦¬ + Metro HMR ì´ëí°Â·RN ê°ë° ìë² êµ¬í</td></tr><tr><td>05-06</td><td><a href="https://github.com/ohah/zts" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zts</a></td><td>ë²ë¤ë¬ ì²í¬ë³ lazy sourcemap emit + 모ë ë¶ê¸° í¬í¼ íµí©</td></tr><tr><td>05-07</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td><strong>íë¡ì í¸ ì´ë¦ zts â zntc ë³ê²½</strong> + lazy getter ë¶ìì¼ë¡ í¸ë¦¬ì °ì´í¹ â212KB, RN HMR 113ms â 89ms</td></tr><tr><td>05-10</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td>NAPI íë«í¼ 매í¸ë¦ì¤ 9ì¢ (darwin·linux gnu/musl·win32 x64/arm64/ia32) + npm publish ë¦´ë¦¬ì¦ ìí¬íë¡</td></tr><tr><td>05-12</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td>resolver ìºì 16-way ì¤ë©ì¼ë¡ Mutex ê²½í© ìí + minify 공백·ì¤ê´í¸ ì ê±°</td></tr><tr><td>05-16</td><td><a href="https://github.com/ohah/agent-devtools" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/agent-devtools</a></td><td><a href="https://github.com/ohah/agent-devtools/releases/tag/v0.1.2" target="_blank" rel="noopener noreferrer" class="rp-link">v0.1.2</a>, <a href="https://github.com/ohah/agent-devtools/releases/tag/v0.1.3" target="_blank" rel="noopener noreferrer" class="rp-link">v0.1.3</a> ë¦´ë¦¬ì¦ (05-16)</td></tr><tr><td>05-16</td><td><a href="https://github.com/ohah/zerolist" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zerolist</a></td><td><code>react-native-zerolist</code> â Zig ìì§ ê¸°ë° zero-copy SIMD 리ì¤í¸ ì ì¥ì ê³µê°</td></tr><tr><td>05-16</td><td><a href="https://github.com/ohah/suji" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/suji</a></td><td>CEF ë¬´ê´ embed C ABI ë¶ë¦¬(Phase 1+2) + iOS/Android ì¸ì´ë³ ìì ì ì ë§í¬</td></tr><tr><td>05-18</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td>Module Federation íì¥ â named share scope ë¤ì¤ interop, CSS assets manifest, strictVersion</td></tr><tr><td>05-21</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td><a href="https://github.com/ohah/zntc/releases/tag/v0.1.1" target="_blank" rel="noopener noreferrer" class="rp-link">zntc v0.1.0, v0.1.1</a> 첫 ë¦´ë¦¬ì¦ + <a href="https://www.npmjs.com/package/@zntc/core" target="_blank" rel="noopener noreferrer" class="rp-link">@zntc/core</a> NPM ë°°í¬ (05-21, preview)</td></tr><tr><td>05-23</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td>ì½ë ì¤í리í ì§ì + <code>[dir]</code>/<code>[name]</code> ì²í¬ ì´ë¦ ì ì± + CSS chunk path ì¶©ë í´ê²°</td></tr><tr><td>05-24</td><td><a href="https://github.com/warpdotdev/warp" target="_blank" rel="noopener noreferrer" class="rp-link">warpdotdev/warp</a></td><td><a href="https://github.com/warpdotdev/warp/pull/11624" target="_blank" rel="noopener noreferrer" class="rp-link">fix(ime): preserve Korean IME composition through split-commit and Backspace #11624</a> â ì ì¶(미머ì§)</td></tr><tr><td>05-25</td><td><a href="https://github.com/ohah/suji" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/suji</a></td><td>Windows·Linux ì ë©´ ì§ì â ë¼ì´íì¬ì´í´ ì´ë²¤í¸, í´ë¦½ë³´ë/ì ¸ API, ìë ì ë°ì´í°, í¬ëì 리í¬í°, í¨í¤ì§</td></tr><tr><td>05-26</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td>MCP app channel â stdio transportì <code>zntc mcp</code> ìë¸ì»¤ë§¨ë, WS endpoint, RN MCP ë°íì í´ë¼ì´ì¸í¸</td></tr><tr><td>05-27</td><td><a href="https://github.com/ohah/suji" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/suji</a></td><td>Linux GTK tray ë°±ìë + plugin-log·store·http ë± íë¬ê·¸ì¸êµ° ì¶ê°</td></tr><tr><td>05-29</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td>Zig 0.16 ë§ì´ê·¸ë ì´ì ìë£ + <code>std.Io</code> ì¤ë²í</td></tr><tr><td>05-31</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td>lazy compilation â ëì import ê²½ê³ìì ë©ì¶ê³ on-demandë¡ ì²í¬ë¥¼ ì»´íì¼íë ì¸íë¼</td></tr></tbody></table></div> 41<h3 class="rp-toc-include" id="2026ë -6ì"><a href="#2026ë -6ì" class="rp-header-anchor rp-link" aria-hidden="true">
41#</a>2026ë 6ì</h3> 42<div class="rp-table-scroll-container rp-scrollbar"><table><thead><tr><th>ë ì§</th><th>íë¡ì í¸</th><th>íë</th></tr></thead><tbody><tr><td>06-01</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td>dev+split lazy 모ë cross-chunk hot-replace + ì¹ ë¤ì´í°ë¸ React Fast Refresh</td></tr><tr><td>06-02</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td>ì¬ê· AST walker를 ë°ë³µ ìíë¡ ì íí´ ê¹ì ì²´ì¸ ì¤í ì¤ë²íë¡ ì ê±° + ì¬ì ì ë°©ì§ CI tripwire</td></tr><tr><td>06-03</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td><strong>íë¡ì í¸ ìì</strong> â Zig ê¸°ë° í°ë¯¸ë ì뮬ë ì´í°. í´ë¦°ë£¸ í°ë¯¸ë ì½ì´ ì ì± , í¤ëë¦¬ì¤ E2E ì¤ìºí´ë, ì±ë¥ ìì° íë¤ì¤</td></tr><tr><td>06-05</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>PTY reader ìëª ì£¼ê¸°(bounded í·self-pipe wake·kqueue NOTE_EXIT)ì ë ëë¬ DrawList ê³ì½</td></tr><tr><td>06-07</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td><a href="https://github.com/ohah/zntc/releases/tag/v0.1.2" target="_blank" rel="noopener noreferrer" class="rp-link">zntc v0.1.2</a> ë¦´ë¦¬ì¦ (06-07)</td></tr><tr><td>06-07</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>CoreText â Metal ê¸ë¦¬í íì´íë¼ì¸ ìì± â ì °ì´í¼Â·rasterizer ë¶ë¦¬, glyph atlas ìíë§ ê²ì¦</td></tr><tr><td>06-09</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì¤í¬ë¡¤ë°± ë·°í¬í¸ + 리ì¬ì´ì¦ ì ë© ì¬ê³ì°</td></tr><tr><td>06-10</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>IME ì¡°í© Phase 1~2 â ì¡°í© ì¤ ì»¤ì·ì í íì, OSC 8 íì´í¼ë§í¬, PTY ë ¼ë¸ë¡í¹í</td></tr><tr><td>06-12</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>Stage 8 ë©í°í ë¶í ë ì´ìì â ë¤ì¤ í PTY, cmuxì ì¸ë¡ ì¬ì´ëë°, OSC 133, SplitTree</td></tr><tr><td>06-13</td><td><a href="https://github.com/ohah/iris" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/iris</a></td><td><strong>íë¡ì í¸ ìì</strong> â React Native 0.85/Hermes ê´ì¸¡ í¸íì ì§í¤ë JS ë°íì ì¤í(HBC í¤ë íì±, JSI íë©´)</td></tr><tr><td>06-14</td><td><a href="https://github.com/ohah/cheolsu-proxy" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/cheolsu-proxy</a></td><td>ì ë ¥Â·ì°ê²°Â·ì¤í¬ë¦½í¸ ìëª ì ê² â <a href="https://github.com/ohah/cheolsu-proxy/commit/67a24381" target="_blank" rel="noopener noreferrer" class="rp-link">V8 무í 루í·ë©ëª¨ë¦¬ í주ìì ë°ëª¬ ë³´í¸</a>, ì¸ì¦ì·ì¤í¸ë¦¼Â·íë©´ ì¤ë¥ ìì </td></tr><tr><td>06-16</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>kitty ê·¸ëí½ íë¡í ì½ â Metal ë ë·í ì¤ì² LRU ìºì·PNG ëì½ë©Â·chunked ì ì¡</td></tr><tr><td>06-16</td><td><a href="https://github.com/ohah/cheolsu-proxy" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/cheolsu-proxy</a></td><td><a href="https://github.com/ohah/cheolsu-proxy/releases/tag/v0.1.2" target="_blank" rel="noopener noreferrer" class="rp-link">cheolsu-proxy v0.1.2</a> ë¦´ë¦¬ì¦ (06-16)</td></tr><tr><td>06-17</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>í©ì± ê¸ë¦¬í ë ë â box-drawing·block elements·Braille·powerline·Legacy Computing</td></tr><tr><td>06-19</td><td><a href="https://github.com/ohah/iris" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/iris</a></td><td>JSON payload ë¼ì´ëí¸ë¦½ ë²í¬ ë¹ ë¥¸ ê²½ë¡ + snapshot 문ìì´ ë³µì¬ ì ê±°</td></tr><tr><td>06-21</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì¤í¤ë§-주ë config íë ììí¬(CS-1~4) + ì¤í¤ë§â문ì doc-drift ê°ë</td></tr><tr><td>06-22</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>
42ì¤ì GUI â HSV ì picker, í¼ ê²ì, í¤ë³´ë ë¤ë¹, í ë§ í리ì </td></tr><tr><td>06-23</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>UAX#29 grapheme cluster ëì â íê¸ NFD í´ë¬ì¤í°Â·ì´ëª¨ì§ ZWJ·í¤ìº¡ì ì 모ë¸ì íµí©</td></tr><tr><td>06-25</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>모ëíì´ì´ íë ë¨ì¶í¤ íí¸ HUD(KH-0~6)</td></tr><tr><td>06-27</td><td><a href="https://github.com/ohah/iris" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/iris</a></td><td>ì¸í°íë¦¬í° ì±ë¥ â ì«ì ì í ë¨ì¶, prototype ì¡°í ìëµ, ì ì ìºì ì¸ë±ì¤ ì½ê¸°</td></tr><tr><td>06-28</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì¸ì± ì ë°ì´í¸ + universal(arm64+x86_64) dmg ë¹ëÂ·ë¦´ë¦¬ì¤ ìí¬íë¡</td></tr><tr><td>06-29</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ê°ë°ì í°í¸ 3ì¢ (Fira Code·Cascadia Code·Hack) ë²ë¤ + í°í¸ í¼ì»¤ GUI</td></tr></tbody></table></div> 43<h3 class="rp-toc-include" id="2026ë -7ì"><a href="#2026ë -7ì" class="rp-header-anchor rp-link" aria-hidden="true">#</a>2026ë 7ì</h3> 44<div class="rp-table-scroll-container rp-scrollbar"><table><thead><tr><th>ë ì§</th><th>íë¡ì í¸</th><th>íë</th></tr></thead><tbody><tr><td>07-02</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì± ìì·ìëª ì£¼ê¸° ìì í â ìì ì¤í¨ ì ì°½ ì ì§, exit-code ê²ì´í¸, ì ¸ í´ë°±</td></tr><tr><td>07-04</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì¬ì´ëë° ìí¬ì¤íì´ì¤ 그룹(SG1~SG5) â 그룹 ìì±Â·ì 기·ëëê·¸ ì´ë·ì¤ì²©</td></tr><tr><td>07-06</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>그룹 ê³ ì (C2)ê³¼ 그룹-ë¡ì»¬ pin(GL1~4)</td></tr><tr><td>07-07</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ê´ì¸¡ì± â <code>MARU_TRACE</code> ë¼ì´ë¸ ë ì½ë©Â·replay, ìµëª í transform</td></tr><tr><td>07-09</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì¹ í¨ë Phase 4 â WKWebView pane ë¶ì°©, ì ë ¥Â·IME responder ì ì´, ì¹ Term íµí©</td></tr><tr><td>07-10</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td><code>maru-app://</code> ì 뢰 ìë¹ â realpath ê¸°ë° ê²½ë¡ ìëë°ì¤ì CSP를 ìì ë³´ì ì½ì´ë¡ ë¶ë¦¬</td></tr><tr><td>07-11</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì¸ì± ë¸ë¼ì°ì â 주ìì°½ back/forward/reload, ââ/â/R, <code>OverlayInput</code> ê³µì </td></tr><tr><td>07-12</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td><a href="https://github.com/ohah/zntc/releases/tag/v0.1.3" target="_blank" rel="noopener noreferrer" class="rp-link">zntc v0.1.3</a> ë¦´ë¦¬ì¦ (07-12)</td></tr><tr><td>07-12</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ìì´ì í¸ ì ì´ íë¡í ì½(5f) doc-first ì¤ê³ + EventBroker·OutboundQueue 구í</td></tr><tr><td>07-13</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td><code>maru browser</code> CLI â ìì¼ í´ë¼ì´ì¸í¸, íë©´ ìº¡ì² chunk ì¤í¸ë¦¬ë°, PNG ì¶ë ¥</td></tr><tr><td>07-14</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì ê·¼ì± ì¤ë ì· â ARIA í¸ë¦¬ read-only eval + ref ê¸°ë° click/type/scroll</td></tr><tr><td>07-15</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ë¸ë¼ì°ì ì½ì 캡ì²(page-world 주ì + <code>browser.console</code> pull) + bounded transfer íµì¼</td></tr><tr><td>07-17</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>íì¼ í¨ë(ì ì ëí¬) FP1~FP6 â ëí¬ ëª¨ë¸, web renderer·sanitizer, Markdown í¸ì§</td></tr><tr><td>07-18</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>íì¼ í¨ë FP7~FP8 â íë¡ì í¸ í¸ë¦¬, ëí¬ ë¶í UI, íì¼ ìì±Â·ì´ë¦ ë³ê²½Â·í´ì§íµ ìì </td></tr><tr><td>07-19</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td><a href="https://github.com/ohah/zntc/releases/tag/v0.1.4" target="_blank" rel="noopener noreferrer" class="rp-link">zntc v0.1.4</a> ë¦´ë¦¬ì¦ (07-19)</td></tr><tr><td>07-20</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>Obsidianí ë¼ì´ë¸ í리뷰 â CM6 í¬ì, í ìí¸ìì©, Mermaid ì°ê²°, ì±ë¥ ê²ì´í¸</td></tr><tr><td>07-21</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ìì í°ë¯¸ë ì¸ì í¸ì¤í¸ P1~P3 â <code>TermRuntimeBackend</code> seam, MRSH wire codec</td></tr><tr><td>07-22</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td><code>session.keep-alive-after-quit</code> â ì± ì¢ ë£ íìë host-backed í°ë¯¸ë detach ìì¡´</td></tr><tr><td>07-24</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>host 무ì¤ë¨ live-upgrade(U0~U2) â staged preflight, handoff ê¶ì, rollback ì´ë¯¸ì§</td></tr><tr><td>07-26</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>
44ì¸ë¶ í°ë¯¸ë public attach â ì ì± íì, capability íì, ê¶ì ê²½ê³ ë´ì¸</td></tr><tr><td>07-28</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>FP16 â íì¼ ì½í ì¸ ë¥¼ ìí¬ì¤íì´ì¤ Termì¼ë¡ íµí©íê³ ëí¬ë¥¼ íì기 ì ì©ì¼ë¡ ì¶ì</td></tr><tr><td>07-29</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ë¼ì´ë¸ í리뷰 í기 â ë¦¬ì¹ í¸ì§ 모ë ëì , ì½í ì¸ UI ì¤íì React·Tailwind·shadcnì¼ë¡ íì </td></tr><tr><td>07-31</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì½ë ìëí°Â·git diff surface Phase 0 ì¤ê³ â Monaco 기ê°, CodeMirror 6 íì </td></tr></tbody></table></div> 45<h3 class="rp-toc-include" id="2026ë -8ì"><a href="#2026ë -8ì" class="rp-header-anchor rp-link" aria-hidden="true">#</a>2026ë 8ì</h3> 46<div class="rp-table-scroll-container rp-scrollbar"><table><thead><tr><th>ë ì§</th><th>íë¡ì í¸</th><th>íë</th></tr></thead><tbody><tr><td>08-01</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì¸ì ì ì¤ ì¸ ê²½ë¡ ìì + host ì°ê²° ì¤í¨ ì¬ì ê´ì¸¡í, ì± ì ë°ì´í¸ ì ì´ì ìë host ì¸ê³</td></tr><tr><td>08-02</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì¸ì ìì¹´ì´ë¸ UI â ì¹´ë 그룹í, ìí¬ì¤íì´ì¤Â·ê²ì íí°, ìì¸ í, bounded íì±</td></tr><tr><td>08-03</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>system UI chrome text shaper â ëí¬ í ì¤í¸ë¥¼ ìì¤í UI ìì¤ì¼ë¡ rasterize</td></tr><tr><td>08-05</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>CIM ìí¸ìì© ìì ê¶ ì´ê´ â divider·scrollbar·í ëë그를 chrome ìº¡ì² ê²½ë¡ë¡</td></tr><tr><td>08-06</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td><code>ScrollArea</code> ì¶ìí(SV1a~c) â ì¤í¬ë¡¤ ì¢íê³Â·ë°í·clipì <code>tree.build</code>ê° ìì </td></tr><tr><td>08-07</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>íë¨ ìííìì¤(SB1~S3e) â git ë¸ëì¹Â·ìì ê²½ë¡, ì림 ì·ì¤í ì¤ ìì´ì í¸ ì</td></tr><tr><td>08-08</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì¤í¬ë¡¤ ì´ê´ SV4·SV5 â ì¬ì´ëë°Â·ì림 í¨ë·커맨ë íë í¸ê¹ì§ íì¥</td></tr><tr><td>08-09</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ë¹ëí´ì§ <code>app_session</code>ì 주ì ë³ 17ê° íì¼ë¡ ë¶ë¦¬(tab·term·input·dock·git·agent ë±)</td></tr><tr><td>08-10</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td><a href="https://github.com/ohah/zntc/pull/4627" target="_blank" rel="noopener noreferrer" class="rp-link">#4627</a> ë¤ì´ë 벨 ESM top-level await â íê² ì¤ìì ê° ì íì± ì립</td></tr><tr><td>08-11</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ê³ì½ 문ì ì ë©´ ì¬í¸ â ê³ì½Â·ê¸°ë¡Â·ê³í ë¶ë¦¬, 문ì ë§í¬Â·ìµì»¤Â·ì 참조를 CI ê²ì´í¸ë¡ ê²ì¬</td></tr><tr><td>08-12</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>cwd ì¶ íµì¼ â ì¬ì´ëë°Â·ìì´ì í¸ ë§¤í·ìì¹´ì´ë¸ ë²ì를 ìì¤ ì»¨í¸ë¡¤ê³¼ ê°ì ì¶ì¼ë¡ í©ë¥</td></tr><tr><td>08-13</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>í¸ì§ê¸°ë¥¼ <code>SurfaceKind.editor</code>
46 Termì¼ë¡ ì¹ê²© â íì¼ì í¸ì§ê¸° Termì¼ë¡ ì´ì´ ë ëê¹ì§ ì°ê²°</td></tr><tr><td>08-14</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ë¤ì´í°ë¸ diff 본문(N1.5) â ìì²´ differ, ëëí ë¹êµ ë ë, ë¶ë³ì 무ìì ê²ì¦</td></tr><tr><td>08-15</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td><a href="https://github.com/ohah/maru/pull/2205" target="_blank" rel="noopener noreferrer" class="rp-link">#2205</a> iOS·Android 모ë°ì¼ ë¼ì¸ 161ì»¤ë° main í©ë¥(M0~M4) + Windows íë«í¼ ê³ì½ ì°©ì(W1.5·W2)</td></tr><tr><td>08-16</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>UI êµì í ì°©ì(I3-0·I3a) â notice 97ê±´ í¤ ì´ì , <code>ui.language</code> ë°°ì + Windows ConPTY ë°±ìë(W4)·ì
¸ íµí© 주ì
(W5)</td></tr><tr><td>08-17</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>i18n ì¬ì¤ì ìë£(I3a 337/339·I5 CLI ìì´í) + <strong>Windows 첫 í°ë¯¸ë íë©´</strong>(W7.1~W7.6 â D3D11·DirectWrite·ì
ë ¥Â·ConPTY) + ìì²´ SSH í´ë¼ì´ì¸í¸ ì°©ì(S0~S6b) + 모ë°ì¼ ì ì¤ì²Â·í°ì¹ë¥¼ ì½ì´ë¡(G0~G5·R0~R3)</td></tr><tr><td>08-17</td><td><a href="https://github.com/ohah/cheolsu-proxy" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/cheolsu-proxy</a></td><td>tauri ê³ì´ crate·npm ìì¡´ì± ìµì í + nightly cargo build-dir ë ì´ìì ëì â PR <a href="https://github.com/ohah/cheolsu-proxy/pull/376" target="_blank" rel="noopener noreferrer" class="rp-link">#376</a>, <a href="https://github.com/ohah/cheolsu-proxy/pull/377" target="_blank" rel="noopener noreferrer" class="rp-link">#377</a> merged (08-17)</td></tr><tr><td>08-18</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ìì²´ SSH í´ë¼ì´ì¸í¸ ì°©ì(S7~S9) â session ì±ë·íë¦ ì ì´Â·ì¬í¤ì, ì¼íì© sshd ë¡ 8MiB ìë³µ ê²ì¦, ìí기ê³ë¥¼ C ABI ë¡ ëª¨ë°ì¼ì ê³µì </td></tr><tr><td>08-19</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>모ë°ì¼ SSH â 기기ìì í¤ ìì±Â·Keystore ë´ì¸Â·ìë² ì§ë¬¸ ì¹ì¸(S9b·S9c) + í
ì¤í¸ íì¼ì ë¤ì´í°ë¸ í¸ì§ê¸°ë¡ ì¬ë ê²ì 기본ì¼ë¡ ì í</td></tr><tr><td>08-20</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ìì´ì í¸ í
ì¶ ê°ì(AH1·AH2 â claude/codex settings ì í
ì¤ì¹) + 컨í¸ë¡¤ íë ì¸ ì격 ì¶(S10, <code>maru control --stdio</code>) + Windows git ë°±ìë·ìì¤ ì»¨í¸ë¡¤ íë©´(W8.4)</td></tr><tr><td>08-22</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>í°ë¯¸ë ì½ì´ë¥¼ wasm ì¼ë¡ ë´ì´ <code>@maru/*</code> ë¸ë¼ì°ì ë¼ì´ë¸ë¬ë¦¬ ì ì¤(packages, npm 미배í¬)</td></tr><tr><td>08-24</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>í¸ì§ ë²í¼ë¥¼ persistent rope + delta ë¡ êµì²´(§3.0·§3.3) + í
ì í´ ê²½ê³ í¸ë¦¬ê±°ë¡(AT1·AT2)</td></tr><tr><td>08-27</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>í¸ì§ê¸° í¸ì§ ë³´ì¡° â ê´í¸ ìë ë«ê¸°Â·â/ 주ì(ì¸ì´ íì ì ì¤)·íê¸ ì¡°í© íì(N3)·âZ</td></tr><tr><td>08-28</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>tree-sitter 구문 í¸ë¦¬ 1층(N4 §5.3) â ì´í¿ë grammar 18ê°Â·íë ì ìì° íì±Â·êµ¬ë¬¸ ì íì¼ë¡ íì¥</td></tr><tr><td>08-29</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì격 ìì´ì í¸ ìí ì¶(RA1~RA6, ssh ë머 ë°°ì§) + ìì´ì í¸ ì´ë¯¸ì§ ê°¤ë¬ë¦¬(IG0~IG4) ì°©ì</td></tr><tr><td>08-30</td><td><a href="https://github.com/ohah/pdf" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/pdf</a></td><td><strong>íë¡ì í¸ ìì</strong> â ë¸ë¼ì°ì ìì PDF 를 ì½ê³ ê·¸ë¦¬ê³ ê³ ì¹ë Zig wasm ìì§(301KB), zntc ë¡ êµ½ê³ ì¹ ì커ìì ì¤í</td></tr><tr><td>08-31</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td><a href="https://github.com/ohah/zntc/releases/tag/v0.1.6" target="_blank" rel="noopener noreferrer" class="rp-link">zntc v0.1.5, v0.1.6</a> ë¦´ë¦¬ì¦ (08-31) â í ì¤ ë¸ë¡ 주ì ë¤ ìì¤ë§µ ë°ë¦¼ ìì , bun.lock ë기í PR í</td></tr><tr><td>08-31</td><td><a href="https://github.com/ohah/pdf" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/pdf</a></td><td>
46주ì 층·ì´ë¦ 목ì ì§Â·XMP·íì¤ 14ì¢ AFM ìê°Â·URL ì´ê¸° ì§íë¥ Â·Node.js ì§ì, ì´ê¸° 34MB ê¸°ì¤ 417ms â 120ms</td></tr></tbody></table></div> 47<h3 class="rp-toc-include" id="2026ë -9ì-91921"><a href="#2026ë -9ì-91921" class="rp-header-anchor rp-link" aria-hidden="true">#</a>2026ë 9ì (9/1~9/21)</h3> 48<div class="rp-table-scroll-container rp-scrollbar"><table><thead><tr><th>ë ì§</th><th>íë¡ì í¸</th><th>íë</th></tr></thead><tbody><tr><td>09-01</td><td><a href="https://github.com/ohah/pdf" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/pdf</a></td><td>ë°ë¥ ë©ëª¨ë¦¬ 112MB â 38MB, 빽빽í 쪽 ë°±ì§ ê²°í¨Â·ë ê±°ì ì ìì¡°ì¬ 5ê±´</td></tr><tr><td>09-02</td><td><a href="https://github.com/ohah/pdf" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/pdf</a></td><td>ICC ì íë¡íì¼(53/255 â 0.8), 문ì JavaScript 를 ìì²´ í´ìê¸°ë¡ ì¤í(ê´ê³µì ìì), ëì XFA, íë¡ê·¸ë ìë¸ JPEG</td></tr><tr><td>09-02</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ìì¤ ì»¨í¸ë¡¤ì´ ì격 ì ì¥ìì ìí¬í¸ë¦¬ë¥¼ ê·¸ 기ê³ìì ì½ê³ ì(RS5) + í° ë·°í¬í¸ë¡ ì¸ì ì´ ì¡°ì (S11-6)</td></tr><tr><td>09-05</td><td><a href="https://github.com/ohah/zerolist" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zerolist</a></td><td><a href="https://github.com/ohah/zerolist/pull/1" target="_blank" rel="noopener noreferrer" class="rp-link">perf: ZeroList íµí©ê³¼ Android ë°°ì¹ ìµì í ê²ì¦ #1</a> â open</td></tr><tr><td>09-05</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td><strong>Rust 를 <code>legacy/</code> ë¡ ë³´ê´íê³ Zig ìí¬ì¤íì´ì¤ë¡ ì¬ì¶ë°</strong> â CFB 모ëë¬ ë¦¬ë, hwp5 DocInfo·리ìì¤ íì±</td></tr><tr><td>09-05</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>í¸ì§ê¸° ì´/ë¸ë¡ ì í(§3.2a)·ë¤ì¤ 커ì(§3.2b) + ì격 íì¼ í¸ë¦¬ ì¤ê³(RF1) + í ì¤í¸ ì¸íë¼ â pty teardown 4,077ms â 15ms, í½ì¤ì² 189s â 2.7s</td></tr><tr><td>09-06</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì격 íì¼ í¸ë¦¬ v1(RF2b~RF6f â ì¤ë¬¼ sshd ìë³µ, ì격 ìì ·ìì±) + 모ë°ì¼ ì ê·¼ì± ìì ì·ì¤í¬ë¦° 리ë(M9)</td></tr><tr><td>09-07</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ìì´ì í¸ íë ë·°(AV1~AV3) â ë구 í¸ì¶ ì¸ë±ì¤, ëª ë ¹ ì¢ ë£ ìí, ì 문 ì´ê¸°</td></tr><tr><td>09-07</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td>XML·zlib·PNG(Adam7·ICC íê·¸) ê²ì¦ 층 â í루 59커ë°</td></tr><tr><td>09-08</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td>ICC ìí¨ì(rational XYZ·parametric preimage) + JPEG frame/scan·quantization·Huffman íì±</td></tr><tr><td>09-09</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì± ìì´ì½(ì°ë² 커ì, ì¸ íë«í¼ M11b) + kitty <code>report_events</code>·relative placement·OSC 99 + 모ë°ì¼ 첫 ì¤í í¤ ìì±(M16)</td></tr><tr><td>09-09</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td>ìì²´ JPEG ëì½ë â ìí¸ë¡í¼Â·Huffman·íë¡ê·¸ë ìë¸Â·IDCT, BMP RLE, V5 ICC</td></tr><tr><td>09-10</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td><a href="https://github.com/ohah/zntc/releases/tag/v0.1.7" target="_blank" rel="noopener noreferrer" class="rp-link">zntc v0.1.7</a> ë¦´ë¦¬ì¦ (09-10)</td></tr><tr><td>09-10</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>íë ë·°ê° JSON·chunk ê»ë°ê¸°ë¥¼ ë²ê²¨ ê°í ì¶ë ¥ 191.5MB íì(§2.2~§2.4) + í¸ì§ê¸° ì¤ë³ í ìºì 30.3ms â 1.29ms</td></tr><tr><td>09-11</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>PR 80ê±´ â 모ë°ì¼ ì¬ì ì·keepalive(M3c)·M12 ë§ê°, kitty·OSC·í¤ë³´ë ì¸ì½ë ë°©ì´ì ì ì ì¤ì, í¸ì§ê¸° í ìºì ìì¡´</td></tr><tr><td>09-12</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td>hwp5 ì°¨í¸ íì± â cell slot·type ì ì¸Â·dual string·series v2·axis ê²½ê³</td></tr><tr><td>09-13</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td>hwp5 ì°¨í¸ <strong>í¸ì§</strong> â grid string·series label ì¼ê´ typed edit, BinData ììì êµì²´, raw deflate ì¸ì½ë©</td></tr><tr><td>09-13</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ìì¤ ì»¨í¸ë¡¤ ì격 íì¤í 리(RS7 â ë²½ì «ì°ë¦¬ê° ë§ë í í°Â») + í¸ì§ê¸° ì¶©ë ë§ì»¤ ì¸ì(S2)</td></tr><tr><td>09-14</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>í°ë¯¸ë <code>[Image #N]</code> ë§ì»¤ Cmd+í´ë¦ í리뷰·ì격 ì ì¡ í í리뷰(P3) + ì¶©ë íì¼ ë³í© 모ë í¸ì§ê¸°(S3b-1)</td></tr><tr><td>09-14</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td>EMF ë ì½ë íì±Â·WMF ê²ì¦ â ì´í ë§ì Zig íì¼ 1,325ê°</td></tr><tr><td>09-14</td><td><a href="https://github.com/ohah/pdf" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/pdf</a></td><td>íì¼ ë¬¶ì(í¬í¸í´ë¦¬ì¤) ì§ì, ë°ë³µ ì´ê¸° ë©ëª¨ë¦¬ íê· í ì¤í¸</td></tr><tr><td>09-15</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ì±ë¥ ì§ë¨ í루 â ë½ ê¸°ì íí¬ 11~20Hz â 55Hz, CoreText run ìºì 19.5 â 56Hz, host CPU 50% â 14%, ì½ì´ ë½ ì ì â60%</td></tr><tr><td>09-16</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>í¸ì§ê¸° 미ëë§µ(N5)·ì§ë¨ 층(§5.4 â tree-sitter 구문 ì¤ë¥ê° 첫 ì¶ì²) + ë³í© í¸ì§ê¸° ë§ê°(S3b~S6)</td></tr><tr><td>09-17</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td><a href="https://github.com/ohah/zntc/releases/tag/v0.1.8" target="_blank" rel="noopener noreferrer" class="rp-link">zntc v0.1.8</a> ë¦´ë¦¬ì¦ (09-17) â import í¬ë§· ì¸ì§ ë°©ì¶, ESM-wrap ì´ì¤ ì ì¸, alias ë°°ì </td></tr><tr><td>09-17</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td><strong>LSP ì°©ì</strong> â seam 1ë¨(transport·ìëª Â·ì 뢰 í롬íí¸Â·publishDiagnostics) + í¸ë² ë°ì¤(§8.2a·b)</td></tr><tr><td>09-18</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>LSP â ì ìë¡ ì´ë·ìê·¸ëì² íí¸Â·ë¬¸ì í¬ë§·(§8.2c~e)</td></tr><tr><td>09-19</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td><a href="https://github.com/ohah/zntc/releases/tag/v0.1.9" target="_blank" rel="noopener noreferrer" class="rp-link">zntc v0.1.9</a> ë¦´ë¦¬ì¦ (09-19) â package.json <code>"type":"module"</code>·<code>"module"</code> CJS interop íì </td></tr><tr><td>09-19</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>LSP â ì´ë¦ ë°ê¾¸ê¸°Â·code action·ìëìì±(§8.2g) + kitty ì ì¡ ë§¤ì²´ t=f/t=t/t=s + í ì´ ì ¸ 구ê°ì ë«ì(AT3b)</td></tr><tr><td>09-20</td><td><a href="https://github.com/ohah/pdf" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/pdf</a></td><td><strong><a href="https://github.com/ohah/pdf/releases/tag/v0.1.0" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/pdf v0.1.0</a> 첫 NPM ì¶ì</strong> (09-20) â Zig wasm 321KB, ì½ê¸°Â·ê·¸ë¦¬ê¸°Â·ìì·주ì·ìëª Â·ìí¸Â·ë³í©Â·XFA, ë°ëë¼Â·React·Vue·Svelte</td></tr><tr><td>09-20</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td>EMF world transform·clip·fill + EMF+ rectangle·lines·draw string·images·container â í루 39커ë°</td></tr><tr><td>09-21</td><td><a href="https://github.com/ohah/pdf" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/pdf</a></td><td><strong><a href="https://github.com/ohah/pdf/releases/tag/v0.2.0" target="_blank" rel="noopener noreferrer" class="rp-link">@ohah/pdf v0.2.0</a></strong> (09-21) â PDF â Markdown/JSON(<code>pdf.markdown</code>·<code>pdf.blocks</code>), íê·¸ PDF 구조 ë무, ê´ì ìë í, ì ëµ ë²¤ì¹ 115/115</td></tr><tr><td>09-21</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td><a href="https://github.com/ohah/zntc/releases/tag/v0.1.10" target="_blank" rel="noopener noreferrer" class="rp-link">zntc v0.1.10</a> ë¦´ë¦¬ì¦ (09-21) â dev ìë² CSS ê²°í¨ ì¼ê³±(#4660·#4671~#4683)</td></tr><tr><td>09-21</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>LSP ì´ë ì¡°ê° ìì±(ì í 3층·didSave·참조 í¼ì»¤Â·êµ¬í/íì ì ì) + <code>build.zig</code> 21,352 â 8,835ì¤ + ì격 tmux pane í ì¬ë¡¯(RA7·RA8)</td></tr><tr><td>09-21</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td>EMF ë ì½ë wire ë¶ë¥Â·Path 기í 조립, hwp5 ê° EMF+ world transform ì replay</td></tr></tbody></table></div> 49<h3 class="rp-toc-include" id="2026ë -9ì-íì-922926"><a href="#2026ë -9ì-íì-922926" class="rp-header-anchor rp-link" aria-hidden="true">
49#</a>2026ë 9ì íì (9/22~9/26)</h3> 50<p>ìë ì¶ê° 기ë¡ì íêµ ìê° ê¸°ì¤ì´ë¤. Maruë <code>main</code> ë³í©ì¼, Hwpjs·ZNTC·PDFë <code>main</code> 커ë°ì¼ì ë°ë¥¸ë¤. 9ì 26ì¼ì íì¸ ìì ê¹ì§ì 기ë¡ì´ë©°, ZNTCì ì´ë² ë³ê²½ì ìì§ ìµì ë°°í¬í v0.1.10ì í¬í¨ëì§ ììë¤.</p> 51<div class="rp-table-scroll-container rp-scrollbar"><table><thead><tr><th>ë ì§</th><th>íë¡ì í¸</th><th>íë</th></tr></thead><tbody><tr><td>09-22</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td><a href="https://github.com/ohah/maru/pull/3858" target="_blank" rel="noopener noreferrer" class="rp-link">미ì ì¥ ë¬¸ì ë°±ì #3858</a>, SSH 문ì ì ì¥Â·í´ ëª©ë¡ ììí·LSP ì¸ë ì´ íí¸, <a href="https://github.com/ohah/maru/pull/3857" target="_blank" rel="noopener noreferrer" class="rp-link">í ë§ ë³ê²½ íµì§ #3857</a>·idle host ì¬ì°ê²°</td></tr><tr><td>09-22</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td>EMF+ ì¥ì¹ ì¢í ë³íê³¼ <a href="https://github.com/ohah/hwpjs/commit/1f62228e" target="_blank" rel="noopener noreferrer" class="rp-link">곡ì íê°Â·ë¶í </a> â ë ëë§ ì 기í ì²ë¦¬</td></tr><tr><td>09-22</td><td><a href="https://github.com/ohah/pdf" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/pdf</a></td><td><strong>v0.2.1·<a href="https://github.com/ohah/pdf/commit/2a817c78" target="_blank" rel="noopener noreferrer" class="rp-link">v0.2.2</a></strong> â ì¤ë¬¸ì 100í¸ì í ì¤í¸Â·ê·¸ë¦¬ê¸° ëì¡°ìì ëì¨ ê²°í¨ê³¼ í¼ì ê° ì°¾ì ì ë ¥ ì²ë¦¬ ê²°í¨ ìì </td></tr><tr><td>09-22</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td>async generator·í´ëì¤ íë íê² íì , <a href="https://github.com/ohah/zntc/commit/4127fcac" target="_blank" rel="noopener noreferrer" class="rp-link">ìì ë°íê° ë³´ì¡´</a>, ES5 interop ë¬¸ë² ìì </td></tr><tr><td>09-23</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>미ì ì¥Â·ì´ë¦ ìë 문ì ë³µì, <a href="https://github.com/ohah/maru/pull/3894" target="_blank" rel="noopener noreferrer" class="rp-link">ì¬ë¶í ë¤ ë¡ì»¬ ìì´ì í¸ ëí ì¬ê° #3894</a>, 구조 ê¸°ë° ì í íì¥, <a href="https://github.com/ohah/maru/pull/3883" target="_blank" rel="noopener noreferrer" class="rp-link">ë¶í paneì kitty ì´ë¯¸ì§ #3883</a></td></tr><tr><td>09-23</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td><strong><a href="https://github.com/ohah/hwpjs/commit/a2c213a9" target="_blank" rel="noopener noreferrer" class="rp-link">HWPX ZIP ì½ê¸°</a></strong>ì manifest·리ìì¤Â·ì°¨í¸ ê´ê³ ê²ì¬ â Zig ì½ì´ ê²ì¬ ê³ì¸µ</td></tr><tr><td>09-23</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td><a href="https://github.com/ohah/zntc/commit/33a7378c" target="_blank" rel="noopener noreferrer" class="rp-link">iterator 조기 ì¢ ë£</a>, ê°ì²´ ë©ìëì <code>super</code>, <code>using</code> ë¤ì´ë 벨 ë³í ìì </td></tr><tr><td>09-24</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>sticky scroll·íì¬ ì¤Â·ì§ ê´í¸ ê°ì¡°, <a href="https://github.com/ohah/maru/pull/3918" target="_blank" rel="noopener noreferrer" class="rp-link">ë³´ì´ì§ ìë íì ë¶íìí ì ì²´ ë ëë§ ì ê±° #3918</a></td></tr><tr><td>09-24</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td><a href="https://github.com/ohah/hwpjs/commit/bdecc435" target="_blank" rel="noopener noreferrer" class="rp-link">HWPX 본문 ì´ë²¤í¸</a>, XML·í¨í¤ì§ 무결ì±, ì¡°ê±´ë¶ ë¶ê¸°ì í 격ì ê²ì¬</td></tr><tr><td>09-24</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td><a href="https://github.com/ohah/zntc/commit/3aed812c" target="_blank" rel="noopener noreferrer" class="rp-link">Node ì¤í ê²°ê³¼ ëì¡°</a>ë¡ ë¤ì´ë 벨 ë³í ê²ì¦, ìì±ë ì¬ì©ì ìë³ìì ì¬ë³¼ ëë½ ê²ì¬</td></tr><tr><td>09-25</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ë¤ì¬ì°ê¸° ìë´ì , <a href="https://github.com/ohah/maru/pull/3946" target="_blank" rel="noopener noreferrer" class="rp-link">ì¤ì²© ê´í¸ ì #3946</a>, 공백·í íì, <a href="https://github.com/ohah/maru/pull/3941" target="_blank" rel="noopener noreferrer" class="rp-link">ë¤ì¤ 커ì ì¤ë³µ ì ë ¥ #3941</a>·ì¤ë°ê¿ í ì´ë·í ë³µì ê²°í¨ ìì </td></tr><tr><td>09-25</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td><a href="https://github.com/ohah/hwpjs/commit/1ed714ad" target="_blank" rel="noopener noreferrer" class="rp-link">HWPX ë°í쪽·í</a>, 구ì ì¤ì ê³¼ ì´ë¯¸ì§ 참조·íì ê²ì¬</td></tr><tr><td>09-25</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td>ES5 ë¸ë¡ ì´ë¦ ë³ê²½ì ì¬ë³¼ íë¡ ì®ê¸°ê³ <a href="https://github.com/ohah/zntc/commit/24e2acb8" target="_blank" rel="noopener noreferrer" class="rp-link">문ìì´ ì´ë¦ ì¤í ì ê±°</a></td></tr><tr><td>09-26</td><td><a href="https://github.com/ohah/maru" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/maru</a></td><td>ê´í¸ ì´ë, ë¹êµÂ·ë³í© ë·° ì¤ ë²í¸ ì ì¥ì ìì , <a href="https://github.com/ohah/maru/pull/3960" target="_blank" rel="noopener noreferrer" class="rp-link">죽ì ì격 tmux paneì ì´ë²¤í¸ ì¤ê·ì ì°¨ë¨ #3960</a></td></tr><tr><td>09-26</td><td><a href="https://github.com/ohah/hwpjs" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/hwpjs</a></td><td>JPEG·PNG í½ì ê²ì¬, 본문·ë°í쪽 í ì¤í¸ ì¤ë ì· ëì¡°, <a href="https://github.com/ohah/hwpjs/commit/6383b4dd" target="_blank" rel="noopener noreferrer" class="rp-link">ìì script ê²ì¬</a></td></tr><tr><td>09-26</td><td><a href="https://github.com/ohah/zntc" target="_blank" rel="noopener noreferrer" class="rp-link">ohah/zntc</a></td><td>ë³í ì¤ ì¬ë³¼ í¸ì§, ì¤ì½í ìì ìì <a href="https://github.com/ohah/zntc/commit/80042462" target="_blank" rel="noopener noreferrer" class="rp-link">ë³µì¬ë 참조ì ìë ë ¸ë ì¶ì </a></td></tr></tbody></table></div> 52<p>구í ë²ìì ê²ì¦ ì¡°ê±´ì <a href="/monthly-opensource/maru/development-8.html" class="rp-link">Maru 3-8</a>, <a href="/monthly-opensource/hwpjs/development-10.html" class="rp-link">Hwpjs 3-10</a>, <a href="/monthly-opensource/zts/development-22.html" class="rp-link">ZNTC 3-22</a>, <a href="/monthly-opensource/pdf/development.html" class="rp-link">PDF ê°ë° ê³¼ì </a>ì ì 리íë¤.</p><!--/$--></div><footer class="rp-doc-footer"><div class="rp-doc-footer__edit"></div><div class="rp-doc-footer__divider"></div><div class="rp-prev-next-page"><div class="rp-prev-next-page__placeholder"></div><a href="/monthly-opensource/hwpjs/background.html" class="rp-prev-next-page__item rp-prev-next-page__next rp-link"><span class="rp-prev-next-page__item__desc">Next page</span><span class="rp-prev-next-page__item__title"><span>1. ê°ë° ë°°ê²½</span><svg width="1em" height="1em" viewBox="0 0 32 32" class="rp-prev-next-page__icon">
52<path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></span></a></div></footer></main></div><aside class="rp-doc-layout__outline rp-scrollbar"><div class="rp-outline"><div class="rp-outline__title">ON THIS PAGE<svg width="14" height="14" class="rp-progress-circle"><circle cx="7" cy="7" r="6" stroke-linecap="round" fill="none" stroke="var(--rp-c-divider-light)" stroke-width="2"></circle><circle cx="7" cy="7" r="6" stroke-linecap="round" fill="none" stroke="var(--rp-c-brand)" stroke-width="2" stroke-dasharray="37.69911184307752" stroke-dashoffset="37.69911184307752" transform="rotate(-90 7 7)" style="transition:stroke-dashoffset 0.3s"></circle></svg></div><nav class="rp-outline__toc rp-scrollbar"><a href="#기ì¬--릴리ì¦-íìë¼ì¸" class="rp-toc-item rp-link" title="ê¸°ì¬ Â· ë¦´ë¦¬ì¦ íìë¼ì¸" style="padding-left:0" data-depth="0"><span class="rp-toc-item__text rp-doc">ê¸°ì¬ Â· ë¦´ë¦¬ì¦ íìë¼ì¸</span></a><a href="#2025ë -11ì" class="rp-toc-item rp-link" title="2025ë 11ì" style="padding-left:12px" data-depth="1"><span class="rp-toc-item__text rp-doc">2025ë 11ì</span></a><a href="#2025ë -12ì" class="rp-toc-item rp-link" title="2025ë 12ì" style="padding-left:12px" data-depth="1"><span class="rp-toc-item__text rp-doc">2025ë 12ì</span></a><a href="#2026ë -1ì" class="rp-toc-item rp-link" title="2026ë 1ì" style="padding-left:12px" data-depth="1"><span class="rp-toc-item__text rp-doc">2026ë 1ì</span></a><a href="#2026ë -2ì" class="rp-toc-item rp-link" title="2026ë 2ì" style="padding-left:12px" data-depth="1"><span class="rp-toc-item__text rp-doc">2026ë 2ì</span></a><a href="#2026ë -3ì" class="rp-toc-item rp-link" title="2026ë 3ì" style="padding-left:12px" data-depth="1"><span class="rp-toc-item__text rp-doc">2026ë 3ì</span></a><a href="#2026ë -4ì" class="rp-toc-item rp-link" title="2026ë 4ì" style="padding-left:12px" data-depth="1"><span class="rp-toc-item__text rp-doc">2026ë 4ì</span></a><a href="#2026ë -5ì" class="rp-toc-item rp-link" title="2026ë 5ì" style="padding-left:12px" data-depth="1"><span class="rp-toc-item__text rp-doc">2026ë 5ì</span></a><a href="#2026ë -6ì" class="rp-toc-item rp-link" title="2026ë 6ì" style="padding-left:12px" data-depth="1"><span class="rp-toc-item__text rp-doc">2026ë 6ì</span></a><a href="#2026ë -7ì" class="rp-toc-item rp-link" title="2026ë 7ì" style="padding-left:12px" data-depth="1"><span class="rp-toc-item__text rp-doc">2026ë 7ì</span></a><a href="#2026ë -8ì" class="rp-toc-item rp-link" title="2026ë 8ì" style="padding-left:12px" data-depth="1"><span class="rp-toc-item__text rp-doc">2026ë 8ì</span></a><a href="#2026ë -9ì-91921" class="rp-toc-item rp-link" title="2026ë 9ì (9/1~9/21)" style="padding-left:12px" data-depth="1"><span class="rp-toc-item__text rp-doc">2026ë 9ì (9/1~9/21)</span></a><a href="#2026ë -9ì-íì-922926" class="rp-toc-item rp-link" title="2026ë 9ì íì (9/22~9/26)" style="padding-left:12px" data-depth="1"><span class="rp-toc-item__text rp-doc">2026ë 9ì íì (9/22~9/26)</span></a></nav><div class="rp-outline__divider"></div><div class="rp-outline__bottom"></div></div></aside></div></div> 53 <div id="__rspress_modal_container"></div> 54 </body> 55</html>
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.