<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title><![CDATA[SHIN STORY]]></title>
    <link>http://localhost:3000</link>
    <description><![CDATA[sdf]]></description>
    <language>ko</language>
    <lastBuildDate>Fri, 08 May 2026 04:49:32 GMT</lastBuildDate>
    <atom:link href="http://localhost:3000/rss.xml" rel="self" type="application/rss+xml"/>
    
    <item>
      <title><![CDATA[클릭원스 업데이트 체크  (비동기)]]></title>
      <link>http://localhost:3000/posts/클릭원스-업데이트-체크-비동기</link>
      <guid isPermaLink="true">http://localhost:3000/posts/클릭원스-업데이트-체크-비동기</guid>
      <description><![CDATA[]]></description>
      <pubDate>Thu, 07 May 2026 04:45:35 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[C#]]></category>
    </item>
    <item>
      <title><![CDATA[Devexpress GridView 레이아웃 상태 저장 및 불러오기]]></title>
      <link>http://localhost:3000/posts/devexpress-gridview-레이아웃-상태-저장-및-불러오기</link>
      <guid isPermaLink="true">http://localhost:3000/posts/devexpress-gridview-레이아웃-상태-저장-및-불러오기</guid>
      <description><![CDATA[그리드 레이아웃 상태 저장

그리드 레이아웃 상태 불러오기]]></description>
      <pubDate>Wed, 06 May 2026 10:41:32 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[C#]]></category>
    </item>
    <item>
      <title><![CDATA[Devexpress Winform Tip]]></title>
      <link>http://localhost:3000/posts/devexpress-winform-tip</link>
      <guid isPermaLink="true">http://localhost:3000/posts/devexpress-winform-tip</guid>
      <description><![CDATA[GridControl

GridView 핵심 팁컬럼 자동 생성 끄기

직접 컬럼을 구성하는 게 유지보수에 좋습니다 

---
읽기 전용 그리드 설정

---

행 번호 표시

특정 컬럼 숨기기

컬럼 포맷 지정

날짜 포맷

Grid 성능 최적화대량 데이터 바인딩 전후로 UI 갱신을 막으면 빨라집니다.

컬럼 설정도 BeginUpdate() 안에서 처리하는 게 좋습니다.

DataTable 바인딩 팁

단, 데이터가 많을 때 BestFitColumns()는 느릴 수 있으므로 주의하세요.

대량 데이터에서는 

RepositoryIt]]></description>
      <pubDate>Wed, 06 May 2026 08:04:12 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[C#]]></category>
    </item>
    <item>
      <title><![CDATA[Node.js 테스팅 전략 — 단위, 통합, E2E 테스트]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-20-testing</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-20-testing</guid>
      <description><![CDATA[Vitest와 Supertest를 사용해 Node.js 백엔드 앱의 단위, 통합, E2E 테스트를 작성하는 방법을 알아봅니다.]]></description>
      <pubDate>Wed, 06 May 2026 05:42:14 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[Docker로 개발 환경 구축하기]]></title>
      <link>http://localhost:3000/posts/docker-dev-environment</link>
      <guid isPermaLink="true">http://localhost:3000/posts/docker-dev-environment</guid>
      <description><![CDATA[Docker를 활용하여 일관된 개발 환경을 구축하는 실전 가이드입니다.]]></description>
      <pubDate>Wed, 06 May 2026 02:18:14 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[개발 도구]]></category>
    </item>
    <item>
      <title><![CDATA[Node.js 보안 체크리스트 10가지]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-19-security-checklist</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-19-security-checklist</guid>
      <description><![CDATA[Node.js 앱을 프로덕션에 배포하기 전에 반드시 확인해야 할 보안 체크리스트를 알아봅니다.]]></description>
      <pubDate>Tue, 05 May 2026 05:42:14 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[Node.js npm 스크립트 완전 활용하기]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-18-npm-scripts</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-18-npm-scripts</guid>
      <description><![CDATA[package.json scripts를 체인, 병렬 실행, 환경 변수 등으로 강력하게 활용하는 방법을 알아봅니다.]]></description>
      <pubDate>Mon, 04 May 2026 05:42:14 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[Node.js 성능 프로파일링 실전 가이드]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-17-profiling</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-17-profiling</guid>
      <description><![CDATA[--prof, clinic.js, 0x 등을 사용해 Node.js 앱의 병목 지점을 찾고 최적화하는 방법을 알아봅니다.]]></description>
      <pubDate>Sun, 03 May 2026 05:42:14 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[Node.js HTTP 서버 직접 구현하기]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-16-http-server</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-16-http-server</guid>
      <description><![CDATA[프레임워크 없이 Node.js 내장 http 모듈만으로 REST API 서버를 구현하며 내부 동작을 이해합니다.]]></description>
      <pubDate>Sat, 02 May 2026 05:42:14 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[PM2로 Node.js 프로세스 관리하기]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-15-pm2</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-15-pm2</guid>
      <description><![CDATA[PM2로 Node.js 앱을 데몬으로 실행하고, 클러스터 모드, 로그, 자동 재시작을 설정하는 방법을 알아봅니다.]]></description>
      <pubDate>Fri, 01 May 2026 05:42:14 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[Node.js Buffer와 인코딩 완전 가이드]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-14-buffer-encoding</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-14-buffer-encoding</guid>
      <description><![CDATA[Buffer의 동작 원리를 이해하고 바이너리 데이터, 인코딩 변환을 올바르게 처리하는 방법을 알아봅니다.]]></description>
      <pubDate>Thu, 30 Apr 2026 05:42:14 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[Node.js CJS vs ESM 모듈 시스템 완전 정리]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-13-cjs-vs-esm</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-13-cjs-vs-esm</guid>
      <description><![CDATA[CommonJS와 ES Modules의 차이점을 이해하고 두 시스템 간 상호 운용성을 처리하는 방법을 알아봅니다.]]></description>
      <pubDate>Wed, 29 Apr 2026 05:42:14 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[Express 미들웨어 패턴과 에러 처리]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-12-express-middleware</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-12-express-middleware</guid>
      <description><![CDATA[Express 미들웨어를 올바르게 설계하고 글로벌 에러 핸들러를 구성하는 실전 패턴을 알아봅니다.]]></description>
      <pubDate>Tue, 28 Apr 2026 05:42:14 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[Node.js 메모리 누수 찾고 수정하기]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-11-memory-leaks</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-11-memory-leaks</guid>
      <description><![CDATA[메모리 누수의 주요 원인과 heapdump, --inspect 플래그를 사용한 디버깅 방법을 알아봅니다.]]></description>
      <pubDate>Mon, 27 Apr 2026 05:42:14 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[Node.js crypto 모듈로 해싱과 암호화 구현하기]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-10-crypto</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-10-crypto</guid>
      <description><![CDATA[외부 라이브러리 없이 Node.js 내장 crypto 모듈로 비밀번호 해싱, HMAC, AES 암호화를 구현합니다.]]></description>
      <pubDate>Sun, 26 Apr 2026 05:42:13 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[EventEmitter 패턴으로 느슨한 결합 구현하기]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-09-event-emitter</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-09-event-emitter</guid>
      <description><![CDATA[Node.js EventEmitter로 pub/sub 패턴을 구현하고 느슨하게 결합된 아키텍처를 만드는 방법을 알아봅니다.]]></description>
      <pubDate>Sat, 25 Apr 2026 05:42:13 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[환경 변수 관리 — .env, dotenv, 그리고 검증]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-08-env-management</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-08-env-management</guid>
      <description><![CDATA[안전하고 체계적인 Node.js 환경 변수 관리 전략을 알아봅니다.]]></description>
      <pubDate>Fri, 24 Apr 2026 05:42:13 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[Node.js path 모듈 완전 정복]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-07-path-module</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-07-path-module</guid>
      <description><![CDATA[크로스플랫폼 경로 처리를 위한 path 모듈의 모든 메서드를 실전 예제로 알아봅니다.]]></description>
      <pubDate>Thu, 23 Apr 2026 05:42:13 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[fs/promises로 파일 시스템 다루기]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-06-fs-promises</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-06-fs-promises</guid>
      <description><![CDATA[Node.js fs/promises API로 콜백 지옥 없이 파일 시스템을 다루는 현대적인 방법을 알아봅니다.]]></description>
      <pubDate>Wed, 22 Apr 2026 05:42:13 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[child_process로 외부 명령 실행하기]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-05-child-process</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-05-child-process</guid>
      <description><![CDATA[exec, spawn, fork의 차이를 이해하고 외부 프로세스를 안전하게 실행하는 방법을 알아봅니다.]]></description>
      <pubDate>Tue, 21 Apr 2026 05:42:13 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[cluster 모듈로 멀티코어 CPU 100% 활용하기]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-04-cluster</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-04-cluster</guid>
      <description><![CDATA[cluster 모듈로 CPU 코어 수만큼 Node.js 프로세스를 띄워 처리량을 극대화합니다.]]></description>
      <pubDate>Mon, 20 Apr 2026 05:42:13 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[Worker Threads로 CPU 집약 작업 처리하기]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-03-worker-threads</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-03-worker-threads</guid>
      <description><![CDATA[싱글 스레드 Node.js에서 CPU 집약 작업을 Worker Threads로 병렬 처리하는 방법을 알아봅니다.]]></description>
      <pubDate>Sun, 19 Apr 2026 05:42:13 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[Node.js Stream으로 대용량 파일 처리하기]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-02-streams</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-02-streams</guid>
      <description><![CDATA[Stream을 활용해 수 GB 파일도 메모리 걱정 없이 처리하는 방법을 알아봅니다.]]></description>
      <pubDate>Sat, 18 Apr 2026 05:42:13 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[Node.js Event Loop 완전 정복]]></title>
      <link>http://localhost:3000/posts/nodejs-tip-01-event-loop</link>
      <guid isPermaLink="true">http://localhost:3000/posts/nodejs-tip-01-event-loop</guid>
      <description><![CDATA[Node.js의 심장, Event Loop의 동작 원리를 단계별로 분석합니다.]]></description>
      <pubDate>Fri, 17 Apr 2026 05:42:13 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Node.js]]></category>
    </item>
    <item>
      <title><![CDATA[TypeScript 팁 #10 — 타입 성능 최적화와 실무 패턴]]></title>
      <link>http://localhost:3000/posts/ts-tip-10-performance-patterns</link>
      <guid isPermaLink="true">http://localhost:3000/posts/ts-tip-10-performance-patterns</guid>
      <description><![CDATA[복잡한 제네릭 타입이 느린 이유와 개선 방법, satisfies 연산자, const assertion, 브랜드 타입 등 실무에서 자주 쓰이는 고급 패턴을 정리합니다.]]></description>
      <pubDate>Sat, 03 May 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[TypeScript]]></category>
    </item>
    <item>
      <title><![CDATA[TypeScript 팁 #9 — 타입 안전한 에러 처리 패턴]]></title>
      <link>http://localhost:3000/posts/ts-tip-09-error-handling</link>
      <guid isPermaLink="true">http://localhost:3000/posts/ts-tip-09-error-handling</guid>
      <description><![CDATA[unknown 타입의 catch, Result 패턴, never를 활용한 에러 처리로 런타임 에러를 타입 시스템으로 관리하는 방법을 알아봅니다.]]></description>
      <pubDate>Thu, 01 May 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[TypeScript]]></category>
    </item>
    <item>
      <title><![CDATA[TypeScript 팁 #8 — 선언 병합과 모듈 보강으로 타입 확장하기]]></title>
      <link>http://localhost:3000/posts/ts-tip-08-declaration-merging</link>
      <guid isPermaLink="true">http://localhost:3000/posts/ts-tip-08-declaration-merging</guid>
      <description><![CDATA[인터페이스 병합, 네임스페이스 병합, 모듈 보강(Module Augmentation)으로 외부 라이브러리 타입을 안전하게 확장하는 방법을 설명합니다.]]></description>
      <pubDate>Tue, 29 Apr 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[TypeScript]]></category>
    </item>
    <item>
      <title><![CDATA[TypeScript 팁 #7 — 템플릿 리터럴 타입으로 문자열 타입 조작]]></title>
      <link>http://localhost:3000/posts/ts-tip-07-template-literal-types</link>
      <guid isPermaLink="true">http://localhost:3000/posts/ts-tip-07-template-literal-types</guid>
      <description><![CDATA[템플릿 리터럴 타입으로 문자열 패턴을 타입 수준에서 표현하고, Uppercase/Lowercase/Capitalize 등 내장 문자열 조작 타입을 활용하는 방법을 알아봅니다.]]></description>
      <pubDate>Sun, 27 Apr 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[TypeScript]]></category>
    </item>
    <item>
      <title><![CDATA[TypeScript 팁 #6 — 매핑 타입으로 타입 변환하기]]></title>
      <link>http://localhost:3000/posts/ts-tip-06-mapped-types</link>
      <guid isPermaLink="true">http://localhost:3000/posts/ts-tip-06-mapped-types</guid>
      <description><![CDATA[매핑 타입(Mapped Types)으로 기존 타입의 모든 프로퍼티를 변환하는 방법과, as 절을 활용한 키 재매핑, 필터링 패턴을 알아봅니다.]]></description>
      <pubDate>Fri, 25 Apr 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[TypeScript]]></category>
    </item>
    <item>
      <title><![CDATA[TypeScript 팁 #5 — 타입 가드로 런타임 타입 좁히기]]></title>
      <link>http://localhost:3000/posts/ts-tip-05-type-guard</link>
      <guid isPermaLink="true">http://localhost:3000/posts/ts-tip-05-type-guard</guid>
      <description><![CDATA[typeof, instanceof, in 연산자부터 사용자 정의 타입 가드(is), assertion function까지 런타임에서 타입을 안전하게 좁히는 모든 방법을 다룹니다.]]></description>
      <pubDate>Wed, 23 Apr 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[TypeScript]]></category>
    </item>
    <item>
      <title><![CDATA[TypeScript 팁 #4 — 제네릭 제약 조건과 infer 활용]]></title>
      <link>http://localhost:3000/posts/ts-tip-04-generic-constraints</link>
      <guid isPermaLink="true">http://localhost:3000/posts/ts-tip-04-generic-constraints</guid>
      <description><![CDATA[extends로 제네릭 타입을 제약하고, infer 키워드로 조건부 타입 내에서 타입을 추출하는 고급 패턴을 알아봅니다.]]></description>
      <pubDate>Mon, 21 Apr 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[TypeScript]]></category>
    </item>
    <item>
      <title><![CDATA[TypeScript 팁 #3 — 판별 유니온으로 타입 안전한 상태 관리]]></title>
      <link>http://localhost:3000/posts/ts-tip-03-discriminated-union</link>
      <guid isPermaLink="true">http://localhost:3000/posts/ts-tip-03-discriminated-union</guid>
      <description><![CDATA[판별 유니온(Discriminated Union)과 exhaustive check 패턴으로 상태 분기를 타입 수준에서 완전히 제어하는 방법을 소개합니다.]]></description>
      <pubDate>Sat, 19 Apr 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[TypeScript]]></category>
    </item>
    <item>
      <title><![CDATA[TypeScript 팁 #2 — 유틸리티 타입 완전 정복]]></title>
      <link>http://localhost:3000/posts/ts-tip-02-utility-types</link>
      <guid isPermaLink="true">http://localhost:3000/posts/ts-tip-02-utility-types</guid>
      <description><![CDATA[Partial, Required, Pick, Omit, Record, ReturnType 등 내장 유틸리티 타입을 실전 예제로 익히고 중복 타입 선언을 제거합니다.]]></description>
      <pubDate>Thu, 17 Apr 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[TypeScript]]></category>
    </item>
    <item>
      <title><![CDATA[TypeScript 팁 #1 — strict 모드를 반드시 켜야 하는 이유]]></title>
      <link>http://localhost:3000/posts/ts-tip-01-strict-mode</link>
      <guid isPermaLink="true">http://localhost:3000/posts/ts-tip-01-strict-mode</guid>
      <description><![CDATA[strict: true 하나로 null 참조 오류, 암묵적 any, 잘못된 this 등 런타임 버그의 대부분을 컴파일 타임에 잡을 수 있습니다.]]></description>
      <pubDate>Tue, 15 Apr 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[TypeScript]]></category>
    </item>
    <item>
      <title><![CDATA[9편. Vercel 배포와 성능 최적화]]></title>
      <link>http://localhost:3000/posts/blog-series-09-deploy</link>
      <guid isPermaLink="true">http://localhost:3000/posts/blog-series-09-deploy</guid>
      <description><![CDATA[완성된 블로그를 Vercel에 배포하는 과정과 Next.js Image 최적화, 캐싱 전략, 번들 크기 분석으로 성능을 개선하는 방법을 정리합니다.]]></description>
      <pubDate>Thu, 10 Apr 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Next.js]]></category>
    </item>
    <item>
      <title><![CDATA[8편. SEO 최적화 — 메타태그·sitemap·RSS]]></title>
      <link>http://localhost:3000/posts/blog-series-08-seo</link>
      <guid isPermaLink="true">http://localhost:3000/posts/blog-series-08-seo</guid>
      <description><![CDATA[Next.js generateMetadata API로 동적 OpenGraph를 생성하고, JSON-LD 구조화 데이터, sitemap.xml, RSS 피드를 구현해 검색 엔진 최적화를 완성합니다.]]></description>
      <pubDate>Sat, 05 Apr 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Next.js]]></category>
    </item>
    <item>
      <title><![CDATA[7편. 검색·카테고리·태그·시리즈 기능 구현]]></title>
      <link>http://localhost:3000/posts/blog-series-07-search-taxonomy</link>
      <guid isPermaLink="true">http://localhost:3000/posts/blog-series-07-search-taxonomy</guid>
      <description><![CDATA[Prisma의 contains 쿼리로 전문 검색을 구현하고, 카테고리/태그 필터, URL 기반 페이지네이션, 시리즈 목차를 완성합니다.]]></description>
      <pubDate>Sun, 30 Mar 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Next.js]]></category>
    </item>
    <item>
      <title><![CDATA[6편. 블로그 프론트엔드와 마크다운 렌더링]]></title>
      <link>http://localhost:3000/posts/blog-series-06-frontend-markdown</link>
      <guid isPermaLink="true">http://localhost:3000/posts/blog-series-06-frontend-markdown</guid>
      <description><![CDATA[React Server Components로 포스트 목록과 상세 페이지를 구현하고, react-markdown + rehype로 코드 하이라이팅과 목차(TOC)를 완성합니다.]]></description>
      <pubDate>Tue, 25 Mar 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Next.js]]></category>
    </item>
    <item>
      <title><![CDATA[5편. 관리자 대시보드 — 포스트 CRUD 구현]]></title>
      <link>http://localhost:3000/posts/blog-series-05-admin-crud</link>
      <guid isPermaLink="true">http://localhost:3000/posts/blog-series-05-admin-crud</guid>
      <description><![CDATA[마크다운 에디터, 이미지 업로드, 카테고리/태그/시리즈 연결을 포함한 완전한 포스트 작성 UI와 API Route를 구현합니다.]]></description>
      <pubDate>Thu, 20 Mar 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Next.js]]></category>
    </item>
    <item>
      <title><![CDATA[4편. NextAuth.js로 관리자 인증 구현하기]]></title>
      <link>http://localhost:3000/posts/blog-series-04-auth</link>
      <guid isPermaLink="true">http://localhost:3000/posts/blog-series-04-auth</guid>
      <description><![CDATA[NextAuth.js v5(Beta)를 App Router에 통합하고, Credentials Provider로 이메일/비밀번호 로그인과 미들웨어 기반 라우트 보호를 구현합니다.]]></description>
      <pubDate>Sat, 15 Mar 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Next.js]]></category>
    </item>
    <item>
      <title><![CDATA[3편. Prisma 스키마 설계와 마이그레이션]]></title>
      <link>http://localhost:3000/posts/blog-series-03-prisma-schema</link>
      <guid isPermaLink="true">http://localhost:3000/posts/blog-series-03-prisma-schema</guid>
      <description><![CDATA[Post, Category, Tag, Series, Comment, User 등 블로그의 핵심 데이터 모델을 Prisma 스키마로 설계하고 SQLite에 마이그레이션합니다.]]></description>
      <pubDate>Mon, 10 Mar 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Next.js]]></category>
    </item>
    <item>
      <title><![CDATA[2편. 프로젝트 초기 설정과 디렉토리 구조]]></title>
      <link>http://localhost:3000/posts/blog-series-02-setup</link>
      <guid isPermaLink="true">http://localhost:3000/posts/blog-series-02-setup</guid>
      <description><![CDATA[Next.js 프로젝트 생성부터 TailwindCSS, TypeScript 설정, 폴더 구조 설계까지 프로젝트의 뼈대를 잡습니다.]]></description>
      <pubDate>Wed, 05 Mar 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Next.js]]></category>
    </item>
    <item>
      <title><![CDATA[1편. 프로젝트 소개와 기술 스택 선정]]></title>
      <link>http://localhost:3000/posts/blog-series-01-intro</link>
      <guid isPermaLink="true">http://localhost:3000/posts/blog-series-01-intro</guid>
      <description><![CDATA[Next.js App Router 기반 풀스택 블로그를 처음부터 만드는 시리즈를 시작합니다. 전체 구조와 기술 스택 선정 이유를 소개합니다.]]></description>
      <pubDate>Sat, 01 Mar 2025 00:00:00 GMT</pubDate>
      <author>SHIN</author>
      <category><![CDATA[Next.js]]></category>
    </item>
  </channel>
</rss>