<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>ff1451 블로그</title><description>문서화, 생각, 그리고 기술적 모험. 웹 개발과 프론트엔드 엔지니어링에 집중합니다.</description><link>https://ff1451.me/</link><language>ko-kr</language><item><title>강의 정보 갱신 AI 자동화</title><link>https://ff1451.me/posts/timetable-auto/</link><guid isPermaLink="true">https://ff1451.me/posts/timetable-auto/</guid><description>KOIN 서비스의 강의 시간표 최신화를 AI로 자동화한 기록</description><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate><category>AI</category><category>automation</category></item><item><title>Slack 봇을 조직 Wiki 입구로 만들기</title><link>https://ff1451.me/posts/bbot-rag-wiki/</link><guid isPermaLink="true">https://ff1451.me/posts/bbot-rag-wiki/</guid><description>B-BOT에 RAG 파이프라인을 붙여 흩어진 온보딩·인수인계 문서를 Slack 질문으로 찾을 수 있게 만든 과정</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate><category>RAG</category><category>LLM</category><category>wiki</category></item><item><title>staged publishing과 minimumReleaseAge, npm·pnpm의 공급망 방어</title><link>https://ff1451.me/posts/npm-staged-packages-pnpm-minimum-release-age/</link><guid isPermaLink="true">https://ff1451.me/posts/npm-staged-packages-pnpm-minimum-release-age/</guid><description>반복된 npm 공급망 사건과 npm·pnpm이 각각 추가한 방어선 기록</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate><category>npm</category><category>pnpm</category><category>security</category></item><item><title>Next.js SSR이 swap을 채운 이유</title><link>https://ff1451.me/posts/nextjs-ssr-memory-swap-optimization/</link><guid isPermaLink="true">https://ff1451.me/posts/nextjs-ssr-memory-swap-optimization/</guid><description>EC2 swap 사용을 원인으로 특정하고 ISR과 V8 힙 설정으로 응답 지연을 완화한 과정</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate><category>Next.js</category><category>performance</category><category>Node.js</category><category>AWS</category></item><item><title>Jenkins + EC2에서 GitHub Actions로, 빌드 서버 전환기</title><link>https://ff1451.me/posts/jenkins-ec2-to-github-actions/</link><guid isPermaLink="true">https://ff1451.me/posts/jenkins-ec2-to-github-actions/</guid><description>빌드가 반복 실패하던 EC2 서버를 GitHub Actions CI/CD로 옮긴 과정</description><pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate><category>CI/CD</category><category>GitHub Actions</category><category>Jenkins</category><category>AWS</category></item><item><title>Biome noUselessReturn 룰 기여기</title><link>https://ff1451.me/posts/biome-no-useless-return/</link><guid isPermaLink="true">https://ff1451.me/posts/biome-no-useless-return/</guid><description>ESLint no-useless-return을 Biome nursery 룰로 포팅하며 AST 판별과 매핑 방식을 정한 과정</description><pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate><category>Biome</category><category>Rust</category><category>lint</category><category>opensource</category></item><item><title>Barrel import 제거가 _app 공통 청크를 줄인 이유</title><link>https://ff1451.me/posts/barrel-import-app-chunk-reduction/</link><guid isPermaLink="true">https://ff1451.me/posts/barrel-import-app-chunk-reduction/</guid><description>직접 import 전환으로 _app 공통 청크를 줄인 과정과 Webpack 단계별 기록</description><pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate><category>Next.js</category><category>webpack</category><category>tree-shaking</category><category>performance</category><category>TypeScript</category></item><item><title>CSS scroll-target-group으로 목차 하이라이트 구현하기</title><link>https://ff1451.me/posts/css-scroll-target-group/</link><guid isPermaLink="true">https://ff1451.me/posts/css-scroll-target-group/</guid><description>scroll-target-group로 TOC 하이라이트를 단순화하고, 폴백으로 호환성을 유지한 과정</description><pubDate>Sun, 15 Feb 2026 00:00:00 GMT</pubDate><category>CSS</category></item><item><title>Notion API로 로깅 함수 자동 생성하기</title><link>https://ff1451.me/posts/notion-logging-automation/</link><guid isPermaLink="true">https://ff1451.me/posts/notion-logging-automation/</guid><description>DA의 Notion 로깅 명세서를 읽어 TypeScript 로깅 훅을 자동 생성하는 CLI 파이프라인 구현 기록</description><pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate><category>Notion</category><category>TypeScript</category><category>automation</category></item><item><title>Rust로 다시 쓴 패키지 매니저, Yarn 6</title><link>https://ff1451.me/posts/yarn-6-preview-deep-dive/</link><guid isPermaLink="true">https://ff1451.me/posts/yarn-6-preview-deep-dive/</guid><description>TypeScript Berry와 Rust Yarn 6의 실제 코드를 비교하며 살펴본 성능 개선 원리와 아키텍처 변화</description><pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate><category>Yarn</category><category>Rust</category><category>JavaScript</category><category>package-manager</category></item><item><title>SharedWorker·IndexedDB로 멀티 탭 채팅 최적화하기</title><link>https://ff1451.me/posts/sharedworker-indexeddb-chat/</link><guid isPermaLink="true">https://ff1451.me/posts/sharedworker-indexeddb-chat/</guid><description>탭별 중복 WebSocket 연결을 SharedWorker로 통합하고, IndexedDB 캐시로 새로고침·오프라인에서도 대화 내역을 유지한 구현 과정</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate><category>IndexedDB</category><category>SharedWorker</category><category>WebSocket</category></item><item><title>Prettier VS Code 모듈 로딩 버그 수정기</title><link>https://ff1451.me/posts/opensource-prettier-vscode/</link><guid isPermaLink="true">https://ff1451.me/posts/opensource-prettier-vscode/</guid><description>파일 경로(.cjs)를 디렉토리로 잘못 해석해 발생한 Prettier 로딩 실패 원인 분석과, 경로 보정·통합 테스트로 해결한 과정</description><pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate><category>VS Code</category><category>Prettier</category><category>Yarn</category><category>opensource</category></item></channel></rss>