<?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://research.yceffort.kr</link>
    <atom:link href="https://research.yceffort.kr/feed.xml" rel="self" type="application/rss+xml" />
    <description>research</description>
    <language>ko-KR</language>
    <lastBuildDate>Thu, 17 Sep 2026 00:00:00 GMT</lastBuildDate>
    
        <item>
          <title><![CDATA[로티 딥다이브 1부: 병목을 찾는 법]]></title>
          <link>https://research.yceffort.kr/slides/lottie-deep-dive-1</link>
          <guid>https://research.yceffort.kr/slides/lottie-deep-dive-1</guid>
          <pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[로티 애니메이션이 늦게 뜨는 화면에서 배포 번들과 응답 헤더, 에셋 내부를 직접 뜯어 병목을 특정하는 과정. 추측 대신 측정으로 시작하는 성능 조사]]></description>
          <category><![CDATA[lottie]]></category><category><![CDATA[performance]]></category><category><![CDATA[wasm]]></category><category><![CDATA[webp]]></category><category><![CDATA[cdn]]></category><category><![CDATA[measurement]]></category>
        </item>
      
        <item>
          <title><![CDATA[로티 딥다이브 2부: 렌더러 안에서]]></title>
          <link>https://research.yceffort.kr/slides/lottie-deep-dive-2</link>
          <guid>https://research.yceffort.kr/slides/lottie-deep-dive-2</guid>
          <pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[dotlottie-web의 인스턴스 생애와 프레임 루프, freezeOnOffscreen의 3중 방어를 번들 코드로 읽는다. 우리가 직접 만든 최적화가 왜 중복이었는지, 기본값을 덮어써서 오히려 비용을 올린 곳은 어디인지]]></description>
          <category><![CDATA[lottie]]></category><category><![CDATA[performance]]></category><category><![CDATA[wasm]]></category><category><![CDATA[rendering]]></category><category><![CDATA[intersection-observer]]></category>
        </item>
      
        <item>
          <title><![CDATA[CDN과 HTTP 캐시 2: 전략과 문제 해결]]></title>
          <link>https://research.yceffort.kr/slides/cdn-and-http-cache-2</link>
          <guid>https://research.yceffort.kr/slides/cdn-and-http-cache-2</guid>
          <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[HTML·JS·이미지·폰트·API의 캐시 정책을 정하고, 배포 순서와 DevTools로 캐시 문제를 진단하는 실무 강의]]></description>
          <category><![CDATA[cdn]]></category><category><![CDATA[http]]></category><category><![CDATA[cache]]></category><category><![CDATA[performance]]></category><category><![CDATA[aws]]></category><category><![CDATA[cloudfront]]></category>
        </item>
      
        <item>
          <title><![CDATA[CDN과 HTTP 캐시 1: 원리와 규칙]]></title>
          <link>https://research.yceffort.kr/slides/cdn-and-http-cache</link>
          <guid>https://research.yceffort.kr/slides/cdn-and-http-cache</guid>
          <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[CDN의 동작과 HTTP 캐시 규칙을 익히고, 우리 서비스의 응답 헤더로 저장·신선도·재검증을 해석하는 강의]]></description>
          <category><![CDATA[cdn]]></category><category><![CDATA[http]]></category><category><![CDATA[cache]]></category><category><![CDATA[performance]]></category><category><![CDATA[aws]]></category><category><![CDATA[cloudfront]]></category>
        </item>
      
        <item>
          <title><![CDATA[OG 스크래핑 서버를 Node.js로 짓는다면 1부: 런타임 선택부터 에러율과 지연까지]]></title>
          <link>https://research.yceffort.kr/slides/og-scraping-server-nodejs-1</link>
          <guid>https://research.yceffort.kr/slides/og-scraping-server-nodejs-1</guid>
          <pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[링크 미리보기는 왜 태생적으로 실패율이 높은가부터, 런타임 선택이 갈리는 네 지점, User-Agent와 인코딩, 캐시 스탬피드, 히트율 역산까지]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[web]]></category><category><![CDATA[performance]]></category><category><![CDATA[deep-dive]]></category>
        </item>
      
        <item>
          <title><![CDATA[OG 스크래핑 서버를 Node.js로 짓는다면 2부: SSRF는 어떻게 뚫리는가]]></title>
          <link>https://research.yceffort.kr/slides/og-scraping-server-nodejs-2</link>
          <guid>https://research.yceffort.kr/slides/og-scraping-server-nodejs-2</guid>
          <pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[사용자가 준 URL을 서버가 대신 여는 일의 위험, 화이트리스트를 뚫는 우회 여섯 가지와 그것을 막는 방어 원리 다섯 개]]></description>
          <category><![CDATA[nodejs]]></category><category><![CDATA[security]]></category><category><![CDATA[ssrf]]></category><category><![CDATA[deep-dive]]></category>
        </item>
      
        <item>
          <title><![CDATA[react-query 딥다이브 1부: 사용법과 캐시의 생명주기]]></title>
          <link>https://research.yceffort.kr/slides/react-query-deep-dive-1</link>
          <guid>https://research.yceffort.kr/slides/react-query-deep-dive-1</guid>
          <pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[서버 상태라는 문제, useQuery의 상태 모델, staleTime과 gcTime — 캐시 항목의 일생을 따라가는 react-query 강의 1부]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[react-query]]></category><category><![CDATA[tanstack-query]]></category><category><![CDATA[deep-dive]]></category>
        </item>
      
        <item>
          <title><![CDATA[react-query 딥다이브 2부: 내부 동작, 실전 함정, SSR]]></title>
          <link>https://research.yceffort.kr/slides/react-query-deep-dive-2</link>
          <guid>https://research.yceffort.kr/slides/react-query-deep-dive-2</guid>
          <pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[QueryObserver 구독 모델, structural sharing, HydrationBoundary — 내부 동작에서 실전 함정, SSR까지 react-query 강의 2부]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[react-query]]></category><category><![CDATA[tanstack-query]]></category><category><![CDATA[deep-dive]]></category>
        </item>
      
        <item>
          <title><![CDATA[Promise 딥다이브: 동작 원리와 실행 순서]]></title>
          <link>https://research.yceffort.kr/slides/promise-deep-dive</link>
          <guid>https://research.yceffort.kr/slides/promise-deep-dive</guid>
          <pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[상태 머신, 마이크로태스크, 체이닝, 조합기, 에러 처리 — Promise의 동작 원리 정리와 실행 순서 퀴즈]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[promise]]></category><category><![CDATA[async]]></category><category><![CDATA[deep-dive]]></category>
        </item>
      
        <item>
          <title><![CDATA[Sentry 딥다이브 2부: 서버에서 이슈까지]]></title>
          <link>https://research.yceffort.kr/slides/sentry-deep-dive-2</link>
          <guid>https://research.yceffort.kr/slides/sentry-deep-dive-2</guid>
          <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[Relay 파이프라인부터 Debug ID, 그루핑 해시, 운영 규칙까지 — 서버에 도착한 이벤트가 이슈가 되는 과정]]></description>
          <category><![CDATA[sentry]]></category><category><![CDATA[error-monitoring]]></category><category><![CDATA[frontend]]></category><category><![CDATA[deep-dive]]></category>
        </item>
      
        <item>
          <title><![CDATA[Sentry 딥다이브 1부: 브라우저에서 서버까지]]></title>
          <link>https://research.yceffort.kr/slides/sentry-deep-dive-1</link>
          <guid>https://research.yceffort.kr/slides/sentry-deep-dive-1</guid>
          <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[window.onerror 후킹부터 envelope 전송까지 — 실제 SDK 소스로 따라가는 에러 포착과 조립의 여정]]></description>
          <category><![CDATA[sentry]]></category><category><![CDATA[error-monitoring]]></category><category><![CDATA[frontend]]></category><category><![CDATA[deep-dive]]></category>
        </item>
      
        <item>
          <title><![CDATA[Vite 번들 최적화 실전 가이드]]></title>
          <link>https://research.yceffort.kr/slides/vite-bundle-optimization</link>
          <guid>https://research.yceffort.kr/slides/vite-bundle-optimization</guid>
          <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[내 앱의 번들은 무엇으로 결정되는가: 네 가지 질문으로 나눠서 점검하고 고치는 법]]></description>
          <category><![CDATA[vite]]></category><category><![CDATA[rolldown]]></category><category><![CDATA[performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[Suspense & ErrorBoundary 딥다이브: 던지는 컴포넌트의 세계]]></title>
          <link>https://research.yceffort.kr/slides/suspense-error-boundary-deep-dive</link>
          <guid>https://research.yceffort.kr/slides/suspense-error-boundary-deep-dive</guid>
          <pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[throw 하나로 이해하는 선언적 로딩과 에러 처리 — 개념부터 reconciler 내부 동작, 실무 경계 설계, React Query 연계까지]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[suspense]]></category><category><![CDATA[error-boundary]]></category>
        </item>
      
        <item>
          <title><![CDATA['use cache' 디렉티브 딥다이브: 캐시 경계의 끝까지]]></title>
          <link>https://research.yceffort.kr/slides/use-cache-deep-dive</link>
          <guid>https://research.yceffort.kr/slides/use-cache-deep-dive</guid>
          <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
          <description><![CDATA["use cache" 한 줄이 만드는 빌드 타임 변환, 캐시 키, cacheLife, 그리고 Cache Components까지]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[nextjs]]></category>
        </item>
      
        <item>
          <title><![CDATA['use client' 디렉티브 딥다이브: 클라이언트 경계의 끝까지]]></title>
          <link>https://research.yceffort.kr/slides/use-client-deep-dive</link>
          <guid>https://research.yceffort.kr/slides/use-client-deep-dive</guid>
          <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
          <description><![CDATA['use client' 한 줄이 만드는 모듈 경계, 빌드 타임 변환, Flight 직렬화]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[nextjs]]></category>
        </item>
      
        <item>
          <title><![CDATA[useEffect — 안 쓰는 게 최선이다]]></title>
          <link>https://research.yceffort.kr/slides/useEffect-race-condition-stale-closure</link>
          <guid>https://research.yceffort.kr/slides/useEffect-race-condition-stale-closure</guid>
          <pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[주니어를 졸업하려는 개발자를 위한 useEffect 딥다이브 — 안티패턴, race condition, stale closure, event vs effect, tearing, Suspense까지]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[useEffect]]></category>
        </item>
      
        <item>
          <title><![CDATA[리액트 렌더링 최적화 가이드]]></title>
          <link>https://research.yceffort.kr/slides/react-rendering-optimization-guide</link>
          <guid>https://research.yceffort.kr/slides/react-rendering-optimization-guide</guid>
          <pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[객체 참조, memo, useMemo, useCallback, 그리고 구조적 최적화까지 — 실무에서 바로 쓰는 렌더링 최적화 판단 기준]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[Render nothing, faster: <></>, null, 그리고 hook]]></title>
          <link>https://research.yceffort.kr/slides/render-nothing-faster</link>
          <guid>https://research.yceffort.kr/slides/render-nothing-faster</guid>
          <pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[아무것도 렌더링하지 않는 두 가지 흔한 패턴을 JSX runtime/reconciler 관점에서 다시 본다]]></description>
          <category><![CDATA[react]]></category><category><![CDATA[performance]]></category>
        </item>
      
        <item>
          <title><![CDATA[패키지 가이드 4탄) dependencies, devDependencies, peerDependencies]]></title>
          <link>https://research.yceffort.kr/slides/best-practice-for-package-4</link>
          <guid>https://research.yceffort.kr/slides/best-practice-for-package-4</guid>
          <pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate>
          <description><![CDATA[세 가지 의존성 필드의 역사, 정의, 그리고 현대적 의미]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA['use client'는 무슨일을 하는걸까?]]></title>
          <link>https://research.yceffort.kr/slides/use-server-user-client</link>
          <guid>https://research.yceffort.kr/slides/use-server-user-client</guid>
          <pubDate>Thu, 15 May 2025 00:00:00 GMT</pubDate>
          <description><![CDATA[🤔]]></description>
          <category><![CDATA[javascript]]></category><category><![CDATA[react]]></category>
        </item>
      
        <item>
          <title><![CDATA[패키지 가이드 3탄) 패키지 제작을 위한 가이드]]></title>
          <link>https://research.yceffort.kr/slides/best-practice-for-package-3</link>
          <guid>https://research.yceffort.kr/slides/best-practice-for-package-3</guid>
          <pubDate>Fri, 28 Mar 2025 00:00:00 GMT</pubDate>
          <description><![CDATA[🤔]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[패키지 가이드 2탄) 패키지 제작을 위한 타입 제공 가이드]]></title>
          <link>https://research.yceffort.kr/slides/best-practice-for-package-2</link>
          <guid>https://research.yceffort.kr/slides/best-practice-for-package-2</guid>
          <pubDate>Tue, 25 Mar 2025 00:00:00 GMT</pubDate>
          <description><![CDATA[생각보다 잘 모르고 있던 타입스크립트]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
        <item>
          <title><![CDATA[패키지 가이드 1탄) 패키지 제작을 위한 package.json 가이드]]></title>
          <link>https://research.yceffort.kr/slides/best-practice-for-package-1</link>
          <guid>https://research.yceffort.kr/slides/best-practice-for-package-1</guid>
          <pubDate>Sat, 22 Mar 2025 00:00:00 GMT</pubDate>
          <description><![CDATA[package.json 만 잘만들어도 반은 먹고 간다.]]></description>
          <category><![CDATA[javascript]]></category>
        </item>
      
  </channel>
</rss>