<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>yceffort</title>
    <link>https://yceffort.kr</link>
    <atom:link href="https://yceffort.kr/feed.xml" rel="self" type="application/rss+xml" />
    <description>Grind. Learn. Repeat.</description>
    <language>ko-KR</language>
    <lastBuildDate>Sat, 09 May 2026 10:33:35 GMT</lastBuildDate>
    
        <item>
          <title><![CDATA[오래 쓸 수 있는 패키지는 무엇이 다른가]]></title>
          <link>https://yceffort.kr/2026/05/good-package-for-long-term-users</link>
          <guid>https://yceffort.kr/2026/05/good-package-for-long-term-users</guid>
          <pubDate>Sat, 09 May 2026 12:54:08 GMT</pubDate>
          <description><![CDATA[좋은 패키지는 기능뿐 아니라 의존성, 버전업, 호환성, 릴리즈 정책까지 사용자 친화적이어야 한다.]]></description>
          <category><![CDATA[frontend]]></category><category><![CDATA[package-management]]></category><category><![CDATA[semver]]></category><category><![CDATA[nextjs]]></category><category><![CDATA[maintenance]]></category>
        </item>
      
        <item>
          <title><![CDATA[PR diff에서는 보이지 않는 비용: 우리는 사용자가 받는 코드를 리뷰하고 있지 않다]]></title>
          <link>https://yceffort.kr/2026/05/pr-diff-vs-bundle</link>
          <guid>https://yceffort.kr/2026/05/pr-diff-vs-bundle</guid>
          <pubDate>Sun, 03 May 2026 15:50:00 GMT</pubDate>
          <description><![CDATA[코드 리뷰가 놓치는 bundle 비용, PR에 어떻게 띄울 것인가.]]></description>
          <category><![CDATA[frontend]]></category><category><![CDATA[bundle-analysis]]></category><category><![CDATA[performance]]></category><category><![CDATA[tree-shaking]]></category><category><![CDATA[code-review]]></category>
        </item>
      
        <item>
          <title><![CDATA['use cache' 디렉티브 딥다이브: 캐시 경계의 끝까지]]></title>
          <link>https://yceffort.kr/2026/05/use-cache-deep-dive</link>
          <guid>https://yceffort.kr/2026/05/use-cache-deep-dive</guid>
          <pubDate>Fri, 01 May 2026 19:47:20 GMT</pubDate>
          <description><![CDATA["use cache" 한 줄이 만드는 빌드 타임 변환, 캐시 키 직렬화, ResumeDataCache, cacheHandler, 그리고 Cache Components까지]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[nextjs]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA['use client' 디렉티브 딥다이브: 클라이언트 경계의 끝까지]]></title>
          <link>https://yceffort.kr/2026/05/use-client-deep-dive</link>
          <guid>https://yceffort.kr/2026/05/use-client-deep-dive</guid>
          <pubDate>Fri, 01 May 2026 12:00:00 GMT</pubDate>
          <description><![CDATA["use client" 한 줄이 만드는 모듈 경계, 빌드 타임 변환, Flight 직렬화, 그리고 성능까지]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[nextjs]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[AI는 내가 보이는 수준까지만 나를 증폭한다]]></title>
          <link>https://yceffort.kr/2026/04/ai-only-amplifies-what-you-see</link>
          <guid>https://yceffort.kr/2026/04/ai-only-amplifies-what-you-see</guid>
          <pubDate>Mon, 20 Apr 2026 12:00:00 GMT</pubDate>
          <description><![CDATA[분명 빨라졌는데 코드베이스와 내 실력은 왜 그대로인가. 체감과 실증 사이의 간격을 들여다본다.]]></description>
          <category><![CDATA[ai]]></category><category><![CDATA[learning]]></category><category><![CDATA[career]]></category><category><![CDATA[productivity]]></category><category><![CDATA[code-quality]]></category>
        </item>
      
        <item>
          <title><![CDATA[왜 여전히 Next.js를 쓰는가]]></title>
          <link>https://yceffort.kr/2026/03/why-still-nextjs</link>
          <guid>https://yceffort.kr/2026/03/why-still-nextjs</guid>
          <pubDate>Mon, 23 Mar 2026 22:00:00 GMT</pubDate>
          <description><![CDATA[기술 우위보다 강한 전환 비용]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[react]]></category><category><![CDATA[vercel]]></category><category><![CDATA[frontend]]></category><category><![CDATA[web]]></category>
        </item>
      
        <item>
          <title><![CDATA[Next.js의 성능은 충분히 빠른가]]></title>
          <link>https://yceffort.kr/2026/03/is-nextjs-fast-enough</link>
          <guid>https://yceffort.kr/2026/03/is-nextjs-fast-enough</guid>
          <pubDate>Sat, 21 Mar 2026 22:00:00 GMT</pubDate>
          <description><![CDATA[벤치마크가 말해주는 불편한 진실]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[web-performance]]></category><category><![CDATA[react]]></category><category><![CDATA[ssr]]></category><category><![CDATA[benchmark]]></category>
        </item>
      
        <item>
          <title><![CDATA[React는 누구의 것인가]]></title>
          <link>https://yceffort.kr/2026/03/react-is-whose</link>
          <guid>https://yceffort.kr/2026/03/react-is-whose</guid>
          <pubDate>Thu, 19 Mar 2026 23:30:00 GMT</pubDate>
          <description><![CDATA[React Foundation이 답해야 할 질문]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[governance]]></category><category><![CDATA[nextjs]]></category><category><![CDATA[vercel]]></category><category><![CDATA[meta]]></category>
        </item>
      
        <item>
          <title><![CDATA[Cloudflare가 Next.js를 다시 만든 이유]]></title>
          <link>https://yceffort.kr/2026/03/why-cloudflare-rebuilt-nextjs</link>
          <guid>https://yceffort.kr/2026/03/why-cloudflare-rebuilt-nextjs</guid>
          <pubDate>Tue, 17 Mar 2026 20:07:31 GMT</pubDate>
          <description><![CDATA[vinext가 던진 질문은?]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[cloudflare]]></category><category><![CDATA[edge-computing]]></category><category><![CDATA[vite]]></category><category><![CDATA[reverse-engineering]]></category>
        </item>
      
        <item>
          <title><![CDATA[Next.js Edge Runtime의 흥망성쇠]]></title>
          <link>https://yceffort.kr/2026/03/nextjs-edge-runtime-rise-and-fall</link>
          <guid>https://yceffort.kr/2026/03/nextjs-edge-runtime-rise-and-fall</guid>
          <pubDate>Mon, 16 Mar 2026 16:24:02 GMT</pubDate>
          <description><![CDATA[Edge Middleware 야 잘 살고 있니?]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[edge-computing]]></category><category><![CDATA[serverless]]></category><category><![CDATA[web-performance]]></category><category><![CDATA[vercel]]></category>
        </item>
      
        <item>
          <title><![CDATA[React 서버 함수 딥다이브: "use server"의 끝까지]]></title>
          <link>https://yceffort.kr/2026/03/react-server-functions-deep-dive</link>
          <guid>https://yceffort.kr/2026/03/react-server-functions-deep-dive</guid>
          <pubDate>Mon, 09 Mar 2026 22:02:05 GMT</pubDate>
          <description><![CDATA["use server" 한 줄 뒤에서 무슨 일이 벌어지고 있는가?]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[nextjs]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[React의 <ViewTransition>: 브라우저 네이티브 애니메이션을 React답게]]></title>
          <link>https://yceffort.kr/2026/03/react-view-transition</link>
          <guid>https://yceffort.kr/2026/03/react-view-transition</guid>
          <pubDate>Mon, 02 Mar 2026 10:45:38 GMT</pubDate>
          <description><![CDATA[View Transition API를 React가 감싸면 어떻게 되는가]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[css]]></category><category><![CDATA[nextjs]]></category>
        </item>
      
        <item>
          <title><![CDATA[Node.js vm 모듈의 함정: 샌드박스가 아닌 이유]]></title>
          <link>https://yceffort.kr/2026/02/nodejs-deep-dive-sample</link>
          <guid>https://yceffort.kr/2026/02/nodejs-deep-dive-sample</guid>
          <pubDate>Fri, 27 Feb 2026 10:00:00 GMT</pubDate>
          <description><![CDATA[집필 중인 Node.js Deep Dive의 5.2장(vm 모듈의 함정) 일부를 미리 공개합니다.]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[security]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Infinite Scroll의 몰락 — Google은 왜 무한 스크롤을 걷어냈는가]]></title>
          <link>https://yceffort.kr/2026/02/infinite-scroll-dark-side</link>
          <guid>https://yceffort.kr/2026/02/infinite-scroll-dark-side</guid>
          <pubDate>Sat, 21 Feb 2026 10:00:00 GMT</pubDate>
          <description><![CDATA[무한 스크롤이 UX, 성능, 접근성, 그리고 법률의 관점에서 어떻게 재평가되고 있는지 살펴본다]]></description>
          <category><![CDATA[frontend]]></category><category><![CDATA[ux]]></category><category><![CDATA[web-performance]]></category><category><![CDATA[accessibility]]></category><category><![CDATA[infinite-scroll]]></category>
        </item>
      
        <item>
          <title><![CDATA[Effect 시스템 심층 분석: 모나드에서 Algebraic Effects까지, 그리고 Effect-TS의 선택]]></title>
          <link>https://yceffort.kr/2026/02/effect-ts-deep-dive</link>
          <guid>https://yceffort.kr/2026/02/effect-ts-deep-dive</guid>
          <pubDate>Fri, 20 Feb 2026 10:00:00 GMT</pubDate>
          <description><![CDATA[Effect-TS가 대체 뭔데 다들 난리인지 직접 파헤쳐봤다.]]></description>
          <category><![CDATA[typescript]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[Node.js Deep Dive (가제) 베타 리더를 모십니다.]]></title>
          <link>https://yceffort.kr/2026/02/nodejs-deep-dive-beta-reader</link>
          <guid>https://yceffort.kr/2026/02/nodejs-deep-dive-beta-reader</guid>
          <pubDate>Thu, 19 Feb 2026 22:00:00 GMT</pubDate>
          <description><![CDATA[많관부22]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[React Compiler 딥다이브: 원리부터 결과물까지]]></title>
          <link>https://yceffort.kr/2026/02/react-compiler-deep-dive</link>
          <guid>https://yceffort.kr/2026/02/react-compiler-deep-dive</guid>
          <pubDate>Thu, 19 Feb 2026 14:00:00 GMT</pubDate>
          <description><![CDATA[React Compiler가 코드를 어떻게 분석하고, 무엇을 만들어내는지 파이프라인부터 결과물까지 깊이 파헤쳐본다.]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[AI가 코드를 짜는 시대, 프론트엔드 엔지니어링은 어디로 가는가]]></title>
          <link>https://yceffort.kr/2026/02/frontend-engineering-in-ai-era</link>
          <guid>https://yceffort.kr/2026/02/frontend-engineering-in-ai-era</guid>
          <pubDate>Sat, 14 Feb 2026 12:00:00 GMT</pubDate>
          <description><![CDATA[AI 코딩 도구가 바꾸는 건 개발자가 아니라, 개발자가 하던 일의 형태다.]]></description>
          <category><![CDATA[ai]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[코딩 에이전트 핵심 개념 완전 가이드]]></title>
          <link>https://yceffort.kr/2026/01/coding-agent-core-concepts</link>
          <guid>https://yceffort.kr/2026/01/coding-agent-core-concepts</guid>
          <pubDate>Sat, 17 Jan 2026 23:00:00 GMT</pubDate>
          <description><![CDATA[Rules, Commands, MCP, Sub-agents, Hooks, Skills, Plugins까지 코딩 에이전트의 핵심 개념 총정리]]></description>
          <category><![CDATA[ai]]></category><category><![CDATA[devops]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[IntersectionObserver 싱글톤 패턴과 WeakMap으로 메모리 누수 방지하기]]></title>
          <link>https://yceffort.kr/2026/01/intersection-observer-singleton-weakmap</link>
          <guid>https://yceffort.kr/2026/01/intersection-observer-singleton-weakmap</guid>
          <pubDate>Sat, 17 Jan 2026 21:30:00 GMT</pubDate>
          <description><![CDATA[수백 개의 요소를 효율적으로 관찰하면서 메모리 누수도 방지하는 방법]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[frontend]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[TypeScript에서 switch문의 모든 케이스를 빠짐없이 처리했는지 검사하는 방법]]></title>
          <link>https://yceffort.kr/2026/01/typescript-exhaustive-check</link>
          <guid>https://yceffort.kr/2026/01/typescript-exhaustive-check</guid>
          <pubDate>Sat, 17 Jan 2026 20:00:00 GMT</pubDate>
          <description><![CDATA[never 타입을 활용한 exhaustive check 패턴]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[거대한 JSON 응답을 효율적으로 처리하는 방법]]></title>
          <link>https://yceffort.kr/2026/01/handling-large-json-responses</link>
          <guid>https://yceffort.kr/2026/01/handling-large-json-responses</guid>
          <pubDate>Sun, 11 Jan 2026 15:00:00 GMT</pubDate>
          <description><![CDATA[JSON.parse()가 버거워할 때 살아남는 법]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[React의 "서버로 회귀"는 역사의 반복인가?]]></title>
          <link>https://yceffort.kr/2026/01/react-server-components-history-repeating</link>
          <guid>https://yceffort.kr/2026/01/react-server-components-history-repeating</guid>
          <pubDate>Sun, 04 Jan 2026 12:00:00 GMT</pubDate>
          <description><![CDATA[RSC가 PHP/JSP 시절로의 회귀인지, 아니면 나선형 발전일까? 아닐까? 뭘까]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[javascript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[WebGPU, 드디어 모든 브라우저에서 사용 가능해지다]]></title>
          <link>https://yceffort.kr/2025/12/webgpu-all-browsers</link>
          <guid>https://yceffort.kr/2025/12/webgpu-all-browsers</guid>
          <pubDate>Tue, 30 Dec 2025 12:00:00 GMT</pubDate>
          <description><![CDATA[2025년 7월, 14년 만에 브라우저 GPU API 세대교체가 완료됐다]]></description>
          <category><![CDATA[webgpu]]></category><category><![CDATA[ai]]></category><category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[Next.js 캐싱 가이드]]></title>
          <link>https://yceffort.kr/2025/12/nextjs-caching-deep-dive</link>
          <guid>https://yceffort.kr/2025/12/nextjs-caching-deep-dive</guid>
          <pubDate>Wed, 24 Dec 2025 10:00:00 GMT</pubDate>
          <description><![CDATA[Next.js App Router의 4가지 캐시 레이어 알아보긔]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[web-performance]]></category><category><![CDATA[caching]]></category>
        </item>
      
        <item>
          <title><![CDATA[React의 새로운 lint 규칙: set-state-in-effect]]></title>
          <link>https://yceffort.kr/2025/12/react-set-state-in-effect-lint-rule</link>
          <guid>https://yceffort.kr/2025/12/react-set-state-in-effect-lint-rule</guid>
          <pubDate>Tue, 16 Dec 2025 15:30:00 GMT</pubDate>
          <description><![CDATA[Effect에서 setState를 호출하면 안 되는 이유와 대안]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[javascript]]></category><category><![CDATA[testing]]></category>
        </item>
      
        <item>
          <title><![CDATA[useEvent에서 useEffectEvent까지: React의 이벤트 핸들러 안정화 여정]]></title>
          <link>https://yceffort.kr/2025/12/use-effect-event</link>
          <guid>https://yceffort.kr/2025/12/use-effect-event</guid>
          <pubDate>Mon, 15 Dec 2025 14:30:00 GMT</pubDate>
          <description><![CDATA[3년 전 RFC가 드디어 빛을 보다]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[React 취약점인데 왜 Next.js를 업그레이드해야 하지?]]></title>
          <link>https://yceffort.kr/2025/12/nextjs-react-security-vulnerability</link>
          <guid>https://yceffort.kr/2025/12/nextjs-react-security-vulnerability</guid>
          <pubDate>Fri, 12 Dec 2025 12:00:00 GMT</pubDate>
          <description><![CDATA[CVE-2025-55182, CVE-2025-55184, CVE-2025-55183 그리고 Next.js의 숨겨진 React]]></description>
          <category><![CDATA[security]]></category><category><![CDATA[nextjs]]></category><category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[React 19: ref를 prop으로 사용하기]]></title>
          <link>https://yceffort.kr/2025/12/react-19-ref-as-prop</link>
          <guid>https://yceffort.kr/2025/12/react-19-ref-as-prop</guid>
          <pubDate>Thu, 11 Dec 2025 10:00:00 GMT</pubDate>
          <description><![CDATA[React 19부터는 forwardRef 없이 ref를 prop으로 전달할 수 있다.]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[블로그 정상영업합니다]]></title>
          <link>https://yceffort.kr/2025/12/blog-is-back</link>
          <guid>https://yceffort.kr/2025/12/blog-is-back</guid>
          <pubDate>Fri, 05 Dec 2025 23:00:00 GMT</pubDate>
          <description><![CDATA[2~3년 만에 돌아왔습니다]]></description>
          <category><![CDATA[career]]></category><category><![CDATA[ai]]></category>
        </item>
      
        <item>
          <title><![CDATA[문자열 리터럴 유니온에 string을 추가하면 자동완성이 사라지는 이유]]></title>
          <link>https://yceffort.kr/2025/12/typescript-literal-union-autocomplete</link>
          <guid>https://yceffort.kr/2025/12/typescript-literal-union-autocomplete</guid>
          <pubDate>Fri, 05 Dec 2025 22:30:00 GMT</pubDate>
          <description><![CDATA[type Color = "red" | "blue" | string // 자동완성: 🦗...]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[web performance deep dive (가제) 베타 리더를 모십니다. (마감)]]></title>
          <link>https://yceffort.kr/2025/11/web-performance-deep-dive-beta-reader</link>
          <guid>https://yceffort.kr/2025/11/web-performance-deep-dive-beta-reader</guid>
          <pubDate>Mon, 10 Nov 2025 17:41:00 GMT</pubDate>
          <description><![CDATA[많관부]]></description>
          <category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[npm Deep Dive 온라인 저자 특강]]></title>
          <link>https://yceffort.kr/2025/08/npm-deep-dive-author-talk</link>
          <guid>https://yceffort.kr/2025/08/npm-deep-dive-author-talk</guid>
          <pubDate>Fri, 08 Aug 2025 15:30:00 GMT</pubDate>
          <description><![CDATA[npm Deep Dive 온라인 저자 특강을 진행합니다]]></description>
          <category><![CDATA[nodejs]]></category>
        </item>
      
        <item>
          <title><![CDATA[웹 서비스 성능 분석 (4)]]></title>
          <link>https://yceffort.kr/2025/06/web-performance-analysis-4</link>
          <guid>https://yceffort.kr/2025/06/web-performance-analysis-4</guid>
          <pubDate>Sat, 19 Jul 2025 19:20:44 GMT</pubDate>
          <description><![CDATA[나도 해볼까.. 라는 생각이 든다면 바로 지금 연락주세요!!]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[웹 서비스 성능 분석 (3)]]></title>
          <link>https://yceffort.kr/2025/06/web-performance-analysis-3</link>
          <guid>https://yceffort.kr/2025/06/web-performance-analysis-3</guid>
          <pubDate>Tue, 01 Jul 2025 13:11:17 GMT</pubDate>
          <description><![CDATA[관심 가져주셔서 감사합니다. 🙇🏻‍♂️]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[nextjs]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[Nextjs app router의 Rendered more hooks than during the previous render 버그 패치 후기]]></title>
          <link>https://yceffort.kr/2025/06/fixing-nextjs-rendered-more-hooks-error</link>
          <guid>https://yceffort.kr/2025/06/fixing-nextjs-rendered-more-hooks-error</guid>
          <pubDate>Mon, 23 Jun 2025 23:52:14 GMT</pubDate>
          <description><![CDATA[어렵다 어려워]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[react]]></category><category><![CDATA[debugging]]></category>
        </item>
      
        <item>
          <title><![CDATA[『npm Deep Dive』 스터디원 모집중입니다!]]></title>
          <link>https://yceffort.kr/2025/06/npm-deep-dive-study</link>
          <guid>https://yceffort.kr/2025/06/npm-deep-dive-study</guid>
          <pubDate>Mon, 09 Jun 2025 11:17:11 GMT</pubDate>
          <description><![CDATA[홍보성 글은 여기까지... 다시 공부하는 블로그로 찾아오겠습니다.]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[nodejs]]></category>
        </item>
      
        <item>
          <title><![CDATA[[네이버페이] 채용 연계형 FE 개발 인턴십]]></title>
          <link>https://yceffort.kr/2025/06/naver-pay-fe-summer-internship</link>
          <guid>https://yceffort.kr/2025/06/naver-pay-fe-summer-internship</guid>
          <pubDate>Sat, 07 Jun 2025 17:52:22 GMT</pubDate>
          <description><![CDATA[많관부]]></description>
          <category><![CDATA[career]]></category>
        </item>
      
        <item>
          <title><![CDATA[AI 시대에 나는 왜 책을 썼을까]]></title>
          <link>https://yceffort.kr/2025/05/why-i-wrote-a-book-in-the-age-of-ai</link>
          <guid>https://yceffort.kr/2025/05/why-i-wrote-a-book-in-the-age-of-ai</guid>
          <pubDate>Fri, 30 May 2025 12:00:02 GMT</pubDate>
          <description><![CDATA[🤔]]></description>
          <category><![CDATA[frontend]]></category><category><![CDATA[career]]></category><category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[『npm Deep Dive』 가 출간되었습니다.]]></title>
          <link>https://yceffort.kr/2025/05/npm-deep-dive-is-out-now</link>
          <guid>https://yceffort.kr/2025/05/npm-deep-dive-is-out-now</guid>
          <pubDate>Wed, 28 May 2025 23:45:59 GMT</pubDate>
          <description><![CDATA[🙇🏻‍♂️]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[nodejs]]></category>
        </item>
      
        <item>
          <title><![CDATA["AI가 다 해주잖아?"라는 환상: FE의 본질과 AI 시대의 현실]]></title>
          <link>https://yceffort.kr/2025/05/frontend-truth-ai-misconceptions</link>
          <guid>https://yceffort.kr/2025/05/frontend-truth-ai-misconceptions</guid>
          <pubDate>Sat, 24 May 2025 22:55:11 GMT</pubDate>
          <description><![CDATA[AI가 UI 개발을 대체할 것이라는 리더십의 환상과 프론트엔드 기술에 대한 오해, 그리고 AI 시대에도 변하지 않을 프론트엔드의 본질적인 가치]]></description>
          <category><![CDATA[frontend]]></category><category><![CDATA[ai]]></category><category><![CDATA[career]]></category>
        </item>
      
        <item>
          <title><![CDATA[프론트엔드 개발 환경의 변화와 과제: AI 도입과 리더십]]></title>
          <link>https://yceffort.kr/2025/05/frontend-challenges-ai-leadership</link>
          <guid>https://yceffort.kr/2025/05/frontend-challenges-ai-leadership</guid>
          <pubDate>Sat, 24 May 2025 22:33:49 GMT</pubDate>
          <description><![CDATA[AI 도입과 리더십의 기대가 맞물려 변화하는 프론트엔드 개발 환경의 주요 과제들을 진단하고, 개발자들이 이에 현실적으로 대응하며 역할을 정립해 나갈 방향을 모색합니다.]]></description>
          <category><![CDATA[frontend]]></category><category><![CDATA[ai]]></category><category><![CDATA[career]]></category>
        </item>
      
        <item>
          <title><![CDATA[AI 시대 "프론트엔드, 정말 중요할까?" 라는 질문에 답합니다. (성능, AI, UI/UX, 그리고 미래)]]></title>
          <link>https://yceffort.kr/2025/05/answering-frontend-relevance</link>
          <guid>https://yceffort.kr/2025/05/answering-frontend-relevance</guid>
          <pubDate>Sat, 24 May 2025 22:30:27 GMT</pubDate>
          <description><![CDATA[AI와 B2B 환경에서도 프론트엔드는 비즈니스 가치와 직결되는 사용자 경험의 핵심이며, 그 중요성과 역할은 변하지 않기에 끊임없이 가치를 증명하고 발전해야 합니다.]]></description>
          <category><![CDATA[frontend]]></category><category><![CDATA[career]]></category>
        </item>
      
        <item>
          <title><![CDATA[프론트엔드 개발자, 3년차의 벽을 넘어: 성장의 악순환을 끊고 목표와 성취감을 찾는 법]]></title>
          <link>https://yceffort.kr/2025/05/breaking-growth-plateaus-in-frontend-teams</link>
          <guid>https://yceffort.kr/2025/05/breaking-growth-plateaus-in-frontend-teams</guid>
          <pubDate>Sat, 24 May 2025 22:18:18 GMT</pubDate>
          <description><![CDATA[프론트엔드 개발자가 성장 정체를 극복하고 AI 시대에도 성취감을 얻으려면, 단순 업무를 넘어 깊이 있는 기술적 도전과 끊임없는 학습을 추구하는 주도적인 성장 문화를 만들어가야 합니다.]]></description>
          <category><![CDATA[frontend]]></category><category><![CDATA[career]]></category>
        </item>
      
        <item>
          <title><![CDATA[AI가 코드를 작성해 주는 시대, 프론트엔드 개발자인 나는 무엇을 해야 할까?]]></title>
          <link>https://yceffort.kr/2025/05/what-to-do-as-frontend-developer-in-ai-era</link>
          <guid>https://yceffort.kr/2025/05/what-to-do-as-frontend-developer-in-ai-era</guid>
          <pubDate>Mon, 19 May 2025 17:43:12 GMT</pubDate>
          <description><![CDATA[미래는 나도 모르겠지만, 그냥 열심히 개발하면 되지 않을까?]]></description>
          <category><![CDATA[ai]]></category><category><![CDATA[career]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[웹 서비스 성능 분석 (2)]]></title>
          <link>https://yceffort.kr/2025/05/web-performance-analysis-2</link>
          <guid>https://yceffort.kr/2025/05/web-performance-analysis-2</guid>
          <pubDate>Mon, 12 May 2025 09:44:34 GMT</pubDate>
          <description><![CDATA[관심 가져주셔서 감사합니다. 🙇🏻‍♂️]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[javascript]]></category><category><![CDATA[nextjs]]></category>
        </item>
      
        <item>
          <title><![CDATA[웹 서비스 성능 분석 (1)]]></title>
          <link>https://yceffort.kr/2025/05/web-performance-analysis-1</link>
          <guid>https://yceffort.kr/2025/05/web-performance-analysis-1</guid>
          <pubDate>Tue, 06 May 2025 16:39:31 GMT</pubDate>
          <description><![CDATA[관심 가져주셔서 감사합니다. 🎉]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[react]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[웹사이트 성능에 고민이 있는 서비스를 찾습니다.]]></title>
          <link>https://yceffort.kr/2025/04/web-performance-help</link>
          <guid>https://yceffort.kr/2025/04/web-performance-help</guid>
          <pubDate>Sat, 26 Apr 2025 21:16:54 GMT</pubDate>
          <description><![CDATA[🤔]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[frontend]]></category><category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[https://research.yceffort.kr/ 를 오픈했습니다]]></title>
          <link>https://yceffort.kr/2025/03/research</link>
          <guid>https://yceffort.kr/2025/03/research</guid>
          <pubDate>Wed, 26 Mar 2025 10:12:30 GMT</pubDate>
          <description><![CDATA[게을러터져서 이제 만든]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[맵과 객체 중 무엇을 언제 쓰는 것이 좋을까?]]></title>
          <link>https://yceffort.kr/2025/03/map-vs-object</link>
          <guid>https://yceffort.kr/2025/03/map-vs-object</guid>
          <pubDate>Sat, 22 Mar 2025 21:30:10 GMT</pubDate>
          <description><![CDATA[Map 도 씁시다]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트 인터뷰 가이드 번역본이 출간되었습니다.]]></title>
          <link>https://yceffort.kr/2025/03/react-interview-guide</link>
          <guid>https://yceffort.kr/2025/03/react-interview-guide</guid>
          <pubDate>Fri, 21 Mar 2025 22:38:46 GMT</pubDate>
          <description><![CDATA[좋은 경험이었습니다(2)]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[career]]></category>
        </item>
      
        <item>
          <title><![CDATA[모던 리액트 Deep dive가 출간되었습니다.]]></title>
          <link>https://yceffort.kr/2023/10/react-deep-dive</link>
          <guid>https://yceffort.kr/2023/10/react-deep-dive</guid>
          <pubDate>Tue, 31 Oct 2023 22:38:46 GMT</pubDate>
          <description><![CDATA[좋은 경험이었습니다.]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[career]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트의 신규 훅, "use"]]></title>
          <link>https://yceffort.kr/2023/06/react-use-hook</link>
          <guid>https://yceffort.kr/2023/06/react-use-hook</guid>
          <pubDate>Tue, 13 Jun 2023 23:51:18 GMT</pubDate>
          <description><![CDATA[상황에 따라 이름이 변경되거나 사라질 수도 있습니다]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[3부) 왜 esmodule 이어야 하는가?]]></title>
          <link>https://yceffort.kr/2023/05/why-esmodule</link>
          <guid>https://yceffort.kr/2023/05/why-esmodule</guid>
          <pubDate>Fri, 02 Jun 2023 14:23:28 GMT</pubDate>
          <description><![CDATA[2부는 어디갔냐구요? 내맘입니다.]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[nodejs]]></category>
        </item>
      
        <item>
          <title><![CDATA[새로 바뀐 네이버 메인 훔쳐보기]]></title>
          <link>https://yceffort.kr/2023/05/what-is-in-naver</link>
          <guid>https://yceffort.kr/2023/05/what-is-in-naver</guid>
          <pubDate>Tue, 30 May 2023 14:51:26 GMT</pubDate>
          <description><![CDATA[사실 나도 잘 몰라요]]></description>
          <category><![CDATA[frontend]]></category><category><![CDATA[react]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[1부) commonjs란 무엇인가?]]></title>
          <link>https://yceffort.kr/2023/05/what-is-commonjs</link>
          <guid>https://yceffort.kr/2023/05/what-is-commonjs</guid>
          <pubDate>Fri, 26 May 2023 13:52:26 GMT</pubDate>
          <description><![CDATA[const module = require("./module.js")]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[nodejs]]></category>
        </item>
      
        <item>
          <title><![CDATA[블로그 app dir 업그레이드 후기]]></title>
          <link>https://yceffort.kr/2023/05/blog-app-dir</link>
          <guid>https://yceffort.kr/2023/05/blog-app-dir</guid>
          <pubDate>Tue, 23 May 2023 20:52:26 GMT</pubDate>
          <description><![CDATA[😬]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[react]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[나만의 eslint 룰 만들어보기]]></title>
          <link>https://yceffort.kr/2022/06/how-to-write-my-own-eslint-rules</link>
          <guid>https://yceffort.kr/2022/06/how-to-write-my-own-eslint-rules</guid>
          <pubDate>Sun, 26 Jun 2022 20:52:14 GMT</pubDate>
          <description><![CDATA[rust로 eslint를 만들어도 재밌겠네용]]></description>
          <category><![CDATA[eslint]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[JSON.stringify 만들어보기]]></title>
          <link>https://yceffort.kr/2022/06/JSON-stringify</link>
          <guid>https://yceffort.kr/2022/06/JSON-stringify</guid>
          <pubDate>Fri, 17 Jun 2022 12:19:04 GMT</pubDate>
          <description><![CDATA[V8로는 아니더라도 내부 동작 직접 구현해보기]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[브라우저의 프리로드 스캐너(pre-load scanner)와 파싱 동작의 이해]]></title>
          <link>https://yceffort.kr/2022/06/preload-scanner</link>
          <guid>https://yceffort.kr/2022/06/preload-scanner</guid>
          <pubDate>Sun, 12 Jun 2022 18:10:40 GMT</pubDate>
          <description><![CDATA[브라우저 최적화랑 싸우지마]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[Largest Contentful Paint (LCP) 최적화하기]]></title>
          <link>https://yceffort.kr/2022/06/optimize-LCP</link>
          <guid>https://yceffort.kr/2022/06/optimize-LCP</guid>
          <pubDate>Thu, 09 Jun 2022 00:21:56 GMT</pubDate>
          <description><![CDATA[브라우저 동작 방식을 이해하기]]></description>
          <category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[npm, yarn, pnpm 비교해보기]]></title>
          <link>https://yceffort.kr/2022/05/npm-vs-yarn-vs-pnpm</link>
          <guid>https://yceffort.kr/2022/05/npm-vs-yarn-vs-pnpm</guid>
          <pubDate>Fri, 20 May 2022 22:26:01 GMT</pubDate>
          <description><![CDATA[그리고 승자는 🤔]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[nodejs]]></category>
        </item>
      
        <item>
          <title><![CDATA[타입스크립트 컴파일러는 어떻게 동작하는가?]]></title>
          <link>https://yceffort.kr/2022/05/how-typescript-compiler-works</link>
          <guid>https://yceffort.kr/2022/05/how-typescript-compiler-works</guid>
          <pubDate>Sun, 15 May 2022 08:32:39 GMT</pubDate>
          <description><![CDATA[clone 받아서 읽어보세여 재밌어여 (안재밌음)]]></description>
          <category><![CDATA[typescript]]></category><category><![CDATA[compiler]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트의 새로운 훅, useEvent]]></title>
          <link>https://yceffort.kr/2022/05/useEvent</link>
          <guid>https://yceffort.kr/2022/05/useEvent</guid>
          <pubDate>Thu, 12 May 2022 12:03:48 GMT</pubDate>
          <description><![CDATA[트위터 염탐 시리즈 제1탄]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[알아두면 유용한 타입스크립트 팁]]></title>
          <link>https://yceffort.kr/2022/05/typescript-tips-and-tricks</link>
          <guid>https://yceffort.kr/2022/05/typescript-tips-and-tricks</guid>
          <pubDate>Sun, 08 May 2022 04:12:01 GMT</pubDate>
          <description><![CDATA["타입"스크립트니까 타입을 잘 할줄 알아야 합니다.]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[크롬 메모리 프로파일러 사용하는 방법]]></title>
          <link>https://yceffort.kr/2022/04/chrome-memory-profiler</link>
          <guid>https://yceffort.kr/2022/04/chrome-memory-profiler</guid>
          <pubDate>Thu, 28 Apr 2022 20:18:04 GMT</pubDate>
          <description><![CDATA[스냅샷 해석과 디버깅의 책임은 본인에게 있습니다]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[browser]]></category><category><![CDATA[debugging]]></category>
        </item>
      
        <item>
          <title><![CDATA[V8에서 관리되는 자바스크립트 변수]]></title>
          <link>https://yceffort.kr/2022/04/how-javascript-variable-works-in-memory</link>
          <guid>https://yceffort.kr/2022/04/how-javascript-variable-works-in-memory</guid>
          <pubDate>Thu, 21 Apr 2022 22:10:10 GMT</pubDate>
          <description><![CDATA[V8 내부 코드를 자유롭게 읽을 수 있는 그날까지]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[참조 동일성을 위한 메모이제이션]]></title>
          <link>https://yceffort.kr/2022/04/memo-for-referential-stability-in-react</link>
          <guid>https://yceffort.kr/2022/04/memo-for-referential-stability-in-react</guid>
          <pubDate>Sat, 16 Apr 2022 19:42:29 GMT</pubDate>
          <description><![CDATA[세상에 나쁜 메모이제이션은 없다 🤔]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트의 useCallback useMemo, 정확하게 사용하고 있을까]]></title>
          <link>https://yceffort.kr/2022/04/best-practice-useCallback-useMemo</link>
          <guid>https://yceffort.kr/2022/04/best-practice-useCallback-useMemo</guid>
          <pubDate>Sat, 16 Apr 2022 18:51:14 GMT</pubDate>
          <description><![CDATA[메모이제이션에 대한 고민 🤔]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[[블로그] PWA 임시 중지]]></title>
          <link>https://yceffort.kr/2022/04/temporary-suspension-pwa</link>
          <guid>https://yceffort.kr/2022/04/temporary-suspension-pwa</guid>
          <pubDate>Fri, 15 Apr 2022 13:59:25 GMT</pubDate>
          <description><![CDATA[내 돈]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[devops]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트의 렌더링은 어떻게 일어나는가?]]></title>
          <link>https://yceffort.kr/2022/04/deep-dive-in-react-rendering</link>
          <guid>https://yceffort.kr/2022/04/deep-dive-in-react-rendering</guid>
          <pubDate>Sat, 09 Apr 2022 23:12:56 GMT</pubDate>
          <description><![CDATA[리액트에서 메모이제이션을 언제 해야하는가 고민 하다가 여기까지 왔다]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[Rust로 web assembly로 game of life 만들어보기 (2)]]></title>
          <link>https://yceffort.kr/2022/04/rust-wasm-project-tutorial-2</link>
          <guid>https://yceffort.kr/2022/04/rust-wasm-project-tutorial-2</guid>
          <pubDate>Fri, 08 Apr 2022 11:45:16 GMT</pubDate>
          <description><![CDATA[사이드 프로젝트도 열심히 하고 싶은데 바쁘기도 바쁘고 체력도 안되는 것 같고 아무튼 핑계입니다.]]></description>
          <category><![CDATA[rust]]></category><category><![CDATA[webassembly]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트 v18 버전 톺아보기]]></title>
          <link>https://yceffort.kr/2022/04/react-18-changelog</link>
          <guid>https://yceffort.kr/2022/04/react-18-changelog</guid>
          <pubDate>Mon, 04 Apr 2022 19:02:15 GMT</pubDate>
          <description><![CDATA[큰거 왔다]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[내가 타입스크립트에서 Enum을 잘 쓰지 않는 이유]]></title>
          <link>https://yceffort.kr/2022/03/typescript-use-union-types-instead-enum</link>
          <guid>https://yceffort.kr/2022/03/typescript-use-union-types-instead-enum</guid>
          <pubDate>Mon, 28 Mar 2022 11:56:45 GMT</pubDate>
          <description><![CDATA[enum이 잘못했네]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[React.FC를 사용하지 않는 이유]]></title>
          <link>https://yceffort.kr/2022/03/dont-use-react-fc</link>
          <guid>https://yceffort.kr/2022/03/dont-use-react-fc</guid>
          <pubDate>Fri, 25 Mar 2022 16:11:06 GMT</pubDate>
          <description><![CDATA[React.FC가 잘못됐다는 이야기는 아닙니다]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트 훅을 사용할 때 조심해야 할 것]]></title>
          <link>https://yceffort.kr/2022/03/react-hooks-in-caution</link>
          <guid>https://yceffort.kr/2022/03/react-hooks-in-caution</guid>
          <pubDate>Thu, 24 Mar 2022 10:44:01 GMT</pubDate>
          <description><![CDATA[deps에 primitive 값만 사용하기, 훅을 컴포넌트에서 제거하기]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[Rust로 web assembly로 game of life 만들어보기 (1)]]></title>
          <link>https://yceffort.kr/2022/03/rust-wasm-project-tutorial-1</link>
          <guid>https://yceffort.kr/2022/03/rust-wasm-project-tutorial-1</guid>
          <pubDate>Fri, 18 Mar 2022 23:56:56 GMT</pubDate>
          <description><![CDATA[코로나 휴가를 틈탄 러스트 뻘짓]]></description>
          <category><![CDATA[rust]]></category><category><![CDATA[webassembly]]></category>
        </item>
      
        <item>
          <title><![CDATA[타입스크립트의 Omit은 어떻게 동작할까? Exclude, Pick 부터 알아보기]]></title>
          <link>https://yceffort.kr/2022/03/typescript-omit-exclude-pick</link>
          <guid>https://yceffort.kr/2022/03/typescript-omit-exclude-pick</guid>
          <pubDate>Wed, 16 Mar 2022 22:08:36 GMT</pubDate>
          <description><![CDATA[헬퍼 타입도 잘 알고 써야 도움이 된다]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[타입스크립트의 함수의 다형성]]></title>
          <link>https://yceffort.kr/2022/03/polymorphic-function-in-typescript</link>
          <guid>https://yceffort.kr/2022/03/polymorphic-function-in-typescript</guid>
          <pubDate>Mon, 14 Mar 2022 19:11:06 GMT</pubDate>
          <description><![CDATA[mapped type과 오버로딩, 어떤걸 쓰는게 좋을까?]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[타입스크립트 타입 never 에 대해 자세히 알아보자]]></title>
          <link>https://yceffort.kr/2022/03/understanding-typescript-never</link>
          <guid>https://yceffort.kr/2022/03/understanding-typescript-never</guid>
          <pubDate>Sat, 12 Mar 2022 15:31:40 GMT</pubDate>
          <description><![CDATA[알쏭달쏭 신기한 타입스크립트와 타입의 세계]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Rust로 web assembly 만들어보기 (3) - Rust로 다양한 Web Assembly 만들어보기]]></title>
          <link>https://yceffort.kr/2022/03/rust-wasm-tutorial-3</link>
          <guid>https://yceffort.kr/2022/03/rust-wasm-tutorial-3</guid>
          <pubDate>Fri, 11 Mar 2022 11:56:45 GMT</pubDate>
          <description><![CDATA[조금씩 알듯 말듯 하네]]></description>
          <category><![CDATA[rust]]></category><category><![CDATA[webassembly]]></category>
        </item>
      
        <item>
          <title><![CDATA[Rust로 web assembly 만들어보기 (2) - Rust로 간단한 Web Assembly 만들기]]></title>
          <link>https://yceffort.kr/2022/03/rust-wasm-tutorial-2</link>
          <guid>https://yceffort.kr/2022/03/rust-wasm-tutorial-2</guid>
          <pubDate>Thu, 10 Mar 2022 17:45:43 GMT</pubDate>
          <description><![CDATA[오 이거 신기하네]]></description>
          <category><![CDATA[rust]]></category><category><![CDATA[webassembly]]></category>
        </item>
      
        <item>
          <title><![CDATA[Rust로 web assembly 만들어보기 (1) - Web Assembly란 무엇인가?]]></title>
          <link>https://yceffort.kr/2022/03/rust-wasm-tutorial-1</link>
          <guid>https://yceffort.kr/2022/03/rust-wasm-tutorial-1</guid>
          <pubDate>Mon, 07 Mar 2022 19:27:19 GMT</pubDate>
          <description><![CDATA[인생은 실전이다]]></description>
          <category><![CDATA[rust]]></category><category><![CDATA[webassembly]]></category>
        </item>
      
        <item>
          <title><![CDATA[[Rust] 자바스크립트에서 러스트로 (1) - rustup, hello world, 그리고 소유권과 빌림]]></title>
          <link>https://yceffort.kr/2022/02/rust-for-javascript-developer-chapter1</link>
          <guid>https://yceffort.kr/2022/02/rust-for-javascript-developer-chapter1</guid>
          <pubDate>Sat, 26 Feb 2022 13:40:28 GMT</pubDate>
          <description><![CDATA[Rust 공부해보기 (1)]]></description>
          <category><![CDATA[rust]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 3항연산자에 대한 고찰]]></title>
          <link>https://yceffort.kr/2022/02/think-about-ternary-operator</link>
          <guid>https://yceffort.kr/2022/02/think-about-ternary-operator</guid>
          <pubDate>Fri, 18 Feb 2022 21:34:58 GMT</pubDate>
          <description><![CDATA[그 옛날 이상한 코드를 반성하며]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Remix nextjs와 비교하면서 살펴보기]]></title>
          <link>https://yceffort.kr/2022/02/new-react-framework-remix</link>
          <guid>https://yceffort.kr/2022/02/new-react-framework-remix</guid>
          <pubDate>Sun, 13 Feb 2022 14:16:40 GMT</pubDate>
          <description><![CDATA[늘 새로워 짜릿해 새로운게 또 나왔어]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[nextjs]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Dockerfile 작성 가이드]]></title>
          <link>https://yceffort.kr/2022/02/dockerfile-instructions</link>
          <guid>https://yceffort.kr/2022/02/dockerfile-instructions</guid>
          <pubDate>Mon, 07 Feb 2022 18:04:31 GMT</pubDate>
          <description><![CDATA[갑자기 docker를 파는 이유는 22]]></description>
          <category><![CDATA[docker]]></category>
        </item>
      
        <item>
          <title><![CDATA[더 나은 Dockerfile 작성을 위한 best practice - 2022년 버전]]></title>
          <link>https://yceffort.kr/2022/02/docker-best-practice-2022</link>
          <guid>https://yceffort.kr/2022/02/docker-best-practice-2022</guid>
          <pubDate>Sat, 05 Feb 2022 23:24:24 GMT</pubDate>
          <description><![CDATA[갑자기 docker를 파는 이유는]]></description>
          <category><![CDATA[docker]]></category><category><![CDATA[devops]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트 서버 컴포넌트의 동작 방식]]></title>
          <link>https://yceffort.kr/2022/01/how-react-server-components-work</link>
          <guid>https://yceffort.kr/2022/01/how-react-server-components-work</guid>
          <pubDate>Sat, 29 Jan 2022 18:42:50 GMT</pubDate>
          <description><![CDATA[리액트 18 존버 하는 중]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[웹 애플리케이션에서 자바스크립트 프로파일링 해보기]]></title>
          <link>https://yceffort.kr/2022/01/javascript-self-profiling</link>
          <guid>https://yceffort.kr/2022/01/javascript-self-profiling</guid>
          <pubDate>Thu, 20 Jan 2022 21:54:46 GMT</pubDate>
          <description><![CDATA[해봤지만 해보지 않았습니다]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[colors.js와 faker.js 사태가 준 교훈]]></title>
          <link>https://yceffort.kr/2022/01/npm-colors-fakerjs</link>
          <guid>https://yceffort.kr/2022/01/npm-colors-fakerjs</guid>
          <pubDate>Mon, 17 Jan 2022 08:09:50 GMT</pubDate>
          <description><![CDATA[다이나믹하게 시작하는 2022년]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[security]]></category>
        </item>
      
        <item>
          <title><![CDATA[2021년 회고]]></title>
          <link>https://yceffort.kr/2022/01/2021-retrospective</link>
          <guid>https://yceffort.kr/2022/01/2021-retrospective</guid>
          <pubDate>Sat, 01 Jan 2022 19:32:36 GMT</pubDate>
          <description><![CDATA[2022년은 더 좋은 개발자가 되길 바라며]]></description>
          <category><![CDATA[career]]></category><category><![CDATA[frontend]]></category><category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[nextjs를 적용하면서 알게 된 사실들]]></title>
          <link>https://yceffort.kr/2021/12/nextjs-lesson-and-learn</link>
          <guid>https://yceffort.kr/2021/12/nextjs-lesson-and-learn</guid>
          <pubDate>Mon, 20 Dec 2021 16:55:17 GMT</pubDate>
          <description><![CDATA[아 집에 가고 싶다]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[Node.js의 메모리 제한과 누수 추적 가이드]]></title>
          <link>https://yceffort.kr/2021/12/nodejs-memory-limit</link>
          <guid>https://yceffort.kr/2021/12/nodejs-memory-limit</guid>
          <pubDate>Mon, 13 Dec 2021 19:21:45 GMT</pubDate>
          <description><![CDATA[V8 가비지 컬렉션의 세대별 구조, 힙 메모리 제한 조정, 그리고 메모리 누수를 진단하는 실용적인 방법을 정리합니다.]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[v8]]></category><category><![CDATA[memory]]></category>
        </item>
      
        <item>
          <title><![CDATA[node_modules도 git에서도 관리하면 어떨까?]]></title>
          <link>https://yceffort.kr/2021/12/add-node_modules-in-git</link>
          <guid>https://yceffort.kr/2021/12/add-node_modules-in-git</guid>
          <pubDate>Sat, 11 Dec 2021 16:55:17 GMT</pubDate>
          <description><![CDATA[세상에 당연한 것은 없다, 고민을 해보지 않은 것이 있을 뿐]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[devops]]></category>
        </item>
      
        <item>
          <title><![CDATA[HTML 문서에서 DOM으로의 여정]]></title>
          <link>https://yceffort.kr/2021/11/jorney-from-tags-to-dom</link>
          <guid>https://yceffort.kr/2021/11/jorney-from-tags-to-dom</guid>
          <pubDate>Tue, 30 Nov 2021 12:30:37 GMT</pubDate>
          <description><![CDATA[parser의 동작원리도 살펴보기]]></description>
          <category><![CDATA[browser]]></category><category><![CDATA[html]]></category>
        </item>
      
        <item>
          <title><![CDATA[서버에서 클라이언트로의 여정 - 브라우저와 서버는 어떻게 데이터를 주고 받을까]]></title>
          <link>https://yceffort.kr/2021/11/journey-from-server-to-client</link>
          <guid>https://yceffort.kr/2021/11/journey-from-server-to-client</guid>
          <pubDate>Tue, 23 Nov 2021 23:12:01 GMT</pubDate>
          <description><![CDATA[네트워크도 공부해야하는데]]></description>
          <category><![CDATA[browser]]></category><category><![CDATA[networking]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 코드가 가져야할 책임감 (2)]]></title>
          <link>https://yceffort.kr/2021/11/responsibility-of-javascript-code-2</link>
          <guid>https://yceffort.kr/2021/11/responsibility-of-javascript-code-2</guid>
          <pubDate>Sat, 20 Nov 2021 20:12:01 GMT</pubDate>
          <description><![CDATA[알지만 왠지 선뜻 내키지 않는 최적화, 이유가 무엇일까 🤔]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 코드가 가져야할 책임감 (1)]]></title>
          <link>https://yceffort.kr/2021/11/responsibility-of-javascript-code</link>
          <guid>https://yceffort.kr/2021/11/responsibility-of-javascript-code</guid>
          <pubDate>Tue, 16 Nov 2021 19:21:28 GMT</pubDate>
          <description><![CDATA[책임감 있는 코드를 작성하고 있는지 항상 뒤돌아보기]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[web-performance]]></category><category><![CDATA[accessibility]]></category>
        </item>
      
        <item>
          <title><![CDATA[읽기 좋은 자바스크립트 코드 작성하기]]></title>
          <link>https://yceffort.kr/2021/11/human-readable-javascript</link>
          <guid>https://yceffort.kr/2021/11/human-readable-javascript</guid>
          <pubDate>Wed, 10 Nov 2021 23:11:23 GMT</pubDate>
          <description><![CDATA[나는야 자바스크립트 키보드 워리어]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Array vs ArrayLike, Promise vs PromiseLike]]></title>
          <link>https://yceffort.kr/2021/11/array-arraylike-promise-promiselike</link>
          <guid>https://yceffort.kr/2021/11/array-arraylike-promise-promiselike</guid>
          <pubDate>Fri, 05 Nov 2021 00:55:08 GMT</pubDate>
          <description><![CDATA[이걸 유사 배열이?]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[nextjs 서버사이드에서 absolute url 가져오기]]></title>
          <link>https://yceffort.kr/2021/10/get-absolute-url-in-nextjs</link>
          <guid>https://yceffort.kr/2021/10/get-absolute-url-in-nextjs</guid>
          <pubDate>Fri, 29 Oct 2021 17:57:02 GMT</pubDate>
          <description><![CDATA[이번 달 포스팅이 더디네요... 반성합니다.]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[클라이언트 서버 모두에서 nextjs에서 api에러 핸들링하기]]></title>
          <link>https://yceffort.kr/2021/10/api-error-handling-nextjs</link>
          <guid>https://yceffort.kr/2021/10/api-error-handling-nextjs</guid>
          <pubDate>Fri, 22 Oct 2021 18:30:22 GMT</pubDate>
          <description><![CDATA[결국 여기까지 와버렸네]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[error-handling]]></category><category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[nodejs의 버퍼 이해하기]]></title>
          <link>https://yceffort.kr/2021/10/understanding-of-nodejs-buffer</link>
          <guid>https://yceffort.kr/2021/10/understanding-of-nodejs-buffer</guid>
          <pubDate>Fri, 15 Oct 2021 23:48:00 GMT</pubDate>
          <description><![CDATA[nodejs로 백엔드하는 회사 찾습니다]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[좋은 자바스크립트 테스트 코드를 짜는 방법]]></title>
          <link>https://yceffort.kr/2021/10/how-to-write-good-javascript-test-code</link>
          <guid>https://yceffort.kr/2021/10/how-to-write-good-javascript-test-code</guid>
          <pubDate>Sun, 10 Oct 2021 11:21:24 GMT</pubDate>
          <description><![CDATA[개발자는 코드로 돈을 벌지, 테스트로 버는 사람이 아니다. 따라서 테스트는 주어진 신뢰에 도달할 수 있게 최대한 간결하게 작성되어야 한다.]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[testing]]></category>
        </item>
      
        <item>
          <title><![CDATA[package.json에 쌓여있는 개발 부채]]></title>
          <link>https://yceffort.kr/2021/10/debt-of-package-json</link>
          <guid>https://yceffort.kr/2021/10/debt-of-package-json</guid>
          <pubDate>Wed, 06 Oct 2021 22:01:12 GMT</pubDate>
          <description><![CDATA[설치와 업데이트 시에는 신중에 신중을.]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[nodejs]]></category><category><![CDATA[dependency-management]]></category>
        </item>
      
        <item>
          <title><![CDATA[HTML은 프로그래밍 언어인가? 라는 논쟁보다 중요한 것]]></title>
          <link>https://yceffort.kr/2021/10/is-html-programming-language</link>
          <guid>https://yceffort.kr/2021/10/is-html-programming-language</guid>
          <pubDate>Sun, 03 Oct 2021 12:57:23 GMT</pubDate>
          <description><![CDATA[더이상 HTML 논란은,, 네이버,,,]]></description>
          <category><![CDATA[html]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[프론트엔드 프로젝트를 위한 github CI workflow]]></title>
          <link>https://yceffort.kr/2021/09/github-ci-workflow-for-frontend-developer</link>
          <guid>https://yceffort.kr/2021/09/github-ci-workflow-for-frontend-developer</guid>
          <pubDate>Tue, 28 Sep 2021 21:21:56 GMT</pubDate>
          <description><![CDATA[사랑해요 Github]]></description>
          <category><![CDATA[devops]]></category><category><![CDATA[frontend]]></category><category><![CDATA[ci-cd]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트 18에서 변경될 새로운 SSR 아키텍쳐]]></title>
          <link>https://yceffort.kr/2021/09/react-18-ssr-architecture</link>
          <guid>https://yceffort.kr/2021/09/react-18-ssr-architecture</guid>
          <pubDate>Sat, 25 Sep 2021 17:24:06 GMT</pubDate>
          <description><![CDATA[따라가는 것만 해도 바쁜 인생]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[Critical Request - request 순서는 웹사이트 속도에 어떤 영향을 미치는가]]></title>
          <link>https://yceffort.kr/2021/09/critical-request-and-prioritise-requests</link>
          <guid>https://yceffort.kr/2021/09/critical-request-and-prioritise-requests</guid>
          <pubDate>Wed, 22 Sep 2021 10:24:48 GMT</pubDate>
          <description><![CDATA[서순을 정확히하는게 중요하지]]></description>
          <category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[웹 개발자가 본 사파리 15의 변화와 대응]]></title>
          <link>https://yceffort.kr/2021/09/safari-15-update</link>
          <guid>https://yceffort.kr/2021/09/safari-15-update</guid>
          <pubDate>Sun, 19 Sep 2021 17:46:41 GMT</pubDate>
          <description><![CDATA[죽인다 사파리]]></description>
          <category><![CDATA[browser]]></category><category><![CDATA[css]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트에서의 정규식, 이론부터 조심해야 할 것 까지]]></title>
          <link>https://yceffort.kr/2021/09/deep-dive-javascript-regex</link>
          <guid>https://yceffort.kr/2021/09/deep-dive-javascript-regex</guid>
          <pubDate>Tue, 14 Sep 2021 00:05:25 GMT</pubDate>
          <description><![CDATA[아직도 정규식이랑 안 친함. 오늘부터 1일....]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[비동기 함수 memoize 하는 방법]]></title>
          <link>https://yceffort.kr/2021/09/memoize-async-function</link>
          <guid>https://yceffort.kr/2021/09/memoize-async-function</guid>
          <pubDate>Wed, 08 Sep 2021 22:06:46 GMT</pubDate>
          <description><![CDATA[memo, useMemo, useCallback, 그리고...]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트에서 안전하게 난수 생성하는 방법]]></title>
          <link>https://yceffort.kr/2021/09/javascript-random-number</link>
          <guid>https://yceffort.kr/2021/09/javascript-random-number</guid>
          <pubDate>Wed, 01 Sep 2021 21:19:35 GMT</pubDate>
          <description><![CDATA[Math.random()도 잘못 사용하는 경우가 더러 있음]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[security]]></category>
        </item>
      
        <item>
          <title><![CDATA[Nodejs의 이벤트 루프 살펴보기]]></title>
          <link>https://yceffort.kr/2021/08/event-loop-deep-dive</link>
          <guid>https://yceffort.kr/2021/08/event-loop-deep-dive</guid>
          <pubDate>Tue, 31 Aug 2021 21:38:06 GMT</pubDate>
          <description><![CDATA[이벤트 루프는 4개의 큐, 그리고 2개의 중간 큐가 있습니다.]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[타입스크립트의 제네릭은 적절한 네이밍과 함께 사용하자]]></title>
          <link>https://yceffort.kr/2021/08/naming-your-own-generic</link>
          <guid>https://yceffort.kr/2021/08/naming-your-own-generic</guid>
          <pubDate>Fri, 27 Aug 2021 23:27:41 GMT</pubDate>
          <description><![CDATA[무지성 T, U, K 멈춰!]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[트리쉐이킹으로 자바스크립트 사이즈 줄이기]]></title>
          <link>https://yceffort.kr/2021/08/javascript-tree-shaking</link>
          <guid>https://yceffort.kr/2021/08/javascript-tree-shaking</guid>
          <pubDate>Tue, 24 Aug 2021 12:47:40 GMT</pubDate>
          <description><![CDATA[트리쉐이킹은 직접 해드세요 제발]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[uncaught async error를 올바르게 처리하기]]></title>
          <link>https://yceffort.kr/2021/08/uncaught-async-error</link>
          <guid>https://yceffort.kr/2021/08/uncaught-async-error</guid>
          <pubDate>Mon, 23 Aug 2021 13:21:41 GMT</pubDate>
          <description><![CDATA[async가 있으면 함수 실행이 뒤로 넘어간다니까요?]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[error-handling]]></category><category><![CDATA[async]]></category>
        </item>
      
        <item>
          <title><![CDATA[requestIdleCallback으로 최적화하기]]></title>
          <link>https://yceffort.kr/2021/08/requestIdlecallback</link>
          <guid>https://yceffort.kr/2021/08/requestIdlecallback</guid>
          <pubDate>Sun, 15 Aug 2021 17:24:10 GMT</pubDate>
          <description><![CDATA[내 인생은 언제 idle 할 것인가]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[비동기 리소스 (async resources)와 비동기 훅 (async hooks) 이해하기]]></title>
          <link>https://yceffort.kr/2021/08/async-resources-async-hooks</link>
          <guid>https://yceffort.kr/2021/08/async-resources-async-hooks</guid>
          <pubDate>Sat, 14 Aug 2021 00:20:56 GMT</pubDate>
          <description><![CDATA[비동기로 불타는 금요일]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[브라우저와 Nodejs의 이벤트 루프는 무엇이 다를까]]></title>
          <link>https://yceffort.kr/2021/08/browser-nodejs-event-loop</link>
          <guid>https://yceffort.kr/2021/08/browser-nodejs-event-loop</guid>
          <pubDate>Tue, 10 Aug 2021 22:22:37 GMT</pubDate>
          <description><![CDATA[인생은 돌고 도는 이벤트 루프]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[nodejs]]></category><category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[웹 페이지에서의 자바스크립트 메모리 사용량 벤치마킹]]></title>
          <link>https://yceffort.kr/2021/08/benchmarking-web-javascript-memory-usage</link>
          <guid>https://yceffort.kr/2021/08/benchmarking-web-javascript-memory-usage</guid>
          <pubDate>Sat, 07 Aug 2021 23:18:02 GMT</pubDate>
          <description><![CDATA[분석할 때 마다 한숨이 나오는 그것]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[javascript]]></category><category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[웹사이트의 성능지표, Core Web Vital]]></title>
          <link>https://yceffort.kr/2021/08/core-web-vital</link>
          <guid>https://yceffort.kr/2021/08/core-web-vital</guid>
          <pubDate>Fri, 06 Aug 2021 20:32:31 GMT</pubDate>
          <description><![CDATA[조만간 웹사이트 하나씩 분석해 보겠습니다]]></description>
          <category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[promise.then(f, f) vs promise.then(f).catch(f) 는 무엇이 다를까?]]></title>
          <link>https://yceffort.kr/2021/07/promise-then-f-f-vs-promise-catch</link>
          <guid>https://yceffort.kr/2021/07/promise-then-f-f-vs-promise-catch</guid>
          <pubDate>Fri, 30 Jul 2021 20:16:48 GMT</pubDate>
          <description><![CDATA[덥다 더워]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 의존성 관리자(npm, yarn, pnpm)에서 보다 더 의존성 관리 잘하는 방법]]></title>
          <link>https://yceffort.kr/2021/07/javascript-dependency-manager-dont-mange-dependencies</link>
          <guid>https://yceffort.kr/2021/07/javascript-dependency-manager-dont-mange-dependencies</guid>
          <pubDate>Wed, 28 Jul 2021 22:17:24 GMT</pubDate>
          <description><![CDATA[일단 제목으로 어그로를 끈다.]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[dependency-management]]></category>
        </item>
      
        <item>
          <title><![CDATA[Export에 숨겨져 있는 심오함]]></title>
          <link>https://yceffort.kr/2021/07/deep-dive-to-export</link>
          <guid>https://yceffort.kr/2021/07/deep-dive-to-export</guid>
          <pubDate>Thu, 22 Jul 2021 21:12:37 GMT</pubDate>
          <description><![CDATA[자바스크립트는 멋져 짜릿해 늘 새로워]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Nodejs 프로세스를 종료시키는 방법]]></title>
          <link>https://yceffort.kr/2021/07/kill-a-nodejs-process</link>
          <guid>https://yceffort.kr/2021/07/kill-a-nodejs-process</guid>
          <pubDate>Fri, 16 Jul 2021 17:28:35 GMT</pubDate>
          <description><![CDATA[이사하느라 힘들었습니다.]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[npm workspace와 esbuild로 monorepo 구축해보기]]></title>
          <link>https://yceffort.kr/2021/07/npm-workspaces-esbuild</link>
          <guid>https://yceffort.kr/2021/07/npm-workspaces-esbuild</guid>
          <pubDate>Tue, 06 Jul 2021 19:34:21 GMT</pubDate>
          <description><![CDATA[계속 찍먹만 해보는 중]]></description>
          <category><![CDATA[monorepo]]></category><category><![CDATA[build-tools]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Nodejs 모듈 (CommonJS, ECMAScript) 과 패키지, 그리고 Semver]]></title>
          <link>https://yceffort.kr/2021/07/nodejs-modules-packages-semver</link>
          <guid>https://yceffort.kr/2021/07/nodejs-modules-packages-semver</guid>
          <pubDate>Mon, 05 Jul 2021 21:41:20 GMT</pubDate>
          <description><![CDATA[어우 피곤해]]></description>
          <category><![CDATA[nodejs]]></category>
        </item>
      
        <item>
          <title><![CDATA[왜 Nodejs ORM을 쓰지 말아야 할까]]></title>
          <link>https://yceffort.kr/2021/07/dont-use-nodjs-orm</link>
          <guid>https://yceffort.kr/2021/07/dont-use-nodjs-orm</guid>
          <pubDate>Fri, 02 Jul 2021 19:29:54 GMT</pubDate>
          <description><![CDATA[SQL 오랫만에 보니까 반갑당]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[backend]]></category><category><![CDATA[database]]></category>
        </item>
      
        <item>
          <title><![CDATA[웹 폰트 로딩을 더 빠르게 하는 방법]]></title>
          <link>https://yceffort.kr/2021/06/ways-to-faster-web-fonts</link>
          <guid>https://yceffort.kr/2021/06/ways-to-faster-web-fonts</guid>
          <pubDate>Sun, 27 Jun 2021 17:34:52 GMT</pubDate>
          <description><![CDATA[개발할 때 간지나는 이쁜 폰트 추천받습니다]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[css]]></category>
        </item>
      
        <item>
          <title><![CDATA[reduce에 spread 를 쓰면 안되는 이유]]></title>
          <link>https://yceffort.kr/2021/06/reduce-spread-anti-pattern</link>
          <guid>https://yceffort.kr/2021/06/reduce-spread-anti-pattern</guid>
          <pubDate>Tue, 22 Jun 2021 17:35:37 GMT</pubDate>
          <description><![CDATA[솔직히 뭔가 멋있어서 많이 쓰긴 함]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[Nextjs 11 릴리즈 노트 살펴보고 블로그에 적용하기]]></title>
          <link>https://yceffort.kr/2021/06/nextjs-11</link>
          <guid>https://yceffort.kr/2021/06/nextjs-11</guid>
          <pubDate>Sat, 19 Jun 2021 22:12:48 GMT</pubDate>
          <description><![CDATA[nextjs 정말 열일하네2222]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[K8s 공부 (4)]]></title>
          <link>https://yceffort.kr/2021/06/study-k8s-4</link>
          <guid>https://yceffort.kr/2021/06/study-k8s-4</guid>
          <pubDate>Sat, 19 Jun 2021 21:13:55 GMT</pubDate>
          <description><![CDATA[무지성에서 시작하는 K8s 공부해보기 시리즈(4) namespace의 정의를 정확히 알아야지]]></description>
          <category><![CDATA[kubernetes]]></category><category><![CDATA[devops]]></category>
        </item>
      
        <item>
          <title><![CDATA[ESModule을 동적으로 import 하기]]></title>
          <link>https://yceffort.kr/2021/06/dynamic-import-esmodule</link>
          <guid>https://yceffort.kr/2021/06/dynamic-import-esmodule</guid>
          <pubDate>Sat, 19 Jun 2021 20:38:43 GMT</pubDate>
          <description><![CDATA[무지성 import 멈춰!]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[타입스크립트의 타입과 제네릭 적극 활용하기]]></title>
          <link>https://yceffort.kr/2021/06/typescript-type-operation-generic</link>
          <guid>https://yceffort.kr/2021/06/typescript-type-operation-generic</guid>
          <pubDate>Tue, 15 Jun 2021 18:23:35 GMT</pubDate>
          <description><![CDATA[interface를 더 좋아하지만 type이 더 간지남]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[K8s 공부 (3)]]></title>
          <link>https://yceffort.kr/2021/06/study-k8s-3</link>
          <guid>https://yceffort.kr/2021/06/study-k8s-3</guid>
          <pubDate>Sat, 12 Jun 2021 22:32:44 GMT</pubDate>
          <description><![CDATA[무지성에서 시작하는 K8s 공부해보기 시리즈(3)]]></description>
          <category><![CDATA[kubernetes]]></category><category><![CDATA[docker]]></category>
        </item>
      
        <item>
          <title><![CDATA[K8s 공부 (2)]]></title>
          <link>https://yceffort.kr/2021/06/study-k8s-2</link>
          <guid>https://yceffort.kr/2021/06/study-k8s-2</guid>
          <pubDate>Thu, 10 Jun 2021 22:30:19 GMT</pubDate>
          <description><![CDATA[무지성에서 시작하는 K8s 공부해보기 시리즈(2)]]></description>
          <category><![CDATA[kubernetes]]></category><category><![CDATA[devops]]></category>
        </item>
      
        <item>
          <title><![CDATA[타입스크립트의 구조 타이핑]]></title>
          <link>https://yceffort.kr/2021/06/typescript-structual-typing</link>
          <guid>https://yceffort.kr/2021/06/typescript-structual-typing</guid>
          <pubDate>Thu, 10 Jun 2021 22:30:19 GMT</pubDate>
          <description><![CDATA[얀센 맞고 정신 나가서 하루를 순삭당했습니다]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[K8s 공부 (1)]]></title>
          <link>https://yceffort.kr/2021/06/study-k8s-1</link>
          <guid>https://yceffort.kr/2021/06/study-k8s-1</guid>
          <pubDate>Wed, 09 Jun 2021 21:52:35 GMT</pubDate>
          <description><![CDATA[무지성에서 시작하는 K8s 공부해보기 시리즈(1)]]></description>
          <category><![CDATA[kubernetes]]></category><category><![CDATA[devops]]></category><category><![CDATA[docker]]></category>
        </item>
      
        <item>
          <title><![CDATA[for vs for-in vs forEach vs for-of 무엇으로 자바스크립트 리스트를 돌아야 하나]]></title>
          <link>https://yceffort.kr/2021/06/best-solution-for-looping-over-array</link>
          <guid>https://yceffort.kr/2021/06/best-solution-for-looping-over-array</guid>
          <pubDate>Mon, 07 Jun 2021 23:05:55 GMT</pubDate>
          <description><![CDATA[사소하고 짧은 생각]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Nodejs에서 올바르게 에러 처리하기]]></title>
          <link>https://yceffort.kr/2021/06/error-handling-in-nodejs</link>
          <guid>https://yceffort.kr/2021/06/error-handling-in-nodejs</guid>
          <pubDate>Sat, 05 Jun 2021 20:56:10 GMT</pubDate>
          <description><![CDATA[SSR을 다루면서 에러처리에 대해 고민했던 나날들😑]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[backend]]></category><category><![CDATA[error-handling]]></category>
        </item>
      
        <item>
          <title><![CDATA[Nodejs에 대한 잘못된 상식 몇가지]]></title>
          <link>https://yceffort.kr/2021/06/misconceptions-on-nodejs</link>
          <guid>https://yceffort.kr/2021/06/misconceptions-on-nodejs</guid>
          <pubDate>Fri, 04 Jun 2021 06:45:32 GMT</pubDate>
          <description><![CDATA[Nodejs도 CPU 집약적인 작업 잘 할 수 있습니다(?)]]></description>
          <category><![CDATA[nodejs]]></category>
        </item>
      
        <item>
          <title><![CDATA[Typescript, 객체의 키와 값 타이핑하기]]></title>
          <link>https://yceffort.kr/2021/05/value-of-typescript</link>
          <guid>https://yceffort.kr/2021/05/value-of-typescript</guid>
          <pubDate>Thu, 27 May 2021 20:43:27 GMT</pubDate>
          <description><![CDATA[아오 피곤해]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Typescript의 Immutability]]></title>
          <link>https://yceffort.kr/2021/05/immutability-in-typescript</link>
          <guid>https://yceffort.kr/2021/05/immutability-in-typescript</guid>
          <pubDate>Wed, 26 May 2021 19:19:20 GMT</pubDate>
          <description><![CDATA[저는 사실 Immutability에 안 좋은 추억이 있습니다]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[타입스크립트에서 조심해야할 습관]]></title>
          <link>https://yceffort.kr/2021/05/bad-habits-of-typescript</link>
          <guid>https://yceffort.kr/2021/05/bad-habits-of-typescript</guid>
          <pubDate>Tue, 25 May 2021 20:57:49 GMT</pubDate>
          <description><![CDATA[M1 맥북 프로 너무 좋네여]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[suppressImplicitAnyIndexErrors 옵션을 키기 전에]]></title>
          <link>https://yceffort.kr/2021/05/do-not-use-suppressImplicitAnyIndexErrors</link>
          <guid>https://yceffort.kr/2021/05/do-not-use-suppressImplicitAnyIndexErrors</guid>
          <pubDate>Sun, 23 May 2021 22:26:52 GMT</pubDate>
          <description><![CDATA[Don’t give up and use suppressImplicitAnyIndexErrors 이 멋있어서 배껴봄]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Vercel에서 배포가 안됐던 이야기]]></title>
          <link>https://yceffort.kr/2021/05/review-of-vercel-cs</link>
          <guid>https://yceffort.kr/2021/05/review-of-vercel-cs</guid>
          <pubDate>Mon, 17 May 2021 20:11:42 GMT</pubDate>
          <description><![CDATA[Vercel 고객센터랑 싸운썰 푼다.txt]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[devops]]></category>
        </item>
      
        <item>
          <title><![CDATA[JWT의 단점과 주의사항]]></title>
          <link>https://yceffort.kr/2021/05/drawback-of-jwt</link>
          <guid>https://yceffort.kr/2021/05/drawback-of-jwt</guid>
          <pubDate>Sat, 15 May 2021 11:41:18 GMT</pubDate>
          <description><![CDATA[공부할게 정말 많습니당 222]]></description>
          <category><![CDATA[security]]></category><category><![CDATA[authentication]]></category>
        </item>
      
        <item>
          <title><![CDATA[HTTP1 vs HTTP2]]></title>
          <link>https://yceffort.kr/2021/05/http1-vs-http2</link>
          <guid>https://yceffort.kr/2021/05/http1-vs-http2</guid>
          <pubDate>Wed, 12 May 2021 21:04:16 GMT</pubDate>
          <description><![CDATA[공부할게 정말 많습니당]]></description>
          <category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 개발자를 위한 AST 이해하기 (2026년 업데이트)]]></title>
          <link>https://yceffort.kr/2021/05/ast-for-javascript</link>
          <guid>https://yceffort.kr/2021/05/ast-for-javascript</guid>
          <pubDate>Mon, 10 May 2021 09:40:39 GMT</pubDate>
          <description><![CDATA[AST의 개념부터 파싱 과정, 주요 노드 타입, 그리고 Babel·ESLint 같은 도구에서의 활용까지 정리합니다.]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[compiler]]></category>
        </item>
      
        <item>
          <title><![CDATA[디렉토리에 있는 모든 이미지 최적화 하기]]></title>
          <link>https://yceffort.kr/2021/05/compress-all-images-in-directory</link>
          <guid>https://yceffort.kr/2021/05/compress-all-images-in-directory</guid>
          <pubDate>Sun, 02 May 2021 20:18:24 GMT</pubDate>
          <description><![CDATA[PNG는 좀 느립니다]]></description>
          <category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[nodejs의 멀티쓰레딩과 worker threads]]></title>
          <link>https://yceffort.kr/2021/04/nodejs-multithreading-worker-threads</link>
          <guid>https://yceffort.kr/2021/04/nodejs-multithreading-worker-threads</guid>
          <pubDate>Thu, 15 Apr 2021 17:09:10 GMT</pubDate>
          <description><![CDATA[그 놈의 싱글스레드]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[backend]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[github workflow로 lighthouse ci 추가하기]]></title>
          <link>https://yceffort.kr/2021/03/Lighthouse-CI-with-github-actions</link>
          <guid>https://yceffort.kr/2021/03/Lighthouse-CI-with-github-actions</guid>
          <pubDate>Wed, 31 Mar 2021 23:39:50 GMT</pubDate>
          <description><![CDATA[점수의 노예가 되버린 나]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[devops]]></category><category><![CDATA[github]]></category>
        </item>
      
        <item>
          <title><![CDATA[CSS 성능 향상 시키기]]></title>
          <link>https://yceffort.kr/2021/03/improve-css-performance</link>
          <guid>https://yceffort.kr/2021/03/improve-css-performance</guid>
          <pubDate>Fri, 26 Mar 2021 20:43:10 GMT</pubDate>
          <description><![CDATA[CSS의 황제가 출간한 CSS 완벽가이드를 장식용으로 구매...]]></description>
          <category><![CDATA[css]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[타입스크립트 성능을 위한 팁]]></title>
          <link>https://yceffort.kr/2021/03/performance-tip-of-typescript</link>
          <guid>https://yceffort.kr/2021/03/performance-tip-of-typescript</guid>
          <pubDate>Mon, 22 Mar 2021 23:14:07 GMT</pubDate>
          <description><![CDATA[아무튼 스터디 중임]]></description>
          <category><![CDATA[typescript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[타입스크립트 type과 interface의 공통점과 차이점]]></title>
          <link>https://yceffort.kr/2021/03/typescript-interface-vs-type</link>
          <guid>https://yceffort.kr/2021/03/typescript-interface-vs-type</guid>
          <pubDate>Sun, 21 Mar 2021 17:43:42 GMT</pubDate>
          <description><![CDATA[typescript is coming again........]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[알쏭 달쏭한 자바스크립트 정규식]]></title>
          <link>https://yceffort.kr/2021/03/javascript-regex-global-flag-and-test</link>
          <guid>https://yceffort.kr/2021/03/javascript-regex-global-flag-and-test</guid>
          <pubDate>Sun, 21 Mar 2021 14:42:10 GMT</pubDate>
          <description><![CDATA[정규식을 자유자재로 써야 간지인데]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트 서버사이드 렌더링과 컴포넌트]]></title>
          <link>https://yceffort.kr/2021/03/server-side-rendering-and-react-components</link>
          <guid>https://yceffort.kr/2021/03/server-side-rendering-and-react-components</guid>
          <pubDate>Fri, 19 Mar 2021 19:31:14 GMT</pubDate>
          <description><![CDATA[갈길이 멀다]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[react]]></category><category><![CDATA[ssr]]></category>
        </item>
      
        <item>
          <title><![CDATA[애플 단축어와 GCP로 내 건강정보 업로드하기]]></title>
          <link>https://yceffort.kr/2021/03/apple-health-shortcut</link>
          <guid>https://yceffort.kr/2021/03/apple-health-shortcut</guid>
          <pubDate>Wed, 17 Mar 2021 23:19:59 GMT</pubDate>
          <description><![CDATA[간만에 했본 간단하고 재밌는 일]]></description>
          <category><![CDATA[gcp]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트의 프록시]]></title>
          <link>https://yceffort.kr/2021/03/javascript-proxy</link>
          <guid>https://yceffort.kr/2021/03/javascript-proxy</guid>
          <pubDate>Fri, 12 Mar 2021 18:34:41 GMT</pubDate>
          <description><![CDATA[IE를 주깁시다]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트의 제네레이터와 regeneratorRuntime]]></title>
          <link>https://yceffort.kr/2021/03/javascript-generator-regeneratorRuntime</link>
          <guid>https://yceffort.kr/2021/03/javascript-generator-regeneratorRuntime</guid>
          <pubDate>Tue, 09 Mar 2021 20:43:10 GMT</pubDate>
          <description><![CDATA[아직도 자바스크립트 산을 기어 올라가는 중]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[HTML과 CSS를 활용해서 콘텐츠를 숨기는 10가지 방법]]></title>
          <link>https://yceffort.kr/2021/03/hiding-contents-with-html-and-css</link>
          <guid>https://yceffort.kr/2021/03/hiding-contents-with-html-and-css</guid>
          <pubDate>Fri, 05 Mar 2021 21:14:45 GMT</pubDate>
          <description><![CDATA[원래 알던건 두 세가지밖에 안됨]]></description>
          <category><![CDATA[html]]></category><category><![CDATA[css]]></category><category><![CDATA[accessibility]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 성능과 번들 사이즈]]></title>
          <link>https://yceffort.kr/2021/02/javascript-performance-bundle-size</link>
          <guid>https://yceffort.kr/2021/02/javascript-performance-bundle-size</guid>
          <pubDate>Sat, 27 Feb 2021 23:40:05 GMT</pubDate>
          <description><![CDATA[자바스크립트 성능에 중요한 건 번들크기 만은 아니다. 근데 개발 하느라 이것도 잘 못챙기고 있는듯.]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[Nodejs에서 로깅하기]]></title>
          <link>https://yceffort.kr/2021/02/logging-in-nodejs</link>
          <guid>https://yceffort.kr/2021/02/logging-in-nodejs</guid>
          <pubDate>Fri, 26 Feb 2021 19:56:41 GMT</pubDate>
          <description><![CDATA[어쩌다 보니 nodejs도 하고 있🤣]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[useEffect와 메모리 누수]]></title>
          <link>https://yceffort.kr/2021/02/memory-leak-and-useeffect</link>
          <guid>https://yceffort.kr/2021/02/memory-leak-and-useeffect</guid>
          <pubDate>Thu, 25 Feb 2021 22:46:17 GMT</pubDate>
          <description><![CDATA[https://overreacted.io/a-complete-guide-to-useeffect/ 도 시간나면 읽어보세용]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트의 배열, 그리고 이터러블과 이터레이터 (ES6)]]></title>
          <link>https://yceffort.kr/2021/02/javascript-array-and-iterable</link>
          <guid>https://yceffort.kr/2021/02/javascript-array-and-iterable</guid>
          <pubDate>Sun, 21 Feb 2021 15:54:51 GMT</pubDate>
          <description><![CDATA[이터러블과 이터레이터 이름이 헷갈림]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[나만의 자바스크립트 polyfill 만들고 공부하기]]></title>
          <link>https://yceffort.kr/2021/02/self-made-javascript-polyfill</link>
          <guid>https://yceffort.kr/2021/02/self-made-javascript-polyfill</guid>
          <pubDate>Mon, 15 Feb 2021 21:50:50 GMT</pubDate>
          <description><![CDATA[어디 재밌는 글 없나]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[no return, await, return, await return 의 차이]]></title>
          <link>https://yceffort.kr/2021/02/run-await-return-return-await</link>
          <guid>https://yceffort.kr/2021/02/run-await-return-return-await</guid>
          <pubDate>Wed, 03 Feb 2021 17:27:03 GMT</pubDate>
          <description><![CDATA[try catch 블록에서는 동작이 다르네]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[async]]></category>
        </item>
      
        <item>
          <title><![CDATA[null과 undefined의 차이, 그리고 역사]]></title>
          <link>https://yceffort.kr/2021/02/null-vs-undefined</link>
          <guid>https://yceffort.kr/2021/02/null-vs-undefined</guid>
          <pubDate>Tue, 02 Feb 2021 20:57:53 GMT</pubDate>
          <description><![CDATA[이런 것 또한 매력이라면 매력이 아니다]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[CSS와 웹페이지 성능과의 관계]]></title>
          <link>https://yceffort.kr/2021/02/css-and-webpage-performance</link>
          <guid>https://yceffort.kr/2021/02/css-and-webpage-performance</guid>
          <pubDate>Mon, 01 Feb 2021 16:19:06 GMT</pubDate>
          <description><![CDATA[내 일이 아니라고 생각하면 관심이 안가더라고]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[css]]></category>
        </item>
      
        <item>
          <title><![CDATA[Nextjs에서 Server Side props를 새로고침하기]]></title>
          <link>https://yceffort.kr/2021/01/nextjs-refresh-server-side-props</link>
          <guid>https://yceffort.kr/2021/01/nextjs-refresh-server-side-props</guid>
          <pubDate>Thu, 28 Jan 2021 09:13:31 GMT</pubDate>
          <description><![CDATA[항상 감사하십시오 and I also, nextjs 조아]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[Github action cron이 제시간에 실행되지 않는 문제]]></title>
          <link>https://yceffort.kr/2021/01/from-github-workflow-to-firebase-functions</link>
          <guid>https://yceffort.kr/2021/01/from-github-workflow-to-firebase-functions</guid>
          <pubDate>Sun, 24 Jan 2021 21:16:38 GMT</pubDate>
          <description><![CDATA[Github에 실망했습니다 ㅠㅠ]]></description>
          <category><![CDATA[devops]]></category><category><![CDATA[github]]></category>
        </item>
      
        <item>
          <title><![CDATA[overflow: auto vs overflow: scroll 왜 윈도우에서만 쓸모없는 스크롤바가 노출될까]]></title>
          <link>https://yceffort.kr/2021/01/overflow-auto-scroll</link>
          <guid>https://yceffort.kr/2021/01/overflow-auto-scroll</guid>
          <pubDate>Thu, 14 Jan 2021 22:40:55 GMT</pubDate>
          <description><![CDATA[맨날 맥만 봐서 이런 줄도 몰랐다 반성합니다]]></description>
          <category><![CDATA[css]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[그런데 왜 brotli를 사용하지 않는 것일까? 🤔]]></title>
          <link>https://yceffort.kr/2021/01/effectiveness-of-brotli</link>
          <guid>https://yceffort.kr/2021/01/effectiveness-of-brotli</guid>
          <pubDate>Mon, 11 Jan 2021 23:45:24 GMT</pubDate>
          <description><![CDATA[항상 왜 그럴까를 고민해 봐야 하는 것 같다]]></description>
          <category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[개발자가 알아야 하는 4가지 nodejs 디자인 패턴]]></title>
          <link>https://yceffort.kr/2021/01/nodejs-4-design-pattern</link>
          <guid>https://yceffort.kr/2021/01/nodejs-4-design-pattern</guid>
          <pubDate>Mon, 11 Jan 2021 23:33:24 GMT</pubDate>
          <description><![CDATA[옛날 스타일의 가능한 객체 지향 프로그래밍]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[design-patterns]]></category>
        </item>
      
        <item>
          <title><![CDATA[더 나은 압축 알고리즘, Brotli]]></title>
          <link>https://yceffort.kr/2021/01/brotli-better-html-compression</link>
          <guid>https://yceffort.kr/2021/01/brotli-better-html-compression</guid>
          <pubDate>Thu, 07 Jan 2021 23:57:07 GMT</pubDate>
          <description><![CDATA[왜 이걸 이제 알았나 자괴감 들고 괴로워]]></description>
          <category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[ES2021 미리보기]]></title>
          <link>https://yceffort.kr/2020/12/preview-ES2021</link>
          <guid>https://yceffort.kr/2020/12/preview-ES2021</guid>
          <pubDate>Sat, 26 Dec 2020 18:57:32 GMT</pubDate>
          <description><![CDATA[2021년엔 쓸만한 개발자가 되길 바라며]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[map과 reduce에서 async await 사용하기]]></title>
          <link>https://yceffort.kr/2020/12/javascrpt-async-await-in-map-and-reduce</link>
          <guid>https://yceffort.kr/2020/12/javascrpt-async-await-in-map-and-reduce</guid>
          <pubDate>Tue, 22 Dec 2020 20:44:19 GMT</pubDate>
          <description><![CDATA[당연한거 아님?]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[async]]></category>
        </item>
      
        <item>
          <title><![CDATA[파티셔닝 캐시 (partitioning cache)]]></title>
          <link>https://yceffort.kr/2020/12/partitioning-cache</link>
          <guid>https://yceffort.kr/2020/12/partitioning-cache</guid>
          <pubDate>Thu, 17 Dec 2020 23:44:19 GMT</pubDate>
          <description><![CDATA[Google Font 를 써도 이제 캐시 효과는 못받겠네요]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[browser]]></category><category><![CDATA[security]]></category>
        </item>
      
        <item>
          <title><![CDATA[2020년 사이드 프로젝트 회고]]></title>
          <link>https://yceffort.kr/2020/12/side-project-diary-2020</link>
          <guid>https://yceffort.kr/2020/12/side-project-diary-2020</guid>
          <pubDate>Tue, 15 Dec 2020 23:24:36 GMT</pubDate>
          <description><![CDATA[이거 좀 재밌네여]]></description>
          <category><![CDATA[career]]></category><category><![CDATA[nextjs]]></category><category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[더 빠른 웹 애플리케이션을 위한 모던 자바스크립트]]></title>
          <link>https://yceffort.kr/2020/12/modern-javascript-for-fast-applications</link>
          <guid>https://yceffort.kr/2020/12/modern-javascript-for-fast-applications</guid>
          <pubDate>Tue, 15 Dec 2020 20:02:35 GMT</pubDate>
          <description><![CDATA[아니 그래서 IE 11 언제 없앨 건데요]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[서버리스로 블로그 포스트 썸네일 생성하기]]></title>
          <link>https://yceffort.kr/2020/12/generate-serverless-thumbnail</link>
          <guid>https://yceffort.kr/2020/12/generate-serverless-thumbnail</guid>
          <pubDate>Tue, 08 Dec 2020 23:26:40 GMT</pubDate>
          <description><![CDATA[어차피 나만 볼거임 ㅋㅅㅋ]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[serverless]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 함수의 성능 측정하기]]></title>
          <link>https://yceffort.kr/2020/12/measuring-performance-of-javascript-functions</link>
          <guid>https://yceffort.kr/2020/12/measuring-performance-of-javascript-functions</guid>
          <pubDate>Wed, 02 Dec 2020 20:44:19 GMT</pubDate>
          <description><![CDATA[사실 실전에서 해본적은 거의 없음 😇]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[왜 moment 는 deprecated 되었을까]]></title>
          <link>https://yceffort.kr/2020/12/why-moment-has-been-deprecated</link>
          <guid>https://yceffort.kr/2020/12/why-moment-has-been-deprecated</guid>
          <pubDate>Tue, 01 Dec 2020 23:43:45 GMT</pubDate>
          <description><![CDATA[👋👋]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트의 가비지 컬렉션]]></title>
          <link>https://yceffort.kr/2020/12/javascript-garbage-collection</link>
          <guid>https://yceffort.kr/2020/12/javascript-garbage-collection</guid>
          <pubDate>Tue, 01 Dec 2020 20:44:19 GMT</pubDate>
          <description><![CDATA[원래 이런건 이해가 될 때 까지 하는거임]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[memory]]></category>
        </item>
      
        <item>
          <title><![CDATA[V8 엔진에 대해 가볍게 살펴보기]]></title>
          <link>https://yceffort.kr/2020/11/deep-dive-into-v8</link>
          <guid>https://yceffort.kr/2020/11/deep-dive-into-v8</guid>
          <pubDate>Fri, 27 Nov 2020 10:57:07 GMT</pubDate>
          <description><![CDATA[맛만 볼게 아니고 직접 코드 까봐서 공부를 해봐야 되는데 😭]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[뒤로가기, 앞으로가기의 캐시 aka bfcache]]></title>
          <link>https://yceffort.kr/2020/11/back-forward-cache</link>
          <guid>https://yceffort.kr/2020/11/back-forward-cache</guid>
          <pubDate>Thu, 26 Nov 2020 13:09:01 GMT</pubDate>
          <description><![CDATA[항상 브라우저에 감사하십시오 frontend developers.]]></description>
          <category><![CDATA[browser]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[PWA 적용 후기 및 장단점]]></title>
          <link>https://yceffort.kr/2020/11/pwa-pros-and-cons</link>
          <guid>https://yceffort.kr/2020/11/pwa-pros-and-cons</guid>
          <pubDate>Wed, 25 Nov 2020 20:50:54 GMT</pubDate>
          <description><![CDATA[노력은 나만 하고 즐기는것도 나만 즐긴다]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[pwa]]></category>
        </item>
      
        <item>
          <title><![CDATA[웹에서 사용 가능한 스토리지 살펴보기]]></title>
          <link>https://yceffort.kr/2020/11/storage-for-the-web</link>
          <guid>https://yceffort.kr/2020/11/storage-for-the-web</guid>
          <pubDate>Mon, 23 Nov 2020 23:13:53 GMT</pubDate>
          <description><![CDATA[PWA에서 가장 적절한 것은 무엇일까]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[pwa]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트로 메모이제이션 구현하기]]></title>
          <link>https://yceffort.kr/2020/11/javascript-memoize</link>
          <guid>https://yceffort.kr/2020/11/javascript-memoize</guid>
          <pubDate>Mon, 23 Nov 2020 22:47:01 GMT</pubDate>
          <description><![CDATA[까먹지 않게 기억해두기]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[node_modules에 임시 패치 적용하기]]></title>
          <link>https://yceffort.kr/2020/11/patch-on-node-modules</link>
          <guid>https://yceffort.kr/2020/11/patch-on-node-modules</guid>
          <pubDate>Mon, 23 Nov 2020 22:41:38 GMT</pubDate>
          <description><![CDATA[이러고 있을 때가 아니고 이슈 업해서 오픈소스 컨트리뷰터가 되야 되는데]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Nodejs 서비스 Recovery 전략]]></title>
          <link>https://yceffort.kr/2020/11/nodejs-recovery-self-healing</link>
          <guid>https://yceffort.kr/2020/11/nodejs-recovery-self-healing</guid>
          <pubDate>Fri, 20 Nov 2020 23:59:25 GMT</pubDate>
          <description><![CDATA[아 내 서비스는 완벽해서 그런거 필요 없다니까요?]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[devops]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 의존성 지옥]]></title>
          <link>https://yceffort.kr/2020/11/javascript-dependency-hell</link>
          <guid>https://yceffort.kr/2020/11/javascript-dependency-hell</guid>
          <pubDate>Fri, 20 Nov 2020 23:14:25 GMT</pubDate>
          <description><![CDATA[package-lock.json은 정말 복잡 😈]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[npm]]></category><category><![CDATA[dependency-management]]></category>
        </item>
      
        <item>
          <title><![CDATA[Nodejs 성능 최적화를 위한 방법]]></title>
          <link>https://yceffort.kr/2020/11/nodejs-best-pratices-for-performance</link>
          <guid>https://yceffort.kr/2020/11/nodejs-best-pratices-for-performance</guid>
          <pubDate>Thu, 19 Nov 2020 23:22:28 GMT</pubDate>
          <description><![CDATA[성능은 좋을 수록 좋다 그것이 성능이니까]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[V8에서의 메모리 관리]]></title>
          <link>https://yceffort.kr/2020/11/v8-memory-management</link>
          <guid>https://yceffort.kr/2020/11/v8-memory-management</guid>
          <pubDate>Wed, 18 Nov 2020 23:01:36 GMT</pubDate>
          <description><![CDATA[V8의 깊고 더 어두운 곳으로...]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[서버 사이드 이벤트 (Server Side Events, SSE)]]></title>
          <link>https://yceffort.kr/2020/11/server-side-events</link>
          <guid>https://yceffort.kr/2020/11/server-side-events</guid>
          <pubDate>Tue, 17 Nov 2020 23:41:26 GMT</pubDate>
          <description><![CDATA[이거 꼭 한번 해보고 싶었는데 😭]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[React를 위한 상태관리 라이브러리, Recoil]]></title>
          <link>https://yceffort.kr/2020/11/react-recoil</link>
          <guid>https://yceffort.kr/2020/11/react-recoil</guid>
          <pubDate>Mon, 16 Nov 2020 22:28:12 GMT</pubDate>
          <description><![CDATA[상태관리 춘추전국시대]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[state-management]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트와 메모이제이션]]></title>
          <link>https://yceffort.kr/2020/11/react-memoization</link>
          <guid>https://yceffort.kr/2020/11/react-memoization</guid>
          <pubDate>Thu, 12 Nov 2020 23:34:31 GMT</pubDate>
          <description><![CDATA[블로그에서 계속 같은 글을 쓰는 것 같은데🤪]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[eslint, prettier, editorconfig 로 코드 컨벤션을 맞춘 후기]]></title>
          <link>https://yceffort.kr/2020/11/retrospect-eslint-prettier</link>
          <guid>https://yceffort.kr/2020/11/retrospect-eslint-prettier</guid>
          <pubDate>Wed, 11 Nov 2020 22:06:31 GMT</pubDate>
          <description><![CDATA[예민이가 된 기분]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[eslint]]></category>
        </item>
      
        <item>
          <title><![CDATA[export default를 쓰지 말아야 할 이유]]></title>
          <link>https://yceffort.kr/2020/11/avoid-default-export</link>
          <guid>https://yceffort.kr/2020/11/avoid-default-export</guid>
          <pubDate>Mon, 09 Nov 2020 23:05:08 GMT</pubDate>
          <description><![CDATA[근데 쓰는게 뭔가 더 안정적인 기분이야]]></description>
          <category><![CDATA[typescript]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[브라우저 탭 사이에서 통신 하는 방법]]></title>
          <link>https://yceffort.kr/2020/11/communicate-across-browser-tabs</link>
          <guid>https://yceffort.kr/2020/11/communicate-across-browser-tabs</guid>
          <pubDate>Fri, 06 Nov 2020 21:37:40 GMT</pubDate>
          <description><![CDATA[블로그 다크모드 지원시에 고려해보겠습니다 🤔]]></description>
          <category><![CDATA[browser]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Webpack Module Federation 직접해보기]]></title>
          <link>https://yceffort.kr/2020/11/webpack-module-federation-example</link>
          <guid>https://yceffort.kr/2020/11/webpack-module-federation-example</guid>
          <pubDate>Thu, 05 Nov 2020 22:19:14 GMT</pubDate>
          <description><![CDATA[Micro Frontend 🤔]]></description>
          <category><![CDATA[webpack]]></category><category><![CDATA[react]]></category><category><![CDATA[micro-frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[eslint-config 를 위한 테스트 코드를 작성하기 (CI)]]></title>
          <link>https://yceffort.kr/2020/11/test-eslint-config</link>
          <guid>https://yceffort.kr/2020/11/test-eslint-config</guid>
          <pubDate>Tue, 03 Nov 2020 18:03:54 GMT</pubDate>
          <description><![CDATA[eslint config 테스트 코드 작성]]></description>
          <category><![CDATA[testing]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Promise 관련 API 살펴보기]]></title>
          <link>https://yceffort.kr/2020/10/promise-combinators</link>
          <guid>https://yceffort.kr/2020/10/promise-combinators</guid>
          <pubDate>Sat, 31 Oct 2020 15:39:11 GMT</pubDate>
          <description><![CDATA[Promise.all에서 멈춰있지 말자]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[JSX에서 && 대신에 3항 연산자를 더 선호하는 이유]]></title>
          <link>https://yceffort.kr/2020/10/use-ternaries-not-and-and-in-jsx</link>
          <guid>https://yceffort.kr/2020/10/use-ternaries-not-and-and-in-jsx</guid>
          <pubDate>Fri, 30 Oct 2020 23:51:20 GMT</pubDate>
          <description><![CDATA[사실 그냥 (몇 가지 합리적인 이유가 있는) 개인적인 취향임]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Nextjs 10 릴리즈 및 적용 후기]]></title>
          <link>https://yceffort.kr/2020/10/nextjs-10</link>
          <guid>https://yceffort.kr/2020/10/nextjs-10</guid>
          <pubDate>Wed, 28 Oct 2020 19:24:01 GMT</pubDate>
          <description><![CDATA[nextjs 정말 열일하네]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[frontend]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[Object.freeze(), Object.seal(), Object.preventExtensions()의 차이]]></title>
          <link>https://yceffort.kr/2020/10/object-freeze-seal-preventExtensions</link>
          <guid>https://yceffort.kr/2020/10/object-freeze-seal-preventExtensions</guid>
          <pubDate>Tue, 27 Oct 2020 23:58:46 GMT</pubDate>
          <description><![CDATA[ECMAScript 5부터 있었는데 몰랐음]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[higher order function, 고차함수]]></title>
          <link>https://yceffort.kr/2020/10/higher-order-function</link>
          <guid>https://yceffort.kr/2020/10/higher-order-function</guid>
          <pubDate>Mon, 26 Oct 2020 23:29:24 GMT</pubDate>
          <description><![CDATA[자바스크립트 고차 함수]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[useComponentWillMount??]]></title>
          <link>https://yceffort.kr/2020/10/why-use-component-will-mount</link>
          <guid>https://yceffort.kr/2020/10/why-use-component-will-mount</guid>
          <pubDate>Fri, 23 Oct 2020 21:26:18 GMT</pubDate>
          <description><![CDATA[라이프 사이클의 굴레에서 벗어나]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 함수를 선언하는 여섯가지 방법]]></title>
          <link>https://yceffort.kr/2020/10/6-different-ways-to-declare-javascript-function</link>
          <guid>https://yceffort.kr/2020/10/6-different-ways-to-declare-javascript-function</guid>
          <pubDate>Thu, 22 Oct 2020 23:05:22 GMT</pubDate>
          <description><![CDATA[거의 모든 것이라고 했지만 사실 그렇진 않음 어그로임]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[(함수형으로) 자바스크립트로 HTML 버튼 중복 클릭 방지하기]]></title>
          <link>https://yceffort.kr/2020/10/prevent-double-click-on-button</link>
          <guid>https://yceffort.kr/2020/10/prevent-double-click-on-button</guid>
          <pubDate>Thu, 22 Oct 2020 23:04:23 GMT</pubDate>
          <description><![CDATA[어렸을 때 내가 어떻게 했더라?]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[EventEmitter 구현해보기]]></title>
          <link>https://yceffort.kr/2020/10/implement-event-emitter</link>
          <guid>https://yceffort.kr/2020/10/implement-event-emitter</guid>
          <pubDate>Wed, 21 Oct 2020 19:30:12 GMT</pubDate>
          <description><![CDATA[면접 때 잘 대답 못했던 질문 22222]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[design-patterns]]></category>
        </item>
      
        <item>
          <title><![CDATA[HTTP Cache로 불필요한 네트워크 요청 줄이기]]></title>
          <link>https://yceffort.kr/2020/10/http-cache</link>
          <guid>https://yceffort.kr/2020/10/http-cache</guid>
          <pubDate>Tue, 20 Oct 2020 23:59:46 GMT</pubDate>
          <description><![CDATA[HTTP Cache에 대한 이해]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[왜 Async 보다는 Defer를 써야할까]]></title>
          <link>https://yceffort.kr/2020/10/defer-than-async</link>
          <guid>https://yceffort.kr/2020/10/defer-than-async</guid>
          <pubDate>Tue, 20 Oct 2020 23:32:39 GMT</pubDate>
          <description><![CDATA[스크립트 실행 최적화를 위해 잘 고민해봐야 한다.]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[크롬에서 자바스크립트 로딩 순서]]></title>
          <link>https://yceffort.kr/2020/10/javascript-priorities</link>
          <guid>https://yceffort.kr/2020/10/javascript-priorities</guid>
          <pubDate>Tue, 20 Oct 2020 23:14:39 GMT</pubDate>
          <description><![CDATA[크롬에서 자바스크립트를 로딩하는 순서]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[javascript]]></category><category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[Prop drilling 해결을 위해 context를 사용하기 전에 구조를 생각해보자.]]></title>
          <link>https://yceffort.kr/2020/10/react-prop-drilling-may-slow-down</link>
          <guid>https://yceffort.kr/2020/10/react-prop-drilling-may-slow-down</guid>
          <pubDate>Mon, 19 Oct 2020 23:59:32 GMT</pubDate>
          <description><![CDATA[처음부터 구조를 잘 생각해 둔다면 성능상 에 이점을 가져갈 수 있다.]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트의 Hooks과 HOC, HOC의 사용이 복잡해지는 경우]]></title>
          <link>https://yceffort.kr/2020/10/react-hooks-and-hocs</link>
          <guid>https://yceffort.kr/2020/10/react-hooks-and-hocs</guid>
          <pubDate>Mon, 19 Oct 2020 21:19:43 GMT</pubDate>
          <description><![CDATA[HOC는 좋지만, hooks을 사용하는 습관을 기르자.]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트의 useState와 lazy initialization]]></title>
          <link>https://yceffort.kr/2020/10/IIFE-on-use-state-of-react</link>
          <guid>https://yceffort.kr/2020/10/IIFE-on-use-state-of-react</guid>
          <pubDate>Sun, 18 Oct 2020 19:19:27 GMT</pubDate>
          <description><![CDATA[리액트 최적화의 길은 멀고도 험하다]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[블로그 gatsby에서 nextjs로 옮긴 이야기]]></title>
          <link>https://yceffort.kr/2020/10/migrate-gatsby-from-nextjs</link>
          <guid>https://yceffort.kr/2020/10/migrate-gatsby-from-nextjs</guid>
          <pubDate>Fri, 16 Oct 2020 22:23:24 GMT</pubDate>
          <description><![CDATA[어영부영했지만 보람은 있었다]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[Create React App의 serviceWorker는 무엇일까]]></title>
          <link>https://yceffort.kr/2020/10/service-worker-of-create-react-app</link>
          <guid>https://yceffort.kr/2020/10/service-worker-of-create-react-app</guid>
          <pubDate>Thu, 08 Oct 2020 23:17:19 GMT</pubDate>
          <description><![CDATA[가끔 봤지만 전혀 궁금해 하지 않았던 그 것]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[styled-components로 스타일 적용하는법]]></title>
          <link>https://yceffort.kr/2020/10/style-with-styled-components</link>
          <guid>https://yceffort.kr/2020/10/style-with-styled-components</guid>
          <pubDate>Wed, 07 Oct 2020 21:29:18 GMT</pubDate>
          <description><![CDATA[styled components가 쓰고 싶습니다]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[css]]></category>
        </item>
      
        <item>
          <title><![CDATA[Node.js는 어떻게 동작하는가]]></title>
          <link>https://yceffort.kr/2020/10/how-node-js-works</link>
          <guid>https://yceffort.kr/2020/10/how-node-js-works</guid>
          <pubDate>Tue, 06 Oct 2020 21:35:47 GMT</pubDate>
          <description><![CDATA[nodejs에 대해서도 공부하자]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[useEffect는 라이프 사이클 메소드가 아니다.]]></title>
          <link>https://yceffort.kr/2020/10/think-about-useEffect</link>
          <guid>https://yceffort.kr/2020/10/think-about-useEffect</guid>
          <pubDate>Fri, 02 Oct 2020 22:40:20 GMT</pubDate>
          <description><![CDATA[생각없이 useEffect를 쓰지 말자]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[detached window로 인한 자바스크립트 메모리 누수]]></title>
          <link>https://yceffort.kr/2020/09/javascript-memory-leaks-by-window-detached</link>
          <guid>https://yceffort.kr/2020/09/javascript-memory-leaks-by-window-detached</guid>
          <pubDate>Tue, 29 Sep 2020 23:43:18 GMT</pubDate>
          <description><![CDATA[면접에서 들었던 거지같은 질문에 대한 해답]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[memory]]></category><category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트로 다음 사전 크롤링해보기]]></title>
          <link>https://yceffort.kr/2020/09/daum-dictionary-crawling</link>
          <guid>https://yceffort.kr/2020/09/daum-dictionary-crawling</guid>
          <pubDate>Tue, 29 Sep 2020 15:37:38 GMT</pubDate>
          <description><![CDATA[사실 이거 블로그 유입 늘리려고 하는 거임]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[web-scraping]]></category>
        </item>
      
        <item>
          <title><![CDATA[크롬 익스텐션 만들기]]></title>
          <link>https://yceffort.kr/2020/09/create-chrome-extension</link>
          <guid>https://yceffort.kr/2020/09/create-chrome-extension</guid>
          <pubDate>Fri, 25 Sep 2020 21:56:02 GMT</pubDate>
          <description><![CDATA[필요한 기능 하나 쯤 만들어서 사용해보자.]]></description>
          <category><![CDATA[browser]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[ECMAScript 명세 읽어보기 (1)]]></title>
          <link>https://yceffort.kr/2020/09/understanding-ecmascript-1</link>
          <guid>https://yceffort.kr/2020/09/understanding-ecmascript-1</guid>
          <pubDate>Thu, 24 Sep 2020 18:49:14 GMT</pubDate>
          <description><![CDATA[가끔 문서를 볼 때 마다 도망쳤던 그 곳]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[재밌는 자바스크립트 면접 문제]]></title>
          <link>https://yceffort.kr/2020/09/tricky-javascript-interview-questions</link>
          <guid>https://yceffort.kr/2020/09/tricky-javascript-interview-questions</guid>
          <pubDate>Wed, 23 Sep 2020 23:43:15 GMT</pubDate>
          <description><![CDATA[뭔가 이상한 자바스크립트 면접 문제는 재밌다. 단 내가 구직 중이 아닐 때만.]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[useCallback 사용 가이드]]></title>
          <link>https://yceffort.kr/2020/09/guide-to-usecallback</link>
          <guid>https://yceffort.kr/2020/09/guide-to-usecallback</guid>
          <pubDate>Tue, 22 Sep 2020 23:15:11 GMT</pubDate>
          <description><![CDATA[아직도 useCallback으로 고통 받다니]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[Referer와 Referer-Policy를 위한 가이드]]></title>
          <link>https://yceffort.kr/2020/09/referer-and-referrer-policy</link>
          <guid>https://yceffort.kr/2020/09/referer-and-referrer-policy</guid>
          <pubDate>Tue, 22 Sep 2020 23:12:25 GMT</pubDate>
          <description><![CDATA[웹 어플리케이션에서 request를 받기 위한 최적의 Referer와 Referrer 정책]]></description>
          <category><![CDATA[security]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 String]]></title>
          <link>https://yceffort.kr/2020/09/javascript-string</link>
          <guid>https://yceffort.kr/2020/09/javascript-string</guid>
          <pubDate>Mon, 21 Sep 2020 22:12:37 GMT</pubDate>
          <description><![CDATA[자바스크립트의 String]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트 v17.0 살펴보기]]></title>
          <link>https://yceffort.kr/2020/09/react-17-release-candidates</link>
          <guid>https://yceffort.kr/2020/09/react-17-release-candidates</guid>
          <pubDate>Mon, 21 Sep 2020 18:24:44 GMT</pubDate>
          <description><![CDATA[리액트 17.0 새로운 기능은 추가되지 않을 예정. 점진적 업그레이드 추가, 이벤트 위임 방식 변경이 주요 변경 내용인 것 같네용.]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[Typescript 4.0 릴리즈 노트 ]]></title>
          <link>https://yceffort.kr/2020/09/typescript-4.0</link>
          <guid>https://yceffort.kr/2020/09/typescript-4.0</guid>
          <pubDate>Mon, 21 Sep 2020 13:33:17 GMT</pubDate>
          <description><![CDATA[한 발 늦었지만 타입스크립트 4.0에서 추가된 기능을 알아보자]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Github Code Spaces 베타 당첨 및 후기]]></title>
          <link>https://yceffort.kr/2020/09/github-code-spaces-beta</link>
          <guid>https://yceffort.kr/2020/09/github-code-spaces-beta</guid>
          <pubDate>Fri, 18 Sep 2020 18:50:05 GMT</pubDate>
          <description><![CDATA[이게 당첨이 되네 (사실 아무나 되는 건 아니었겠지)]]></description>
          <category><![CDATA[devops]]></category><category><![CDATA[github]]></category>
        </item>
      
        <item>
          <title><![CDATA[[Book] No Rules Rules]]></title>
          <link>https://yceffort.kr/2020/09/book-no-rules-rules</link>
          <guid>https://yceffort.kr/2020/09/book-no-rules-rules</guid>
          <pubDate>Thu, 17 Sep 2020 10:51:42 GMT</pubDate>
          <description><![CDATA[규칙 없음: 넷플릭스, 지구상 가장 빠르고 유연한 기업의 비밀]]></description>
          <category><![CDATA[career]]></category>
        </item>
      
        <item>
          <title><![CDATA[Webpack Module Federation에 대해 알아보자]]></title>
          <link>https://yceffort.kr/2020/09/webpack-module-federation</link>
          <guid>https://yceffort.kr/2020/09/webpack-module-federation</guid>
          <pubDate>Wed, 16 Sep 2020 17:42:06 GMT</pubDate>
          <description><![CDATA[자바스크립트 아키텍쳐의 게임체인저라고 하는데, 과연 그렇게 될 수 있을까?]]></description>
          <category><![CDATA[webpack]]></category><category><![CDATA[micro-frontend]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[typescript의 enum은 tree shaking이 되지 않는다?]]></title>
          <link>https://yceffort.kr/2020/09/typescript-enum-not-treeshaked</link>
          <guid>https://yceffort.kr/2020/09/typescript-enum-not-treeshaked</guid>
          <pubDate>Wed, 16 Sep 2020 11:43:15 GMT</pubDate>
          <description><![CDATA[오늘 배운 토막(?) 상식]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[eslint-config-yceffort, 나만의 eslint-config 만들기]]></title>
          <link>https://yceffort.kr/2020/09/eslint-config-yceffort</link>
          <guid>https://yceffort.kr/2020/09/eslint-config-yceffort</guid>
          <pubDate>Tue, 15 Sep 2020 11:07:10 GMT</pubDate>
          <description><![CDATA[나만의 일관된 javascript code를 위하여 만들어보았습니다.]]></description>
          <category><![CDATA[eslint]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Git commit의 일시를 변경하기]]></title>
          <link>https://yceffort.kr/2020/09/change-datetime-of-git-commit</link>
          <guid>https://yceffort.kr/2020/09/change-datetime-of-git-commit</guid>
          <pubDate>Tue, 15 Sep 2020 10:56:58 GMT</pubDate>
          <description><![CDATA[왜 바꿔야 하는지는 비밀]]></description>
          <category><![CDATA[git]]></category>
        </item>
      
        <item>
          <title><![CDATA[블로그 업데이트에 대한 회고]]></title>
          <link>https://yceffort.kr/2020/08/update-blog</link>
          <guid>https://yceffort.kr/2020/08/update-blog</guid>
          <pubDate>Mon, 31 Aug 2020 13:47:56 GMT</pubDate>
          <description><![CDATA[백수가 될 때마다 블로그를 갈아엎는 습관]]></description>
          <category><![CDATA[blogging]]></category><category><![CDATA[web-performance]]></category><category><![CDATA[devops]]></category>
        </item>
      
        <item>
          <title><![CDATA[MobX를 공부하자 (4) - React와 Mobx의 10분 요약 글]]></title>
          <link>https://yceffort.kr/2020/08/mobx-study-4</link>
          <guid>https://yceffort.kr/2020/08/mobx-study-4</guid>
          <pubDate>Sun, 30 Aug 2020 19:27:22 GMT</pubDate>
          <description><![CDATA[React와 MobX에 대한 10분 설명]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[state-management]]></category>
        </item>
      
        <item>
          <title><![CDATA[MobX를 공부하자 (3) - 기본 개념과 원칙]]></title>
          <link>https://yceffort.kr/2020/08/mobx-study-3</link>
          <guid>https://yceffort.kr/2020/08/mobx-study-3</guid>
          <pubDate>Tue, 25 Aug 2020 20:07:31 GMT</pubDate>
          <description><![CDATA[MobX 1페이지 요약에 대한 간단한 번역]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[MobX를 공부하자 (2)]]></title>
          <link>https://yceffort.kr/2020/08/mobx-study-2</link>
          <guid>https://yceffort.kr/2020/08/mobx-study-2</guid>
          <pubDate>Mon, 24 Aug 2020 15:54:00 GMT</pubDate>
          <description><![CDATA[MobX를 예제 애플리케이션에 실제로 적용해보기]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[mobx]]></category>
        </item>
      
        <item>
          <title><![CDATA[MobX를 공부하자 (1)]]></title>
          <link>https://yceffort.kr/2020/08/mobx-study-1</link>
          <guid>https://yceffort.kr/2020/08/mobx-study-1</guid>
          <pubDate>Fri, 21 Aug 2020 15:54:00 GMT</pubDate>
          <description><![CDATA[MobX 1페이지 요약에 대한 간단한 번역]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[state-management]]></category>
        </item>
      
        <item>
          <title><![CDATA[Git Cheat Sheet]]></title>
          <link>https://yceffort.kr/2020/08/git-cheat-sheat</link>
          <guid>https://yceffort.kr/2020/08/git-cheat-sheat</guid>
          <pubDate>Fri, 21 Aug 2020 11:52:53 GMT</pubDate>
          <description><![CDATA[이제 git도 GUI 대신에 커맨드를 활용해서 작업해보자.]]></description>
          <category><![CDATA[git]]></category>
        </item>
      
        <item>
          <title><![CDATA[CommonJS와 ES Modules은 왜 함께 할 수 없는가?]]></title>
          <link>https://yceffort.kr/2020/08/commonjs-esmodules</link>
          <guid>https://yceffort.kr/2020/08/commonjs-esmodules</guid>
          <pubDate>Tue, 11 Aug 2020 08:48:47 GMT</pubDate>
          <description><![CDATA[[이 글](https://redfin.engineering/node-modules-at-war-why-commonjs-and-es-modules-cant-get-along-9617135eeca1)을 번역 요약한 글입니다. ## CommonJS와 ES Modules은 왜 함께 할 수 없는가?  [노드14](https://nodejs.org/en/blog/r...]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[nodejs]]></category>
        </item>
      
        <item>
          <title><![CDATA[Docker 공부 (3) - 도커 이미지]]></title>
          <link>https://yceffort.kr/2020/08/docker-study-3</link>
          <guid>https://yceffort.kr/2020/08/docker-study-3</guid>
          <pubDate>Sun, 09 Aug 2020 03:48:47 GMT</pubDate>
          <description><![CDATA[## 도커 이미지 npm에서 다양한 도커 관련 패키지를 관리하듯, 도커는 기본적으로 [Docker Hub](https://hub.docker.com/)라는 중앙 이미지 저장소에서 다양한 이미지를 내려받을 수 있다. Docker Hub는 도커가 제공하고 있는 이미지 저장소로, 누구나 도커 계정을 가지고 있다면 쉽게 이미지를 공유할 수 있다.  `docker...]]></description>
          <category><![CDATA[docker]]></category>
        </item>
      
        <item>
          <title><![CDATA[프로그래머 기초 수학 2-3 - 유리수, 무리수, 실수]]></title>
          <link>https://yceffort.kr/2020/07/math-for-programmer-chapter2-3-rational-irrational-real-number</link>
          <guid>https://yceffort.kr/2020/07/math-for-programmer-chapter2-3-rational-irrational-real-number</guid>
          <pubDate>Wed, 29 Jul 2020 09:36:41 GMT</pubDate>
          <description><![CDATA[유리수, 무리수, 실수]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Docker 공부 (2) - 도커 네트워크]]></title>
          <link>https://yceffort.kr/2020/07/docker-study-2</link>
          <guid>https://yceffort.kr/2020/07/docker-study-2</guid>
          <pubDate>Wed, 29 Jul 2020 05:17:31 GMT</pubDate>
          <description><![CDATA[## 도커 네트워크 도커는 컨테이너에 내부 IP를 순차적으로 할당하며, 이 IP는 컨테이너가 재시작 될 때 마다 변경된다. 이 내부 IP는 내부망에서만 쓸 수 있으므로 외부와 연결될 필요가 있는데, 이 과정은 컨테이너가 시작할 때마다 호스트에 `veth` 라는 네트워크 인터페이스를 생성하면서 이루어진다. 이 `veth`인터페이스는 직접 생성하는게 아니라,...]]></description>
          <category><![CDATA[docker]]></category>
        </item>
      
        <item>
          <title><![CDATA[Docker 공부 (1) - 도커 기초부터 볼륨 공유까지]]></title>
          <link>https://yceffort.kr/2020/07/docker-study-1</link>
          <guid>https://yceffort.kr/2020/07/docker-study-1</guid>
          <pubDate>Tue, 28 Jul 2020 08:25:27 GMT</pubDate>
          <description><![CDATA[`toc tight: true, from-heading: 2 to-heading: 3 ` ## Docker 는 무엇인가? 리눅스 컨테이너에 여러가지 기능을 추가하여 애플리케이션을 컨테이너로서 좀더 쉽게 사용할 수 있도록 만든 오픈소스. 이에 대해 정리 해 놓은 [좋은 글](https://subicura.com/2017/01/19/docker-g...]]></description>
          <category><![CDATA[docker]]></category>
        </item>
      
        <item>
          <title><![CDATA[프로그래머 기초 수학 2-2 - 기수법]]></title>
          <link>https://yceffort.kr/2020/07/math-for-programmer-chapter2-2-notation</link>
          <guid>https://yceffort.kr/2020/07/math-for-programmer-chapter2-2-notation</guid>
          <pubDate>Fri, 24 Jul 2020 06:34:51 GMT</pubDate>
          <description><![CDATA[기수법]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Github actions 요약]]></title>
          <link>https://yceffort.kr/2020/07/github-actions-summary</link>
          <guid>https://yceffort.kr/2020/07/github-actions-summary</guid>
          <pubDate>Thu, 23 Jul 2020 10:13:11 GMT</pubDate>
          <description><![CDATA[# Github action ## Github action 은 무엇인가?  github actions은 사용자 정의 소프트웨어 개발 라이프 사이클 워크 플로우를 github 레파지토리에 직접 만들수 있도록 도와주는 도구다.  > GitHub Actions enables you to create custom software development life c...]]></description>
          <category><![CDATA[devops]]></category><category><![CDATA[ci-cd]]></category>
        </item>
      
        <item>
          <title><![CDATA[프로그래머 기초 수학 2-1 - 정수]]></title>
          <link>https://yceffort.kr/2020/07/math-for-programmer-chapter2-1-integer</link>
          <guid>https://yceffort.kr/2020/07/math-for-programmer-chapter2-1-integer</guid>
          <pubDate>Thu, 23 Jul 2020 06:39:54 GMT</pubDate>
          <description><![CDATA[정수]]></description>
          <category><![CDATA[algorithm]]></category><category><![CDATA[mathematics]]></category>
        </item>
      
        <item>
          <title><![CDATA[Webpack을 활용한 성능향상 - 캐싱 활용하기]]></title>
          <link>https://yceffort.kr/2020/07/make-use-of-long-term-caching</link>
          <guid>https://yceffort.kr/2020/07/make-use-of-long-term-caching</guid>
          <pubDate>Tue, 21 Jul 2020 04:18:21 GMT</pubDate>
          <description><![CDATA[[Make use of long-term caching](https://developers.google.com/web/fundamentals/performance/webpack/use-long-term-caching)을 번역한 글입니다.  앱 로딩 속도를 향상시킬 수 있는 방법 중 ...]]></description>
          <category><![CDATA[webpack]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[프로그래머 기초 수학 1-2 - 집합]]></title>
          <link>https://yceffort.kr/2020/07/math-for-programmer-chapter1-2-set</link>
          <guid>https://yceffort.kr/2020/07/math-for-programmer-chapter1-2-set</guid>
          <pubDate>Fri, 17 Jul 2020 07:28:25 GMT</pubDate>
          <description><![CDATA[집합]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[프로그래머 기초 수학 1-1 - 명제와 논리연산]]></title>
          <link>https://yceffort.kr/2020/07/math-for-programmer-chapter1-1-logical-operation</link>
          <guid>https://yceffort.kr/2020/07/math-for-programmer-chapter1-1-logical-operation</guid>
          <pubDate>Thu, 16 Jul 2020 06:53:30 GMT</pubDate>
          <description><![CDATA[명제와 논리연산]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Github 액션으로 스케쥴링 작업하기]]></title>
          <link>https://yceffort.kr/2020/07/cron-job-with-github-actions</link>
          <guid>https://yceffort.kr/2020/07/cron-job-with-github-actions</guid>
          <pubDate>Thu, 16 Jul 2020 04:55:31 GMT</pubDate>
          <description><![CDATA[Github actions가 나오면서 cron job을 실행하기가 더 편해졌습니다. 굳이 내 컴퓨터를 24시간 돌리고 있을 필요도 없고, 비싼 돈 주며 어디 이상한 compute를 쓸 필요도 없어졌습니다. [물론 공짜로 쓸 수 있는 Cron 서비스](https://www.easycron.com/)도 있지만 아무래도 github 과 연동할 수 있다는 점이 큰...]]></description>
          <category><![CDATA[devops]]></category><category><![CDATA[github]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 메모리 누수와 해결 방법]]></title>
          <link>https://yceffort.kr/2020/07/memory-leaks-in-javascript</link>
          <guid>https://yceffort.kr/2020/07/memory-leaks-in-javascript</guid>
          <pubDate>Tue, 14 Jul 2020 01:19:17 GMT</pubDate>
          <description><![CDATA[```toc tight: true, from-heading: 2 to-heading: 3 ``` [4 Types of Memory Leaks in JavaScript and How to Get Rid Of Them](https://auth0.com/blog/four-types-of-leaks-in-your-javascript-code-and-how-to-...]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트의 비용]]></title>
          <link>https://yceffort.kr/2020/07/the-cost-of-javascript-2019</link>
          <guid>https://yceffort.kr/2020/07/the-cost-of-javascript-2019</guid>
          <pubDate>Mon, 06 Jul 2020 12:32:23 GMT</pubDate>
          <description><![CDATA[자바스크립트의 비용 2019ver]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[주요 렌더링 경로 - 브라우저의 원리를 이해하고 최적화 하기]]></title>
          <link>https://yceffort.kr/2020/07/critical-rendering-path</link>
          <guid>https://yceffort.kr/2020/07/critical-rendering-path</guid>
          <pubDate>Mon, 06 Jul 2020 09:38:02 GMT</pubDate>
          <description><![CDATA[[Critical Rendering Path](https://developers.google.com/web/fundamentals/performance/critical-rendering-path?hl=ko)를 요약했습니다. 이글을 보는게 더 나아요 사실 ```toc tight: true, from-heading: 2 to-heading: 3 ```   성...]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[빠른 로딩을 위한 PRPL 패턴]]></title>
          <link>https://yceffort.kr/2020/07/instant-loading-with-PRPL-pattern</link>
          <guid>https://yceffort.kr/2020/07/instant-loading-with-PRPL-pattern</guid>
          <pubDate>Mon, 06 Jul 2020 09:38:02 GMT</pubDate>
          <description><![CDATA[[Apply instant loading with the PRPL pattern](https://web.dev/apply-instant-loading-with-prpl/)을 번역한 글입니다. PRPL은 웹 페이지를 로드하고 인터랙티브 할 수 있게 금 더욱 빠르게 만드는 패턴을 설명하는 약어다.  ## 요약  - 중요한 리소스를 미리 로드해라 (Push (...]]></description>
          <category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[왜 CommonJS는 번들사이즈를 크게 하는가?]]></title>
          <link>https://yceffort.kr/2020/07/how-commonjs-is-making-your-bundles-larger</link>
          <guid>https://yceffort.kr/2020/07/how-commonjs-is-making-your-bundles-larger</guid>
          <pubDate>Sun, 05 Jul 2020 09:23:12 GMT</pubDate>
          <description><![CDATA[[How CommonJS is making your bundles larger](https://web.dev/commonjs-larger-bundles/) 를 번역 & 요약한 글입니다. ```toc tight: true, from-heading: 2 to-heading: 3 ```  **요약: 웹 애플리케이션을 확실하게 최적화해서 번들링하기 위해서는, C...]]></description>
          <category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[프론트엔드 개발자가 알아야 하는 Angular와 React의 Change Detection]]></title>
          <link>https://yceffort.kr/2020/07/change-detection-in-angular-react</link>
          <guid>https://yceffort.kr/2020/07/change-detection-in-angular-react</guid>
          <pubDate>Sat, 04 Jul 2020 07:06:10 GMT</pubDate>
          <description><![CDATA[[What every front-end developer should know about change detection in Angular and React](https://indepth.dev/what-every-front-end-developer-should-know-about-change-detection-in-angular-and-react/)를 번...]]></description>
          <category><![CDATA[frontend]]></category><category><![CDATA[react]]></category><category><![CDATA[angular]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트 고차 컴포넌트 (React Higher Order Component)]]></title>
          <link>https://yceffort.kr/2020/07/react-higher-component</link>
          <guid>https://yceffort.kr/2020/07/react-higher-component</guid>
          <pubDate>Sat, 04 Jul 2020 04:06:10 GMT</pubDate>
          <description><![CDATA[[이 글](https://ko.reactjs.org/docs/higher-order-components.html)이 한글로 번역이 안되있어서 대충 번역해봅니다. # Higher-Order Components  고차 컴포넌트 (이하 HOC)는 리액트에서 컴포넌트 로직을 재사용하기 위한 고오급 기술이다. HOC는 리액트 API의 일부분은 아니다. 이는 리액트...]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[프론트엔드 사이즈 줄이기]]></title>
          <link>https://yceffort.kr/2020/07/decrease-front-end-size</link>
          <guid>https://yceffort.kr/2020/07/decrease-front-end-size</guid>
          <pubDate>Wed, 01 Jul 2020 09:45:10 GMT</pubDate>
          <description><![CDATA[[이 글](https://developers.google.com/web/fundamentals/performance/webpack/decrease-frontend-size)을 대충 번역했습니다.  ```toc tight: true, from-heading: 2 to-heading: 4 ```  ## webpack 4버전 이상의 경우 프로덕션 모드를 사용하...]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[webpack]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트로 구현해보는 다양한 정렬]]></title>
          <link>https://yceffort.kr/2020/06/javascript-sort</link>
          <guid>https://yceffort.kr/2020/06/javascript-sort</guid>
          <pubDate>Wed, 01 Jul 2020 07:42:01 GMT</pubDate>
          <description><![CDATA[## 거품(버블)정렬 - 가까운 두 원소를 비교해서 정렬하는 방식이다. - `O(N^2)` - 코드가 단순하고 구현하기 쉽다 - 느리다.  ![bubble-sort](https://upload.wikimedia.org/wikipedia/commons/3/37/Bubble_sort_animation.gif)  ```javascript function bub...]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 자료 구조]]></title>
          <link>https://yceffort.kr/2020/06/javascript-data-structure</link>
          <guid>https://yceffort.kr/2020/06/javascript-data-structure</guid>
          <pubDate>Mon, 29 Jun 2020 07:42:01 GMT</pubDate>
          <description><![CDATA[`toc tight: true, from-heading: 1 to-heading: 4 ` 타입스크립트로 구현해보는 일반적인 자료구조 ## Stack - push와 pop으로 구성된 stack - LIFO ```javascript export default class Stack<T> { private stack: T[] construc...]]></description>
          <category><![CDATA[typescript]]></category><category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Notion 성능 최적화]]></title>
          <link>https://yceffort.kr/2020/06/notion-app-performance-case-study</link>
          <guid>https://yceffort.kr/2020/06/notion-app-performance-case-study</guid>
          <pubDate>Mon, 29 Jun 2020 07:42:01 GMT</pubDate>
          <description><![CDATA[[Case Study: Analyzing Notion app performance](https://3perf.com/blog/notion/)를 제멋대로 요약한 글입니다. 왠만하면 저 글을 참고하세요. ```toc tight: true, from-heading: 2 to-heading: 3 ```  ## 자바스크립트의 비용  보통 `로딩 속도`를 이야기하면...]]></description>
          <category><![CDATA[web-performance]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Javascript Prototype]]></title>
          <link>https://yceffort.kr/2020/06/javascript-prototype</link>
          <guid>https://yceffort.kr/2020/06/javascript-prototype</guid>
          <pubDate>Sat, 27 Jun 2020 04:25:30 GMT</pubDate>
          <description><![CDATA[`toc tight: true, from-heading: 1 to-heading: 4 ` # 프로토타입 상속이라는 관점에서 봤을 때, 자바스크립트의 유일한 생성자는 객체 뿐이다. 모든 객체는 `[[prototype]]` 이라는 private 속성을 가지고 있는데, 이는 자신의 프로토타입이 되는 다른 객체를 가리킨다. 이렇게 자신의 프로토타입의 프...]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Javascript Execution Context]]></title>
          <link>https://yceffort.kr/2020/06/javascript-execution-context</link>
          <guid>https://yceffort.kr/2020/06/javascript-execution-context</guid>
          <pubDate>Fri, 26 Jun 2020 04:25:30 GMT</pubDate>
          <description><![CDATA[들어가기에 앞서 더 좋고 제가 많이 참고한 글이 [여기](https://poiemaweb.com/js-execution-context)에 있습니다. 이글을 보시는게 낫습니다. ```toc tight: true, from-heading: 1 to-heading: 4 ```  # 자바스크립트 실행컨텍스트  이번 포스팅으로 자바스크립트 실행 컨텍스트에 대해 온...]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Fish]]></title>
          <link>https://yceffort.kr/2020/06/codility-07-02-fish</link>
          <guid>https://yceffort.kr/2020/06/codility-07-02-fish</guid>
          <pubDate>Thu, 25 Jun 2020 12:25:19 GMT</pubDate>
          <description><![CDATA[## Fish ### 문제  길이 N으로 이루어진 비어있지 않은 배열 A, B가 주어진다. 배열 A는 물고기의 크기를, B는 물고기의 움직임을 나타내는데, 0일 경우 위로, 1일 경우 아래로 간다. 만약 두마리의 물고기가 만날 경우, 더 사이즈가 큰 물고기가 잡아먹어버린다. 이 때 살아남는 물고기의 수를 구하라.  ``` A[0] = 4    B[0] =...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Nesting]]></title>
          <link>https://yceffort.kr/2020/06/codility-07-03-nesting</link>
          <guid>https://yceffort.kr/2020/06/codility-07-03-nesting</guid>
          <pubDate>Thu, 25 Jun 2020 12:25:19 GMT</pubDate>
          <description><![CDATA[## Nesting ### 문제  `(`와 `)`로 이루어진 문자열이 있다. 이 문자열의 `(` `)` 짝이 맞게 이루어져 있는지 확인하라.  ### 풀이  ```javascript function solution(S) {     const split = S.split('')     const stack = []     for (let i of split...]]></description>
          <category><![CDATA[algorithm]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Stone Wall]]></title>
          <link>https://yceffort.kr/2020/06/codility-07-04-stone-wall</link>
          <guid>https://yceffort.kr/2020/06/codility-07-04-stone-wall</guid>
          <pubDate>Thu, 25 Jun 2020 12:25:19 GMT</pubDate>
          <description><![CDATA[## StoneWall ### 문제  돌은 N미터 길이를 가지고 있으며, 두께는 모두 일정하다. 배얼에 돌 높이가 주어져 있으며, 아래와 같이 해석할 수 있다.  - H[i]: 왼쪽에서 오른쪽으로 벽의 높이 - H[0]: 벽 왼쪽 끝의 높이 - H[N-1]: 벽 마지막 끝의 높이  ``` H[0] = 8    H[1] = 8    H[2] = 5 H[3]...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Brackets]]></title>
          <link>https://yceffort.kr/2020/06/codility-07-01-brackets</link>
          <guid>https://yceffort.kr/2020/06/codility-07-01-brackets</guid>
          <pubDate>Thu, 25 Jun 2020 08:58:02 GMT</pubDate>
          <description><![CDATA[## Brackets ### 문제  문자열 S가 주어지고, S는 다음 경우 일 때 참을 반환해야 한다.  - S가 비어있는 경우 - `(U)` or `[U]` or `{U}` 의 형태로 괄호안에 문자열이 있는 경우 - 괄호가 짝이 맞게 닫혀있는 경우  예를 들어  `{[()()]}`는 괄호가 알맞게 들어있지만, `([)()]`는 그렇지 못하다. (짝은 맞...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Frog River One]]></title>
          <link>https://yceffort.kr/2020/06/codility-04-01-frog-river-one</link>
          <guid>https://yceffort.kr/2020/06/codility-04-01-frog-river-one</guid>
          <pubDate>Wed, 24 Jun 2020 05:25:19 GMT</pubDate>
          <description><![CDATA[## Frog River One ### 문제  개구리가 X 까지 가고 싶은데, X까지 가기 위해서는 1부터 X를 모두 지나가야 한다. 예를 들어보자.   ``` 이렇게 배열이 주어져 있고  A[0] = 1 A[1] = 3 A[2] = 1 A[3] = 4 A[4] = 2 A[5] = 3 A[6] = 5 A[7] = 4  5까지 가고 싶다고 가정했을때, A[...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Max Counters]]></title>
          <link>https://yceffort.kr/2020/06/codility-04-02-max-counters</link>
          <guid>https://yceffort.kr/2020/06/codility-04-02-max-counters</guid>
          <pubDate>Wed, 24 Jun 2020 05:25:19 GMT</pubDate>
          <description><![CDATA[## Max Counters ### 문제  숫자 N이 주어진다. 이 숫자 N은 모든 요소가 0인 길이 N인 배열을 의미한다. 그리고 배열 A가 존재한다.   ``` 숫자 N이 5로 주어지고, 배열 A는 [3, 4, 4, 6, 1, 4, 4] 라고 가정하자.  초기 값 [0, 0, 0, 0 0] A[0] = 3, 3번째 (3-1번째) 요소의 크기를 1 늘린...]]></description>
          <category><![CDATA[algorithm]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Missing Integer]]></title>
          <link>https://yceffort.kr/2020/06/codility-04-03-missing-integer</link>
          <guid>https://yceffort.kr/2020/06/codility-04-03-missing-integer</guid>
          <pubDate>Wed, 24 Jun 2020 05:25:19 GMT</pubDate>
          <description><![CDATA[## Missing Integer ### 문제  주어진 배열 A에 빠져 있는 가장 작은 양의 정수를 구하시오  ``` A=[1, 3, 6, 4, 1, 2] 이라면 답은 5 A=[1, 2, 3] 이라면 답은 4 A=[-1, -3] 이라면 답은 1 ```   ### 풀이  ```javascript function solution(A) {     // 배열 길...]]></description>
          <category><![CDATA[algorithm]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Distinct]]></title>
          <link>https://yceffort.kr/2020/06/codility-06-01-distinct</link>
          <guid>https://yceffort.kr/2020/06/codility-06-01-distinct</guid>
          <pubDate>Tue, 23 Jun 2020 12:25:19 GMT</pubDate>
          <description><![CDATA[## Distinct ### 문제  배열 A안에 unique한 숫자가 몇 개 있는지 리턴하라.  ### 풀이  ```javascript function solution(A) {     return [...new Set(A)].length } ```  Set을 활용하면 쉽게 풀 수 있다. Set이 아니더라도 object등을 활용해보면 된다.   https:...]]></description>
          <category><![CDATA[algorithm]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Max Product of Three]]></title>
          <link>https://yceffort.kr/2020/06/codility-06-02-max-product-of-three</link>
          <guid>https://yceffort.kr/2020/06/codility-06-02-max-product-of-three</guid>
          <pubDate>Tue, 23 Jun 2020 12:25:19 GMT</pubDate>
          <description><![CDATA[## Max Product of Three ### 문제  길이 N인 배열 A가 주어졌을때, 임의로 세개의 숫자를 곱했을 때 가장 큰 값을 만들 수 있는 배열의 Index를 리턴해라.  ``` A[0] = -3 A[1] = 1 A[2] = 2 A[3] = -2 A[4] = 5 A[5] = 6  2, 4, 5번째를 곱하면 60을 만들수 있고 이것이 가장 큰 ...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Number of Disc Intersections]]></title>
          <link>https://yceffort.kr/2020/06/codility-06-03-number-of-disc-intersections</link>
          <guid>https://yceffort.kr/2020/06/codility-06-03-number-of-disc-intersections</guid>
          <pubDate>Tue, 23 Jun 2020 12:25:19 GMT</pubDate>
          <description><![CDATA[## Number of Disc Intersections ### 문제  N개의 디스크가 존재하고, 디스크는 각각 0~ N-1의 번호를 가진다. 이는 A라는 배열에서 표현되는데, `A[N]` 는 해당 디스크의 반경을 의미한다.   ``` A[0] = 1 A[1] = 5 A[2] = 2 A[3] = 1 A[4] = 4 A[5] = 0 ```  ![discs]...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Triangle]]></title>
          <link>https://yceffort.kr/2020/06/codility-06-04-triangle</link>
          <guid>https://yceffort.kr/2020/06/codility-06-04-triangle</guid>
          <pubDate>Tue, 23 Jun 2020 12:25:19 GMT</pubDate>
          <description><![CDATA[## Triangle ### 문제  길이 N의 배열 A가 주어진다.   (P, Q, R)은 삼각형이 될 수 있는데, 이는   - 0 ≤ P < Q < R < N   - A[P] + A[Q] > A[R] - A[Q] + A[R] > A[P] - A[R] + A[P] > A[Q]  라는 조건을 만족 하기 때문이다.  ``` A[0] = 10     A[1] ...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Binary Gap]]></title>
          <link>https://yceffort.kr/2020/06/codility-01-01-binary-gap</link>
          <guid>https://yceffort.kr/2020/06/codility-01-01-binary-gap</guid>
          <pubDate>Tue, 23 Jun 2020 05:25:19 GMT</pubDate>
          <description><![CDATA[## 1-1 Binary Gap ### 문제  숫자 N을 이진수로 바꿨을때, 1과 1사이에 있는 0의 개수가 가장 많이 연속해 있는 0의 개수를 구하라.  ``` 9는 이진수로 바꿀 경우 1001, 이경우 0의 최대 개수는 2. 529는 이진수로 바꿀 경우 1000010001, 이경우 0의 최대 개수는 3. 20은 이진수로 바꿀 경우 10100, 이 경우...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Cyclic Rotation]]></title>
          <link>https://yceffort.kr/2020/06/codility-02-01-cyclic-rotation</link>
          <guid>https://yceffort.kr/2020/06/codility-02-01-cyclic-rotation</guid>
          <pubDate>Tue, 23 Jun 2020 05:25:19 GMT</pubDate>
          <description><![CDATA[## 2-1 Cyclic Rotation ### 문제  배열 A가 주어지고 이를 K번 각 배열의 요소를 오른쪽으로 이동시켰을 때, 그 결과를 리턴하시오.  ``` A = [3, 8, 9, 7, 6] K = 3  [3, 8, 9, 7, 6] -> [6, 3, 8, 9, 7] [6, 3, 8, 9, 7] -> [7, 6, 3, 8, 9] [7, 6, 3, 8...]]></description>
          <category><![CDATA[algorithm]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Odd Occurrences in array]]></title>
          <link>https://yceffort.kr/2020/06/codility-02-02-odd-occurrences-in-array</link>
          <guid>https://yceffort.kr/2020/06/codility-02-02-odd-occurrences-in-array</guid>
          <pubDate>Tue, 23 Jun 2020 05:25:19 GMT</pubDate>
          <description><![CDATA[## 2-2 Odd Occurrences in array ### 문제  숫자로 이뤄진 배열에서 홀수 번 등장하는 숫자를 찾아서 리턴해라.  ``` A[0] = 9  A[1] = 3  A[2] = 9 A[3] = 3  A[4] = 9  A[5] = 7 A[6] = 9  7은 한번만 등장하므로 7을 리턴해야 한다. ```  ### 풀이  ```javascri...]]></description>
          <category><![CDATA[algorithm]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Frog Jump]]></title>
          <link>https://yceffort.kr/2020/06/codility-03-01-frog-jump</link>
          <guid>https://yceffort.kr/2020/06/codility-03-01-frog-jump</guid>
          <pubDate>Tue, 23 Jun 2020 05:25:19 GMT</pubDate>
          <description><![CDATA[## 3-1 Frog Jump ### 문제  개구리가 X에서 Y까지 뛰어야 하고, 한번에 D 만큼 점프 할 수 있을 때, 몇번을 뛰어야 하는가?  ### 풀이  ```javascript function solution(X, Y, D) {     return Math.ceil((Y - X) / D) } ```  https://app.codility.com/...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Perm missing elem]]></title>
          <link>https://yceffort.kr/2020/06/codility-03-02-perm-missing-elem</link>
          <guid>https://yceffort.kr/2020/06/codility-03-02-perm-missing-elem</guid>
          <pubDate>Tue, 23 Jun 2020 05:25:19 GMT</pubDate>
          <description><![CDATA[## 3-2 Perm Missing Elem ### 문제  길이 N으로 이루어진 배열 A은, 1부터 N+1 의 숫자로 이루어져 있다. 여기에서 빠진 숫자를 찾아라.  ``` A[0] = 2 A[1] = 3 A[2] = 1 A[3] = 5  4 가 누락되어 있으므로, 정답은 4 다. ```  ### 풀이  ```javascript function solut...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Tape Equilibrium]]></title>
          <link>https://yceffort.kr/2020/06/codility-03-03-tape-equilibrium</link>
          <guid>https://yceffort.kr/2020/06/codility-03-03-tape-equilibrium</guid>
          <pubDate>Tue, 23 Jun 2020 05:25:19 GMT</pubDate>
          <description><![CDATA[## Tape Equilibrium ### 문제  길이 N의 배열을 임의로 두개로 쪼개고, 이렇게 해서 생긴 두배열의 합을 각각 구할때, 이 서로 두합의 차이가 가장 작은 경우를 구하라.  ``` A[0] = 3 A[1] = 1 A[2] = 2 A[3] = 4 A[4] = 3 이경우 네가지로 쪼갤 수 있는데  P = 1, difference = |3 − ...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Perm Check]]></title>
          <link>https://yceffort.kr/2020/06/codility-04-04-permcheck</link>
          <guid>https://yceffort.kr/2020/06/codility-04-04-permcheck</guid>
          <pubDate>Tue, 23 Jun 2020 05:25:19 GMT</pubDate>
          <description><![CDATA[## Perm Check ### 문제  길이 N인 배열이 주어져 있고, 안에는 서로 다른 숫자가 들어가 있다. 이 서로 다른 숫자가 연속하는 숫자면 true, 아니라면 false를 리턴하라.  ``` A[0] = 4 A[1] = 1 A[2] = 3 A[3] = 2  는 1을 리턴하면 된다. ```  ``` A[0] = 4 A[1] = 1 A[2] = 3 ...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Count div]]></title>
          <link>https://yceffort.kr/2020/06/codility-05-01-count-div</link>
          <guid>https://yceffort.kr/2020/06/codility-05-01-count-div</guid>
          <pubDate>Tue, 23 Jun 2020 05:25:19 GMT</pubDate>
          <description><![CDATA[## Count Div ### 문제  A와 A보다 같거나 큰 B, 그리고 K가 주어질 때, A와 B사이에 K로 나누면 나머지가 0인 숫자의 개수를 구하라.  ``` A=6 B=11 K=2 6, 8, 10 이 있으므로, 정답은 3 이다. ```  ### 풀이  ```javascript function solution(A, B, K) {     return ...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Genomic Range Query]]></title>
          <link>https://yceffort.kr/2020/06/codility-05-02-genomic-range-query</link>
          <guid>https://yceffort.kr/2020/06/codility-05-02-genomic-range-query</guid>
          <pubDate>Tue, 23 Jun 2020 05:25:19 GMT</pubDate>
          <description><![CDATA[## Genomic Range Query ### 문제  DNA는 A, C, G, T로 구성되어 있는데, 이는 각각 1, 2, 3, 4를 가르킨다. 이러한 DNA를 리턴하는 S가 있고, 배열의 길이가 같은 P와 Q가 있다.  ``` S=CAGCCTA P=[2, 5, 0] Q=[4, 5, 6]  각 0번째 요소는 2, 4다. 2번째 ~ 4번째 DNA는 GCC...]]></description>
          <category><![CDATA[algorithm]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Min Avg Two Slice]]></title>
          <link>https://yceffort.kr/2020/06/codility-05-03-min-avg-two-slice</link>
          <guid>https://yceffort.kr/2020/06/codility-05-03-min-avg-two-slice</guid>
          <pubDate>Tue, 23 Jun 2020 05:25:19 GMT</pubDate>
          <description><![CDATA[## Min Avg Two Slice ### 문제  길이가 N인 비어있지 않은 배열 A가 주어진다. 한쌍의 숫자 P, Q의 범위는 `0 <= P < Q < N` 다. 주어진 P와 Q로 A배열을 slice한다. (최소 2개이상의 요소가 있어야 한다.) (P, Q)는 `A[P] + A[P + 1] + ... + A[Q]`이며, (P, Q)의 평균은 `(A[P...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Codility - Passing Cars]]></title>
          <link>https://yceffort.kr/2020/06/codility-05-04-passing-cars</link>
          <guid>https://yceffort.kr/2020/06/codility-05-04-passing-cars</guid>
          <pubDate>Tue, 23 Jun 2020 05:25:19 GMT</pubDate>
          <description><![CDATA[## Passing Cars ### 문제  N의 길이로 이루어진 배열 A는 0과 1로 이루어져 있는데, 0과 1은 각각 다음과 같은 의미를 가지고 있다.  - 0은 차가 동쪽으로 간다 - 1은 차가 서쪽으로 간다  이 때 동쪽으로 간 차와 서쪽으로 간 차를 짝지을 수 있는 개수를 구하라. 단 먼저 동쪽으로 간차와 그 이후에 서쪽으로 간 차만 짝 지을 수 ...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[알고리즘 - 연결 리스트]]></title>
          <link>https://yceffort.kr/2020/06/algorithm-linked-list</link>
          <guid>https://yceffort.kr/2020/06/algorithm-linked-list</guid>
          <pubDate>Fri, 19 Jun 2020 04:34:32 GMT</pubDate>
          <description><![CDATA[## 연결리스트 연결리스트, Linked List 는 각 노드들이 한 줄로 연결되어 있는 방식으로 각 노드는 데이터와 포인터 (다음 노드의 정보)를 가지고 있다. 연결리스트는 일반적인 배열과 다르게 삽입과 삭제가 `O(1)`에 가능하다는 장점이 있다. 하지만 특정 n번 째 정보를 찾는 데에는 `O(n)`시간이 걸린다는 단점도 있다.  ![단일 연결 리스트...]]></description>
          <category><![CDATA[algorithm]]></category><category><![CDATA[data-structures]]></category>
        </item>
      
        <item>
          <title><![CDATA[Nodejs에서의 암/복호화]]></title>
          <link>https://yceffort.kr/2020/06/encryption-decryption-nodejs</link>
          <guid>https://yceffort.kr/2020/06/encryption-decryption-nodejs</guid>
          <pubDate>Tue, 09 Jun 2020 09:56:46 GMT</pubDate>
          <description><![CDATA[### Nodejs에서의 암호화와 복호화 만약 같은 텍스트로 암호화를 동일하게 시도했을 때, 암호화된 결과가 동일하게 나온다면 이 암호화는 굉장히 약한 암호화라 볼 수 있다. 강력한 암호화는 매번 암호화를 시도할 때마다 (설령 같은 텍스트라 할지라도) 다른 결과가 나와야 한다.  물론, 어쨌든 암호화 되어 있다는 사실 만으로도 만족할 수도 있다. 그러나 ...]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[security]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 스킬을 향상 시킬 10개의 질문]]></title>
          <link>https://yceffort.kr/2020/05/10-javascript-quiz</link>
          <guid>https://yceffort.kr/2020/05/10-javascript-quiz</guid>
          <pubDate>Wed, 03 Jun 2020 04:07:55 GMT</pubDate>
          <description><![CDATA[## 자바스크립트 스킬을 향상 시킬 10개의 질문 [10 JavaScript Quiz Questions and Answers to Sharpen Your Skills](https://typeofnan.dev/10-javascript-quiz-questions-and-answers/) 의 질문을 보고, 답에 대한 해석을 제멋대로 써보았습니다.  ### 1....]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 제네레이터]]></title>
          <link>https://yceffort.kr/2020/05/javascript-generator</link>
          <guid>https://yceffort.kr/2020/05/javascript-generator</guid>
          <pubDate>Thu, 21 May 2020 07:33:36 GMT</pubDate>
          <description><![CDATA[## Generator 제네레이터의 개념에 대해 이해하기 전에, 먼저 반복자 (Iterator)에 대해 알아보자.  ### 0. Iterator  반복자는, 두개의 속성 (`value`와 `done`)을 반환하는 `next()`메소드를 사용하여 [Iterator protocal](https://developer.mozilla.org/en-US/docs/W...]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 데코레이터]]></title>
          <link>https://yceffort.kr/2020/05/javascript-decorator</link>
          <guid>https://yceffort.kr/2020/05/javascript-decorator</guid>
          <pubDate>Wed, 20 May 2020 07:33:36 GMT</pubDate>
          <description><![CDATA[## 데코레이터 ### 0. 설명자  데코레이터에 대해 시작하기 전에, 설명자(Descriptor)에 대해 알아보자.  설명자란, 객체의 프로퍼티가 쓰기가 가능한지, 그리고 열거가 가능한지 여부를 나타낸다. 그리고 설명자를 구현하기 위해서는, [Object.getOwnPropertyDescriptor(obj, propName)](https://develo...]]></description>
          <category><![CDATA[typescript]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[var let const, 그리고 호이스팅]]></title>
          <link>https://yceffort.kr/2020/05/var-let-const-hoisting</link>
          <guid>https://yceffort.kr/2020/05/var-let-const-hoisting</guid>
          <pubDate>Wed, 20 May 2020 07:33:36 GMT</pubDate>
          <description><![CDATA[## var let const, 그리고 호이스팅 ### var  우리가 모두 아는 `var` 키워드는 아래와 같은 특징을 가지고 있다.  1. 함수레벨 스코프를 가지고 있다.        대부분의 프로그래밍 언어들이 블록 레벨 스코프를 사용하고 있지만, `var`로 선언된 키워드는 함수레벨 스코프를 갖는다.     ```javascript     var ...]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[javascript 일반 함수와 화살표 함수의 차이]]></title>
          <link>https://yceffort.kr/2020/05/difference-between-function-and-arrow</link>
          <guid>https://yceffort.kr/2020/05/difference-between-function-and-arrow</guid>
          <pubDate>Tue, 19 May 2020 06:39:42 GMT</pubDate>
          <description><![CDATA[ES6에서부터 생긴 `arrow function`은 일반적으로 `()=>{}`의 모양을 하고 있으며, 동작도 비슷해보인다. 하지만 이 두 선언방식은 두가지 분명한 차이를 가지고 있다. 하지만 그전에 this를 알아야 한다.]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트의 private]]></title>
          <link>https://yceffort.kr/2020/04/javascript-private</link>
          <guid>https://yceffort.kr/2020/04/javascript-private</guid>
          <pubDate>Fri, 08 May 2020 11:33:36 GMT</pubDate>
          <description><![CDATA[이 글은 [은닉을 향한 자바스크립트의 여정](https://meetup.toast.com/posts/228)을 요약한 글입니다. ## History  자바스크립트에서는 객체에 private 한 속성을 만들 수가 없었다. 그래서 보통 자바스크립트 개발자는 private한 것이다 라는 약속으로 `_` prefix를 붙여서 사용하고는 했었다.  ```javas...]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[리덕스 공부해보기 (3) - 용어]]></title>
          <link>https://yceffort.kr/2020/04/redux-study-3</link>
          <guid>https://yceffort.kr/2020/04/redux-study-3</guid>
          <pubDate>Wed, 29 Apr 2020 06:09:18 GMT</pubDate>
          <description><![CDATA[https://redux.js.org/glossary#state ## 용어 모음  ### State (상태)  ```typescript type State = any ```  State (State tree라고 도 불리운다)는 Redux API에서는 보통 스토어에서 관리하고, `getState()`에 의해 반환되는 단일 값을 가리킨다.  관례적으로, 가장...]]></description>
          <category><![CDATA[redux]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[리덕스 공부해보기 (2) - 리덕스의 탄생, 핵심 개념 그리고 3가지 원칙.]]></title>
          <link>https://yceffort.kr/2020/04/redux-study-2</link>
          <guid>https://yceffort.kr/2020/04/redux-study-2</guid>
          <pubDate>Tue, 28 Apr 2020 07:33:32 GMT</pubDate>
          <description><![CDATA[## 리덕스의 탄생 배경 https://redux.js.org/introduction/motivation  **자바스크립트 싱글 페이지 애플리케이션에 대한 요구 사항이 점점 복잡해 짐에 따라서, 우리의 코드는 그 어느 때 보다도 더 많이 상태관리에 대한 필요성을 느끼고 있다.** 여기서 말하는 상태에는 서버 응답, 캐시된 데이터 뿐만아니라 서버에 아직 요...]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[리덕스 공부해보기 (1) - 개요]]></title>
          <link>https://yceffort.kr/2020/04/redux-study-1</link>
          <guid>https://yceffort.kr/2020/04/redux-study-1</guid>
          <pubDate>Sun, 26 Apr 2020 07:38:25 GMT</pubDate>
          <description><![CDATA[## 리덕스 공부해보기 1 [리덕스 공식문서](https://redux.js.org/introduction/getting-started)를 스스로 대충 번역해본 글입니다.  리덕스는 자바스크립트 앱을 위한 **예측 가능한 상태 관리 컨테이너**다.  리덕스는 일관성 있게 동작하고, 서로 다른 환경 (클라이언트, 서버, 네이티브)에서 실행되며, 테스트하기 ...]]></description>
          <category><![CDATA[redux]]></category><category><![CDATA[react]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[타입스크립트로 koa 미들웨어 만들기]]></title>
          <link>https://yceffort.kr/2020/04/koa-middleware-with-typescript</link>
          <guid>https://yceffort.kr/2020/04/koa-middleware-with-typescript</guid>
          <pubDate>Wed, 15 Apr 2020 05:46:43 GMT</pubDate>
          <description><![CDATA[koa 미들웨어 만들기]]></description>
          <category><![CDATA[typescript]]></category><category><![CDATA[nodejs]]></category>
        </item>
      
        <item>
          <title><![CDATA[Socket.IO 공부하기 (1)]]></title>
          <link>https://yceffort.kr/2020/03/socket-io</link>
          <guid>https://yceffort.kr/2020/03/socket-io</guid>
          <pubDate>Sun, 22 Mar 2020 03:17:25 GMT</pubDate>
          <description><![CDATA[## WebSocket 웹은 전형적으로 HTTP 요청에 대한 HTTP 응답을 받고, 이에 따라 브라우저 화면을 새로 만드는 방식이다. 따라서 데이터 통신은 요청과 응답이 한 쌍으로 묶여왔다. 그러나 웹 페이지가 보다 쉽게 상호작용을 하려면, 브라우저와 웹 사이에 이러한 요청 - 응답 방식이 아닌 더 자유로운 양방향 메시지 송수신 기술이 필요하다. 이러한 ...]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[websocket]]></category>
        </item>
      
        <item>
          <title><![CDATA[[Python] Send ncloud sms message]]></title>
          <link>https://yceffort.kr/2020/03/ncloud-sms</link>
          <guid>https://yceffort.kr/2020/03/ncloud-sms</guid>
          <pubDate>Tue, 17 Mar 2020 06:43:12 GMT</pubDate>
          <description><![CDATA[네이버 클라우드 플랫폼의 서비스 중 하나인 https://www.ncloud.com/product/applicationService/sens 로 SMS를 발송하는 예제. ncloud서비스를 다 써본건 아니지만, `make_signature`는 전 서비스에 다 똑같이 쓸 수 있을 것 같은 기분이다. ```python import time import req...]]></description>
          <category><![CDATA[python]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[Javascript Regex 숫자를 comma와 함께 Formatting 하기]]></title>
          <link>https://yceffort.kr/2020/03/regex-formatting-number</link>
          <guid>https://yceffort.kr/2020/03/regex-formatting-number</guid>
          <pubDate>Tue, 17 Mar 2020 04:14:07 GMT</pubDate>
          <description><![CDATA[regex를 활용해서 숫자를 보기좋게 formatting을 해보자.]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[regex]]></category>
        </item>
      
        <item>
          <title><![CDATA[NextJS 1. Page & Route]]></title>
          <link>https://yceffort.kr/2020/03/nextjs-01-route</link>
          <guid>https://yceffort.kr/2020/03/nextjs-01-route</guid>
          <pubDate>Thu, 12 Mar 2020 02:39:10 GMT</pubDate>
          <description><![CDATA[요즘 리액트를 쓰는 많은 프로젝트에서, SSR을 지원하기 위해 [nextjs](https://nextjs.org/)를 쓰고 있다. 초기 로딩 속도나, SEO 지원 이슈 등 등 때문에 아무래도 SPA는 요즘 트렌드에서 많이 밀린 기분이다. 물론 [razzle](https://github.com/jaredpalmer/razzle) 을 쓰거나 custom ser...]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[react]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[NextJS 2. Data Fetching]]></title>
          <link>https://yceffort.kr/2020/03/nextjs-02-data-fetching</link>
          <guid>https://yceffort.kr/2020/03/nextjs-02-data-fetching</guid>
          <pubDate>Thu, 12 Mar 2020 02:39:10 GMT</pubDate>
          <description><![CDATA[[nextjs의 공식 문서](https://nextjs.org/docs/basic-features/data-fetching)를 보고 요약한 내용입니다. ```toc tight: true, from-heading: 1 to-heading: 2 ```  ## 1. getInitialProps  Nextjs 9.3 이전에는 `getInitialProps` 밖에...]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트 커링과 클로져]]></title>
          <link>https://yceffort.kr/2020/03/javascript-currying-closure</link>
          <guid>https://yceffort.kr/2020/03/javascript-currying-closure</guid>
          <pubDate>Thu, 05 Mar 2020 06:03:40 GMT</pubDate>
          <description><![CDATA[## 커링 [이 글](https://www.sitepoint.com/currying-in-functional-javascript/) 에 잘 정리 되어 있습니다.  Currying은 여러 개의 인자를 가진 함수를 호출 할 경우, 파라미터의 수보다 적은 수의 파라미터를 인자로 받으면 누락된 파라미터를 인자로 받는 기법을 말한다.  즉 커링은 함수 하나가 n개...]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트에서 http 요청하기 - fetch에 대한 고찰]]></title>
          <link>https://yceffort.kr/2020/01/think-about-fetch</link>
          <guid>https://yceffort.kr/2020/01/think-about-fetch</guid>
          <pubDate>Wed, 22 Jan 2020 03:57:45 GMT</pubDate>
          <description><![CDATA[`toc tight: true, from-heading: 2 to-heading: 3 ` ## 1. 서론 자바스크립트에서 http 요청을 하는 것은 이제 비일비재한 일이 되었다. 서버에서 모든 데이터를 가져와서 static 한 html을 만들어서 보여주고 있는 웹페이지는 아마 찾기 어려울 것이다. 맨 처음 웹을 배울 때, jquery의 ajax ...]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[React count down에서 배운 event-emitter 와 requestAnimationFrame]]></title>
          <link>https://yceffort.kr/2020/01/learning-from-react-count-down</link>
          <guid>https://yceffort.kr/2020/01/learning-from-react-count-down</guid>
          <pubDate>Wed, 15 Jan 2020 04:32:32 GMT</pubDate>
          <description><![CDATA[# 리액트에서 카운트 다운을 만들며 배운 것들 리액트에서 카운트 다운을 만든다고 가정해보자. 가장 먼저 생각나는대로, 빠르게 구현한다면 아래와 같은 느낌이 될 것이다.  https://codepen.io/yceffort/pen/BayPyNe  하지만 이 코드는 한가지 문제를 가지고 있다.  ## setInterval, setTimeout  `setInte...]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[javascript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[2020년, 매일 github에 contribution 하기]]></title>
          <link>https://yceffort.kr/2020/01/github-daily-contribution</link>
          <guid>https://yceffort.kr/2020/01/github-daily-contribution</guid>
          <pubDate>Sat, 11 Jan 2020 10:44:09 GMT</pubDate>
          <description><![CDATA[## 블로그의 성장 2018년 5월 1일에 블로그를 시작한 이례로 헛소리를 지껄이는 블로그에서, 제법 이사람 저사람 찾아오는 블로그로 성장했다.  ![history1](./images/history1.png)  ![history2](./images/history2.png)  꾸준한 블로그 뻘 글과 회사에서 일하는 것 덕분에 github contributi...]]></description>
          <category><![CDATA[github]]></category><category><![CDATA[career]]></category>
        </item>
      
        <item>
          <title><![CDATA[Chrome Samesite 쿠키 정책]]></title>
          <link>https://yceffort.kr/2020/01/chrome-cookie-same-site-secure</link>
          <guid>https://yceffort.kr/2020/01/chrome-cookie-same-site-secure</guid>
          <pubDate>Thu, 09 Jan 2020 09:09:03 GMT</pubDate>
          <description><![CDATA[# 문제의 시작 지난 주말, 엄청나게 급하게 빠른 속도로 프로젝트를 heroku에 올릴 일이 있었다. DB도 새로만들어야하고, 로그인도 필요한 사이트라 DB는 Heroku의 Clean DB를, 로그인은 [google sign-in for websites](https://developers.google.com/identity/sign-in/web)을 사용하...]]></description>
          <category><![CDATA[security]]></category><category><![CDATA[browser]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[머지된 브랜치를 삭제하는 스크립트]]></title>
          <link>https://yceffort.kr/2020/01/delete-merged-branch</link>
          <guid>https://yceffort.kr/2020/01/delete-merged-branch</guid>
          <pubDate>Thu, 02 Jan 2020 08:15:56 GMT</pubDate>
          <description><![CDATA[이미 머지된 브랜치를 로컬에서 삭제하기]]></description>
          <category><![CDATA[git]]></category><category><![CDATA[devops]]></category>
        </item>
      
        <item>
          <title><![CDATA[블로그 개편했습니다. 😎]]></title>
          <link>https://yceffort.kr/2019/12/30/blog-renewal</link>
          <guid>https://yceffort.kr/2019/12/30/blog-renewal</guid>
          <pubDate>Mon, 30 Dec 2019 09:16:10 GMT</pubDate>
          <description><![CDATA[주말에 집구석에 혼자 오래있을 일이 있어서, 생각난 김에 블로그를 개편했습니다. 이 전에는 hexo 기반으로 만들어진 블로그를 작업했는데, hexo 생태계가 관리가 잘 안되고 있는 건지 플러그인이나 기능들이 제대로 동작을 안하더군요. wordpress -> ??? -> github pages -> hexo -> gatsby 까지 벌써 개편만 한 다섯번 쯤...]]></description>
          <category><![CDATA[gatsby]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[자바스크립트의 이벤트루프, 태스크, 그리고 마이크로 태스크]]></title>
          <link>https://yceffort.kr/2019/09/06/javascript-event-loop</link>
          <guid>https://yceffort.kr/2019/09/06/javascript-event-loop</guid>
          <pubDate>Fri, 27 Dec 2019 10:15:14 GMT</pubDate>
          <description><![CDATA[## 자바스크립트는 단일 스레드 기반의 언어 자바스크립트는 '단일 스레드' 기반의 언어다. 즉, 스레드가 하나이기 때문에 동시에 하나의 작업만 처리할 수 있다. 그러나 자바스크립트가 사용되는 웹을 곰곰히 생각해보면 동시에 여러개의 작업을 처리하는 모습을 볼 수 있다. 스레드가 하나인 자바스크립트는 동시성을 어떻게 처리할까? 먼저 브라우저 구동환경을 살펴보...]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[2020년 목표]]></title>
          <link>https://yceffort.kr/2019/12/18/goal-2020</link>
          <guid>https://yceffort.kr/2019/12/18/goal-2020</guid>
          <pubDate>Thu, 19 Dec 2019 01:38:23 GMT</pubDate>
          <description><![CDATA[Don't do anything boring ## Tensorflow JS  중요도: ★★★★★ 난이도: ★★★★★  AI가 하고 싶어요 선생님... tensorflowjs 를 튜토리얼부터 따라하면서 배워보자.  ## 알고리즘 강의  [백준강의](https://code.plus/bundle/8)  이제 알고리즘 정복할 때가 되었다. 자바스크립트와 파이썬으...]]></description>
          <category><![CDATA[ai]]></category><category><![CDATA[javascript]]></category><category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Github을 아름답게 관리하기]]></title>
          <link>https://yceffort.kr/2019/12/18/lets-beautify-git</link>
          <guid>https://yceffort.kr/2019/12/18/lets-beautify-git</guid>
          <pubDate>Wed, 18 Dec 2019 11:31:17 GMT</pubDate>
          <description><![CDATA[## Commit Message [좋은 git commit 메시지를 위한 영어사전](https://blog.ull.im/engineering/2019/03/10/logs-on-git.html)  [좋은 git 커밋 메시지를 작성하기 위한 7가지 약속](https://meetup.toast.com/posts/106)  ### 요약  Single Line  ...]]></description>
          <category><![CDATA[git]]></category><category><![CDATA[devops]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트 텍스트 하이라이트 만들기]]></title>
          <link>https://yceffort.kr/2019/10/15/react-text-highlight</link>
          <guid>https://yceffort.kr/2019/10/15/react-text-highlight</guid>
          <pubDate>Tue, 15 Oct 2019 07:51:36 GMT</pubDate>
          <description><![CDATA[리액트에서 텍스트 강조하는 방법]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[typescript debounce]]></title>
          <link>https://yceffort.kr/2019/10/14/debounce</link>
          <guid>https://yceffort.kr/2019/10/14/debounce</guid>
          <pubDate>Mon, 14 Oct 2019 06:17:00 GMT</pubDate>
          <description><![CDATA[> Creates a debounced function that delays invoking func until after wait milliseconds have elapsed since the last time the debounced function was invoked. The debounced function comes with a cancel m...]]></description>
          <category><![CDATA[typescript]]></category><category><![CDATA[web-performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[브라우저 히스토리 조작]]></title>
          <link>https://yceffort.kr/2019/09/30/handle-browser-history</link>
          <guid>https://yceffort.kr/2019/09/30/handle-browser-history</guid>
          <pubDate>Mon, 30 Sep 2019 06:28:48 GMT</pubDate>
          <description><![CDATA[브라우저 히스토리 조작하기]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[타입스크립트 제네릭]]></title>
          <link>https://yceffort.kr/2019/09/19/typescript-generic</link>
          <guid>https://yceffort.kr/2019/09/19/typescript-generic</guid>
          <pubDate>Fri, 20 Sep 2019 12:10:14 GMT</pubDate>
          <description><![CDATA[## 제네릭이란 제네릭은 클래스 내부에서 사용하는 데이터의 타입을 외부에서 지정하는 것을 의미한다. 어떤 타입의 데이터를 쓸지를, 클래스 선언부가 아니라 외부에서 결정하는 것이다. 일단 자바 코드로 한번 살펴보자.  ```java class Person<T>{     public T name; }  Person<String> p1 = new Person<...]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트 면접 질문 모음 (2)]]></title>
          <link>https://yceffort.kr/2019/08/21/reactjs-interview-questions-2</link>
          <guid>https://yceffort.kr/2019/08/21/reactjs-interview-questions-2</guid>
          <pubDate>Wed, 21 Aug 2019 07:17:16 GMT</pubDate>
          <description><![CDATA[[목차](/2019/08/13/reactjs-interview-questions/) # table of contents  ```toc tight: true, from-heading: 2 to-heading: 3 ```  ## React Router  ### What is React Router?  React Router는 리액트 최상단에 있는 강력한 라우...]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[redux]]></category><category><![CDATA[testing]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트 면접 질문 모음 (1)]]></title>
          <link>https://yceffort.kr/2019/08/13/reactjs-interview-questions-1</link>
          <guid>https://yceffort.kr/2019/08/13/reactjs-interview-questions-1</guid>
          <pubDate>Wed, 21 Aug 2019 01:22:35 GMT</pubDate>
          <description><![CDATA[[목차](/2019/08/13/reactjs-interview-questions/)  ```toc tight: true, from-heading: 2 to-heading: 3 ```  ## Core React  ### What is React  리액트는 오픈소스 프론트엔드 자바스크립트 라이브러리로, 특히 싱글 페이지 애플리케이션의 사용자 인터페이스 구축을...]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[javascript]]></category><category><![CDATA[frontend]]></category>
        </item>
      
        <item>
          <title><![CDATA[타입스크립트 타입 단언]]></title>
          <link>https://yceffort.kr/2019/08/20/typescript-type-assertion</link>
          <guid>https://yceffort.kr/2019/08/20/typescript-type-assertion</guid>
          <pubDate>Tue, 20 Aug 2019 06:30:52 GMT</pubDate>
          <description><![CDATA[타입스크립트의 타입 단언]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트 면접 질문 모음]]></title>
          <link>https://yceffort.kr/2019/08/13/reactjs-interview-questions</link>
          <guid>https://yceffort.kr/2019/08/13/reactjs-interview-questions</guid>
          <pubDate>Tue, 13 Aug 2019 06:27:31 GMT</pubDate>
          <description><![CDATA[[원문-reactjs-interview-questions](https://github.com/sudheerj/reactjs-interview-questions) [1. Core React](/2019/08/13/reactjs-interview-questions-1/)  [2. React - Router, Internationalization, Redux,...]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[career]]></category>
        </item>
      
        <item>
          <title><![CDATA[브라우저는 어떻게 동작하는가? - 모던 웹브라우저가 동작하는 방법]]></title>
          <link>https://yceffort.kr/2019/08/12/how-browser-work</link>
          <guid>https://yceffort.kr/2019/08/12/how-browser-work</guid>
          <pubDate>Mon, 12 Aug 2019 10:42:22 GMT</pubDate>
          <description><![CDATA[### 🚧작성중 🚧 [원문-How Browsers Work: Behind the scenes of modern web browsers](https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/)  > 이 글을 요약/번역한 더 좋은 글이 [네이버 d2](https://d2.naver.com/...]]></description>
          <category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[koa-nextjs-react-typescript-boilerplate]]></title>
          <link>https://yceffort.kr/2019/08/13/koa-nextjs-react-typescript-bolierplate</link>
          <guid>https://yceffort.kr/2019/08/13/koa-nextjs-react-typescript-bolierplate</guid>
          <pubDate>Mon, 12 Aug 2019 10:42:22 GMT</pubDate>
          <description><![CDATA[[github repository](https://github.com/yceffort/koa-nextjs-react-typescript-boilerplate) nextjs와 react 만 깔끔하게 쓰고 싶지만, 그러기엔 현실적인 문제가 몇가지 있다  ...]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[typescript]]></category><category><![CDATA[boilerplate]]></category>
        </item>
      
        <item>
          <title><![CDATA[React Hooks Api (2)]]></title>
          <link>https://yceffort.kr/2019/08/09/react-hooks-api-2</link>
          <guid>https://yceffort.kr/2019/08/09/react-hooks-api-2</guid>
          <pubDate>Mon, 12 Aug 2019 08:03:51 GMT</pubDate>
          <description><![CDATA[### useReducer ```javascript const [state, dispatch] = useReducer(reducer, initialArg, init); ```  `useState`의 대체 함수다. 다수의 하윗 값을 만드는 복잡한 로직, 혹은 다음 state가 이전 state의 의존적인 경우에 쓴다. 뭐가 뭔지 모르겠으니까 예제를 보자.  ...]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[React Hooks Api (1)]]></title>
          <link>https://yceffort.kr/2019/08/08/react-hooks-api-1</link>
          <guid>https://yceffort.kr/2019/08/08/react-hooks-api-1</guid>
          <pubDate>Fri, 09 Aug 2019 02:01:07 GMT</pubDate>
          <description><![CDATA[# Hooks API Hook은 react 16.8에서 추가된 개념으로, Hook을 시용하면 class를 갖성하지 않아도 state관리와 같은 react의 기능을 사용할 수 있다.  ## 기본 Hook  ### useState  ```javascript const [state, setState] = useState(initialState); setStat...]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[HAProxy]]></title>
          <link>https://yceffort.kr/2019/08/07/haproxy</link>
          <guid>https://yceffort.kr/2019/08/07/haproxy</guid>
          <pubDate>Wed, 07 Aug 2019 06:39:20 GMT</pubDate>
          <description><![CDATA[## 로드밸런서 > 로드 밸런싱이란, 부하 분산을 위해서 가상 IP를 통해 여러 서버에 접속하도록 분배하는 기능을 말한다.  로드 밸런싱에서 사용하는 주요 기술은  - NAT(Network Address Translation): 사설 IP 주소를 공인 IP 주소로 바꾸는 데 사용하는 통신망의 주소 변조기이다. - DSR(Dynamic Source Rout...]]></description>
          <category><![CDATA[devops]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[Docker와 ECR, ECS 경험]]></title>
          <link>https://yceffort.kr/2019/08/06/experience-docker-aws-ecs</link>
          <guid>https://yceffort.kr/2019/08/06/experience-docker-aws-ecs</guid>
          <pubDate>Tue, 06 Aug 2019 05:55:52 GMT</pubDate>
          <description><![CDATA[제법 규모가 있었던 전 회사에서는 특별하게 인프라에 대해 고민을 별로 할 필요가 없었다. 많은 부분이 자동화되어 있었고, 또 적당한 툴로 잘 만들어져 있었기 때문에 개발에 온전히 집중할 수 있었다. 하지만 새롭게 온 스타트업은 (당연하게도) 그런게 없으므로, 회사에서 사용하고 있는 AWS 인프라와 배포 시스템에 대해서 직접 공부할 필요가 있었다. 그 중에서...]]></description>
          <category><![CDATA[docker]]></category><category><![CDATA[devops]]></category>
        </item>
      
        <item>
          <title><![CDATA[Javascript Reduce]]></title>
          <link>https://yceffort.kr/2019/07/22/javascript-reduce</link>
          <guid>https://yceffort.kr/2019/07/22/javascript-reduce</guid>
          <pubDate>Mon, 22 Jul 2019 08:36:28 GMT</pubDate>
          <description><![CDATA[멍청이라 그런지 `reduce` 함수가 잘 이해 되지 않았다. ## Reduce  ```javascript const list = [1, 2, 3, 4, 5]; const initValue = 10; const totalSum = list.reduce(   (accumulator, currentValue, currentIndex, array) => {  ...]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Javascript Set 그리고 Map]]></title>
          <link>https://yceffort.kr/2019/07/18/javascript-map-weakmap</link>
          <guid>https://yceffort.kr/2019/07/18/javascript-map-weakmap</guid>
          <pubDate>Thu, 18 Jul 2019 08:30:52 GMT</pubDate>
          <description><![CDATA[## 근데 사실.. 컬렉션 필요없지 않을까 자바스크립트에서 일반적인 Object는 key-value쌍을 끊임 없이 추가할 수 있는 형태로 구성되어 있다. 그래서 사실 컬렉션이 필요하지 않은 것 처럼 보일 수도 있다. 그러나 이따금씩 object로 부족할 때가 있다.  - key 충돌 위험이 존재하는 경우 - 문자열/심볼 이외의 키 값이 필요한 경우 - 객...]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Javascript Symbol]]></title>
          <link>https://yceffort.kr/2019/07/18/javascript-symbol</link>
          <guid>https://yceffort.kr/2019/07/18/javascript-symbol</guid>
          <pubDate>Thu, 18 Jul 2019 07:03:36 GMT</pubDate>
          <description><![CDATA[## Javascript Primitive 기존에 자바스크립트는 6가지의 primitive가 있었다.  - Object - string - number - boolean - null - undefined  그러나 es6가 들어서면서 `symbol`이라는 7번째 primitive가 추가되었다.  ## Symbol  ```javascript const hel...]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[javascript event bubbling & capturing]]></title>
          <link>https://yceffort.kr/2019/07/17/javascript-event-bubbling-capturing</link>
          <guid>https://yceffort.kr/2019/07/17/javascript-event-bubbling-capturing</guid>
          <pubDate>Wed, 17 Jul 2019 07:22:22 GMT</pubDate>
          <description><![CDATA[![image](https://miro.medium.com/max/1200/1*Et5UjVPGLfF1L43T7ErrxQ.png) ## Javascript Event Capturing  https://codepen.io/yceffort/pen/GbVaaY  Event Capturing은 특정 요소에서 이벤트가 발생했을 때, 최상위 요소에서 부터 이벤트를 탐...]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[browser]]></category>
        </item>
      
        <item>
          <title><![CDATA[javascript class]]></title>
          <link>https://yceffort.kr/2019/07/09/javascript-class</link>
          <guid>https://yceffort.kr/2019/07/09/javascript-class</guid>
          <pubDate>Wed, 10 Jul 2019 01:01:24 GMT</pubDate>
          <description><![CDATA[# Class 클래스는 기본적으로 이렇게 생겼다.  ```javascript class Member {   getName() {     return "이름";   } }  let obj = new Member(); console.log(obj.getName()); ```  ## 특징  ### 1. strict 모드에서 실행  딱히 `'use strict'...]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Intersection Observer]]></title>
          <link>https://yceffort.kr/2019/06/24/intersection-observer</link>
          <guid>https://yceffort.kr/2019/06/24/intersection-observer</guid>
          <pubDate>Mon, 24 Jun 2019 06:01:35 GMT</pubDate>
          <description><![CDATA[## Intersection Observer Intersection Observer는 엘리먼트가 viewport에 노출되고 있는지 여부를 확인해주는 API다. 간단히 말해 브라우저의 어떤 요소가 화면에 노출되고 있는지 안되고 있는지를 확인해주는 라이브러리라고 생각하면 될 것 같다. 이 라이브러리가 없이 엘리먼트가 노출중인지 확인하려면 어떻게 해야할까? 이...]]></description>
          <category><![CDATA[browser]]></category><category><![CDATA[web-performance]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Typescript, React, NextJs, Koa, Styled Component 로 프론트엔드 환경 만들기]]></title>
          <link>https://yceffort.kr/2019/06/20/react-nextjs-koa</link>
          <guid>https://yceffort.kr/2019/06/20/react-nextjs-koa</guid>
          <pubDate>Fri, 21 Jun 2019 04:07:40 GMT</pubDate>
          <description><![CDATA[이 문서는 더 이상 업데이트 하지 않을 생각이다. 대신 https://github.com/yceffort/koa-nextjs-react-typescript-boilerplate 여기에서 계속 해서 만들어 가고 있다. ## 사용한 오픈소스  ### React  자세한 설명은 생략 한다  ### Nextjs  [NextJs](https://nextjs.org...]]></description>
          <category><![CDATA[nextjs]]></category><category><![CDATA[frontend]]></category><category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Typescript Type, Enum, Partial, Record로 글로벌 변수 관리하기]]></title>
          <link>https://yceffort.kr/2019/06/17/typescript-type-enum-partial-record</link>
          <guid>https://yceffort.kr/2019/06/17/typescript-type-enum-partial-record</guid>
          <pubDate>Tue, 18 Jun 2019 01:20:52 GMT</pubDate>
          <description><![CDATA[## 고민지점 - Global 로 관리하는 Colorset Red, Blue, Green, Black이 있다. - 이 색들은 각각 지정된 칼라코드가 있다 - 그러나 때로는 그 컬러코드에 맞게 안쓰는 경우도 있다 - 그러나 때로는 저 네개를 다 안쓰고 1~3개만 쓰는 경우가 있다.  ## Union types  [Union Type](https://www....]]></description>
          <category><![CDATA[typescript]]></category>
        </item>
      
        <item>
          <title><![CDATA[React 공부하기 7 - 컴포넌트 라이프 사이클]]></title>
          <link>https://yceffort.kr/2019/05/20/react-study-7-component-life-cycle</link>
          <guid>https://yceffort.kr/2019/05/20/react-study-7-component-life-cycle</guid>
          <pubDate>Tue, 21 May 2019 12:17:09 GMT</pubDate>
          <description><![CDATA[## React Component Life Cycle 라이프 사이클은 총 10가지다. `Will`접두사는 어떤 작업을 작동하기전에 실행하는 메소드가, `Did`는 어떤 작업을 한 후에 실해오디는 메서드다. 이 메서드들은 컴포넌트 클래스에서 덮어써서 선언하여 사용할 수 있다.  라이프사이클은 총 3가지 카테고리로 나눌 수 있는데,  `mount`, `unm...]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[React 공부하기 8 - 함수형 컴포넌트]]></title>
          <link>https://yceffort.kr/2019/05/20/react-study-8-functional-component</link>
          <guid>https://yceffort.kr/2019/05/20/react-study-8-functional-component</guid>
          <pubDate>Tue, 21 May 2019 12:17:09 GMT</pubDate>
          <description><![CDATA[### 함수형 컴포넌트 ```javascript import React from 'react';  function Hello(props) {     return (         <div>hello {props.name}</div>     ) } ```  함수형 컴포넌트는 컴포넌트에서 라이프사이클, state 등의 기능을 제거한 상태이므로 메모리 사용량이...]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[React 공부하기 6 - 컴포넌트 반복]]></title>
          <link>https://yceffort.kr/2019/05/20/react-study-6-component-repeat</link>
          <guid>https://yceffort.kr/2019/05/20/react-study-6-component-repeat</guid>
          <pubDate>Tue, 21 May 2019 12:16:08 GMT</pubDate>
          <description><![CDATA[## 컴포넌트 반복해서 쓰기 ```javascript import React, {Component} from 'react';  class IterationSample extends Component {     render () {         const names = ['눈사람', '얼음', '눈', '바람']         const nameList ...]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[Javascript - Promise]]></title>
          <link>https://yceffort.kr/2019/05/21/javascript-promise</link>
          <guid>https://yceffort.kr/2019/05/21/javascript-promise</guid>
          <pubDate>Tue, 21 May 2019 11:42:41 GMT</pubDate>
          <description><![CDATA[## Promise ```javascript new Promise(executor) ```  `executor`는 `resolve`및 `reject` 인수를 전달할 실행함수를 의미한다. 실행함수는 `resolve`와 `reject`를 받아 즉시 실행된다. 실행함수는 보통 비동기 작업을 시작한 후, 모든 작업을 끝내면 `resolve`를 호출해서 `Prom...]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Javascript - Destructuring Assignment]]></title>
          <link>https://yceffort.kr/2019/05/21/javascript-destrucuring-assignment</link>
          <guid>https://yceffort.kr/2019/05/21/javascript-destrucuring-assignment</guid>
          <pubDate>Tue, 21 May 2019 07:18:46 GMT</pubDate>
          <description><![CDATA[## 구조 분해 할당 구조 분해 할당은 배열이나 객체의 속성을 말그대로 분해하여, 분해 한 값을 개별변수에 담을 수 있게 도와주는 표현식이다.  ```javascript let a, b, rest; [a, b] = [10, 20]; console.log(a); // 10 console.log(b); // 20  // rest 패턴을 이용하여 나머지를 모두...]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[Javascript - Closure]]></title>
          <link>https://yceffort.kr/2019/05/09/javascript-closure</link>
          <guid>https://yceffort.kr/2019/05/09/javascript-closure</guid>
          <pubDate>Thu, 09 May 2019 08:11:56 GMT</pubDate>
          <description><![CDATA[자바스크립트의 클로져]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[React 공부하기 5 - Reference]]></title>
          <link>https://yceffort.kr/2019/05/09/react-study-5-reference</link>
          <guid>https://yceffort.kr/2019/05/09/react-study-5-reference</guid>
          <pubDate>Thu, 09 May 2019 06:22:14 GMT</pubDate>
          <description><![CDATA[## Reference (Ref) 특정 DOM요소에 작업을 하기 위해서 id를 부여하는 것 처럼, React에서 DOM에 이름을 다는 방식이 있는데 이것이 바로 ref (Reference)다. 반드시, `DOM에 직접적으로 접근하여 조작이 필요할 때 만 이용해야 한다.`  ### 컴퍼넌트 내부에서 사용  ```javascript import React, ...]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[React 공부하기 4 - Event]]></title>
          <link>https://yceffort.kr/2019/05/08/react-study-4-event</link>
          <guid>https://yceffort.kr/2019/05/08/react-study-4-event</guid>
          <pubDate>Wed, 08 May 2019 10:53:58 GMT</pubDate>
          <description><![CDATA[## 이벤트 리액트의 이벤트는 기본적으로 HTML의 이벤트와 비슷하지만, 주의사항이 몇가지 있습니다.  1. 이벤트 명은 카멜 케이스로 작성해야 한다. `onclick` → `onClick` 2. 이벤트에 실행할 자바스크립트 코드를 전달하는 것이 아니고, 함수형태의 값을 전달해야 한다. 3. DOM요소에만 설정할 수 있다. Custom Component는...]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[React 공부하기 3 - Component]]></title>
          <link>https://yceffort.kr/2019/05/08/react-study-3-component</link>
          <guid>https://yceffort.kr/2019/05/08/react-study-3-component</guid>
          <pubDate>Wed, 08 May 2019 09:03:03 GMT</pubDate>
          <description><![CDATA[## 컴포넌트 기본적인 컴포넌트를 만들어 보자.  ```javascript import React, {Component} from 'react';  class MyComponent extends Component{     render() {         return (             <div className='hello'>            ...]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[React 공부하기 2 - JSX]]></title>
          <link>https://yceffort.kr/2019/05/08/react-study-2-jsx</link>
          <guid>https://yceffort.kr/2019/05/08/react-study-2-jsx</guid>
          <pubDate>Wed, 08 May 2019 08:58:18 GMT</pubDate>
          <description><![CDATA[## Create-react-app 라이브러리로 시작 ``` yarn global add create-react-app create-react-app hello-react  cd hello-react yarn start ```  ### app.js의 구조  ```javascript import React from 'react'; import logo fr...]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[React 공부하기 1 - background]]></title>
          <link>https://yceffort.kr/2019/05/08/react-study-1-background</link>
          <guid>https://yceffort.kr/2019/05/08/react-study-1-background</guid>
          <pubDate>Wed, 08 May 2019 07:46:42 GMT</pubDate>
          <description><![CDATA[## 리액트 요약 기존에 많은 자바스크립트 기반 프레임워크들이 있었는데, 대부분의 프레임워크들은 MVC (Model-View-Controller), MVVM(Model-View-View Model), MVW(Model-View-Whatever) 아키텍쳐를 사용하여 개발되었다.  ![MVC](https://mdn.mozillademos.org/files/1...]]></description>
          <category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[Disciplined entrepreneurship]]></title>
          <link>https://yceffort.kr/2019/05/03/disciplined-entrepreneurship</link>
          <guid>https://yceffort.kr/2019/05/03/disciplined-entrepreneurship</guid>
          <pubDate>Fri, 03 May 2019 07:45:29 GMT</pubDate>
          <description><![CDATA[### 작동하는 가설을 만들어라 ‘가설’이라는 단어는 기업가정신, 이노베이션경영, 그리고 지금의 파괴적혁신에 이르기까지 가장 많이 접한 단어 중 하나 입니다. 그 만큼 많은 학자들이 기업을 경영하는데 있어 가설을 만들고 증명하는 일이 중요하다는 것에 공감대를 형성했다는 뜻일 것입니다.  이러한 가설에는 수많은 변수가 포함되어 있습니다. 이러한 변수에는 기...]]></description>
          <category><![CDATA[career]]></category><category><![CDATA[entrepreneurship]]></category>
        </item>
      
        <item>
          <title><![CDATA[Computer Vision 01) - Image Representation]]></title>
          <link>https://yceffort.kr/2019/04/01/computer-vision-1-image-representation</link>
          <guid>https://yceffort.kr/2019/04/01/computer-vision-1-image-representation</guid>
          <pubDate>Mon, 01 Apr 2019 06:35:16 GMT</pubDate>
          <description><![CDATA[## Image Representation & Classification ### Images as Grids of Pixels  ```python import numpy as np from skimage import io import matplotlib.image as mpimg  import matplotlib.pyplot as plt import cv...]]></description>
          <category><![CDATA[computer-vision]]></category><category><![CDATA[python]]></category>
        </item>
      
        <item>
          <title><![CDATA[업무 자동화 (1) - 구글 스프레드 시트 API 활용하기]]></title>
          <link>https://yceffort.kr/2019/02/14/do-boring-stuff-with-python-1</link>
          <guid>https://yceffort.kr/2019/02/14/do-boring-stuff-with-python-1</guid>
          <pubDate>Thu, 14 Feb 2019 07:56:22 GMT</pubDate>
          <description><![CDATA[구글 스프레드 시트를 파이썬에서 조작해보자. 내가 할일은 1. 스프레드시트를 읽고 2. 스프레드시트에 쓰는 두가지 작업이다. ```python import pickle import os.path from googleapiclient.discovery import build from google_auth_oauthlib.flow import Installe...]]></description>
          <category><![CDATA[python]]></category><category><![CDATA[automation]]></category>
        </item>
      
        <item>
          <title><![CDATA[초보를 위한 웹크롤링: 네이버 영화 댓글 크롤링하기]]></title>
          <link>https://yceffort.kr/2018/11/05/web-crwaling-for-naver-movie</link>
          <guid>https://yceffort.kr/2018/11/05/web-crwaling-for-naver-movie</guid>
          <pubDate>Tue, 06 Nov 2018 04:44:01 GMT</pubDate>
          <description><![CDATA[e 파이썬과 파이썬 라이브러리 (beatifulSoup)를 활용하여 네이버 영화 댓글 크롤링 해보기 ## 1. 크롤링하려는 웹페이지의 구조를 살펴보기  인크레더블 평점 댓글 페이지를 먼저 살펴보겠습니다. [여기](https://movie.naver.com/movie/bi/mi/point.nhn?code=136990&onlyActualPointYn=Y#po...]]></description>
          <category><![CDATA[web-scraping]]></category><category><![CDATA[python]]></category>
        </item>
      
        <item>
          <title><![CDATA[GoLang) 구조체와 임베딩]]></title>
          <link>https://yceffort.kr/2018/06/01/golang-structure-embedding</link>
          <guid>https://yceffort.kr/2018/06/01/golang-structure-embedding</guid>
          <pubDate>Fri, 01 Jun 2018 07:57:05 GMT</pubDate>
          <description><![CDATA[Golang에는 클래스가 없는 대신, 아래와 같은 구조체가 존재한다.]]></description>
          <category><![CDATA[go]]></category><category><![CDATA[backend]]></category>
        </item>
      
        <item>
          <title><![CDATA[ReactiveX) Subject]]></title>
          <link>https://yceffort.kr/2018/05/31/Reactivex-subject</link>
          <guid>https://yceffort.kr/2018/05/31/Reactivex-subject</guid>
          <pubDate>Thu, 31 May 2018 09:43:40 GMT</pubDate>
          <description><![CDATA[subject는 옵저버나 observable처러 행동하는 일부 ReactiveX구현체에서만 사용가능한 일종의 프록시다. subject는 옵저버이기 때문에 하나이상의 observable을 구독할 수 있으며, 동시에 observable 이기도 하기 때문에 항목을 하나하나 거치면서 다시 push하고 새로운 항목을 push할 수 있다. 총 4종류의 subject...]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[reactive-programming]]></category>
        </item>
      
        <item>
          <title><![CDATA[ReactiveX) Observable]]></title>
          <link>https://yceffort.kr/2018/05/31/ReactiveX-Observable</link>
          <guid>https://yceffort.kr/2018/05/31/ReactiveX-Observable</guid>
          <pubDate>Thu, 31 May 2018 09:01:45 GMT</pubDate>
          <description><![CDATA[보통 일반적인 프로그램의 경우에는, 하나씩 작성된 순서에 따라 로직이 실행되고, 완료되면 또다른 로직이 실행되는 등의 순서가 있음을 알수 있다. 그러나 이와 달리 ReactiveX는 "Observer"에 의해 임의의 순서에 따라 병렬적으로 실행되고 나중에 결과나 나온다.  즉 메서드를 호출하는 것이 아니라, Observable안의 데이터를 조회하고, 변환...]]></description>
          <category><![CDATA[reactive-programming]]></category><category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[발음 기반으로 String의 유사도를 비교해 보자.]]></title>
          <link>https://yceffort.kr/2018/05/31/compare-string-with-voice</link>
          <guid>https://yceffort.kr/2018/05/31/compare-string-with-voice</guid>
          <pubDate>Thu, 31 May 2018 09:01:45 GMT</pubDate>
          <description><![CDATA[앞선 포스팅 통해서 두 String을 문자열 기반으로 분석하였을때. 유사도를 어떻게 측정하는지 알아보았다. 그러나 음성인식으로 String을 비교 했을 때,  다음과 같은 문제에 직면하였다.]]></description>
          <category><![CDATA[algorithm]]></category><category><![CDATA[java]]></category>
        </item>
      
        <item>
          <title><![CDATA[두 String의 유사도를 측정해보자 - Levenshtein distance]]></title>
          <link>https://yceffort.kr/2018/05/31/Levenshtein-distance</link>
          <guid>https://yceffort.kr/2018/05/31/Levenshtein-distance</guid>
          <pubDate>Thu, 31 May 2018 08:11:51 GMT</pubDate>
          <description><![CDATA[두 개의 String이 있을때, 그 두개를 비교하는 작업은 어떻게 할 수 있을까? str.equalsOf(str2) 이런 것이 아니라, 두 단어의 비슷한 정도를 말하는 것이다. 예를 들어보자.  사용자가 Toast라고 말을 했다. 그러면 구글 Voice는 Toast라는 사용자 사운드에 가장 비슷한 단어 몇가지를 추천해준다.  ![구글보이스로 toast를 ...]]></description>
          <category><![CDATA[algorithm]]></category>
        </item>
      
        <item>
          <title><![CDATA[Delphi) Some tricks]]></title>
          <link>https://yceffort.kr/2018/05/31/some-trick-delphi</link>
          <guid>https://yceffort.kr/2018/05/31/some-trick-delphi</guid>
          <pubDate>Thu, 31 May 2018 08:11:51 GMT</pubDate>
          <description><![CDATA[첫 직장에서 델파이로 개발했을 때 유용하게 사용하던 코드 모음.]]></description>
          <category><![CDATA[delphi]]></category>
        </item>
      
  </channel>
</rss>