<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="feed.xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Wonkook Lee TechLog</title>
        <link>https://blog.wonkooklee.com/docs/intro/</link>
        <atom:link href="https://blog.wonkooklee.com/docs/rss.xml" rel="self" type="application/rss+xml"/>
        <description>프로덕트 엔지니어 이원국(Wonkook Lee)이 정리한 웹 개발·설계·인프라 기술 문서 모음입니다.</description>
        <lastBuildDate>Sat, 22 Aug 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <language>ko</language>
        <item>
            <title>이 토큰은 누구를 위한 것인가요?</title>
            <link>https://blog.wonkooklee.com/docs/network-and-security/oauth-oidc-auth-architecture/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/network-and-security/oauth-oidc-auth-architecture/</guid>
            <pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate>
            <description>세션에서 OAuth·OIDC·PKCE·BFF까지, 토큰의 수신자와 자격 증명의 위치를 따라 웹 인증 구조를 설명합니다.</description>
        </item>
        <item>
            <title>무중단 스키마 마이그레이션과 expand-contract</title>
            <link>https://blog.wonkooklee.com/docs/database/zero-downtime-migration/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/database/zero-downtime-migration/</guid>
            <pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate>
            <description>컬럼 추가는 즉시 끝나지만 마이그레이션은 끝나지 않습니다. INSTANT DDL과 백필의 시차, NOT NULL DEFAULT가 만드는 과거 조작, expand-contract로 전환기를 설계하는 방법.</description>
        </item>
        <item>
            <title>&apos;한&apos;은 한 글자일까요?</title>
            <link>https://blog.wonkooklee.com/docs/computing-background-knowledge/string-implicit-contract/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/computing-background-knowledge/string-implicit-contract/</guid>
            <pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate>
            <description>같아 보이는 글자가 다른 값인 이유, 글자 수를 세는 네 가지 단위, 그리고 입력이 아직 끝나지 않았을 가능성을 정리합니다.</description>
        </item>
        <item>
            <title>이 응답은 누구 것인가요?</title>
            <link>https://blog.wonkooklee.com/docs/software-design-and-theory/whose-response-is-this/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/software-design-and-theory/whose-response-is-this/</guid>
            <pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate>
            <description>요청과 응답의 짝은 HTTP 스택이 대신 맞춰줍니다. SSE, WebSocket, postMessage처럼 채널 하나에 메시지가 여러 개 흐르면 그 장치가 사라집니다. 상관키 대신 동시성을 1로 낮출 때 무엇이 부채로 남는지 실행 예제로 확인합니다.</description>
        </item>
        <item>
            <title>뒤로가기 한 번에 두 칸씩 가는 이유는 뭘까요?</title>
            <link>https://blog.wonkooklee.com/docs/trouble-shooting/webview-funnel-history-stack/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/trouble-shooting/webview-funnel-history-stack/</guid>
            <pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate>
            <description>웹뷰 퍼널에서 뒤로가기가 두 칸씩 가던 원인을 추적하고, 네이티브 back과 웹 back 중 누가 히스토리를 소유할지 계약으로 정하는 법을 정리합니다.</description>
        </item>
        <item>
            <title>브라우저는 뒤로가기를 어떻게 기억할까요?</title>
            <link>https://blog.wonkooklee.com/docs/computing-background-knowledge/browser-session-history/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/computing-background-knowledge/browser-session-history/</guid>
            <pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate>
            <description>세션 히스토리 엔트리와 순회, push·replace를 바탕으로 브라우저와 SPA 라우터가 뒤로가기를 복원하는 원리를 정리합니다.</description>
        </item>
        <item>
            <title>취소는 에러인가요? 비동기 에러의 최후 방어선과 AbortController</title>
            <link>https://blog.wonkooklee.com/docs/programming-languages/async-error-boundaries-and-abortcontroller/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/programming-languages/async-error-boundaries-and-abortcontroller/</guid>
            <pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate>
            <description>처리되지 않은 예외와 Promise 거부가 도착하는 곳부터 AbortController의 취소를 정상 흐름과 실제 장애로 분류하는 기준까지 정리합니다.</description>
        </item>
        <item>
            <title>무엇을 상태로 두지 말아야 할까요?</title>
            <link>https://blog.wonkooklee.com/docs/libraries-and-frameworks/what-not-to-put-in-state/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/libraries-and-frameworks/what-not-to-put-in-state/</guid>
            <pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate>
            <description>React에서 최신 값 참조, 파생 상태, Effect 사슬을 구분하고 실제로 저장해야 할 상태만 남기는 판단 기준을 정리합니다.</description>
        </item>
        <item>
            <title>이 필드는 UTC여야 할까요?</title>
            <link>https://blog.wonkooklee.com/docs/api-and-interfaces/time-in-api-contracts/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/api-and-interfaces/time-in-api-contracts/</guid>
            <pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate>
            <description>API 시간 필드를 절대시각·로컬 날짜·지역 기준의 미래 약속으로 구분하고, DB 타입과 Temporal로 그 의미를 보존하는 법을 정리합니다.</description>
        </item>
        <item>
            <title>왜 날짜만 넣었는데 하루 전이 나올까요?</title>
            <link>https://blog.wonkooklee.com/docs/programming-languages/javascript-date-pitfalls/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/programming-languages/javascript-date-pitfalls/</guid>
            <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
            <description>JavaScript Date의 파싱·출력·산술 함정을 짚고, Intl을 이용한 타임존 처리와 SSR 하이드레이션 문제까지 정리합니다.</description>
        </item>
        <item>
            <title>&apos;오후 3시&apos;는 언제인가요?</title>
            <link>https://blog.wonkooklee.com/docs/computing-background-knowledge/absolute-time-and-wall-clock/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/computing-background-knowledge/absolute-time-and-wall-clock/</guid>
            <pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate>
            <description>절대시각·벽시계시각·기간을 구분하고, UTC·오프셋·타임존·IANA tzdb가 서로 어떤 역할을 하는지 정리합니다.</description>
        </item>
        <item>
            <title>타입스크립트로 잘못된 상태 막기</title>
            <link>https://blog.wonkooklee.com/docs/software-design-and-theory/make-illegal-states-unrepresentable/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/software-design-and-theory/make-illegal-states-unrepresentable/</guid>
            <pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate>
            <description>태그 유니온·브랜디드 타입·Parse, don&apos;t validate로 잘못된 상태를 줄이고 도메인 불변식을 타입에 담는 법을 설명합니다.</description>
        </item>
        <item>
            <title>데이터베이스 기본 개념과 용어, 한 번에 정리하기</title>
            <link>https://blog.wonkooklee.com/docs/database/database-fundamentals/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/database/database-fundamentals/</guid>
            <pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate>
            <description>DBMS·RDBMS부터 테이블·키·제약조건, SQL, 관계와 정규화, 트랜잭션과 ACID, 인덱스, 그리고 NoSQL·복제·샤딩까지, 데이터베이스를 처음 배우는 사람이 알아야 할 기본 개념과 용어를 한자리에 정리한 레퍼런스입니다.</description>
        </item>
        <item>
            <title>스프링(Spring)은 프론트엔드의 무엇과 닮았을까요?</title>
            <link>https://blog.wonkooklee.com/docs/libraries-and-frameworks/spring-for-frontend-developers/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/libraries-and-frameworks/spring-for-frontend-developers/</guid>
            <pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate>
            <description>빈과 컨테이너, DI·IoC, AOP, 웹 요청 처리, JPA·트랜잭션, 테스트, 스프링 부트까지, 스프링의 핵심을 React·TypeScript 같은 익숙한 개념에 대응시켜 정리합니다.</description>
        </item>
        <item>
            <title>백엔드 도구들, FE로 치면 무엇일까요?</title>
            <link>https://blog.wonkooklee.com/docs/libraries-and-frameworks/be-toolbox-for-fe/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/libraries-and-frameworks/be-toolbox-for-fe/</guid>
            <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
            <description>ktlint는 Prettier, detekt는 ESLint, Gradle 멀티모듈은 pnpm workspace. 백엔드 온보딩에서 만난 도구들을 FE 대응물로 정리하고, 대응물이 없는 도구는 왜 없는지까지 짚습니다. FE→BE 온보딩 시리즈의 마지막 글입니다.</description>
        </item>
        <item>
            <title>DB 스키마에도 git이 필요할까요?</title>
            <link>https://blog.wonkooklee.com/docs/database/db-schema-version-control/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/database/db-schema-version-control/</guid>
            <pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate>
            <description>프론트엔드에는 대응물이 없는 문제, 살아 있는 데이터 위에서 스키마를 바꾸는 일입니다. 마이그레이션 도구의 changelog(커밋 히스토리)와 baseline(스쿼시 스냅샷), 그리고 변경 이력을 자동으로 남기는 audit 테이블까지 정리합니다.</description>
        </item>
        <item>
            <title>컬럼일까요, JSON 컬럼일까요?</title>
            <link>https://blog.wonkooklee.com/docs/database/column-or-json-column/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/database/column-or-json-column/</guid>
            <pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate>
            <description>&quot;컬럼 추가는 비싸다&quot;는 이제 옛말입니다. 현대 DB에서 개별 컬럼과 JSON 컬럼을 가르는 진짜 판단 기준 세 가지를 정리합니다. DB가 그 필드를 알아야 하는가, 노출을 묶음으로 통제할 값인가, 백필 비용은 어느 쪽이 싼가.</description>
        </item>
        <item>
            <title>null은 비우기일까요, 건드리지 않기일까요?</title>
            <link>https://blog.wonkooklee.com/docs/api-and-interfaces/patch-null-ambiguity/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/api-and-interfaces/patch-null-ambiguity/</guid>
            <pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate>
            <description>부분 수정 API에서 null 필드는 오래된 모호함을 남깁니다. JSON Merge Patch·JSON Patch·필드 마스크를 비교하고, 바꿀 필드를 명시하는 permit 계약과 필드 단위 검증 패턴을 정리합니다.</description>
        </item>
        <item>
            <title>Response는 모델을 닮아야 할까요?</title>
            <link>https://blog.wonkooklee.com/docs/api-and-interfaces/model-vs-response/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/api-and-interfaces/model-vs-response/</guid>
            <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
            <description>API 응답을 도메인 모델에 맞출 것인가, 독립적으로 설계할 것인가. 규칙이 아니라 트레이드오프입니다. 경계마다 옷을 갈아입는 DTO 레이어링과, 필드 전파를 컴파일러에게 맡기는 인터페이스 구현 강제까지 다룹니다.</description>
        </item>
        <item>
            <title>이 API는 누가 부르나요?</title>
            <link>https://blog.wonkooklee.com/docs/api-and-interfaces/who-calls-this-api/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/api-and-interfaces/who-calls-this-api/</guid>
            <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
            <description>같은 도메인의 API라도 호출자가 누구냐에 따라 퍼블릭·오퍼레이션·인터널로 나뉩니다. 인터널 API의 경계는 왜 네트워크가 아니라 도메인 사이에 그어지는지, 종류마다 권한을 어떻게 다르게 설계하는지를 다룹니다.</description>
        </item>
        <item>
            <title>그 로직은 어디에 살아야 할까요?</title>
            <link>https://blog.wonkooklee.com/docs/software-design-and-theory/where-logic-lives/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/software-design-and-theory/where-logic-lives/</guid>
            <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
            <description>검증 로직 하나를 두고 모델·서비스·컨트롤러 사이에서 고민해 본 경험으로 풀어보는 로직의 자리. rich/anemic 도메인 모델의 스펙트럼, 도메인 서비스와 애플리케이션 서비스의 구분, 그리고 권한이 사는 곳.</description>
        </item>
        <item>
            <title>DB 조회는 왜 아웃바운드일까요?</title>
            <link>https://blog.wonkooklee.com/docs/software-design-and-theory/inbound-outbound-and-dip/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/software-design-and-theory/inbound-outbound-and-dip/</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description>인바운드/아웃바운드 어댑터를 가르는 기준은 데이터의 방향이 아니라 호출의 방향입니다. 이벤트 리스너와 fetch, props 콜백에 대응시켜 의존성 규칙과 의존성 역전(DIP)까지 풀어봅니다.</description>
        </item>
        <item>
            <title>도메인 모델은 왜 DB를 몰라야 할까요?</title>
            <link>https://blog.wonkooklee.com/docs/software-design-and-theory/pure-domain-model/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/software-design-and-theory/pure-domain-model/</guid>
            <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
            <description>헥사고날 아키텍처가 모델을 중심에 놓는 이유를 프론트엔드 개발자의 언어로 풀어봅니다. React 코어와 렌더러의 관계로 이해하는 포트와 어댑터, 그리고 요청 하나가 레이어를 지나가는 길.</description>
        </item>
        <item>
            <title>웹 보안, 신뢰 경계부터 CSP까지</title>
            <link>https://blog.wonkooklee.com/docs/network-and-security/web-security-mental-models/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/network-and-security/web-security-mental-models/</guid>
            <pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate>
            <description>SOP·CORS·XSS·CSP·CSRF·postMessage를 신뢰 경계라는 관점으로 연결하고, 데이터와 권한이 넘어가는 지점을 검토합니다.</description>
        </item>
        <item>
            <title>쿼리 키는 어떻게 캐시 주소가 되나요?</title>
            <link>https://blog.wonkooklee.com/docs/libraries-and-frameworks/react-query-cache-internals/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/libraries-and-frameworks/react-query-cache-internals/</guid>
            <pubDate>Tue, 17 Mar 2026 00:00:00 GMT</pubDate>
            <description>TanStack Query의 캐시는 결국 Map&lt;string, Query&gt; 하나입니다. 쿼리 키가 해시 문자열이 되는 과정과 구조적 공유·dehydrate/hydrate 경로를 소스 코드로 따라갑니다.</description>
        </item>
        <item>
            <title>이 블로그를 운영하며 배운 SEO</title>
            <link>https://blog.wonkooklee.com/docs/service-development-insights/seo-lessons-from-this-blog/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/service-development-insights/seo-lessons-from-this-blog/</guid>
            <pubDate>Sun, 14 Sep 2025 00:00:00 GMT</pubDate>
            <description>정적 사이트 생성기로 만든 블로그를 반년 넘게 운영하며 검색 노출을 챙긴 과정입니다. 메타데이터와 Open Graph, 구조화 데이터, 사이트맵과 크롤 예산, 후행 슬래시가 부른 리디렉트까지 짚습니다.</description>
        </item>
        <item>
            <title>Ollama과 Self-hosting DeepSeek으로 간단한 VS Code Extension 만들기</title>
            <link>https://blog.wonkooklee.com/docs/industry-trends-and-new-technologies/deepseek-chatbot-as-vscode-extension/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/industry-trends-and-new-technologies/deepseek-chatbot-as-vscode-extension/</guid>
            <pubDate>Sun, 02 Feb 2025 00:00:00 GMT</pubDate>
            <description>VS Code Extension 인터페이스에서 로컬 AI 서버 API와 통신하는 예제를 따라하며 Ollama, VS Code Extension API에 대해 간단히 배워보세요.</description>
        </item>
        <item>
            <title>tailwindcss 4.0 무엇이 달라졌나요?</title>
            <link>https://blog.wonkooklee.com/docs/libraries-and-frameworks/tailwindcss-4/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/libraries-and-frameworks/tailwindcss-4/</guid>
            <pubDate>Sun, 26 Jan 2025 00:00:00 GMT</pubDate>
            <description>Tailwind CSS v4.0은 성능과 유연성을 극대화한 새로운 버전으로, 최신 웹 표준과 개발 흐름에 맞춘 다양한 기능과 개선 사항을 제공합니다. 이 글에서는 업데이트된 주요 내용을 살펴봅니다.</description>
        </item>
        <item>
            <title>왜 Authorization &quot;Bearer&quot;인가요?</title>
            <link>https://blog.wonkooklee.com/docs/network-and-security/why-authorization-bearer/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/network-and-security/why-authorization-bearer/</guid>
            <pubDate>Tue, 21 Jan 2025 00:00:00 GMT</pubDate>
            <description>이 글에서는 Bearer 토큰이 왜 현대 웹 인증에서 표준처럼 자리 잡았는지, 그리고 이를 활용하는 방법에 대해 다룹니다.</description>
        </item>
        <item>
            <title>npm install시 --force와 --legacy-peer-deps은 왜 사용할까?</title>
            <link>https://blog.wonkooklee.com/docs/libraries-and-frameworks/upstream-dependency-conflict/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/libraries-and-frameworks/upstream-dependency-conflict/</guid>
            <pubDate>Sat, 18 Jan 2025 00:00:00 GMT</pubDate>
            <description>npm 설치 시 발생하는 의존성 충돌 문제를 해결하기 위해 사용하는 --force와 --legacy-peer-deps 옵션의 차이점과 사용 목적에 대해 알아봅니다. 이 글에서는 이러한 옵션들이 필요한 이유와 주의할 점을 자세히 설명합니다.</description>
        </item>
        <item>
            <title>웹 환경에서 SVG 더 잘 이해하고 사용하기</title>
            <link>https://blog.wonkooklee.com/docs/data-format/svg-in-web/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/data-format/svg-in-web/</guid>
            <pubDate>Wed, 15 Jan 2025 00:00:00 GMT</pubDate>
            <description>SVG(Scalable Vector Graphic)에 대한 전반적인 내용을 다룹니다. SVG의 정의와 특징, 그리고 왜 웹 환경에서 널리 사용되는지에 대한 이유와 최적화 방안 등.</description>
        </item>
        <item>
            <title>shadcn/ui 핵심 개념과 아키텍처 이해하기</title>
            <link>https://blog.wonkooklee.com/docs/libraries-and-frameworks/anatomy-of-shadcn-ui/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/libraries-and-frameworks/anatomy-of-shadcn-ui/</guid>
            <pubDate>Fri, 18 Oct 2024 00:00:00 GMT</pubDate>
            <description>shadcn/ui의 핵심 개념과 아키텍처를 요약합니다. Headless UI 기반 컴포넌트 구조, Tailwind CSS 스타일링 방식, 그리고 디자인 시스템을 직접 소유하는 철학까지 살펴봅니다.</description>
        </item>
        <item>
            <title>TypeScript가 JSX를 변환하는 방법과 JSX Transform에 대해</title>
            <link>https://blog.wonkooklee.com/docs/libraries-and-frameworks/typescript-jsx-transpiling/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/libraries-and-frameworks/typescript-jsx-transpiling/</guid>
            <pubDate>Fri, 19 Jul 2024 00:00:00 GMT</pubDate>
            <description>이번 글에서는 TypeScript가 JSX를 처리하는 방식과 React 17에서 도입된 새로운 JSX Transform의 이점을 설명합니다.</description>
        </item>
        <item>
            <title>웹 퍼포먼스 최적화와 유저 행동 분석으로 전환율을 끌어올린 방법</title>
            <link>https://blog.wonkooklee.com/docs/service-development-insights/proactive-service-improvement/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/service-development-insights/proactive-service-improvement/</guid>
            <pubDate>Tue, 25 Jun 2024 00:00:00 GMT</pubDate>
            <description>Next.js 기반의 서버 사이드 라우팅 최적화와 유저 행동 분석을 통해 웹 퍼포먼스를 개선하고 전환율을 높인 사례를 소개합니다. 트래픽 분기 최적화, Heatmap &amp; Scrollmap 분석을 활용한 UI 개선 과정을 다룹니다.</description>
        </item>
        <item>
            <title>Next.js 서버 인스턴스 배포할때 나타나는 화이트아웃 현상 트러블 슈팅</title>
            <link>https://blog.wonkooklee.com/docs/deployment-and-operations-strategy/next-server-cdn-host/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/deployment-and-operations-strategy/next-server-cdn-host/</guid>
            <pubDate>Thu, 11 Apr 2024 00:00:00 GMT</pubDate>
            <description>정적 자원을 assetPrefix 옵션을 사용해서 별도의 CDN에 업로드해서 배포 개정이 이루어져도 자원을 찾지 못하는 문제를 인프라 구조를 개선해서 해결한 내용입니다.</description>
        </item>
        <item>
            <title>순수한 창작의 즐거움이 조직의 생산성으로 이어질 수 있을까?</title>
            <link>https://blog.wonkooklee.com/docs/service-development-insights/joy-of-orderly-creation/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/service-development-insights/joy-of-orderly-creation/</guid>
            <pubDate>Wed, 24 Jan 2024 00:00:00 GMT</pubDate>
            <description>개인 창작 과정의 경험이 조직의 생산성 및 워크플로우 최적화에 미치는 영향을 분석하며, 효과적인 협업 환경 구축 방안을 제시합니다.</description>
        </item>
        <item>
            <title>직접 만든 라이브러리로 Next.js 페이지 메타 정보 관리하기</title>
            <link>https://blog.wonkooklee.com/docs/service-development-insights/manage-nextjs-page-metadata/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/service-development-insights/manage-nextjs-page-metadata/</guid>
            <pubDate>Wed, 06 Dec 2023 00:00:00 GMT</pubDate>
            <description>Next.js 페이지에서 메타 정보를 효율적으로 관리하기 위해 직접 제작한 라이브러리를 소개하고 활용 방법을 안내합니다.</description>
        </item>
        <item>
            <title>코드의 유지보수성과 확장성을 결정하는 응집도와 결합도</title>
            <link>https://blog.wonkooklee.com/docs/software-design-and-theory/software-cohesion-and-coupling/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/software-design-and-theory/software-cohesion-and-coupling/</guid>
            <pubDate>Sat, 12 Aug 2023 00:00:00 GMT</pubDate>
            <description>응집도와 결합도의 개념을 이해하고, 프론트엔드 개발에서 이를 최적화하는 방법을 탐구합니다.</description>
        </item>
        <item>
            <title>WAI-ARIA란 무엇인가요?</title>
            <link>https://blog.wonkooklee.com/docs/user-experience-user-interface/what-is-wai-aria/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/user-experience-user-interface/what-is-wai-aria/</guid>
            <pubDate>Wed, 24 May 2023 00:00:00 GMT</pubDate>
            <description>WAI-ARIA의 개념과 실무 적용 방법을 설명하고, 접근성을 고려한 UI 구현 전략을 다룹니다.</description>
        </item>
        <item>
            <title>서드파티 스크립트 초기화가 늦어질 때 어떻게 해결할까요?</title>
            <link>https://blog.wonkooklee.com/docs/trouble-shooting/thirdparty-script-race-issue/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/trouble-shooting/thirdparty-script-race-issue/</guid>
            <pubDate>Mon, 22 May 2023 00:00:00 GMT</pubDate>
            <description>GA·Meta Pixel 같은 서드파티 스크립트의 초기화 지연으로 이벤트가 유실되는 문제를, 스크립트 로드/실행 우선순위부터 FIFO 이벤트 큐, 청크 분리와 캐싱, next/script 전략, 웹 워커까지 네 가지 대안으로 정리합니다.</description>
        </item>
        <item>
            <title>Lambda 스케줄링으로 매일 아침 자동으로 노션 페이지 만들기</title>
            <link>https://blog.wonkooklee.com/docs/virtualization-and-cloud/automate-notion-page-by-lambda/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/virtualization-and-cloud/automate-notion-page-by-lambda/</guid>
            <pubDate>Sun, 23 Apr 2023 00:00:00 GMT</pubDate>
            <description>매일 아침 노션 페이지 템플릿 복붙하기 귀찮아서 스케줄링 이벤트로 노션 API 호출 람다 함수 만든 썰</description>
        </item>
        <item>
            <title>Canvas API를 이용한 노란우산공제 가입서비스 자필 서명 이미지 생성 모듈 구현기</title>
            <link>https://blog.wonkooklee.com/docs/service-development-insights/signiture-module-with-canvas-api/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/service-development-insights/signiture-module-with-canvas-api/</guid>
            <pubDate>Thu, 13 Apr 2023 00:00:00 GMT</pubDate>
            <description>Canvas API와 Broadcast Channel API를 활용하여 자필 서명 모듈을 개발한 경험과 구현 과정을 다룹니다.</description>
        </item>
        <item>
            <title>행렬의 개념과 연산 및 코딩테스트</title>
            <link>https://blog.wonkooklee.com/docs/coding-test/matrix-operations/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/coding-test/matrix-operations/</guid>
            <pubDate>Sun, 19 Feb 2023 00:00:00 GMT</pubDate>
            <description>이 문서는 행렬의 기본 개념과 주요 연산에 대해 설명합니다.</description>
        </item>
        <item>
            <title>자바스크립트 Map을 Object 대신 사용해야 할 때는 언제일까요?</title>
            <link>https://blog.wonkooklee.com/docs/programming-languages/javascript-map-instead-object/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/programming-languages/javascript-map-instead-object/</guid>
            <pubDate>Sun, 11 Dec 2022 00:00:00 GMT</pubDate>
            <description>JavaScript에서 Map과 Object를 비교하고, 어떤 상황에서 Map을 사용하는 것이 더 유리한지 벤치마크 테스트와 함께 알아봅니다.</description>
        </item>
        <item>
            <title>웹앱의 사용성을 높이는 Web Worker와 Service Worker에 대해 알아보기</title>
            <link>https://blog.wonkooklee.com/docs/api-and-interfaces/web-worker-service-worker/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/api-and-interfaces/web-worker-service-worker/</guid>
            <pubDate>Sun, 04 Dec 2022 00:00:00 GMT</pubDate>
            <description>Web Worker와 Service Worker의 차이점과 활용 사례를 통해 브라우저에서 멀티스레딩과 백그라운드 작업의 개념을 이해합니다.</description>
        </item>
        <item>
            <title>프론트엔드 개발자를 위한 Docker로 React 개발 및 배포하기</title>
            <link>https://blog.wonkooklee.com/docs/virtualization-and-cloud/docker-for-frontend-engineer/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/virtualization-and-cloud/docker-for-frontend-engineer/</guid>
            <pubDate>Sat, 22 Oct 2022 00:00:00 GMT</pubDate>
            <description>Docker를 활용하여 React 애플리케이션을 개발하고 배포하는 방법을 소개합니다. 초보자도 쉽게 따라할 수 있는 단계별 가이드.</description>
        </item>
        <item>
            <title>정규표현식(Regular Expression) 반복 패턴 활용 | Part 2</title>
            <link>https://blog.wonkooklee.com/docs/programming-languages/using-regular-expressions/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/programming-languages/using-regular-expressions/</guid>
            <pubDate>Wed, 14 Sep 2022 00:00:00 GMT</pubDate>
            <description>정규표현식(Regex)에서 반복(Repetition) 패턴을 다루는 방법을 배워보고, 다양한 활용 사례를 살펴봅니다.</description>
        </item>
        <item>
            <title>정규표현식(Regular Expression) 기초부터 실전 활용까지 | Part 1</title>
            <link>https://blog.wonkooklee.com/docs/programming-languages/regular-expression-javascript/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/programming-languages/regular-expression-javascript/</guid>
            <pubDate>Wed, 01 Jun 2022 00:00:00 GMT</pubDate>
            <description>정규표현식(Regex)의 기본 개념과 패턴 매칭 방법을 학습하고, 실전에서 활용할 수 있는 예제와 함께 이해합니다.</description>
        </item>
        <item>
            <title>DocumentFragment 객체는 무엇이며, 왜 써야 할까?</title>
            <link>https://blog.wonkooklee.com/docs/api-and-interfaces/document-fragment/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/api-and-interfaces/document-fragment/</guid>
            <pubDate>Thu, 19 May 2022 00:00:00 GMT</pubDate>
            <description>JavaScript의 DocumentFragment 객체의 개념과 활용 방법, 그리고 성능 최적화를 위한 이유를 살펴봅니다.</description>
        </item>
        <item>
            <title>로컬에서 LeetCode 테스트 환경 설정하기</title>
            <link>https://blog.wonkooklee.com/docs/coding-test/leetcode-local-environment/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/coding-test/leetcode-local-environment/</guid>
            <pubDate>Thu, 19 May 2022 00:00:00 GMT</pubDate>
            <description>Node.js와 Jest를 사용해서 로컬에서 코딩 테스트를 위한 환경을 만들어봅니다.</description>
        </item>
        <item>
            <title>HEIC 이미지를 JPEG로 변환하기 | heic-convert 사용법</title>
            <link>https://blog.wonkooklee.com/docs/data-format/heic-to-jpeg/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/data-format/heic-to-jpeg/</guid>
            <pubDate>Sun, 15 May 2022 00:00:00 GMT</pubDate>
            <description>HEIC 이미지를 JPEG, PNG 등으로 변환하는 방법을 알아봅니다. HEIC 변환이 필요한 이유와 효율적인 변환 툴을 소개합니다.</description>
        </item>
        <item>
            <title>Vuex와 함께하는 더 나은 전역 상태 관리</title>
            <link>https://blog.wonkooklee.com/docs/libraries-and-frameworks/vuex/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/libraries-and-frameworks/vuex/</guid>
            <pubDate>Sat, 05 Mar 2022 00:00:00 GMT</pubDate>
            <description>Vuex를 활용한 효율적인 전역 상태 관리 방법을 배워보세요. Vue 애플리케이션의 상태 관리 패턴과 모범 사례를 소개합니다.</description>
        </item>
        <item>
            <title>자바스크립트 Promise 체인 이해하기 | 좌표로 국가 정보 가져오기</title>
            <link>https://blog.wonkooklee.com/docs/programming-languages/js-promise-example/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/programming-languages/js-promise-example/</guid>
            <pubDate>Sun, 19 Sep 2021 00:00:00 GMT</pubDate>
            <description>JavaScript Promise 체인을 활용하여 좌표를 기반으로 국가 정보를 가져오는 API 요청을 구현하는 방법을 배웁니다.</description>
        </item>
        <item>
            <title>ES6 Modules: Named Export vs. Default Export</title>
            <link>https://blog.wonkooklee.com/docs/programming-languages/es6-module-export/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/programming-languages/es6-module-export/</guid>
            <pubDate>Sat, 18 Sep 2021 00:00:00 GMT</pubDate>
            <description>ES6 모듈 시스템에서 Named Export와 Default Export의 차이를 비교하고, 각각의 장점과 활용 사례를 알아봅니다.</description>
        </item>
        <item>
            <title>자바스크립트의 비동기 처리와 AJAX, API 개념의 이해</title>
            <link>https://blog.wonkooklee.com/docs/programming-languages/javascript-async-ajax-api/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/programming-languages/javascript-async-ajax-api/</guid>
            <pubDate>Mon, 13 Sep 2021 00:00:00 GMT</pubDate>
            <description>자바스크립트에서 비동기 처리란 무엇이며, AJAX와 API 요청이 어떻게 동작하는지 설명합니다. 콜백, 프로미스, async/await 개념까지 다룹니다.</description>
        </item>
        <item>
            <title>Image Zoom on Hover 이미지 뷰어 바닐라 자바스크립트로 구현하기</title>
            <link>https://blog.wonkooklee.com/docs/personal-toy-projects/implement-image-zoom-on-hover/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/personal-toy-projects/implement-image-zoom-on-hover/</guid>
            <pubDate>Fri, 27 Aug 2021 00:00:00 GMT</pubDate>
            <description>JavaScript와 CSS를 활용하여 마우스를 올리면 이미지가 확대되는 효과를 구현하는 방법을 설명합니다. 사용자 경험 향상을 고려한 인터랙티브 이미지 줌 기능을 다룹니다.</description>
        </item>
        <item>
            <title>프론트엔드 개발자라면 반드시 알아두어야 할 32가지의 UI 요소</title>
            <link>https://blog.wonkooklee.com/docs/user-experience-user-interface/must-know-ui-elements-for-frontend-developers/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/user-experience-user-interface/must-know-ui-elements-for-frontend-developers/</guid>
            <pubDate>Sun, 15 Aug 2021 00:00:00 GMT</pubDate>
            <description>프론트엔드 개발자가 알아야 할 필수적인 32가지 UI 요소를 정리한 가이드. 실무에서 바로 활용 가능한 핵심 정보를 제공합니다.</description>
        </item>
        <item>
            <title>썸네일 메이커(Thumbnail Maker) 만들기</title>
            <link>https://blog.wonkooklee.com/docs/personal-toy-projects/legendary-thumbnail-maker/?utm_source=rss&amp;utm_medium=referral&amp;utm_campaign=feed-techlog&amp;utm_content=title</link>
            <guid isPermaLink="true">https://blog.wonkooklee.com/docs/personal-toy-projects/legendary-thumbnail-maker/</guid>
            <pubDate>Tue, 10 Aug 2021 00:00:00 GMT</pubDate>
            <description>누구든지 10초 안에 무난한 블로그 아티클 썸네일을 만들 수 있습니다. 당신은 개발과 글쓰기에만 집중하세요. 나의 첫 토이 프로젝트 개발기</description>
        </item>
    </channel>
</rss>
