1<!DOCTYPE html><html lang="ko"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0, viewport-fit=cover"/><meta name="google-site-verification" content="vtaBV0ETmVVgtWBi6a2TUBROjDjHCT5hILk7MxdF7B0"/><style> 2 @media (max-width: 390px) { 3 .formkit-slide-in { 4 display: none; 5 } 6 } 7 @media (max-height: 740px) { 8 .formkit-slide-in { 9 display: none; 10 } 11 } 12 </style><link rel="preconnect" href="https://KB3ECWAG70-dsn.algolia.net" crossorigin="true"/><title>ê¹ëí ì´ë ¥ì | kimcoder</title><meta name="description" content="íë¡ í¸ìë ê°ë°ì ê¹ëíì ì´ë ¥ìì ëë¤."/><meta name="keywords" content="ê°ë°ì ì´ë ¥ì, íë¡ í¸ìëê°ë°ì ì´ë ¥ì, FE ì´ë ¥ì, Frontend Engineer Resume, Engineering Resume"/><link rel="icon" type="image/x-icon" href="/favicon.png"/><link rel="apple-touch-icon" href="/favicon.png"/><meta property="og:type" content="website"/><meta property="og:url" content="https://kimcoder.io"/><meta property="og:title" content="ê¹ëí ì´ë ¥ì"/><meta property="og:description" content="íë¡ í¸ìë ê°ë°ì ê¹ëíì ì´ë ¥ìì ëë¤."/><meta property="og:image" content="/kimcoder-og.png"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@kimcoder"/><meta name="twitter:creator" content="@kimcoder"/><meta name="twitter:title" content="ê¹ëí ì´ë ¥ì"/><meta name="twitter:description" content="íë¡ í¸ìë ê°ë°ì ê¹ëíì ì´ë ¥ìì ëë¤."/><meta name="twitter:image" content="/kimcoder-og.png"/><meta name="next-head-count" content="22"/>
12<script>
vendor: 327 bytes, lines 12-16
12(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 13new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 14j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 15'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 16})(window,document,'script','dataLayer','
16GTM-MKLQHRB
vendor: 3 bytes, line 16
16');
16</script>
16<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /><link rel="preload" href="/_next/static/css/5ca929a8400de023.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/5ca929a8400de023.css" crossorigin="" data-n-g=""/><link rel="preload" href="/_next/static/css/45d6380887ec15bb.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/45d6380887ec15bb.css" crossorigin="" data-n-p=""/><noscript data-n-css=""></noscript>
16<script defer="" crossorigin="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script>
16<script src="/_next/static/chunks/webpack-df1f9c351e43cde0.js" defer="" crossorigin=""></script>
16<script src="/_next/static/chunks/framework-fda0a023b274c574.js" defer="" crossorigin=""></script>
16<script src="/_next/static/chunks/main-c69e4a6afd49bbe5.js" defer="" crossorigin=""></script>
16<script src="/_next/static/chunks/pages/_app-37680da0538876f5.js" defer="" crossorigin=""></script>
16<script src="/_next/static/chunks/336-1f3c353cd534fe20.js" defer="" crossorigin=""></script>
16<script src="/_next/static/chunks/234-f2d853756f716fd0.js" defer="" crossorigin=""></script>
16<script src="/_next/static/chunks/404-8d398fa1a0c9b7fc.js" defer="" crossorigin=""></script>
16<script src="/_next/static/chunks/pages/resume-013dbe598e1c4f5c.js" defer="" crossorigin=""></script>
16<script src="/_next/static/mYpFDr1DZDEyR2tzQItwY/_buildManifest.js" defer="" crossorigin=""></script>
16<script src="/_next/static/mYpFDr1DZDEyR2tzQItwY/_ssgManifest.js" defer="" crossorigin=""></script>
16<style id="__jsx-6e762080cf24aab">div.jsx-6e762080cf24aab{background:#fff;position:-webkit-sticky;position:sticky}div.shadow.jsx-6e762080cf24aab{-webkit-box-shadow:rgba(0,0,0,.06)0px 6px 20px;-moz-box-shadow:rgba(0,0,0,.06)0px 6px 20px;box-shadow:rgba(0,0,0,.06)0px 6px 20px}</style><style data-href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfMZs&skey=c491285d6722e4fa&v=v20) format('woff')}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fMZs&skey=c491285d6722e4fa&v=v20) format('woff')}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYMZs&skey=c491285d6722e4fa&v=v20) format('woff')}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYMZs&skey=c491285d6722e4fa&v=v20) format('woff')}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2) format('woff2');
16unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;
16src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}</style></head><body class="font-sans antialiased text-gray-900"><div id="__next"><div class="resume_resume__SbpEK h-full min-h-full"><div style="top:0" class="jsx-6e762080cf24aab z-10"><div class="border-b border-gray-200 bg-white"><div class="container mx-auto"><div class="flex flex-wrap items-center"><div class="nav-height flex w-60 items-center"><a href="/"><h1 id="page-title">@kimcoder</h1></a></div><div class="flex-grow hidden lg:block ml-8"><div><button type="button" class="group py-2 px-3 border-gray-200 border hover:text-gray-600 hover:border-gray-300 transition duration-150 ease-in-out pointer flex items-center bg-gray-50 text-left w-full text-gray-500 rounded-lg text-sm align-middle"><svg width="1em" height="1em" class="mr-3 align-middle text-gray-600 flex-shrink-0 group-hover:text-gray-700" style="margin-bottom:2px" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" stroke-width="2" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg>Search words<span class="ml-auto invisible lg:visible"><kbd class="border border-gray-300 mr-1 bg-gray-100 align-middle p-0 inline-flex justify-center items-center text-xs text-center mr-0 rounded group-hover:border-gray-300 transition duration-150 ease-in-out " style="min-width:1.8em">â</kbd><kbd class="border border-gray-300 bg-gray-100 align-middle p-0 inline-flex justify-center items-center text-xs text-center ml-auto mr-0 rounded group-hover:border-gray-300 transition duration-150 ease-in-out " style="min-width:1.8em">K</kbd></span></button></div></div><div class="flex-grow nav-height flex w-3/4 items-center justify-between space-x-4 md:w-auto md:justify-end md:space-x-8"><div class="flex space-x-4 text-sm md:space-x-8 md:text-base"><div><a class="font-medium leading-6" href="/blog">Blog</a></div><div><a class="font-medium leading-6" href="/books">Books</a></div></div><div class="flex"><a href="https://github.com/kimcoder" target="_blank" rel="noopener noreferrer"><span class="sr-only">GitHub</span><svg class="h-6 w-6" fill="currentColor" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clip-rule="evenodd"></path></svg></a><a class="ml-2.5" href="https://www.facebook.com/kimcoder" target="_blank" rel="noopener noreferrer"><span class="sr-only">LinkedIn</span><svg width="24" height="24" viewBox="0 0 30 30" fill="#1877f2"><path d="M30 15.091C30 6.756 23.285 0 15 0S0 6.756 0 15.091C0 22.625 5.484 28.868 12.656 30V19.454H8.848V15.09h3.808v-3.324c0-3.782 2.239-5.872 5.666-5.872 1.64 0 3.358.295 3.358.295v3.714h-1.893c-1.863 0-2.443 1.164-2.443 2.358v2.83h4.16l-.665 4.362h-3.495V30C24.516 28.868 30 22.625 30 15.091z" fill="#1877f2"></path></svg></a><a class="ml-2.5" href="https://www.linkedin.com/in/daehyun-kim-b9a26716b/" target="_blank" rel="noopener noreferrer"><span class="sr-only">Facebook</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#0073b1"><path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"></path></svg></a></div></div></div></div></div></div><div class="container mx-auto bg-white px-4 pt-16 pb-20 lg:pt-24 lg:pb-28 flex"><div class="overflow-hidden bg-white sm:rounded-lg"><h1 class="text-3xl font-extrabold leading-9 tracking-tight text-gray-900 sm:text-4xl sm:leading-10 lg:text-5xl ">ìë
íì¸ì. ê¹ëíì
ëë¤.</h1><div class="lg mt-3 sm:mt-4 lg:grid lg:items-center lg:gap-5"><p class="text-xl leading-7 text-gray-600">ì ë <!-- -->15<!-- -->ë
ì°¨ íë¡ í¸ìë ê°ë°ìë¡ ì¼íê³ ìì¼ë©°, ë¤ìí ì¬ê³ ì ë구ë¤ì ì¬ì©íì¬ ë¬¸ì 를 í´ê²°íë ê²ì ì¢ìí©ëë¤.<br/>ë³µì¡í 문ì ë¤ì í¨ì¨ì ì´ê³ ë¨ìíê² í´ê²°íê³ ì ë
¸ë ¥í©ëë¤.<br/><br/>주ëì ì¼ë¡ ì
무를 ì§ííë ê²ì ì í¸íë©°,<br/>ë¹ì¦ëì¤ì ì±ì¥ì ëê³ ì¬ì©ììê² ìµì íë ê²½í
16ì ì ê³µíë ë° ëì ê°ì¹ë¥¼ ëê³ ììµëë¤.<br/>ëí, ê°ì´ íì
íë ëë£ë¤ì ëí ë°°ë ¤ë ì¤ìíê² ìê°í©ëë¤.</p></div><section class="mt-12 pt-6 grid border-gray-100 border-t first-of-type:border-none"><h2 class="text-4xl font-bold text-gray-900 mb-12" id="ì
무 ê²½ë ¥"><span>ì
무 ê²½ë ¥</span><a title="Direct link to heading" class="anchor" href="#ì
무 ê²½ë ¥"><span class="icon icon-link"></span></a></h2><section class="mt-12 first-of-type:mt-0"><h3 class="text-3xl font-bold leading-6 text-gray-900" id="ì¹´ì¹´ì¤íì´2025"><span>ì¹´ì¹´ì¤íì´</span><a title="Direct link to heading" class="anchor" href="#ì¹´ì¹´ì¤íì´2025"><span class="icon icon-link"></span></a></h3><h3 class="mt-1 font-medium text-gray-700">2025.06 ~ ì¬ì§ì¤</h3><div class="border-t mt-2 pt-2"><h4>ê´ê³ í´ë ê´ê³ íë«í¼íí°<!-- --> / <!-- -->íì</h4><p class="mt-1 max-w-2xl text-sm text-gray-900">2025.06 ~ ì¬ì§ì¤</p><div class="mt-5"><dl><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>ê´ê³ íë«í¼</h4><p class="text-i text-sm text-gray-500">2025.06 ~ ì¬ì§ì¤</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ì¹´ì¹´ì¤íì´ ê´ê³ íë«í¼ì ê´ê³ 주ì ì´ììê° ìº íì¸Â·ìì¬ë¥¼ ìì±íê³ , ë
¸ì¶ ì¡°ê±´ì ì¤ì íì¬ ì¹´ì¹´ì¤íì´ ìë¹ì¤ ì§ë©´ì ê´ê³ 를 ì§í·ê´ë¦¬í ì ìë íë«í¼ì
ëë¤.<br/>ëí, ì¬ë´ì ì¬ë¬ ìë¹ì¤ìì ê´ê³ 를 ì¼ê´ëê² ìë¹í ì ìëë¡ ê´ê³ ë
¸ì¶/í¸ëí¹/ë ëë§ì íì¤íí SDKë ì´ìí©ëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬</li><li class="mt-1 first:mt-0">íë«í¼ ê³ ëí ë° ì ê· ê¸°ë¥ ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ê´ê³ 주/ì´ììì© ê´ê³ ìë¹ íë«í¼ì 구ì¶íê³ ìº íì¸/ìì¬/ë
¸ì¶ ì¤ì íë¡ì°ë¥¼ ê³ ëííì¬ ì´ì í¨ì¨ì ê°ì </li><li class="mt-1 first:mt-0">ìºìë ê´ê³ ìë¹ ê²°ê³¼ì ëí SDK ë´ë¶ ë
¸ì¶ ì ì´ ë¡ì§ì ê°ë°íì¬ ë
¸ì¶ íì§ ë° í¨ì¨ ê°ì </li><li class="mt-1 first:mt-0">ì¸ë¶ ê´ê³ ì í´ì¬ ë°°ë를 SDKë¡ íì¤ííì¬ ê° ìë¹ì¤ ì§ë©´ì ìì½ê² ì ì©í ì ìëë¡ ì§ì, ëì
/ì´ì ë¹ì© ì ê°</li><li class="mt-1 first:mt-0">ê´ê³ ìë¹ íë«í¼ ì½ë 커ë²ë¦¬ì§ ê°ì ( 0% â 20% )</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Next.js</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React Hook Form</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200">
16<svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Zod</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>TanStack Query</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>sass</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>changesets</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Storybook</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Vitest</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React Testing Library</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>MSW</span></li></ul></div></dd></div><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>íí</h4><p class="text-i text-sm text-gray-500">2025.09 ~ ì¬ì§ì¤</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ì¹´ì¹´ì¤íì´ ííì ì¬ì©ìê° ì¹´ì¹´ì¤íì´ ì± ë° ì¹´ì¹´ì¤í¡ ë´ ì¹´ì¹´ì¤íì´ ìììì 리ìë/íë¡ëª¨ì
/ì í´ ííì íìíê³ ì°¸ì¬í ì ìë ì¬ì©ì ëì ìë¹ì¤ì
ëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬</li><li class="mt-1 first:mt-0">ìë¹ì¤ ê³ ëí ë° ì ê· ê¸°ë¥ ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ì¸ë¶ ê´ê³ ì í´ì¬ ë° Google AdMob ê´ê³ ì°ë 기ë°ì ê´ê³ ë ë²ë¦¬ì§ 기ë¥ì ê°ë°Â·ì´ìíì¬ ì ë§¤ì¶ KPI 목í ëë¹ ì½ 110% ë¬ì±</li><li class="mt-1 first:mt-0">Google AdMob ê´ê³ 리ìë 미ì§ê¸ ì´ì를 3% â 0%ë¡ ê°ì íì¬ ë¦¬ìë ì 뢰ë ë° ì¬ì©ì ê²½í ìì í</li><li class="mt-1 first:mt-0">íë¡ëª¨ì
/리ìë íí ì§ë©´ ê³ ëí ë° ì ê· ê¸°ë¥ ê°ë°ì íµí´ ì¬ì©ì ì°¸ì¬ íë¦(íì â ì°¸ì¬ â ì í) ê°ì </li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200">
16<svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Next.js</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>TanStack Query</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Storybook</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Vitest</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React Testing Library</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>MSW</span></li></ul></div></dd></div></dl></div></div></section><section class="mt-12 first-of-type:mt-0"><h3 class="text-3xl font-bold leading-6 text-gray-900" id="íêµì ì©ë°ì´í°2024"><span>íêµì ì©ë°ì´í°</span><a title="Direct link to heading" class="anchor" href="#íêµì ì©ë°ì´í°2024"><span class="icon icon-link"></span></a></h3><h3 class="mt-1 font-medium text-gray-700">2024.05 ~ 2025.06</h3><div class="border-t mt-2 pt-2"><h4>FE íìì²´<!-- --> / <!-- -->ì±í° 리ë</h4><p class="mt-1 max-w-2xl text-sm text-gray-900">2024.05 ~ 2025.06</p><div class="mt-5"><dl><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>FE íìì²´</h4><p class="text-i text-sm text-gray-500">2024.05 ~ 2025.06</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ì¬ë´ FE ê°ë° íê²½ì íì¤íì ìì°ì± í¥ìì ìí´ FE íìì²´ë¼ë ê°ìì¡°ì§ì ì°¸ì¬íì¬ ë¤ìí 기ì ì 기ì¬ì ê°ì íëì ìííìµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ì±í° 리ë</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ì¬ë´ FE íì¤ ê¸°ì ì ì립</li><li class="mt-1 first:mt-0">ìë¹ì¤ ë° ì´ë민 ì í리ì¼ì´ì
ì ì¥ì í
í릿 ì ê³µì¼ë¡ FE ê°ë°ìë¤ì ìì°ì± ê°ì </li><li class="mt-1 first:mt-0">FE ê³µíµ npm í¨í¤ì§ì ë°°í¬ ë° ì림 íë¡ì¸ì¤ ìëíë¡ ì
무 í¨ì¨ ê°ì </li><li class="mt-1 first:mt-0">Next.js ì¤ì ì ìí íë¬ê·¸ì¸ ìì¤í
ê³¼ ë¤ìí íë¬ê·¸ì¸ì ê°ë°Â·ì ê³µíì¬ ì¬ë´ FE ìë¹ì¤ë¤ì ì´ì í¨ì¨ ê°ì </li><li class="mt-1 first:mt-0">FE ê°ë°ìë¤ê³¼ì 1:1 미í
ê³¼ Meet-upì¼ë¡ 기ì í¼ëë°± ì ê³µ ë° ê°ë° 문íì í¸ë ë íì°ì 기ì¬</li></ul></div>
16<h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Tailwind CSS</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>changesets</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Storybook</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Vite</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Vitest</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Rollup</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Datadog</span></li></ul></div></dd></div></dl></div></div><div class="border-t mt-2 pt-2"><h4>구ë
í<!-- --> / <!-- -->íì</h4><p class="mt-1 max-w-2xl text-sm text-gray-900">2024.05 ~ 2025.06</p><div class="mt-5"><dl><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>ìºìë
¸í¸ íë¬ì¤ 멤ë²ì</h4><p class="text-i text-sm text-gray-500">2024.05 ~ 2025.06</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ìºìë
¸í¸ íë¬ì¤ 멤ë²ìì ì¥ë¶, ë§ì¼, ê¸ìµ, ê´ê³ ë± ìºìë
¸í¸ì 주ì 기ë¥ì ì ë³íì¬ ë©¤ë²ì ì ì© ííì¼ë¡ ì ê³µíë ìë¹ì¤ì
ëë¤.<br/>ìºìë
¸í¸ ì±ì ì¹ë·°ë¥¼ íµí´ ì ê³µëë©° íì¬ ë§¤ì¶ì íµì¬ ìí ì ë´ë¹íê³ ìë ìë¹ì¤ì
ëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬</li><li class="mt-1 first:mt-0">ìë¹ì¤ ê³ ëí ë° ì ê· ê¸°ë¥ ê°ë°</li></ul></div>
16<h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">기존 ê°ê²©ë³´ë¤ 2ë°° ë¹ì¼ ì ê· ë©¤ë²ì íë ì¶ì ë° ê°ì
ì ë ìì
ì íµí ë§¤ì¶ ëª©í 90% ë¬ì±</li><li class="mt-1 first:mt-0">ìë¹ì¤ ì í´ ë° íë¡ëª¨ì
기ë°ì ì¬ë¬ 멤ë²ì ê°ì
íì´ì§ ì ìì¼ë¡ ê°ì
ì 목í 99% ë¬ì±</li><ul class="ml-8 list-disc"><li>ë°ë³µ ìì
í´ì를 ìí´ ëª¨ëí ìì¤í
ìì
ì ì ìíê³ ìì¤í
ì¤ê³, 구íì íµí´ ìì°ì± í¥ì</li></ul><li class="mt-1 first:mt-0">멤ë²ì íëë³ ê¸°ë¥ ì구를 í ì ìë ë¼ì´ì§ íì´ì§ ê°ë°ë¡ ì ì© íí ë° ì í´ ìë¹ì¤ ê°í</li><li class="mt-1 first:mt-0">모ë íëë ì´ì
ì íì©íì¬ ì¬ë´ ì´ë민ì 멤ë²ì ëë©ì¸ íµí©ì¼ë¡ ì¸ì¦ê³¼ 리ìì¤ ê¶í ê´ë¦¬ í¨ì¨í</li><li class="mt-1 first:mt-0">ì¹ ì±ë¥ ê°ì </li><ul class="ml-8 list-disc"><li>RSC ì¬ì©, BTF ììì 리ìì¤ ë ì´ì§ ë¡ë© ìì
ì íµí´ ë´ë§¤ì¥ íì´ì§ì LCP ì½ 65% ê°ì ( 2.xì´ â 0.7ì´ )</li></ul><li class="mt-1 first:mt-0">ê°ë° íê²½ ê°ì </li><ul class="ml-8 list-disc"><li>ë°ì´í°ë
ì RUM, APMì íì©í 모ëí°ë§ í경과 E2E í
ì¤í¸ 구ì¶ì¼ë¡ ì¥ì íì§ë¥¼ ê°ííì¬ ìë¹ì¤ ìì ì± í¥ì</li><li>커ì¤í
Next.js ë¡ê·¸ 모ëì ìì±í´ ìë¹ì¤ ì´ìê³¼ 모ëí°ë§ íê²½ ê°ì </li></ul></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Next.js</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React Hook Form</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>TanStack Query</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Tailwind CSS</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Storybook</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Jest</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200">
16<svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React Testing Library</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>MSW</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Vite</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Module Federation</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>AWS</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Datadog</span></li></ul></div></dd></div></dl></div></div></section><section class="mt-12 first-of-type:mt-0"><h3 class="text-3xl font-bold leading-6 text-gray-900" id="ì°ìííì ë¤2021"><span>ì°ìííì ë¤</span><a title="Direct link to heading" class="anchor" href="#ì°ìííì ë¤2021"><span class="icon icon-link"></span></a></h3><h3 class="mt-1 font-medium text-gray-700">2021.05 ~ 2024.05</h3><div class="border-t mt-2 pt-2"><h4>ì
ë¬ì¹íë¡ í¸ê°ë°í<!-- --> / <!-- -->íì</h4><p class="mt-1 max-w-2xl text-sm text-gray-900">2022.10 ~ 2024.05</p><div class="mt-5"><dl><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>ì°ìíë¼ì´ë¸ë¬ë¦¬</h4><p class="text-i text-sm text-gray-500">2023.05 ~ 2024.05</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ì°ìííì ë¤ì ì ì¬ íë¡ í¸ìë ë¼ì´ë¸ë¬ë¦¬ ì ìì ìí TFë¡ ë¼ì´ë¸ë¬ë¦¬ì ìíê³ë¥¼ 구ì¶íììµëë¤.<br/>TFë ê° íë¡ í¸ìë íì ìëì´ ìì§ëì´ë¤ë¡ 구ì±ëììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬ </li><li class="mt-1 first:mt-0">ì ê· ë¼ì´ë¸ë¬ë¦¬ 구ì¶</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ìí¬íë¡ì° êµ¬ì¶ ë° ë¼ì´ë¸ë¬ë¦¬ ì´ì ì ì±
ì립</li><li class="mt-1 first:mt-0">React Custom Hook ë¼ì´ë¸ë¬ë¦¬ ê°ë°</li><ul class="ml-8 list-disc"><li>ì½ë 커ë²ë¦¬ì§ 100% ë¬ì±</li></ul></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200">
16<svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Turborepo</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Vite</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Vitest</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Docusaurus</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Storybook</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Gitlab</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>AWS</span></li></ul></div></dd></div><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>배민ì¬ì¥ë ì±</h4><p class="text-i text-sm text-gray-500">2022.10 ~ 2024.05</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">배민ì¬ì¥ë ì±ì ì¬ì¥ëì´ ì±ì íµí´ 주문 ì²ë¦¬, ë°°ë¬ ì¤ì , ê°ê² ì´ìì ê´ë ¨ë ì¤ì ë¤ì í ì ìë ìë¹ì¤ì
ëë¤.<br/>주ì 기ë¥ë¤ì ì¹ë·°ë¡ ì ê³µíë ìë¹ì¤ì´ë©°, ì±ì 주문ì ì ì¹ë·° ê°ë° íí¸ ë¦¬ëë¡ íë¡ì í¸ë¥¼ ì§ííììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬</li><li class="mt-1 first:mt-0">ìë¹ì¤ ê³ ëí ë° ì ê· ê¸°ë¥ ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ë°°ë¬ì민족 ì»¤ë¨¸ì¤ ì£¼ë¬¸ì ì ê¸°ë¥ ê°ë°</li><li class="mt-1 first:mt-0">배민ì¬ì¥ë ì± ê°ë³ í°í¸ ê¸°ë¥ ê°ë°</li><li class="mt-1 first:mt-0">배민ì¬ì¥ë ì± ì¹ë·° ë¸ë¦¿ì§ SDK êµ¬ì¶ ë° ê°ì´ë 문ì ì ê³µ</li><li class="mt-1 first:mt-0">Storybook, MSWì íì©íì¬ UI ê°ë° ë° ê²ì¦ í¸ë¦¬ì± ì¦ë</li><ul class="ml-8 list-disc"><li>Merge Requestì í리뷰 기ë¥ì ì ê³µíì¬ ìê°ì 리뷰 íê²½ ëì
</li><li>ê°ë° íê²½ìì ê°ë³í°í¸ Addonì ì ê³µíì¬ ì±ì¼ë¡ë¶í° ë°ìì¤ë í°í¸ í¬ê¸° ê°ì 모ìí ì ìëë¡ ì ê³µ</li></ul><li class="mt-1 first:mt-0">ê°ë° íê²½ ê°ì </li><ul class="ml-8 list-disc"><li>ì í리ì¼ì´ì
ë²ë¤ë¬ ì í ( ë¡ì»¬ 구ë ìë 42ë°° â, CI ë¹ë ìë 1.3ë°° â)</li><li>ì¼í¸ë¦¬, ê·¸ë¼íë ëìë³´ë 구ì±ì¼ë¡ ì¸í 모ëí°ë§/ë©í¸ë¦ 측ì íê²½ 구ì¶</li><li>ë¶íìíê² ì¬ì©ëê³ ìë Redux ê´ë ¨ ì½ë를 React Queryë¡ ì ííì¬ ì½ë ë³µì¡ë ë° ì¬ì©ì± ê°ì </li></ul><li class="mt-1 first:mt-0">ì¹ ì±ë¥ ê°ì </li><ul class="ml-8 list-disc"><li>ì½ë ì¤í리í
, í¸ë¦¬ìì´í¹ ë±ì¼ë¡ Overall LCP ì½ 40% ì´ì ê°ì ( 2.xì´ â 0.8 ~ 1.2ì´ )</li><li>ì¹ìë² ì ì 리ìì¤ ìë¹ ë°©ì ë³ê²½ì¼ë¡ ì¹ìë² ë¶í ê°ì ( ì½ 90% â )</li></ul><li class="mt-1 first:mt-0">ì½ë 커ë²ë¦¬ì§ ê°ì ( 20% â 60% )</li></ul></div>
16<h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Redux</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Redux Saga</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React Query</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Express</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>styled-components</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>TS-Pattern</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Gitlab</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Storybook</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>MSW</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React Testing Library</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Vitest</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Vite</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200">
16<svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>AWS</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Turborepo</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Rspress</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>tsup</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Slack Bolt</span></li></ul></div></dd></div></dl></div></div><div class="border-t mt-2 pt-2"><h4>배민ìíì¹íë¡ í¸ê°ë°í<!-- --> / <!-- -->íì</h4><p class="mt-1 max-w-2xl text-sm text-gray-900">2021.05 ~ 2022.10</p><div class="mt-5"><dl><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>배민ìí</h4><p class="text-i text-sm text-gray-500">2021.05 ~ 2022.09</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">배민ìíë ì¬ì¥ëê»ì ììì¬ ë° ë¹íì 구매í ì ìë ìë¹ì¤ì
ëë¤.<br/>B2B ì´ì»¤ë¨¸ì¤ íë¡ í¸, ê¸°ë¥ ê´ë¦¬í ì ìë ì´ë민, ì¸ë¶ í매ìê° ì
ì íì¬ ì¬ì©í ì ìë ì
ë¬ ì´ë민ì ì´ìíììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬</li><li class="mt-1 first:mt-0">ìë¹ì¤ ê³ ëí ë° ì ê· ê¸°ë¥ ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">í매ì¤ê° ë¹ì§ëì¤ ëª¨ë¸ ì í</li><ul class="ml-8 list-disc"><li>ì¸ë¶ í매ì¬ë¤ì´ ì¬ì©í ì ìë ì
ë¬ ì´ë민 ìë¹ì¤ 구ì¶</li><li>ìí ê´ë¦¬ / ê°ê²© ê´ë¦¬ / ì¹´í
ê³ ë¦¬ ê´ë¦¬ ê¸°ë¥ ê°ë°</li><li>ìì
ì íµí ëë ìí ì´ë¯¸ì§ ë±ë¡ íë¡ì¸ì¤ ê°ì ( API ì²ë¦¬ ìê° ì½ 80% â )</li></ul><li class="mt-1 first:mt-0">배민ìí 모ë°ì¼ ë©ì¸íë©´ í ê¸°ë¥ ê°ë°</li><li class="mt-1 first:mt-0">배민ìí ì¬ì©ì ë§ì¶¤ ë°ì£¼ì ê¸°ë¥ ê°ë°</li><li class="mt-1 first:mt-0">배민ìí ì´ë민 ìë¹ì¤ íì¥</li><ul class="ml-8 list-disc"><li>
16ì¬ë´ì ì ì¬ ìë¹ì¤ë¥¼ íëì íë«í¼ìì ê´ë¦¬í ì ìëë¡ íì¥íì¬ ë°°ë¯¼ë¬¸ë°©êµ¬ ì¼í몰ì 배민ìí ì´ë민ìì ê´ë¦¬í ì ìëë¡ êµ¬í</li></ul><li class="mt-1 first:mt-0">ëìì¸ìì¤í
ì´ì</li><ul class="ml-8 list-disc"><li>모ë
¸ë í¬í를 íµíì¬ ì¼í몰과 ì´ë민 ì»´í¬ëí¸ë¤ì í¨í¤ì§ ë¶ë¦¬</li><li>í¨í¤ì§ë³ ë²ì ë ë° ë°°í¬ ì ëµ ì립</li></ul><li class="mt-1 first:mt-0">ê°ë° íê²½ ê°ì </li><ul class="ml-8 list-disc"><li>env-launcherë¼ë ë¼ì´ë¸ë¬ë¦¬ ì ìì íµí´ 10ê° ì´ìì¸ ê°ë°ì¡´ íê²½ì ê°ë°/ë°°í¬ íê²½ ê°ì </li><li>Redux ê´ë ¨ ë ê±°ì ì½ë를 Redux Toolkitê³¼ React Queryë¡ ì ííì¬ ì½ë ë³µì¡ë ê°ì </li><li>ìì½ê² ì¬ì©í ì ìë Infinite Scroll ì»´í¬ëí¸ ê°ë°ì íµí ì¬ë¬ ì§ë©´ì ì½ë í¨í´ ì 리 ë° ë³µì¡ë ê°ì </li></ul><li class="mt-1 first:mt-0">ì¹ ì±ë¥ ê°ì </li><ul class="ml-8 list-disc"><li>ì´ë¯¸ì§ ë ì´ì§ ë¡ë ê¸°ë¥ ì¶ê°ë¡ ì¼í몰 ë©ì¸ íì´ì§ììë§ 200ì¬ê° ì´ìì ë¶íì ìì² ì ê°ì</li></ul></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Next.js</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React Hook Form</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Redux Toolkit</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Redux Saga</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React Query</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Express</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>styled-components</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Gitlab</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200">
16<svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Storybook</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Jest</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React Testing Library</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Lerna</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>MSW</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>AWS</span></li></ul></div></dd></div></dl></div></div></section><section class="mt-12 first-of-type:mt-0"><h3 class="text-3xl font-bold leading-6 text-gray-900" id="ì¹´ì¹´ì¤íì´2020"><span>ì¹´ì¹´ì¤íì´</span><a title="Direct link to heading" class="anchor" href="#ì¹´ì¹´ì¤íì´2020"><span class="icon icon-link"></span></a></h3><h3 class="mt-1 font-medium text-gray-700">2020.08 ~ 2021.05</h3><div class="border-t mt-2 pt-2"><h4>ê¸ìµì¬ì
í´ë í¬ìíí°<!-- --> / <!-- -->íì</h4><p class="mt-1 max-w-2xl text-sm text-gray-900">2020.08 ~ 2021.05</p><div class="mt-5"><dl><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>ì½ì¤í¼ ì§ìì ë°ë¥¸ ì¸ë±ì¤/리ë²ì¤ íë í¬ì</h4><p class="text-i text-sm text-gray-500">2020.08 ~ 2021.02</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ì¼ë°ì ì¸ íë ìë¹ì¤ì ë¤ë¥´ê² ì¤ë½ì´ ê°ë¯¸ë ì ê· íë 매매 ìë¹ì¤ë¥¼ 구ì¶íììµëë¤.<br/>ì¬ë´ CBTê¹ì§ ì§ííìì§ë§, ìì½ê²ë ì»´íë¼ì´ì¸ì¤ ì´ìë¡ ì¸í´ ìë¹ì¤ê° ë°ì¹ëì§ë 못íììµëë¤.<br/>ì¹´ì¹´ì¤íì´ìì ìµì´ë¡ React Query를 ëì
íì¬ ê°ë°íìê³ , ê·¸ íì ì¬ì©ì± ë±ì ì ì¬ì ì ííììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬</li><li class="mt-1 first:mt-0">ì ê· ìë¹ì¤ 구ì¶</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">기ì ì¤í, 컨벤ì
ì ì, ë°°í¬, 모ëí°ë§ ë± ì ê· ê°ë° íê²½ 구ì¶</li><li class="mt-1 first:mt-0">React Query를 íì©í ì í ì½ë ë° í
ì¤í¸ ì½ë ì¤ê³</li><li class="mt-1 first:mt-0">ì§ì ì°¨í¸/íë 매ì/ì¬ì©ì ëí¹ ë± ë¤ìì ê¸°ë¥ ê°ë°</li><li class="mt-1 first:mt-0">Storybook, Mirage JS를 íì©íì¬ UI ê°ë° ë° ê²ì¦ í¸ë¦¬ì± ì¦ë</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200">
16<svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React Query</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>nivo</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>sass</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Jest</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React Testing Library</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Mirage JS</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Storybook</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>webpack</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li></ul></div></dd></div><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>P2P ë¶ëì° í¬ì</h4><p class="text-i text-sm text-gray-500">2020.11 ~ 2021.02</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ë¶ëì° P2P í¬ì ìë¹ì¤ë¥¼ ì´ìíììµëë¤.<br/>ì´ ìë¹ì¤ë ì¹´ì¹´ì¤í¡ ì± ë´ì ì¹´ì¹´ì¤íì´ ìë¹ì¤ ìì, ê·¸ë¦¬ê³ ì¹´ì¹´ì¤íì´ ì±ìì ì ê·¼í ì ìììµëë¤.<br/>ìì½ê²ë íì¬ë ì´ìì´ ì¢
ë£ëììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬</li><li class="mt-1 first:mt-0">ìë¹ì¤ ê³ ëí</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">React Query를 ëì
íì¬ í¬ìë´ì ëª©ë¡ ì§ë©´ ì½ë ë³µì¡ë ê°ì</li><li class="mt-1 first:mt-0">ì¹´ì¹´ì¤íì´ íµí©ì¹ë·° SDK ì ì©</li><li class="mt-1 first:mt-0">ì í´ì¬ë¥¼ ìí ì¹´ì¹´ì¤íì´ íµí©ì¹ë·° SDK ë¸ë¦¿ì§ ê°ë° ë° ê°ì´ë ì ê³µ</li><li class="mt-1 first:mt-0">ì¹ë·° ë¤ë¡ ê°ê¸° ì ì¬ì©ìê° ë³´ê³ ìë íë©´ì´ ì ì§ëëë¡ ì¬ì©ì± ê°ì </li><li class="mt-1 first:mt-0">Storybook, Mirage JS를 íì©íì¬ UI ê°ë° ë° ê²ì¦ í¸ë¦¬ì± ì¦ë</li><li class="mt-1 first:mt-0">ê°ë° íê²½ ê°ì </li><ul class="ml-8 list-disc"><li>@babel/polyfill, awesome-ts-loader, tslintì ê°ì ë ì´ì ì ì§ëì§ ìë ë¼ì´ë¸ë¬ë¦¬ ì ê±°</li><li>babel-loader, core-js, eslint, prettier ì¤ì¹ ë° ì ì©</li></ul></ul></div>
16<h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React Query</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>sass</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Jest</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React Testing Library</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Mirage JS</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Storybook</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>webpack</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li></ul></div></dd></div><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>íë í¬ì</h4><p class="text-i text-sm text-gray-500">2020.08 ~ 2020.10</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">íë 매매 ìë¹ì¤ë¥¼ ì´ìíììµëë¤.<br/>ì´ ìë¹ì¤ë ì¹´ì¹´ì¤í¡ ì± ë´ì ì¹´ì¹´ì¤íì´ ìë¹ì¤ ìì, ê·¸ë¦¬ê³ ì¹´ì¹´ì¤íì´ ì±ìì ì ê·¼í ì ìììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ìë¹ì¤ ê³ ëí</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ë¨ íëì íì¼ë¡ë§ ëì´ìë js ì½ë를 ë¶í ì²ë¦¬íì¬ Overall LCP ì½ 30% ê°ì </li><li class="mt-1 first:mt-0">ê°ë° íê²½ ê°ì </li><ul class="ml-8 list-disc"><li>@babel/polyfill, awesome-ts-loader, tslintì ê°ì ë ì´ì ì ì§ëì§ ìë ë¼ì´ë¸ë¬ë¦¬ ì ê±°</li><li>babel-loader, core-js, eslint, prettier ì¤ì¹ ë° ì ì©</li></ul></ul></div>
16<h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Mobx</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>sass</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Jest</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>webpack</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li></ul></div></dd></div><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>í¬ì í</h4><p class="text-i text-sm text-gray-500">2020.12 ~ 2021.01</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ì¹´ì¹´ì¤íì´ í¬ì ìë¹ì¤ë¤ê³¼ ëì í¬ì íí©ì ë³¼ ì ìë íì´ì§ë¥¼ ì´ìíììµëë¤.<br/>ì´ íì´ì§ë ì¹´ì¹´ì¤í¡ ì± ë´ì ì¹´ì¹´ì¤íì´ ìë¹ì¤ ìì, ê·¸ë¦¬ê³ ì¹´ì¹´ì¤íì´ ì±ì ë©ì¸ í íì´ì§ë¡ ì ê³µëììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬</li><li class="mt-1 first:mt-0">ìë¹ì¤ ê³ ëí</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ì¹´ì¹´ì¤íì´ íµí©ì¹ë·° SDK ì ì©</li><li class="mt-1 first:mt-0">ë¤í¬ 모ë íë©´ ëì</li><li class="mt-1 first:mt-0">ê°ë° íê²½ ê°ì </li><ul class="ml-8 list-disc"><li>@babel/polyfill, awesome-ts-loader, tslintì ê°ì ë ì´ì ì ì§ëì§ ìë ë¼ì´ë¸ë¬ë¦¬ ì ê±°</li><li>babel-loader, core-js, eslint, prettier ì¤ì¹ ë° ì ì©</li></ul></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200">
16<svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>sass</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Jest</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>webpack</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li></ul></div></dd></div></dl></div></div></section><section class="mt-12 first-of-type:mt-0"><h3 class="text-3xl font-bold leading-6 text-gray-900" id="ìë²ì¤ì»´í¼ë2020"><span>ìë²ì¤ì»´í¼ë</span><a title="Direct link to heading" class="anchor" href="#ìë²ì¤ì»´í¼ë2020"><span class="icon icon-link"></span></a></h3><h3 class="mt-1 font-medium text-gray-700">2020.06 ~ 2020.08</h3><div class="border-t mt-2 pt-2"><h4>ì¹ê°ë°í<!-- --> / <!-- -->íì</h4><p class="mt-1 max-w-2xl text-sm text-gray-900">2020.06 ~ 2020.08</p><div class="mt-5"><dl><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>ìë²ì¤</h4><p class="text-i text-sm text-gray-500">2020.06 ~ 2020.07</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ìë²ì¤ì ì¹ ë²ì ì ì´ìíììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ìë¹ì¤ ê³ ëí ë° ì ê· ê¸°ë¥ ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ìí°ì¤í¸ 커뮤ëí° ììì 멤ë²ì íí ê¸°ë¥ ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Mobx</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>styled-components</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200">
16<svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>i18n</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>webpack</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Storybook</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li></ul></div></dd></div><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>íì´ëí ìí íë¡ëª¨ì
</h4><p class="text-i text-sm text-gray-500">2020.07 ~ 2020.08</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ë°©íìë
ë¨ ë©¤ë²ë¤ì 모í°ë¸ í íì´ëíì´ë¼ë ìºë¦í°ì ìíì íë¡ëª¨ì
íë ì¬ì´í¸ë¥¼ 구ì¶íììµëë¤.<br/>미ëì´ ì¿¼ë¦¬ë¥¼ ì´ì©íì¬ ìë²ì¤ ì± ë´ ì¹ë·° ê·¸ë¦¬ê³ ëª¨ë°ì¼ & ë°ì¤í¬í± íê²½ì ì§ìíììµëë¤.<br/>ê¸ë¡ë², 미êµ, ì¼ë³¸ Shop ì¤ì ê³¼ ê·¸ì ë°ë¥¸ ë¤êµì´ë ì§ìíììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ì ê· íë¡ëª¨ì
구ì¶</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">기ì ì¤í, 컨벤ì
ì ì, ë°°í¬ ë± ì ê· ê°ë° íê²½ 구ì¶</li><li class="mt-1 first:mt-0">íì´ëí 컨ì
, ìí ìê° ê¸°ë¥ ê°ë°</li><li class="mt-1 first:mt-0">ì¬ë¬ ê°ê²ì ì¸ì´ë¥¼ ì§ìíê³ ìë ìë²ì¤ìµ ìíì ë¥ë§í¬ 모ë ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Mobx</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>styled-components</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>i18n</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200">
16<svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>webpack</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li></ul></div></dd></div><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>ìë²ì¤ìµ</h4><p class="text-i text-sm text-gray-500">2020.07 ~ 2020.07</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ìë²ì¤ìµì ì´ë민ì ì´ìíììµëë¤.<br/>벡ìë í 리ìì¤ ë¶ì¡±ì¼ë¡ ë²ê·¸ ìì ë° ì±ë¥ ê°ì ë±ì ì
무를 ì§ìíììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ìë¹ì¤ ê³ ëí</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ë°°ì¡ì§ ê¶ì ì¤ì ì§ë©´ì ë ëë§ ì±ë¥ ê°ì </li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Angular</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>webpack</span></li></ul></div></dd></div></dl></div></div></section><section class="mt-12 first-of-type:mt-0"><h3 class="text-3xl font-bold leading-6 text-gray-900" id="ì°ìííì ë¤2018"><span>ì°ìííì ë¤</span><a title="Direct link to heading" class="anchor" href="#ì°ìííì ë¤2018"><span class="icon icon-link"></span></a></h3><h3 class="mt-1 font-medium text-gray-700">2018.10 ~ 2020.05</h3><div class="border-t mt-2 pt-2"><h4>배민ìíê°ë°í<!-- --> / <!-- -->íì</h4><p class="mt-1 max-w-2xl text-sm text-gray-900">2018.10 ~ 2020.05</p><div class="mt-5"><dl><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>배민ìí</h4><p class="text-i text-sm text-gray-500">2018.10 ~ 2020.05</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">배민ìíë ì¬ì¥ëê»ì ììì¬ ë° ë¹íì 구매í ì ìë ìë¹ì¤ì
ëë¤.<br/>ê°ë°íì ì´ê¸° 멤ë²ë¡ í©ë¥ í, ê³ ëëª°ë¡ ì´ìëê³ ììë ìë¹ì¤ë¥¼ ì ì§ì ì¼ë¡ ë´ì¬íìì¼°ìµëë¤.<br/>ë´ì¬íê° ìë£ë íìë ìë¹ì¤ ê´ë¦¬ ì´ë민 ë° í매ì¤ê° ë¹ì§ëì¤ ëª¨ë¸ ì íì ìí´ ì
ë¬ ì´ë민ì 구ì¶íì¬ ìë¹ì¤ ê³ ëí를 ì§ííììµëë¤.<br/>ëí, ì»´í¬ëí¸ë¥¼ ê³µíµì¼ë¡ ì¬ì©í ì ìëë¡ ë°°ë¯¼ìí ëìì¸ ìì¤í
ë 구ì¶íììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬</li><li class="mt-1 first:mt-0">ìë¹ì¤ êµ¬ì¶ ë° ì ê· ê¸°ë¥ ê°ë°</li><li class="mt-1 first:mt-0">ìë¹ì¤ ê³ ëí</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">기ì ì¤í, 컨벤ì
ì ì, ë°°í¬, 모ëí°ë§ ë± ì ê· ê°ë° íê²½ 구ì¶</li><li class="mt-1 first:mt-0">배민ìí ìë¹ì¤ ìì²´ íë«í¼ êµ¬ì¶ ( ê³ ë몰 ê¸°ë¥ 100% 구í )</li><ul class="ml-8 list-disc"><li>ë©ì¸ / ê²ì / ìíëª©ë¡ ë° ìì¸ / ì¥ë°êµ¬ë / 주문 / íì / ëììí / ìí ë± ê¸°ë¥ ê°ë°</li><li>모ë°ì¼, ë°ì¤í¬í± ë¸ë¼ì°ì 를 ì§ìí기 ìí ì í리ì¼ì´ì
ì¤ê³</li><li>ìë¹ì¤ ë´ì¬íê° ìë£ë기 ì ê¹ì§ ê³ ë몰 ì´ì</li></ul><li class="mt-1 first:mt-0">ìë¹ì¤ ê³ ëí를 ìí ì´ë민과 ì¸ë¶ í매ì¬ìì ì¬ì©í ì ìë ì
ë¬ ì´ë민 구ì¶</li><ul class="ml-8 list-disc"><li>íë§¤ì¬ ê´ë¦¬ / ìí ê´ë¦¬ / ê°ê²© ê´ë¦¬ / 주문 ê´ë¦¬ / ë°°ì¡ ê´ë¦¬ ë± ì£¼ì ê¸°ë¥ ê°ë°</li><li>ë¨ì¼ ìì¤ë¡ 2ê°ì ìë¹ì¤ê° ì ê³µëëë¡ ì í리ì¼ì´ì
ì¤ê³</li></ul><li class="mt-1 first:mt-0">배민ìí ëìì¸ ìì¤í
구ì¶</li><ul class="ml-8 list-disc"><li>Button / Input / Select / Modal / Pagination / Table ë± ì£¼ì ì»´í¬ëí¸ ê°ë°</li><li>ë²ì ë ë° ë°°í¬ ì ëµ ì립</li></ul></ul></div>
16<h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Next.js</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Redux</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Redux Saga</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>styled-components</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>webpack</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Rollup</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Storybook</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Node.js</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Express</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>AWS</span></li></ul></div></dd></div></dl></div></div></section><section class="mt-12 first-of-type:mt-0"><h3 class="text-3xl font-bold leading-6 text-gray-900" id="ì´ëëë ì¸ë³´ì°2012"><span>ì´ëëë ì¸ë³´ì°</span><a title="Direct link to heading" class="anchor" href="#ì´ëëë ì¸ë³´ì°2012"><span class="icon icon-link"></span></a></h3><h3 class="mt-1 font-medium text-gray-700">2012.01 ~ 2018.04</h3>
16<div class="border-t mt-2 pt-2"><h4>ê°ë°í<!-- --> / <!-- -->ì±
ìì°êµ¬ì</h4><p class="mt-1 max-w-2xl text-sm text-gray-900">2012.01 ~ 2018.04</p><div class="mt-5"><dl><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>ì모ë í¼ìí½ ë¸ëë ì¹ì¬ì´í¸</h4><p class="text-i text-sm text-gray-500">2012.01 ~ 2018.03</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ì모ë í¼ìí½ ë¸ëëë¤ì ìê°í´ 주ë ìë¹ì¤ì
ëë¤.<br/>íì¬ ì¬ì§ê¸°ê° ëì ê°ì¥ ë§ì´ ì§ííìë ì
무ë¤ì´ìê³ , ì기ì ë°ë¼ ì ì í 기ì ë¤ì ì¬ì©íììµëë¤.<br/>ë¸ë¼ì°ì 를 ìí ì¬ì© 기ì ë° ì¸ì´ì ëí 주ì íë¦ì ìëì ê°ê³ , ë¶ê°ì ì¼ë¡ íìí íê²½ë¤ì 구ì±íììµëë¤.<br/>ActionScript 3.0 -> jQuery -> AngularJS -> React<br/><br/>ImageMagick, FFmpegì ê°ì ë¼ì´ë¸ë¬ë¦¬ë¤ì í¹ìí íë¡ëª¨ì
ì¬ì´í¸ë¤ìì ì´ë¯¸ì§ì ìì ì²ë¦¬ê° íìíì¬ ì¬ì©íììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬</li><li class="mt-1 first:mt-0">íë¡ì í¸ ê²¬ì ì°ì¶</li><li class="mt-1 first:mt-0">ì ê· ê¸°ë¥ ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ë¼ë¤ì¦ íë¡ëª¨ì
ì¬ì´í¸ ê°ë° ë° 9ê°êµ íì°(íêµ, ì¤êµ, ëë§, í콩, íêµ, ë² í¸ë¨, ì±ê°í´, ë§ë ì´ìì, ì¸ëë¤ìì)</li><li class="mt-1 first:mt-0">ì´ëì¤í리 íë¡ëª¨ì
ì¬ì´í¸ ê°ë°</li><li class="mt-1 first:mt-0">í리ë©ë¼ íë¡ëª¨ì
ì¬ì´í¸ ê°ë°</li><li class="mt-1 first:mt-0">VBíë¡ê·¸ë¨ íë¡ëª¨ì
ì¬ì´í¸ ê°ë°</li><li class="mt-1 first:mt-0">í¤ë¼ íë¡ëª¨ì
ì¬ì´í¸ ê°ë°</li><li class="mt-1 first:mt-0">íì¨ íë¡ëª¨ì
ì¬ì´í¸ ê°ë°</li><li class="mt-1 first:mt-0">ì¤íì íë¡ëª¨ì
ì¬ì´í¸ ê°ë°</li><li class="mt-1 first:mt-0">리리ì½ì¤ ë§ì´í¬ë¡ì¬ì´í¸ ê°ë°</li><li class="mt-1 first:mt-0">Verite ë§ì´í¬ë¡ì¬ì´í¸ ê°ë°</li><li class="mt-1 first:mt-0">VitalBeautie ë§ì´í¬ë¡ì¬ì´í¸ ê°ë°</li><li class="mt-1 first:mt-0">VBíë¡ê·¸ë¨ ë§ì´í¬ë¡ì¬ì´í¸ ê°ë°</li><li class="mt-1 first:mt-0">ìì´ì¤í ë§ì´í¬ë¡ì¬ì´í¸ ê°ë°</li><li class="mt-1 first:mt-0">ì ì¤ë 볼루ì
ë§ì´í¬ë¡ì¬ì´í¸ ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>ActionScript 3.0</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>PHP</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Javascript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>jQuery</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200">
16<svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>ImageMagick</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>FFmpeg</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Node.js</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Express</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>gulp</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Typescript</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>AngularJS</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>React</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Redux</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Redux Thunk</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>sass</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>webpack</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>AWS</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Serverless</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li></ul></div></dd></div><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>íê¸°ì¤ ë¤ì´ì²í¼í¬ë ìì¦5</h4><p class="text-i text-sm text-gray-500">2016.03 ~ 2016.05</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2">
16<h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">íê¸°ì¤ ë¤ì´ì²í¼í¬ë íë¡ëª¨ì
ì¬ì´í¸ìì ì¬ì©ëë API를 ê°ë°íììµëë¤.<br/>í´ë¼ì´ì¸í¸ë¡ë¶í° ì´ë¯¸ì§ë¥¼ ì ë¬ë°ì, ì´ë¯¸ì§ì íí° í¨ê³¼ë¥¼ ì ì©íê³ ì ëë©ì´ì
ì´ ë¤ì´ê° gif를 ìì±íê³ ë°íí´ ì£¼ììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬</li><li class="mt-1 first:mt-0">íë¡ì í¸ ê²¬ì ì°ì¶</li><li class="mt-1 first:mt-0">API ê¸°ë¥ ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ImageMagickì íì©íì¬ ì´ë¯¸ì§ íí° ëª¨ë ê°ë°</li><li class="mt-1 first:mt-0">FFmpeg를 íì©íì¬ gif ìì± ëª¨ë ê°ë°</li><li class="mt-1 first:mt-0">AWS Lambdaì API Gatewayë¡ API 구ì±</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>FFmpeg</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>ImageMagick</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Node.js</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>AWS</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li></ul></div></dd></div><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>ì 주íê³µ My Heroine ìì
무ë¹</h4><p class="text-i text-sm text-gray-500">2014.01 ~ 2014.03</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ì 주íê³µì íë¡ëª¨ì
ì¬ì´í¸ìì SNS 무ë¹ë¥¼ ì ìí ì ìë ìë¹ì¤ì
ëë¤.<br/>ì¬ì©ì ì´ë¯¸ì§ì íì´ì¤ë¶ ì¹êµ¬ë¤ì ì´ë¯¸ì§ë¥¼ ì
ë¡ëíë©´ ìì ë§ì SNS 무ë¹ë¥¼ ë§ë¤ ì ìììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ì ê· ê¸°ë¥ ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ì´ë¯¸ì§ íí° ëª¨ë ê°ë°</li><li class="mt-1 first:mt-0">ìì í¬ë¡ë§í¤ 모ë ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>ActionScript 3.0</span></li></ul></div></dd></div><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>롯ë°ì¼í° Fun view walk ì± (Windows)</h4><p class="text-i text-sm text-gray-500">2014.06 ~ 2014.09</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2">
16<h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ë² í¸ë¨ íë
¸ì´ 롯ë°ì¼í° ì ë§ëì ëí ì¤í¬ë¦°ì ì ìíë ìë¹ì¤ì
ëë¤.<br/>ì¬ì©ìê° í¤ì¤ì¤í¬ìì ì
ë ¥í í
ì¤í¸ë¥¼ ë¤ìí ì¸í°ëì
ì¼ë¡ ë³´ì¬ì£¼ê³ , ì¸ê³ ëìë¤ì ì 경과 ì°ì£¼ ë°°ê²½ ë± ë¤ìí í
ë§ê° ëì¤íë ì´ëììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ì ê· ê¸°ë¥ ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ë§íê²½ ì´ë¯¸ì§ í
ë§ë·° ê°ë°</li><li class="mt-1 first:mt-0">í
ì¤í¸ íí°í´ ì ëë©ì´ì
í
ë§ë·° ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Cinder</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>C++</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>OpenGL</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li></ul></div></dd></div><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>PlayAlarms ì± (iOS)</h4><p class="text-i text-sm text-gray-500">2013.04 ~ 2013.07</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ìì´ë°ì´ì
ë¶í° ì± ì¶ìê¹ì§ 주ëì ì¼ë¡ ì§íí ìë¹ì¤ì
ëë¤.<br/>ì침 기ìì ìí´ ìëì ì¤ì íë©´, ì¬ì©ììê² í¹ì 미ì
ì ìííë¼ë í¸ì ìë¦¼ì´ ì ì¡ëë©°,<br/>미ì
ìí ìë£ ì í´ë¹ í¸ì ìë¦¼ì´ ìëì¼ë¡ ì¢
ë£ëëë¡ ê°ë°íìµëë¤.<br/>ê´ê³ ìì´ ì¤êµ ì§ì ì íì¤í ì´ ì í¸ë¦¬í° ì¹´í
ê³ ë¦¬ìì 20ì를 ë¬ì±íìê³ , ì± ì ìë¶í° ë°°í¬ê¹ì§ì ê°ë° ê³¼ì ì 모ë í¼ì ì§ííììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ìë¹ì¤ 기í ë° ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">iOS ì í리ì¼ì´ì
ìí¤í
ì² ì¤ê³ ë° UI ê°ë°</li><li class="mt-1 first:mt-0">ë°ì벨 측ì 모ë ê°ë°</li><li class="mt-1 first:mt-0">ê°ìëì¼ì를 íì©í íë¤ê¸° 측ì 모ë ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Objective-C</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200">
16<svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Github</span></li></ul></div></dd></div><div class="py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:py-5 mt-5"><dt class="text-xl font-medium"><h4>ì´ëì¤í리 iCF ì± (iOS/Android)</h4><p class="text-i text-sm text-gray-500">2012.07 ~ 2012.10</p></dt><dd class="mt-3 sm:mt-1 text-sm text-gray-900 sm:col-span-2"><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¤ëª
</h5><div class="pl-2"><p class="">ì´ëì¤í리 iCF ì±ì ì´ëì¤í리ì CF를 ì ìí ì ìë ìë¹ì¤ì
ëë¤.<br/>ì¬ì©ìë¤ì´ ì§ì ì´¬ìí ììì¼ë¡ ìì ë§ì CF를 ì ìí ì ìê³ , ì´ê²ì Youtubeë¡ ê³µì í ì ìììµëë¤.</p></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ìí </h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ì ê· ê¸°ë¥ ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì
무</h5><div class="pl-2"><ul class="ml-4 list-disc"><li class="mt-1 first:mt-0">ìì ê°¤ë¬ë¦¬ ê°ë°</li><li class="mt-1 first:mt-0">Youtube Data API ì°ë 모ë ê°ë°</li></ul></div><h5 class="text-lg font-medium mt-6 mb-1 first-of-type:mt-0">ì¬ì© 기ì </h5><div class="pl-2"><ul role="list" class="flex flex-wrap children:mr-2 children:mt-2"><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>ActionScript 3.0</span></li><li><span class="inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium text-gray-900 ring-1 ring-inset ring-gray-200"><svg class="h-1.5 w-1.5 fill-blue-500" viewBox="0 0 6 6" aria-hidden="true"><circle cx="3" cy="3" r="3"></circle></svg>Adobe AIR</span></li></ul></div></dd></div></dl></div></div></section></section><section class="mt-12 pt-6 grid border-gray-100 border-t first-of-type:border-none"><h2 class="text-4xl font-bold text-gray-900 mb-12" id="ê·¸ ì¸ ê²½ë ¥"><span>ê·¸ ì¸ ê²½ë ¥</span><a title="Direct link to heading" class="anchor" href="#ê·¸ ì¸ ê²½ë ¥"><span class="icon icon-link"></span></a></h2><ul class="list-outside list-disc"><li class="mt-4">- <a href="https://www.kimcoder.io" target="_blank" class="hover:underline">https://www.kimcoder.io</a><ul class="ml-4 text-gray-500"><li class="ml-4 list-disc">ê°ì¸ 기ì ë¸ë¡ê·¸</li></ul></li><li class="mt-4">- <a href="https://www.npmjs.com/package/react-simple-image-slider" target="_blank" class="hover:underline">https://www.npmjs.com/package/react-simple-image-slider</a><ul class="ml-4 text-gray-500"><li class="ml-4 list-disc">2ê°ì DOMì¼ë¡ 구ííë React Carousel ë¼ì´ë¸ë¬ë¦¬</li></ul></li><li class="mt-4">- <a href="https://www.npmjs.com/package/react-sequence-player" target="_blank" class="hover:underline">https://www.npmjs.com/package/react-sequence-player</a><ul class="ml-4 text-gray-500"><li class="ml-4 list-disc">Image Sprite를 기ë°ì¼ë¡ ì ëë©ì´ì
ì 구íìì¼ì£¼ë React ë¼ì´ë¸ë¬ë¦¬</li></ul></li><li class="mt-4">- <a href="https://www.serverless.com/examples/serverless-instagram-crawler" target="_blank" class="hover:underline">https://www.serverless.com/examples/serverless-instagram-crawler</a><ul class="ml-4 text-gray-500"><li class="ml-4 list-disc">serverless íë ììí¬ì ìì 기ì¬</li><li class="ml-4 list-disc">hashtagì í¬ë¡¤ë§ 주기를 ì¤ì íë©´ instagramì í¼ë를 í¬ë¡¤ë§íì¬ DynamoDBì ì ì¥</li></ul></li><li class="mt-4">- <a href="https://www.serverless.com/examples/serverless-nextjs" target="_blank" class="hover:underline">https://www.serverless.com/examples/serverless-nextjs</a><ul class="ml-4 text-gray-500"><li class="ml-4 list-disc">serverless íë ììí¬ì ìì 기ì¬</li><li class="ml-4 list-disc">next.js ì í리ì¼ì´ì
ì awsì serverless 모ëë¡ ë°°í¬</li></ul></li></ul></section></div><div class="ml-10 hidden w-28 flex-shrink-0 xl:block"><div class="on-this-page sticky top-24 overflow-y-auto pb-16"><h4 class="mb-2 mt-2 text-sm font-semibold uppercase text-gray-500">ì´ë ¥ì</h4><ul class="space-y-3"><li class="text-sm"><a class="Toc_contents__link__rO__t" href="#_top">ì기ìê°</a></li></ul></div></div></div></div><!--$--><!--/$--></div>
16<script id="__NEXT_DATA__" type="application/json" crossorigin="">{"props":{"pageProps":{"career":[{"companyName":"ì¹´ì¹´ì¤íì´","beginAt":"2025-06","team":[{"teamName":"ê´ê³ í´ë ê´ê³ íë«í¼íí°","position":"íì","beginAt":"2025-06","projects":[{"title":"ê´ê³ íë«í¼","beginAt":"2025-06","description":"ì¹´ì¹´ì¤íì´ ê´ê³ íë«í¼ì ê´ê³ 주ì ì´ììê° ìº íì¸Â·ìì¬ë¥¼ ìì±íê³ , ë
¸ì¶ ì¡°ê±´ì ì¤ì íì¬ ì¹´ì¹´ì¤íì´ ìë¹ì¤ ì§ë©´ì ê´ê³ 를 ì§í·ê´ë¦¬í ì ìë íë«í¼ì
ëë¤.\nëí, ì¬ë´ì ì¬ë¬ ìë¹ì¤ìì ê´ê³ 를 ì¼ê´ëê² ìë¹í ì ìëë¡ ê´ê³ ë
¸ì¶/í¸ëí¹/ë ëë§ì íì¤íí SDKë ì´ìí©ëë¤.","role":[{"description":"FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬"},{"description":"íë«í¼ ê³ ëí ë° ì ê· ê¸°ë¥ ê°ë°"}],"works":[{"description":"ê´ê³ 주/ì´ììì© ê´ê³ ìë¹ íë«í¼ì 구ì¶íê³ ìº íì¸/ìì¬/ë
¸ì¶ ì¤ì íë¡ì°ë¥¼ ê³ ëííì¬ ì´ì í¨ì¨ì ê°ì "},{"description":"ìºìë ê´ê³ ìë¹ ê²°ê³¼ì ëí SDK ë´ë¶ ë
¸ì¶ ì ì´ ë¡ì§ì ê°ë°íì¬ ë
¸ì¶ íì§ ë° í¨ì¨ ê°ì "},{"description":"ì¸ë¶ ê´ê³ ì í´ì¬ ë°°ë를 SDKë¡ íì¤ííì¬ ê° ìë¹ì¤ ì§ë©´ì ìì½ê² ì ì©í ì ìëë¡ ì§ì, ëì
/ì´ì ë¹ì© ì ê°"},{"description":"ê´ê³ ìë¹ íë«í¼ ì½ë 커ë²ë¦¬ì§ ê°ì ( 0% â 20% )"}],"techStack":["React","Typescript","Next.js","React Hook Form","Zod","TanStack Query","sass","Github","changesets","Storybook","Vitest","React Testing Library","MSW"]},{"title":"íí","beginAt":"2025-09","description":"ì¹´ì¹´ì¤íì´ ííì ì¬ì©ìê° ì¹´ì¹´ì¤íì´ ì± ë° ì¹´ì¹´ì¤í¡ ë´ ì¹´ì¹´ì¤íì´ ìììì 리ìë/íë¡ëª¨ì
/ì í´ ííì íìíê³ ì°¸ì¬í ì ìë ì¬ì©ì ëì ìë¹ì¤ì
ëë¤.","role":[{"description":"FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬"},{"description":"ìë¹ì¤ ê³ ëí ë° ì ê· ê¸°ë¥ ê°ë°"}],"works":[{"description":"ì¸ë¶ ê´ê³ ì í´ì¬ ë° Google AdMob ê´ê³ ì°ë 기ë°ì ê´ê³ ë ë²ë¦¬ì§ 기ë¥ì ê°ë°Â·ì´ìíì¬ ì ë§¤ì¶ KPI 목í ëë¹ ì½ 110% ë¬ì±"},{"description":"Google AdMob ê´ê³ 리ìë 미ì§ê¸ ì´ì를 3% â 0%ë¡ ê°ì íì¬ ë¦¬ìë ì 뢰ë ë° ì¬ì©ì ê²½í ìì í"},{"description":"íë¡ëª¨ì
/리ìë íí ì§ë©´ ê³ ëí ë° ì ê· ê¸°ë¥ ê°ë°ì íµí´ ì¬ì©ì ì°¸ì¬ íë¦(íì â ì°¸ì¬ â ì í) ê°ì "}],"techStack":["React","Typescript","Next.js","TanStack Query","Github","Storybook","Vitest","React Testing Library","MSW"]}]}]},{"companyName":"íêµì ì©ë°ì´í°","beginAt":"2024-05","endAt":"2025-06","team":[{"teamName":"FE íìì²´","position":"ì±í° 리ë","beginAt":"2024-05","endAt":"2025-06","projects":[{"title":"FE íìì²´","beginAt":"2024-05","endAt":"2025-06","description":"ì¬ë´ FE ê°ë° íê²½ì íì¤íì ìì°ì± í¥ìì ìí´ FE íìì²´ë¼ë ê°ìì¡°ì§ì ì°¸ì¬íì¬ ë¤ìí 기ì ì 기ì¬ì ê°ì íëì ìííìµëë¤.","role":[{"description":"ì±í° 리ë"}],"works":[{"description":"ì¬ë´ FE íì¤ ê¸°ì ì ì립"},{"description":"ìë¹ì¤ ë° ì´ë민 ì í리ì¼ì´ì
ì ì¥ì í
í릿 ì ê³µì¼ë¡ FE ê°ë°ìë¤ì ìì°ì± ê°ì "},{"description":"FE ê³µíµ npm í¨í¤ì§ì ë°°í¬ ë° ì림 íë¡ì¸ì¤ ìëíë¡ ì
무 í¨ì¨ ê°ì "},{"description":"Next.js ì¤ì ì ìí íë¬ê·¸ì¸ ìì¤í
ê³¼ ë¤ìí íë¬ê·¸ì¸ì ê°ë°Â·ì ê³µíì¬ ì¬ë´ FE ìë¹ì¤ë¤ì ì´ì í¨ì¨ ê°ì "},{"description":"FE ê°ë°ìë¤ê³¼ì 1:1 미í
ê³¼ Meet-upì¼ë¡ 기ì í¼ëë°± ì ê³µ ë° ê°ë° 문íì í¸ë ë íì°ì 기ì¬"}],"techStack":["React","Typescript","Tailwind CSS","Github","changesets","Storybook","Vite","Vitest","Rollup","Datadog"]}]},{"teamName":"구ë
í","position":"íì","beginAt":"2024-05","endAt":"2025-06","projects":[{"title":"ìºìë
¸í¸ íë¬ì¤ 멤ë²ì","beginAt":"2024-05","endAt":"2025-06","description":"ìºìë
¸í¸ íë¬ì¤ 멤ë²ìì ì¥ë¶, ë§ì¼, ê¸ìµ, ê´ê³ ë± ìºìë
¸í¸ì 주ì 기ë¥ì ì ë³íì¬ ë©¤ë²ì ì ì© ííì¼ë¡ ì ê³µíë ìë¹ì¤ì
ëë¤.\nìºìë
¸í¸ ì±ì ì¹ë·°ë¥¼ íµí´ ì ê³µëë©° íì¬ ë§¤ì¶ì íµì¬ ìí ì ë´ë¹íê³ ìë ìë¹ì¤ì
ëë¤.","role":[{"description":"FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬"},{"description":"ìë¹ì¤ ê³ ëí ë° ì ê· ê¸°ë¥ ê°ë°"}],"works":[{"description":"기존 ê°ê²©ë³´ë¤ 2ë°° ë¹ì¼ ì ê· ë©¤ë²ì íë ì¶ì ë° ê°ì
ì ë ìì
ì íµí ë§¤ì¶ ëª©í 90% ë¬ì±"},{"description":"ìë¹ì¤ ì í´ ë° íë¡ëª¨ì
기ë°ì ì¬ë¬ 멤ë²ì ê°ì
íì´ì§ ì ìì¼ë¡ ê°ì
ì 목í 99% ë¬ì±","subDescription":["ë°ë³µ ìì
í´ì를 ìí´ ëª¨ëí ìì¤í
ìì
ì ì ìíê³ ìì¤í
ì¤ê³, 구íì íµí´ ìì°ì± í¥ì"]},{"description":"멤ë²ì íëë³ ê¸°ë¥ ì구를 í ì ìë ë¼ì´ì§ íì´ì§ ê°ë°ë¡ ì ì© íí ë° ì í´ ìë¹ì¤ ê°í"},{"description":"모ë íëë ì´ì
ì íì©íì¬ ì¬ë´ ì´ë민ì 멤ë²ì ëë©ì¸ íµí©ì¼ë¡ ì¸ì¦ê³¼ 리ìì¤ ê¶í ê´ë¦¬ í¨ì¨í"},{"description":"ì¹ ì±ë¥ ê°ì ","subDescription":["RSC ì¬ì©, BTF ììì 리ìì¤ ë ì´ì§ ë¡ë© ìì
ì íµí´ ë´ë§¤ì¥ íì´ì§ì LCP ì½ 65% ê°ì ( 2.xì´ â 0.7ì´ )"]},{"description":"ê°ë° íê²½ ê°ì ","subDescription":["ë°ì´í°ë
ì RUM, APMì íì©í 모ëí°ë§ í경과 E2E í
ì¤í¸ 구ì¶ì¼ë¡ ì¥ì íì§ë¥¼ ê°ííì¬ ìë¹ì¤ ìì ì± í¥ì","커ì¤í
Next.js ë¡ê·¸ 모ëì ìì±í´ ìë¹ì¤ ì´ìê³¼ 모ëí°ë§ íê²½ ê°ì "]}],"techStack":["React","Typescript","Next.js","React Hook Form","TanStack Query","Tailwind CSS","Github","Storybook","Jest","React Testing Library","MSW","Vite","Module Federation","AWS","Datadog"]}]}]},{"companyName":"ì°ìííì ë¤","beginAt":"2021-05","endAt":"2024-05","team":[{"teamName":"ì
ë¬ì¹íë¡ í¸ê°ë°í","position":"íì","beginAt":"2022-10","endAt":"2024-05","projects":[{"title":"ì°ìíë¼ì´ë¸ë¬ë¦¬","beginAt":"2023-05","endAt":"2024-05","description":"ì°ìííì ë¤ì ì ì¬ íë¡ í¸ìë ë¼ì´ë¸ë¬ë¦¬ ì ìì ìí TFë¡ ë¼ì´ë¸ë¬ë¦¬ì ìíê³ë¥¼ 구ì¶íììµëë¤.\nTFë ê° íë¡ í¸ìë íì ìëì´ ìì§ëì´ë¤ë¡ 구ì±ëììµëë¤.","role":[{"description":"FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬ "},{"description":"ì ê· ë¼ì´ë¸ë¬ë¦¬ 구ì¶"}],"works":[{"description":"ìí¬íë¡ì° êµ¬ì¶ ë° ë¼ì´ë¸ë¬ë¦¬ ì´ì ì ì±
ì립"}
16,{"description":"React Custom Hook ë¼ì´ë¸ë¬ë¦¬ ê°ë°","subDescription":["ì½ë 커ë²ë¦¬ì§ 100% ë¬ì±"]}],"techStack":["React","Typescript","Turborepo","Vite","Vitest","Docusaurus","Storybook","Gitlab","AWS"]},{"title":"배민ì¬ì¥ë ì±","beginAt":"2022-10","endAt":"2024-05","description":"배민ì¬ì¥ë ì±ì ì¬ì¥ëì´ ì±ì íµí´ 주문 ì²ë¦¬, ë°°ë¬ ì¤ì , ê°ê² ì´ìì ê´ë ¨ë ì¤ì ë¤ì í ì ìë ìë¹ì¤ì
ëë¤.\n주ì 기ë¥ë¤ì ì¹ë·°ë¡ ì ê³µíë ìë¹ì¤ì´ë©°, ì±ì 주문ì ì ì¹ë·° ê°ë° íí¸ ë¦¬ëë¡ íë¡ì í¸ë¥¼ ì§ííììµëë¤.","role":[{"description":"FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬"},{"description":"ìë¹ì¤ ê³ ëí ë° ì ê· ê¸°ë¥ ê°ë°"}],"works":[{"description":"ë°°ë¬ì민족 ì»¤ë¨¸ì¤ ì£¼ë¬¸ì ì ê¸°ë¥ ê°ë°"},{"description":"배민ì¬ì¥ë ì± ê°ë³ í°í¸ ê¸°ë¥ ê°ë°"},{"description":"배민ì¬ì¥ë ì± ì¹ë·° ë¸ë¦¿ì§ SDK êµ¬ì¶ ë° ê°ì´ë 문ì ì ê³µ"},{"description":"Storybook, MSWì íì©íì¬ UI ê°ë° ë° ê²ì¦ í¸ë¦¬ì± ì¦ë","subDescription":["Merge Requestì í리뷰 기ë¥ì ì ê³µíì¬ ìê°ì 리뷰 íê²½ ëì
","ê°ë° íê²½ìì ê°ë³í°í¸ Addonì ì ê³µíì¬ ì±ì¼ë¡ë¶í° ë°ìì¤ë í°í¸ í¬ê¸° ê°ì 모ìí ì ìëë¡ ì ê³µ"]},{"description":"ê°ë° íê²½ ê°ì ","subDescription":["ì í리ì¼ì´ì
ë²ë¤ë¬ ì í ( ë¡ì»¬ 구ë ìë 42ë°° â, CI ë¹ë ìë 1.3ë°° â)","ì¼í¸ë¦¬, ê·¸ë¼íë ëìë³´ë 구ì±ì¼ë¡ ì¸í 모ëí°ë§/ë©í¸ë¦ 측ì íê²½ 구ì¶","ë¶íìíê² ì¬ì©ëê³ ìë Redux ê´ë ¨ ì½ë를 React Queryë¡ ì ííì¬ ì½ë ë³µì¡ë ë° ì¬ì©ì± ê°ì "]},{"description":"ì¹ ì±ë¥ ê°ì ","subDescription":["ì½ë ì¤í리í
, í¸ë¦¬ìì´í¹ ë±ì¼ë¡ Overall LCP ì½ 40% ì´ì ê°ì ( 2.xì´ â 0.8 ~ 1.2ì´ )","ì¹ìë² ì ì 리ìì¤ ìë¹ ë°©ì ë³ê²½ì¼ë¡ ì¹ìë² ë¶í ê°ì ( ì½ 90% â )"]},{"description":"ì½ë 커ë²ë¦¬ì§ ê°ì ( 20% â 60% )"}],"techStack":["React","Typescript","Redux","Redux Saga","React Query","Express","styled-components","TS-Pattern","Gitlab","Storybook","MSW","React Testing Library","Vitest","Vite","AWS","Turborepo","Rspress","tsup","Slack Bolt"]}]},{"teamName":"배민ìíì¹íë¡ í¸ê°ë°í","position":"íì","beginAt":"2021-05","endAt":"2022-10","projects":[{"title":"배민ìí","beginAt":"2021-05","endAt":"2022-09","description":"배민ìíë ì¬ì¥ëê»ì ììì¬ ë° ë¹íì 구매í ì ìë ìë¹ì¤ì
ëë¤.\nB2B ì´ì»¤ë¨¸ì¤ íë¡ í¸, ê¸°ë¥ ê´ë¦¬í ì ìë ì´ë민, ì¸ë¶ í매ìê° ì
ì íì¬ ì¬ì©í ì ìë ì
ë¬ ì´ë민ì ì´ìíììµëë¤.","role":[{"description":"FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬"},{"description":"ìë¹ì¤ ê³ ëí ë° ì ê· ê¸°ë¥ ê°ë°"}],"works":[{"description":"í매ì¤ê° ë¹ì§ëì¤ ëª¨ë¸ ì í","subDescription":["ì¸ë¶ í매ì¬ë¤ì´ ì¬ì©í ì ìë ì
ë¬ ì´ë민 ìë¹ì¤ 구ì¶","ìí ê´ë¦¬ / ê°ê²© ê´ë¦¬ / ì¹´í
ê³ ë¦¬ ê´ë¦¬ ê¸°ë¥ ê°ë°","ìì
ì íµí ëë ìí ì´ë¯¸ì§ ë±ë¡ íë¡ì¸ì¤ ê°ì ( API ì²ë¦¬ ìê° ì½ 80% â )"]},{"description":"배민ìí 모ë°ì¼ ë©ì¸íë©´ í ê¸°ë¥ ê°ë°"},{"description":"배민ìí ì¬ì©ì ë§ì¶¤ ë°ì£¼ì ê¸°ë¥ ê°ë°"},{"description":"배민ìí ì´ë민 ìë¹ì¤ íì¥","subDescription":["ì¬ë´ì ì ì¬ ì
16ë¹ì¤ë¥¼ íëì íë«í¼ìì ê´ë¦¬í ì ìëë¡ íì¥íì¬ ë°°ë¯¼ë¬¸ë°©êµ¬ ì¼í몰ì 배민ìí ì´ë민ìì ê´ë¦¬í ì ìëë¡ êµ¬í"]},{"description":"ëìì¸ìì¤í
ì´ì","subDescription":["모ë
¸ë í¬í를 íµíì¬ ì¼í몰과 ì´ë민 ì»´í¬ëí¸ë¤ì í¨í¤ì§ ë¶ë¦¬","í¨í¤ì§ë³ ë²ì ë ë° ë°°í¬ ì ëµ ì립"]},{"description":"ê°ë° íê²½ ê°ì ","subDescription":["env-launcherë¼ë ë¼ì´ë¸ë¬ë¦¬ ì ìì íµí´ 10ê° ì´ìì¸ ê°ë°ì¡´ íê²½ì ê°ë°/ë°°í¬ íê²½ ê°ì ","Redux ê´ë ¨ ë ê±°ì ì½ë를 Redux Toolkitê³¼ React Queryë¡ ì ííì¬ ì½ë ë³µì¡ë ê°ì ","ìì½ê² ì¬ì©í ì ìë Infinite Scroll ì»´í¬ëí¸ ê°ë°ì íµí ì¬ë¬ ì§ë©´ì ì½ë í¨í´ ì 리 ë° ë³µì¡ë ê°ì "]},{"description":"ì¹ ì±ë¥ ê°ì ","subDescription":["ì´ë¯¸ì§ ë ì´ì§ ë¡ë ê¸°ë¥ ì¶ê°ë¡ ì¼í몰 ë©ì¸ íì´ì§ììë§ 200ì¬ê° ì´ìì ë¶íì ìì² ì ê°ì"]}],"techStack":["React","Typescript","Next.js","React Hook Form","Redux Toolkit","Redux Saga","React Query","Express","styled-components","Gitlab","Storybook","Jest","React Testing Library","Lerna","MSW","AWS"]}]}]},{"companyName":"ì¹´ì¹´ì¤íì´","beginAt":"2020-08","endAt":"2021-05","team":[{"teamName":"ê¸ìµì¬ì
í´ë í¬ìíí°","position":"íì","beginAt":"2020-08","endAt":"2021-05","projects":[{"title":"ì½ì¤í¼ ì§ìì ë°ë¥¸ ì¸ë±ì¤/리ë²ì¤ íë í¬ì","beginAt":"2020-08","endAt":"2021-02","description":"ì¼ë°ì ì¸ íë ìë¹ì¤ì ë¤ë¥´ê² ì¤ë½ì´ ê°ë¯¸ë ì ê· íë 매매 ìë¹ì¤ë¥¼ 구ì¶íììµëë¤.\nì¬ë´ CBTê¹ì§ ì§ííìì§ë§, ìì½ê²ë ì»´íë¼ì´ì¸ì¤ ì´ìë¡ ì¸í´ ìë¹ì¤ê° ë°ì¹ëì§ë 못íììµëë¤.\nì¹´ì¹´ì¤íì´ìì ìµì´ë¡ React Query를 ëì
íì¬ ê°ë°íìê³ , ê·¸ íì ì¬ì©ì± ë±ì ì ì¬ì ì ííììµëë¤.","role":[{"description":"FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬"},{"description":"ì ê· ìë¹ì¤ 구ì¶"}],"works":[{"description":"기ì ì¤í, 컨벤ì
ì ì, ë°°í¬, 모ëí°ë§ ë± ì ê· ê°ë° íê²½ 구ì¶"},{"description":"React Query를 íì©í ì í ì½ë ë° í
ì¤í¸ ì½ë ì¤ê³"},{"description":"ì§ì ì°¨í¸/íë 매ì/ì¬ì©ì ëí¹ ë± ë¤ìì ê¸°ë¥ ê°ë°"},{"description":"Storybook, Mirage JS를 íì©íì¬ UI ê°ë° ë° ê²ì¦ í¸ë¦¬ì± ì¦ë"}],"techStack":["React","React Query","nivo","Typescript","sass","Jest","React Testing Library","Mirage JS","Storybook","webpack","Github"]},{"title":"P2P ë¶ëì° í¬ì","beginAt":"2020-11","endAt":"2021-02","description":"ë¶ëì° P2P í¬ì ìë¹ì¤ë¥¼ ì´ìíììµëë¤.\nì´ ìë¹ì¤ë ì¹´ì¹´ì¤í¡ ì± ë´ì ì¹´ì¹´ì¤íì´ ìë¹ì¤ ìì, ê·¸ë¦¬ê³ ì¹´ì¹´ì¤íì´ ì±ìì ì ê·¼í ì ìììµëë¤.\nìì½ê²ë íì¬ë ì´ìì´ ì¢
ë£ëììµëë¤.","role":[{"description":"FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬"},{"description":"ìë¹ì¤ ê³ ëí"}],"works":[{"description":"React Query를 ëì
íì¬ í¬ìë´ì ëª©ë¡ ì§ë©´ ì½ë ë³µì¡ë ê°ì"},{"description":"ì¹´ì¹´ì¤íì´ íµí©ì¹ë·° SDK ì ì©"},{"description":"ì í´ì¬ë¥¼ ìí ì¹´ì¹´ì¤íì´ íµí©ì¹ë·° SDK ë¸ë¦¿ì§ ê°ë° ë° ê°ì´ë ì ê³µ"},{"description":"ì¹ë·° ë¤ë¡ ê°ê¸° ì ì¬ì©ìê° ë³´ê³ ìë íë©´ì´ ì ì§ëëë¡ ì¬ì©ì± ê°ì "},{"description":"Storybook, Mirage JS를 íì©íì¬ UI ê°ë° ë° ê²ì¦ í¸ë¦¬ì± ì¦ë"},{"description":"ê°ë° íê²½ ê°ì ","subDescription":["@babel/polyfill, awesome-ts-loader, tslintì ê°ì ë ì´ì ì ì§ëì§ ìë ë¼ì´ë¸ë¬ë¦¬ ì ê±°","babel-loader, core-js, eslint, prettier ì¤ì¹ ë° ì ì©"]}],"techStack":["React","React Query","Typescript","sass","Jest","React Testing Library","Mirage JS","Storybook","webpack","Github"]},{"title":"íë í¬ì","beginAt":"2020-08","endAt":"2020-10","description":"íë 매매 ìë¹ì¤ë¥¼ ì´ìíììµëë¤.\nì´ ìë¹ì¤ë ì¹´ì¹´ì¤í¡ ì± ë´ì ì¹´ì¹´ì¤íì´ ìë¹ì¤ ìì, ê·¸ë¦¬ê³ ì¹´ì¹´ì¤íì´ ì±ìì ì ê·¼í ì ìììµëë¤.","role":[{"description":"ìë¹ì¤ ê³ ëí"}],"works":[{"description":"ë¨ íëì íì¼ë¡ë§ ëì´ìë js ì½ë를 ë¶í ì²ë¦¬íì¬ Overall LCP ì½ 30% ê°ì "},{"description":"ê°ë° íê²½ ê°ì ","subDescription":["@babel/polyfill, awesome-ts-loader, tslintì ê°ì ë ì´ì ì ì§ëì§ ìë ë¼ì´ë¸ë¬ë¦¬ ì ê±°","babel-loader, core-js, eslint, prettier ì¤ì¹ ë° ì ì©"]}],"techStack":["React","Typescript","Mobx","sass","Jest","webpack","Github"]},{"title":"í¬ì í","beginAt":"2020-12","endAt":"2021-01","description":"ì¹´ì¹´ì¤íì´ í¬ì ìë¹ì¤ë¤ê³¼ ëì í¬ì íí©ì ë³¼ ì ìë íì´ì§ë¥¼ ì´ìíììµëë¤.\nì´ íì´ì§ë ì¹´ì¹´ì¤í¡ ì± ë´ì ì¹´ì¹´ì¤íì´ ìë¹ì¤ ìì, ê·¸ë¦¬ê³ ì¹´ì¹´ì¤íì´ ì±ì ë©ì¸ í íì´ì§ë¡ ì ê³µëììµëë¤.","role":[{"description":"FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬"},{"description":"ìë¹ì¤ ê³ ëí"}],"works":[{"description":"ì¹´ì¹´ì¤íì´ íµí©ì¹ë·° SDK ì ì©"},{"description":"ë¤í¬ 모ë íë©´ ëì"},{"description":"ê°ë° íê²½ ê°ì ","subDescription":["@babel/polyfill, awesome-ts-loader, tslintì ê°ì ë ì´ì ì ì§ëì§ ìë ë¼ì´ë¸ë¬ë¦¬ ì ê±°","babel-loader, core-js, eslint, prettier ì¤ì¹ ë° ì ì©"]}],"techStack":["React","Typescript","sass","Jest","webpack","Github"]}]}]},{"companyName":"ìë²ì¤ì»´í¼ë","beginAt":"2020-06","endAt":"2020-08","team":[{"teamName":"ì¹ê°ë°í","position":"íì","beginAt":"2020-06","endAt":"2020-08","projects":[{"title":"ìë²ì¤","beginAt":"2020-06","endAt":"2020-07","description":"ìë²ì¤ì ì¹ ë²ì ì ì´ìíììµëë¤.","role":[{"description":"ìë¹ì¤ ê³ ëí ë° ì ê· ê¸°ë¥ ê°ë°"}],"works":[{"description":"ìí°ì¤í¸ 커뮤ëí° ììì 멤ë²ì íí ê¸°ë¥ ê°ë°"}],"techStack":["React","Typescript","Mobx","styled-components","i18n","webpack","Storybook","Github"]},{"title":"íì´ëí ìí íë¡ëª¨ì
","beginAt":"2020-07","endAt":"2020-08","description":"ë°©íìë
ë¨ ë©¤ë²ë¤ì 모í°ë¸ í íì´ëíì´ë¼ë ìºë¦í°ì ìíì íë¡ëª¨ì
íë ì¬ì´í¸ë¥¼ 구ì¶íììµëë¤.\n미ëì´ ì¿¼ë¦¬ë¥¼ ì´ì©íì¬ ìë²ì¤ ì± ë´ ì¹ë·° ê·¸ë¦¬ê³ ëª¨ë°ì¼ \u0026 ë°ì¤í¬í± íê²½ì ì§ìíììµëë¤.\nê¸ë¡ë², 미êµ, ì¼ë³¸ Shop ì¤
16ì ê³¼ ê·¸ì ë°ë¥¸ ë¤êµì´ë ì§ìíììµëë¤.","role":[{"description":"ì ê· íë¡ëª¨ì
구ì¶"}],"works":[{"description":"기ì ì¤í, 컨벤ì
ì ì, ë°°í¬ ë± ì ê· ê°ë° íê²½ 구ì¶"},{"description":"íì´ëí 컨ì
, ìí ìê° ê¸°ë¥ ê°ë°"},{"description":"ì¬ë¬ ê°ê²ì ì¸ì´ë¥¼ ì§ìíê³ ìë ìë²ì¤ìµ ìíì ë¥ë§í¬ 모ë ê°ë°"}],"techStack":["React","Typescript","Mobx","styled-components","i18n","webpack","Github"]},{"title":"ìë²ì¤ìµ","beginAt":"2020-07","endAt":"2020-07","description":"ìë²ì¤ìµì ì´ë민ì ì´ìíììµëë¤.\n벡ìë í 리ìì¤ ë¶ì¡±ì¼ë¡ ë²ê·¸ ìì ë° ì±ë¥ ê°ì ë±ì ì
무를 ì§ìíììµëë¤.","role":[{"description":"ìë¹ì¤ ê³ ëí"}],"works":[{"description":"ë°°ì¡ì§ ê¶ì ì¤ì ì§ë©´ì ë ëë§ ì±ë¥ ê°ì "}],"techStack":["Angular","webpack"]}]}]},{"companyName":"ì°ìííì ë¤","beginAt":"2018-10","endAt":"2020-05","team":[{"teamName":"배민ìíê°ë°í","position":"íì","beginAt":"2018-10","endAt":"2020-05","projects":[{"title":"배민ìí","beginAt":"2018-10","endAt":"2020-05","description":"배민ìíë ì¬ì¥ëê»ì ììì¬ ë° ë¹íì 구매í ì ìë ìë¹ì¤ì
ëë¤.\nê°ë°íì ì´ê¸° 멤ë²ë¡ í©ë¥ í, ê³ ëëª°ë¡ ì´ìëê³ ììë ìë¹ì¤ë¥¼ ì ì§ì ì¼ë¡ ë´ì¬íìì¼°ìµëë¤.\në´ì¬íê° ìë£ë íìë ìë¹ì¤ ê´ë¦¬ ì´ë민 ë° í매ì¤ê° ë¹ì§ëì¤ ëª¨ë¸ ì íì ìí´ ì
ë¬ ì´ë민ì 구ì¶íì¬ ìë¹ì¤ ê³ ëí를 ì§ííììµëë¤.\nëí, ì»´í¬ëí¸ë¥¼ ê³µíµì¼ë¡ ì¬ì©í ì ìëë¡ ë°°ë¯¼ìí ëìì¸ ìì¤í
ë 구ì¶íììµëë¤.","role":[{"description":"FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬"},{"description":"ìë¹ì¤ êµ¬ì¶ ë° ì ê· ê¸°ë¥ ê°ë°"},{"description":"ìë¹ì¤ ê³ ëí"}],"works":[{"description":"기ì ì¤í, 컨벤ì
ì ì, ë°°í¬, 모ëí°ë§ ë± ì ê· ê°ë° íê²½ 구ì¶"},{"description":"배민ìí ìë¹ì¤ ìì²´ íë«í¼ êµ¬ì¶ ( ê³ ë몰 ê¸°ë¥ 100% 구í )","subDescription":["ë©ì¸ / ê²ì / ìíëª©ë¡ ë° ìì¸ / ì¥ë°êµ¬ë / 주문 / íì / ëììí / ìí ë± ê¸°ë¥ ê°ë°","모ë°ì¼, ë°ì¤í¬í± ë¸ë¼ì°ì 를 ì§ìí기 ìí ì í리ì¼ì´ì
ì¤ê³","ìë¹ì¤ ë´ì¬íê° ìë£ë기 ì ê¹ì§ ê³ ë몰 ì´ì"]},{"description":"ìë¹ì¤ ê³ ëí를 ìí ì´ë민과 ì¸ë¶ í매ì¬ìì ì¬ì©í ì ìë ì
ë¬ ì´ë민 구ì¶","subDescription":["íë§¤ì¬ ê´ë¦¬ / ìí ê´ë¦¬ / ê°ê²© ê´ë¦¬ / 주문 ê´ë¦¬ / ë°°ì¡ ê´ë¦¬ ë± ì£¼ì ê¸°ë¥ ê°ë°","ë¨ì¼ ìì¤ë¡ 2ê°ì ìë¹ì¤ê° ì ê³µëëë¡ ì í리ì¼ì´ì
ì¤ê³"]},{"description":"배민ìí ëìì¸ ìì¤í
구ì¶","subDescription":["Button / Input / Select / Modal / Pagination / Table ë± ì£¼ì ì»´í¬ëí¸ ê°ë°","ë²ì ë ë° ë°°í¬ ì ëµ ì립"]}],"techStack":["React","Next.js","Redux","Redux Saga","Typescript","styled-components","webpack","Rollup","Storybook","Node.js","Express","Github","AWS"]}]}]},{"companyName":"ì´ëëë ì¸ë³´ì°","beginAt":"2012-01","endAt":"2018-04","team":[{"teamName":"ê°ë°í","position":"ì±
ìì°êµ¬ì","beginAt":"2012-01","endAt":"2018-04","projects":[{"title":"ì모ë í¼ìí½ ë¸ëë ì¹ì¬ì´í¸","beginAt":"2012-01","endAt":"2018-03","description":"ì모ë í¼ìí½ ë¸ëëë¤ì ìê°í´ 주ë ìë¹ì¤ì
ëë¤.\níì¬ ì¬ì§ê¸°ê° ëì ê°ì¥ ë§ì´ ì§ííìë ì
무ë¤ì´ìê³ , ì기ì ë°ë¼ ì ì í 기ì ë¤ì ì¬ì©íììµëë¤.\në¸ë¼ì°ì 를 ìí ì¬ì© 기ì ë° ì¸ì´ì ëí 주ì íë¦ì ìëì ê°ê³ , ë¶ê°ì ì¼ë¡ íìí íê²½ë¤ì 구ì±íììµëë¤.\nActionScript 3.0 -\u003e jQuery -\u003e AngularJS -\u003e React\n\nImageMagick, FFmpegì ê°ì ë¼ì´ë¸ë¬ë¦¬ë¤ì í¹ìí íë¡ëª¨ì
ì¬ì´í¸ë¤ìì ì´ë¯¸ì§ì ìì ì²ë¦¬ê° íìíì¬ ì¬ì©íììµëë¤.","role":[{"description":"FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬"},{"description":"íë¡ì í¸ ê²¬ì ì°ì¶"},{"description":"ì ê· ê¸°ë¥ ê°ë°"}],"works":[{"description":"ë¼ë¤ì¦ íë¡ëª¨ì
ì¬ì´í¸ ê°ë° ë° 9ê°êµ íì°(íêµ, ì¤êµ, ëë§, í콩, íêµ, ë² í¸ë¨, ì±ê°í´, ë§ë ì´ìì, ì¸ëë¤ìì)"},{"description":"ì´ëì¤í리 íë¡ëª¨ì
ì¬ì´í¸ ê°ë°"},{"description":"í리ë©ë¼ íë¡ëª¨ì
ì¬ì´í¸ ê°ë°"},{"description":"VBíë¡ê·¸ë¨ íë¡ëª¨ì
ì¬ì´í¸ ê°ë°"},{"description":"í¤ë¼ íë¡ëª¨ì
ì¬ì´í¸ ê°ë°"},{"description":"íì¨ íë¡ëª¨ì
ì¬ì´í¸ ê°ë°"},{"description":"ì¤íì íë¡ëª¨ì
ì¬ì´í¸ ê°ë°"},{"description":"리리ì½ì¤ ë§ì´í¬ë¡ì¬ì´í¸ ê°ë°"},{"description":"Verite ë§ì´í¬ë¡ì¬ì´í¸ ê°ë°"},{"description":"VitalBeautie ë§ì´í¬ë¡ì¬ì´í¸ ê°ë°"},{"description":"VBíë¡ê·¸ë¨ ë§ì´í¬ë¡ì¬ì´í¸ ê°ë°"},{"description":"ìì´ì¤í ë§ì´í¬ë¡ì¬ì´í¸ ê°ë°"},{"description":"ì ì¤ë 볼루ì
ë§ì´í¬ë¡ì¬ì´í¸ ê°ë°"}],"techStack":["ActionScript 3.0","PHP","Javascript","jQuery","ImageMagick","FFmpeg","Node.js","Express","gulp","Typescript","AngularJS","React","Redux","Redux Thunk","sass","webpack","AWS","Serverless","Github"]},{"title":"íê¸°ì¤ ë¤ì´ì²í¼í¬ë ìì¦5","beginAt":"2016-03","endAt":"2016-05","description":"íê¸°ì¤ ë¤ì´ì²í¼í¬ë íë¡ëª¨ì
ì¬ì´í¸ìì ì¬ì©ëë API를 ê°ë°íììµëë¤.\ní´ë¼ì´ì¸í¸ë¡ë¶í° ì´ë¯¸ì§ë¥¼ ì ë¬ë°ì, ì´ë¯¸ì§ì íí° í¨ê³¼ë¥¼ ì ì©íê³ ì ëë©ì´ì
ì´ ë¤ì´ê° gif를 ìì±íê³ ë°íí´ ì£¼ììµëë¤.","role":[{"description":"FE ê°ë° 리ë ë° ì¼ì ê´ë¦¬"},{"description":"íë¡ì í¸ ê²¬ì ì°ì¶"},{"description":"API ê¸°ë¥ ê°ë°"}],"works":[{"description":"ImageMagickì íì©íì¬ ì´ë¯¸ì§ íí° ëª¨ë ê°ë°"},{"description":"FFmpeg를 íì©íì¬ gif ìì± ëª¨ë ê°ë°"},{"description":"AWS Lambdaì API Gatewayë¡ API 구ì±"}],"techStack":["FFmpeg","ImageMagick","Node.js","AWS","Github"]},{"title":"ì 주íê³µ My Heroine ìì
무ë¹","beginAt":"2014-01","endAt":"2014-03","description":"ì 주íê³µì íë¡ëª¨ì
ì¬ì´í¸ìì SNS 무ë¹ë¥¼ ì ìí ì ìë ìë¹ì¤ì
ëë¤.\nì¬ì©ì ì´ë¯¸ì§ì íì´ì¤ë¶ ì¹êµ¬ë¤ì ì´ë¯¸ì§ë¥¼ ì
ë¡ëíë©´ ìì ë§ì SNS 무ë¹ë¥¼ ë§ë¤ ì ìììµëë¤.","role":[{"description":"ì ê· ê¸°ë¥ ê°ë°"}],"works":[{"description":"ì´ë¯¸ì§ íí° ëª¨ë ê°ë°"},{"description":"ìì í¬ë¡ë§í¤ 모ë ê°ë°"}],"techStack":["ActionScript 3.0"]},{"title":"롯ë°ì¼í° Fun view walk ì± (Windows)","beginAt":"2014-06","endAt":"2014-09","description":"ë² í¸ë¨ íë
¸ì´ 롯ë°ì¼í° ì ë§ëì ëí ì¤í¬ë¦°ì ì ìíë ìë¹ì¤ì
ëë¤.\nì¬ì©ìê° í¤ì¤ì¤í¬ìì ì
ë ¥í í
ì¤í¸ë¥¼ ë¤ìí ì¸í°ëì
ì¼ë¡ ë³´ì¬ì£¼ê³ , ì¸ê³ ëìë¤ì ì 경과 ì°ì£¼ ë°°ê²½ ë± ë¤ìí í
ë§ê° ëì¤íë ì´ëììµëë¤.","role":[{"description":"ì ê· ê¸°ë¥ ê°ë°"}],"works":[{"description":"ë§íê²½ ì´ë¯¸ì§ í
ë§ë·° ê°ë°"},{"description":"í
ì¤í¸ íí°í´ ì ëë©ì´ì
í
ë§ë·° ê°ë°"}],"techStack":["Cinder","C++","OpenGL","Github"]},{"title":"PlayAlarms ì± (iOS)","beginAt":"2013-04","endAt":"2013-0
167","description":"ìì´ë°ì´ì
ë¶í° ì± ì¶ìê¹ì§ 주ëì ì¼ë¡ ì§íí ìë¹ì¤ì
ëë¤.\nì침 기ìì ìí´ ìëì ì¤ì íë©´, ì¬ì©ììê² í¹ì 미ì
ì ìííë¼ë í¸ì ìë¦¼ì´ ì ì¡ëë©°,\n미ì
ìí ìë£ ì í´ë¹ í¸ì ìë¦¼ì´ ìëì¼ë¡ ì¢
ë£ëëë¡ ê°ë°íìµëë¤.\nê´ê³ ìì´ ì¤êµ ì§ì ì íì¤í ì´ ì í¸ë¦¬í° ì¹´í
ê³ ë¦¬ìì 20ì를 ë¬ì±íìê³ , ì± ì ìë¶í° ë°°í¬ê¹ì§ì ê°ë° ê³¼ì ì 모ë í¼ì ì§ííììµëë¤.","role":[{"description":"ìë¹ì¤ 기í ë° ê°ë°"}],"works":[{"description":"iOS ì í리ì¼ì´ì
ìí¤í
ì² ì¤ê³ ë° UI ê°ë°"},{"description":"ë°ì벨 측ì 모ë ê°ë°"},{"description":"ê°ìëì¼ì를 íì©í íë¤ê¸° 측ì 모ë ê°ë°"}],"techStack":["Objective-C","Github"]},{"title":"ì´ëì¤í리 iCF ì± (iOS/Android)","beginAt":"2012-07","endAt":"2012-10","description":"ì´ëì¤í리 iCF ì±ì ì´ëì¤í리ì CF를 ì ìí ì ìë ìë¹ì¤ì
ëë¤.\nì¬ì©ìë¤ì´ ì§ì ì´¬ìí ììì¼ë¡ ìì ë§ì CF를 ì ìí ì ìê³ , ì´ê²ì Youtubeë¡ ê³µì í ì ìììµëë¤.","role":[{"description":"ì ê· ê¸°ë¥ ê°ë°"}],"works":[{"description":"ìì ê°¤ë¬ë¦¬ ê°ë°"},{"description":"Youtube Data API ì°ë 모ë ê°ë°"}],"techStack":["ActionScript 3.0","Adobe AIR"]}]}]}],"etc":[{"title":"https://www.kimcoder.io","link":"https://www.kimcoder.io","description":["ê°ì¸ 기ì ë¸ë¡ê·¸"]},{"title":"https://www.npmjs.com/package/react-simple-image-slider","link":"https://www.npmjs.com/package/react-simple-image-slider","description":["2ê°ì DOMì¼ë¡ 구ííë React Carousel ë¼ì´ë¸ë¬ë¦¬"]},{"title":"https://www.npmjs.com/package/react-sequence-player","link":"https://www.npmjs.com/package/react-sequence-player","description":["Image Sprite를 기ë°ì¼ë¡ ì ëë©ì´ì
ì 구íìì¼ì£¼ë React ë¼ì´ë¸ë¬ë¦¬"]},{"title":"https://www.serverless.com/examples/serverless-instagram-crawler","link":"https://www.serverless.com/examples/serverless-instagram-crawler","description":["serverless íë ììí¬ì ìì 기ì¬","hashtagì í¬ë¡¤ë§ 주기를 ì¤ì íë©´ instagramì í¼ë를 í¬ë¡¤ë§íì¬ DynamoDBì ì ì¥"]},{"title":"https://www.serverless.com/examples/serverless-nextjs","link":"https://www.serverless.com/examples/serverless-nextjs","description":["serverless íë ììí¬ì ìì 기ì¬","next.js ì í리ì¼ì´ì
ì awsì serverless 모ëë¡ ë°°í¬"]}]},"__N_SSG":true},"page":"/resume","query":{},"buildId":"mYpFDr1DZDEyR2tzQItwY","isFallback":false,"gsp":true,"scriptLoader":[]}</script>
16</body></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.