<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>김민석 · Astro 포트폴리오</title><description>김민석의 포트폴리오와 기술 블로그.</description><link>https://kmsk99.github.io/</link><language>ko</language><item><title>Vercel OIDC와 Google Translate API를 활용한 서버사이드 자동 번역</title><link>https://kmsk99.github.io/post/vercel-oidcwa-google-translate-apireul-hwallyonghan-seobeosaideu-jadong-beonnyeok/</link><guid isPermaLink="true">https://kmsk99.github.io/post/vercel-oidcwa-google-translate-apireul-hwallyonghan-seobeosaideu-jadong-beonnyeok/</guid><pubDate>Fri, 27 Feb 2026 00:00:00 GMT</pubDate><category>i18n</category><category>OIDC</category><category>GoogleTranslate</category><category>Vercel</category><category>WorkloadIdentityFederation</category></item><item><title>토스 인앱 mTLS 프록시 서버 구축</title><link>https://kmsk99.github.io/post/toseu-inaep-mtls-peuroksi-seobeo-guchuk/</link><guid isPermaLink="true">https://kmsk99.github.io/post/toseu-inaep-mtls-peuroksi-seobeo-guchuk/</guid><pubDate>Wed, 28 Jan 2026 00:00:00 GMT</pubDate><category>mTLS</category><category>TLS</category><category>Proxy</category><category>Express</category><category>AWS</category><category>Toss</category><category>Payments</category><category>Serverless</category></item><item><title>Expo 푸시 토큰 등록 흐름 정리</title><link>https://kmsk99.github.io/post/expo-pusi-tokeun-deungnok-heureum-jeongni/</link><guid isPermaLink="true">https://kmsk99.github.io/post/expo-pusi-tokeun-deungnok-heureum-jeongni/</guid><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate><category>Expo</category><category>PushNotifications</category><category>Supabase</category><category>Mobile</category><category>Reliability</category></item><item><title>React Native 로컬 리텐션 알림 스케줄링</title><link>https://kmsk99.github.io/post/react-native-rokeol-ritensyeon-allim-seukejulling/</link><guid isPermaLink="true">https://kmsk99.github.io/post/react-native-rokeol-ritensyeon-allim-seukejulling/</guid><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate><category>ReactNative</category><category>Expo</category><category>Notifications</category><category>Engagement</category><category>Mobile</category></item><item><title>S2 기반 히트맵 통계 집계와 조회</title><link>https://kmsk99.github.io/post/s2-giban-hiteumaep-tonggye-jipgyewa-johoe/</link><guid isPermaLink="true">https://kmsk99.github.io/post/s2-giban-hiteumaep-tonggye-jipgyewa-johoe/</guid><pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate><category>S2</category><category>Heatmap</category><category>Supabase</category><category>Analytics</category><category>PostGIS</category></item><item><title>위치정보법 준수를 위한 Edge Function 감사 로깅 아키텍처</title><link>https://kmsk99.github.io/post/wichijeongbobeop-junsureul-wihan-edge-function-gamsa-roging-akitekcheo/</link><guid isPermaLink="true">https://kmsk99.github.io/post/wichijeongbobeop-junsureul-wihan-edge-function-gamsa-roging-akitekcheo/</guid><pubDate>Tue, 23 Dec 2025 00:00:00 GMT</pubDate><category>Supabase</category><category>EdgeFunctions</category><category>Compliance</category><category>LocationInfo</category><category>AWS</category></item><item><title>React Native 파일 업로드 유틸 구현</title><link>https://kmsk99.github.io/post/react-native-pail-eomnodeu-yutil-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/react-native-pail-eomnodeu-yutil-guhyeon/</guid><pubDate>Thu, 18 Dec 2025 00:00:00 GMT</pubDate><category>ReactNative</category><category>Expo</category><category>Supabase</category><category>Uploads</category><category>Mobile</category><category>Backend</category></item><item><title>BottomSheet 동적 리사이즈 구현</title><link>https://kmsk99.github.io/post/bottomsheet-dongjeok-risaijeu-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/bottomsheet-dongjeok-risaijeu-guhyeon/</guid><pubDate>Wed, 10 Dec 2025 00:00:00 GMT</pubDate><category>ReactNative</category><category>BottomSheet</category><category>UI</category><category>UX</category><category>Expo</category><category>Mobile</category></item><item><title>Astro SSG 포트폴리오 블로그 구축</title><link>https://kmsk99.github.io/post/astro-ssg-poteupollio-beullogeu-guchuk/</link><guid isPermaLink="true">https://kmsk99.github.io/post/astro-ssg-poteupollio-beullogeu-guchuk/</guid><pubDate>Thu, 04 Dec 2025 00:00:00 GMT</pubDate><category>Astro</category><category>SSG</category><category>SEO</category><category>Blog</category><category>GitHub Pages</category></item><item><title>옵시디언 마크다운을 Astro 블로그로 변환하기</title><link>https://kmsk99.github.io/post/opsidieon-makeudauneul-astro-beullogeuro-byeonhwanhagi/</link><guid isPermaLink="true">https://kmsk99.github.io/post/opsidieon-makeudauneul-astro-beullogeuro-byeonhwanhagi/</guid><pubDate>Thu, 04 Dec 2025 00:00:00 GMT</pubDate><category>Obsidian</category><category>Astro</category><category>Markdown</category><category>Migration</category><category>Automation</category></item><item><title>PostGIS 폴리곤 병합 파이프라인 구축</title><link>https://kmsk99.github.io/post/postgis-polligon-byeonghap-paipeurain-guchuk/</link><guid isPermaLink="true">https://kmsk99.github.io/post/postgis-polligon-byeonghap-paipeurain-guchuk/</guid><pubDate>Tue, 02 Dec 2025 00:00:00 GMT</pubDate><category>PostGIS</category><category>Docker</category><category>Pipeline</category><category>GIS</category><category>Shell</category></item><item><title>S2 Geometry 기반 서버사이드 지도 클러스터링</title><link>https://kmsk99.github.io/post/s2-geometry-giban-seobeosaideu-jido-keulleoseuteoring/</link><guid isPermaLink="true">https://kmsk99.github.io/post/s2-geometry-giban-seobeosaideu-jido-keulleoseuteoring/</guid><pubDate>Tue, 25 Nov 2025 00:00:00 GMT</pubDate><category>S2</category><category>Clustering</category><category>Supabase</category><category>Geo</category><category>Performance</category><category>EdgeFunctions</category></item><item><title>React Native 앱의 다국어 지원 구현</title><link>https://kmsk99.github.io/post/react-native-aebui-dagugeo-jiwon-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/react-native-aebui-dagugeo-jiwon-guhyeon/</guid><pubDate>Mon, 17 Nov 2025 00:00:00 GMT</pubDate><category>i18n</category><category>ReactNative</category><category>i18next</category><category>Localization</category><category>Expo</category></item><item><title>Naver와 Google 지오코딩 API 통합</title><link>https://kmsk99.github.io/post/naverwa-google-jiokoding-api-tonghap/</link><guid isPermaLink="true">https://kmsk99.github.io/post/naverwa-google-jiokoding-api-tonghap/</guid><pubDate>Tue, 11 Nov 2025 00:00:00 GMT</pubDate><category>Geocoding</category><category>Naver</category><category>Google</category><category>API</category><category>Next.js</category></item><item><title>Next.js Fluid Computing과 maxDuration 적용</title><link>https://kmsk99.github.io/post/next-js-fluid-computinggwa-maxduration-jeongnyong/</link><guid isPermaLink="true">https://kmsk99.github.io/post/next-js-fluid-computinggwa-maxduration-jeongnyong/</guid><pubDate>Fri, 07 Nov 2025 00:00:00 GMT</pubDate><category>NextJS</category><category>Architecture</category><category>EdgeRuntime</category><category>NodeJS</category><category>Performance</category></item><item><title>Firebase에서 Supabase로 기술 스택 전환</title><link>https://kmsk99.github.io/post/firebaseeseo-supabasero-gisul-seutaek-jeonhwan/</link><guid isPermaLink="true">https://kmsk99.github.io/post/firebaseeseo-supabasero-gisul-seutaek-jeonhwan/</guid><pubDate>Wed, 05 Nov 2025 00:00:00 GMT</pubDate><category>Firebase</category><category>Supabase</category><category>Migration</category><category>Architecture</category><category>ReactNative</category><category>Expo</category></item><item><title>PostGIS RPC로 구역 저장과 공간 조회</title><link>https://kmsk99.github.io/post/postgis-rpcro-guyeok-jeojanggwa-gonggan-johoe/</link><guid isPermaLink="true">https://kmsk99.github.io/post/postgis-rpcro-guyeok-jeojanggwa-gonggan-johoe/</guid><pubDate>Wed, 05 Nov 2025 00:00:00 GMT</pubDate><category>PostGIS</category><category>Supabase</category><category>RPC</category><category>Geo</category><category>SQL</category></item><item><title>Vercel Cron으로 AI 자동화 트리거 구현</title><link>https://kmsk99.github.io/post/vercel-croneuro-ai-jadonghwa-teurigeo-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/vercel-croneuro-ai-jadonghwa-teurigeo-guhyeon/</guid><pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate><category>Supabase</category><category>Cron</category><category>AI</category><category>Backend</category><category>Security</category><category>RateLimit</category></item><item><title>비동기 체인 플래그로 긴 API 호출 처리하기</title><link>https://kmsk99.github.io/post/bidonggi-chein-peullaegeuro-gin-api-hochul-cheorihagi/</link><guid isPermaLink="true">https://kmsk99.github.io/post/bidonggi-chein-peullaegeuro-gin-api-hochul-cheorihagi/</guid><pubDate>Thu, 11 Sep 2025 00:00:00 GMT</pubDate><category>NextJS</category><category>AI</category><category>OCR</category><category>Workflow</category><category>Performance</category><category>Backend</category></item><item><title>CLOVA OCR API와 PDF 페이지 분할로 학력 증빙 자동화</title><link>https://kmsk99.github.io/post/clova-ocr-apiwa-pdf-peiji-bunhallo-hangnyeok-jeungbing-jadonghwa/</link><guid isPermaLink="true">https://kmsk99.github.io/post/clova-ocr-apiwa-pdf-peiji-bunhallo-hangnyeok-jeungbing-jadonghwa/</guid><pubDate>Fri, 05 Sep 2025 00:00:00 GMT</pubDate><category>OCR</category><category>CLOVA</category><category>PDF</category><category>NextJS</category><category>Automation</category><category>Concurrency</category></item><item><title>Expo OTA 업데이트 안내 모달 구현</title><link>https://kmsk99.github.io/post/expo-ota-eopdeiteu-annae-modal-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/expo-ota-eopdeiteu-annae-modal-guhyeon/</guid><pubDate>Fri, 05 Sep 2025 00:00:00 GMT</pubDate><category>Expo</category><category>OTA</category><category>Updates</category><category>Mobile</category><category>UX</category></item><item><title>OCR + AI 검증 파이프라인으로 학교 인증 자동화</title><link>https://kmsk99.github.io/post/ocr-ai-geomjeung-paipeuraineuro-hakgyo-injeung-jadonghwa/</link><guid isPermaLink="true">https://kmsk99.github.io/post/ocr-ai-geomjeung-paipeuraineuro-hakgyo-injeung-jadonghwa/</guid><pubDate>Fri, 05 Sep 2025 00:00:00 GMT</pubDate><category>OCR</category><category>AI</category><category>Pipeline</category><category>NextJS</category><category>AWS</category><category>Security</category></item><item><title>iOS Privacy Manifest와 앱 스토어 규정 대응</title><link>https://kmsk99.github.io/post/ios-privacy-manifestwa-aep-seutoeo-gyujeong-daeeung/</link><guid isPermaLink="true">https://kmsk99.github.io/post/ios-privacy-manifestwa-aep-seutoeo-gyujeong-daeeung/</guid><pubDate>Tue, 02 Sep 2025 00:00:00 GMT</pubDate><category>iOS</category><category>PrivacyManifest</category><category>Expo</category><category>ReactNative</category><category>AppStore</category></item><item><title>네이버 지도 SDK로 매장 지도 구현</title><link>https://kmsk99.github.io/post/neibeo-jido-sdkro-maejang-jido-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/neibeo-jido-sdkro-maejang-jido-guhyeon/</guid><pubDate>Wed, 06 Aug 2025 00:00:00 GMT</pubDate><category>ReactNative</category><category>NaverMap</category><category>Maps</category><category>UX</category><category>Mobile</category></item><item><title>KeyboardStickyView 포커스 버그 수정</title><link>https://kmsk99.github.io/post/keyboardstickyview-pokeoseu-beogeu-sujeong/</link><guid isPermaLink="true">https://kmsk99.github.io/post/keyboardstickyview-pokeoseu-beogeu-sujeong/</guid><pubDate>Fri, 18 Jul 2025 00:00:00 GMT</pubDate><category>ReactNative</category><category>Keyboard</category><category>UI</category><category>Expo</category><category>Mobile</category></item><item><title>React Native에 토스 결제 위젯 연동</title><link>https://kmsk99.github.io/post/react-nativee-toseu-gyeolje-wijet-yeondong/</link><guid isPermaLink="true">https://kmsk99.github.io/post/react-nativee-toseu-gyeolje-wijet-yeondong/</guid><pubDate>Thu, 10 Jul 2025 00:00:00 GMT</pubDate><category>Payment</category><category>Toss</category><category>ReactNative</category><category>Mobile</category><category>UX</category></item><item><title>ActionSheet 래퍼 훅 구현</title><link>https://kmsk99.github.io/post/actionsheet-raepeo-huk-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/actionsheet-raepeo-huk-guhyeon/</guid><pubDate>Wed, 09 Jul 2025 00:00:00 GMT</pubDate><category>ReactNative</category><category>Expo</category><category>Mobile</category><category>UI</category><category>Hooks</category><category>ActionSheet</category></item><item><title>Android 더블백 종료 처리</title><link>https://kmsk99.github.io/post/android-deobeulbaek-jongnyo-cheori/</link><guid isPermaLink="true">https://kmsk99.github.io/post/android-deobeulbaek-jongnyo-cheori/</guid><pubDate>Mon, 07 Jul 2025 00:00:00 GMT</pubDate><category>Android</category><category>Expo</category><category>Navigation</category><category>BackHandler</category><category>UX</category><category>Mobile</category></item><item><title>Intersection Observer로 스크롤 기반 애니메이션 구현</title><link>https://kmsk99.github.io/post/intersection-observerro-seukeurol-giban-aenimeisyeon-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/intersection-observerro-seukeurol-giban-aenimeisyeon-guhyeon/</guid><pubDate>Fri, 04 Jul 2025 00:00:00 GMT</pubDate><category>IntersectionObserver</category><category>Animation</category><category>React</category><category>CSS</category><category>Swiper</category></item><item><title>갤럭시 기기 Supabase 파일 업로드 안정화</title><link>https://kmsk99.github.io/post/gaelleoksi-gigi-supabase-pail-eomnodeu-anjeonghwa/</link><guid isPermaLink="true">https://kmsk99.github.io/post/gaelleoksi-gigi-supabase-pail-eomnodeu-anjeonghwa/</guid><pubDate>Thu, 03 Jul 2025 00:00:00 GMT</pubDate><category>Supabase</category><category>Uploads</category><category>Android</category><category>Mobile</category><category>Reliability</category></item><item><title>React Native에서 Next.js API를 인증된 상태로 호출하기</title><link>https://kmsk99.github.io/post/react-nativeeseo-next-js-apireul-injeungdoen-sangtaero-hochulhagi/</link><guid isPermaLink="true">https://kmsk99.github.io/post/react-nativeeseo-next-js-apireul-injeungdoen-sangtaero-hochulhagi/</guid><pubDate>Tue, 17 Jun 2025 00:00:00 GMT</pubDate><category>NextJS</category><category>Supabase</category><category>Auth</category><category>ReactNative</category><category>Bearer</category><category>SSR</category></item><item><title>Next.js Server Action으로 이벤트 좌석 검증</title><link>https://kmsk99.github.io/post/next-js-server-actioneuro-ibenteu-jwaseok-geomjeung/</link><guid isPermaLink="true">https://kmsk99.github.io/post/next-js-server-actioneuro-ibenteu-jwaseok-geomjeung/</guid><pubDate>Thu, 12 Jun 2025 00:00:00 GMT</pubDate><category>NextJS</category><category>ServerActions</category><category>Concurrency</category><category>Validation</category><category>Supabase</category><category>Events</category></item><item><title>토스 결제 위젯 재시도와 웹훅 검증</title><link>https://kmsk99.github.io/post/toseu-gyeolje-wijet-jaesidowa-wepuk-geomjeung/</link><guid isPermaLink="true">https://kmsk99.github.io/post/toseu-gyeolje-wijet-jaesidowa-wepuk-geomjeung/</guid><pubDate>Fri, 06 Jun 2025 00:00:00 GMT</pubDate><category>Payment</category><category>Webhook</category><category>Security</category><category>Retry</category><category>Frontend</category><category>Backend</category></item><item><title>NICE 본인인증 API 서버 구현</title><link>https://kmsk99.github.io/post/nice-bonninninjeung-api-seobeo-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/nice-bonninninjeung-api-seobeo-guhyeon/</guid><pubDate>Wed, 04 Jun 2025 00:00:00 GMT</pubDate><category>NICE</category><category>Auth</category><category>Express</category><category>Crypto</category><category>Security</category><category>EC2</category></item><item><title>NICE DI 기반 중복 계정 탐지 API</title><link>https://kmsk99.github.io/post/nice-di-giban-jungbok-gyejeong-tamji-api/</link><guid isPermaLink="true">https://kmsk99.github.io/post/nice-di-giban-jungbok-gyejeong-tamji-api/</guid><pubDate>Wed, 04 Jun 2025 00:00:00 GMT</pubDate><category>Supabase</category><category>Auth</category><category>DI</category><category>Backend</category><category>Security</category></item><item><title>파일 암호화 파이프라인 구현</title><link>https://kmsk99.github.io/post/pail-amhohwa-paipeurain-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/pail-amhohwa-paipeurain-guhyeon/</guid><pubDate>Wed, 04 Jun 2025 00:00:00 GMT</pubDate><category>AWS</category><category>KMS</category><category>AES-GCM</category><category>Supabase</category><category>Encryption</category><category>Security</category></item><item><title>스탬프 적립과 자동 리워드 생성 구현</title><link>https://kmsk99.github.io/post/seutaempeu-jeongnipgwa-jadong-riwodeu-saengseong-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/seutaempeu-jeongnipgwa-jadong-riwodeu-saengseong-guhyeon/</guid><pubDate>Thu, 29 May 2025 00:00:00 GMT</pubDate><category>Supabase</category><category>Rewards</category><category>Stamps</category><category>Automation</category><category>Backend</category></item><item><title>BERT 임베딩과 pgvector로 하이브리드 레시피 추천 구현</title><link>https://kmsk99.github.io/post/bert-imbedinggwa-pgvectorro-haibeurideu-resipi-chucheon-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/bert-imbedinggwa-pgvectorro-haibeurideu-resipi-chucheon-guhyeon/</guid><pubDate>Sat, 12 Apr 2025 00:00:00 GMT</pubDate><category>AI</category><category>pgvector</category><category>BERT</category><category>Supabase</category><category>Recommendation</category><category>NextJs</category></item><item><title>Supabase 병렬 호출 제한 유틸 구현</title><link>https://kmsk99.github.io/post/supabase-byeongnyeol-hochul-jehan-yutil-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/supabase-byeongnyeol-hochul-jehan-yutil-guhyeon/</guid><pubDate>Thu, 03 Apr 2025 00:00:00 GMT</pubDate><category>Supabase</category><category>Concurrency</category><category>Performance</category><category>NodeJS</category><category>Backend</category></item><item><title>Supabase Realtime 채팅의 옵티미스틱 업데이트</title><link>https://kmsk99.github.io/post/supabase-realtime-chaetingui-optimiseutik-eopdeiteu/</link><guid isPermaLink="true">https://kmsk99.github.io/post/supabase-realtime-chaetingui-optimiseutik-eopdeiteu/</guid><pubDate>Tue, 01 Apr 2025 00:00:00 GMT</pubDate><category>Supabase</category><category>Realtime</category><category>Chat</category><category>OptimisticUI</category><category>Subscriptions</category><category>Frontend</category></item><item><title>Supabase + 카카오 OAuth 모바일 연동</title><link>https://kmsk99.github.io/post/supabase-kakao-oauth-mobail-yeondong/</link><guid isPermaLink="true">https://kmsk99.github.io/post/supabase-kakao-oauth-mobail-yeondong/</guid><pubDate>Mon, 31 Mar 2025 00:00:00 GMT</pubDate><category>OAuth</category><category>Kakao</category><category>Supabase</category><category>Expo</category><category>Android</category><category>iOS</category><category>Auth</category></item><item><title>useProfileWithRetry - 네트워크 불안정 대응 훅</title><link>https://kmsk99.github.io/post/useprofilewithretry-neteuwokeu-buranjeong-daeeung-huk/</link><guid isPermaLink="true">https://kmsk99.github.io/post/useprofilewithretry-neteuwokeu-buranjeong-daeeung-huk/</guid><pubDate>Mon, 31 Mar 2025 00:00:00 GMT</pubDate><category>Supabase</category><category>React</category><category>Session</category><category>Retry</category><category>Reliability</category></item><item><title>초대 코드 검증과 스탬프 지급 통합</title><link>https://kmsk99.github.io/post/chodae-kodeu-geomjeunggwa-seutaempeu-jigeup-tonghap/</link><guid isPermaLink="true">https://kmsk99.github.io/post/chodae-kodeu-geomjeunggwa-seutaempeu-jigeup-tonghap/</guid><pubDate>Thu, 27 Mar 2025 00:00:00 GMT</pubDate><category>Supabase</category><category>Invites</category><category>Rewards</category><category>Backend</category><category>Automation</category></item><item><title>TipTap과 Tentap으로 웹-모바일 리치 텍스트 에디터 구현</title><link>https://kmsk99.github.io/post/tiptapgwa-tentapeuro-wem-mobail-richi-tekseuteu-editeo-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/tiptapgwa-tentapeuro-wem-mobail-richi-tekseuteu-editeo-guhyeon/</guid><pubDate>Wed, 19 Mar 2025 00:00:00 GMT</pubDate><category>TipTap</category><category>Tentap</category><category>RichText</category><category>React</category><category>ReactNative</category></item><item><title>Feature-Sliced Design으로 프론트엔드 도메인 분해하기</title><link>https://kmsk99.github.io/post/feature-sliced-designeuro-peuronteuendeu-domein-bunhaehagi/</link><guid isPermaLink="true">https://kmsk99.github.io/post/feature-sliced-designeuro-peuronteuendeu-domein-bunhaehagi/</guid><pubDate>Wed, 12 Mar 2025 00:00:00 GMT</pubDate><category>FeatureSlicedDesign</category><category>Architecture</category><category>React</category><category>TypeScript</category><category>Frontend</category></item><item><title>공공데이터 API 프록시 구현</title><link>https://kmsk99.github.io/post/gonggongdeiteo-api-peuroksi-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/gonggongdeiteo-api-peuroksi-guhyeon/</guid><pubDate>Wed, 12 Mar 2025 00:00:00 GMT</pubDate><category>NextJS</category><category>Proxy</category><category>API</category><category>Security</category><category>CORS</category></item><item><title>ESLint + Prettier + Husky 자동화 구성</title><link>https://kmsk99.github.io/post/eslint-prettier-husky-jadonghwa-guseong/</link><guid isPermaLink="true">https://kmsk99.github.io/post/eslint-prettier-husky-jadonghwa-guseong/</guid><pubDate>Tue, 11 Mar 2025 00:00:00 GMT</pubDate><category>ESLint</category><category>Prettier</category><category>Husky</category><category>CI/CD</category><category>NextJS</category><category>TypeScript</category></item><item><title>NestJS GraphQL Subscription으로 실시간 예약 구현</title><link>https://kmsk99.github.io/post/nestjs-graphql-subscriptioneuro-silsigan-yeyak-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/nestjs-graphql-subscriptioneuro-silsigan-yeyak-guhyeon/</guid><pubDate>Thu, 27 Feb 2025 00:00:00 GMT</pubDate><category>NestJS</category><category>GraphQL</category><category>Prisma</category><category>Realtime</category><category>Reservations</category><category>Backend</category></item><item><title>Playwright와 AsyncIO로 대규모 크롤러 구축</title><link>https://kmsk99.github.io/post/playwrightwa-asyncioro-daegyumo-keurolleo-guchuk/</link><guid isPermaLink="true">https://kmsk99.github.io/post/playwrightwa-asyncioro-daegyumo-keurolleo-guchuk/</guid><pubDate>Thu, 26 Dec 2024 00:00:00 GMT</pubDate><category>Playwright</category><category>Crawling</category><category>AsyncIO</category><category>Python</category><category>DataEngineering</category><category>Automation</category></item><item><title>EC2 초기 세팅 자동화 스크립트</title><link>https://kmsk99.github.io/post/ec2-chogi-seting-jadonghwa-seukeuripteu/</link><guid isPermaLink="true">https://kmsk99.github.io/post/ec2-chogi-seting-jadonghwa-seukeuripteu/</guid><pubDate>Thu, 28 Nov 2024 10:30:00 GMT</pubDate><category>AWS</category><category>EC2</category><category>Automation</category><category>Shell</category><category>DevOps</category></item><item><title>로컬 HTTPS와 ALB SSL 종료를 함께 다루기</title><link>https://kmsk99.github.io/post/rokeol-httpswa-alb-ssl-jongnyoreul-hamkke-darugi/</link><guid isPermaLink="true">https://kmsk99.github.io/post/rokeol-httpswa-alb-ssl-jongnyoreul-hamkke-darugi/</guid><pubDate>Thu, 28 Nov 2024 10:00:00 GMT</pubDate><category>HTTPS</category><category>AWS</category><category>ALB</category><category>NodeJS</category><category>DevOps</category><category>LocalDev</category></item><item><title>Solidity와 IPFS로 블록체인 인증서 발급 시스템 구현</title><link>https://kmsk99.github.io/post/soliditywa-ipfsro-beullokchein-injeungseo-balgeup-siseutem-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/soliditywa-ipfsro-beullokchein-injeungseo-balgeup-siseutem-guhyeon/</guid><pubDate>Sun, 10 Nov 2024 00:00:00 GMT</pubDate><category>Blockchain</category><category>Solidity</category><category>IPFS</category><category>Web3</category><category>Ethereum</category><category>wagmi</category></item><item><title>pnpm 워크스페이스 모노레포 구성</title><link>https://kmsk99.github.io/post/pnpm-wokeuseupeiseu-monorepo-guseong/</link><guid isPermaLink="true">https://kmsk99.github.io/post/pnpm-wokeuseupeiseu-monorepo-guseong/</guid><pubDate>Fri, 25 Oct 2024 00:00:00 GMT</pubDate><category>pnpm</category><category>Monorepo</category><category>Docker</category><category>CI/CD</category><category>Prisma</category><category>NextJS</category></item><item><title>HeadVer 버저닝 시스템을 JS 프로덕트에 적용하기</title><link>https://kmsk99.github.io/post/headver-beojeoning-siseutemeul-js-peurodeokteue-jeongnyonghagi/</link><guid isPermaLink="true">https://kmsk99.github.io/post/headver-beojeoning-siseutemeul-js-peurodeokteue-jeongnyonghagi/</guid><pubDate>Mon, 03 Jun 2024 00:00:00 GMT</pubDate><category>HeadVer</category><category>Versioning</category><category>JavaScript</category><category>DevOps</category><category>Husky</category><category>GitHooks</category><category>Automation</category></item><item><title>Nestjs + Prisma 백엔드에서 고객정보 양방향 암호화하기</title><link>https://kmsk99.github.io/post/nestjs-prisma-baegendeueseo-gogaekjeongbo-yangbanghyang-amhohwahagi/</link><guid isPermaLink="true">https://kmsk99.github.io/post/nestjs-prisma-baegendeueseo-gogaekjeongbo-yangbanghyang-amhohwahagi/</guid><pubDate>Fri, 31 May 2024 00:00:00 GMT</pubDate><category>NestJS</category><category>Prisma</category><category>Encryption</category><category>AES</category><category>Backend</category><category>Security</category></item><item><title>Winston + CloudWatch 구조화 로깅 구현</title><link>https://kmsk99.github.io/post/winston-cloudwatch-gujohwa-roging-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/winston-cloudwatch-gujohwa-roging-guhyeon/</guid><pubDate>Tue, 30 Jan 2024 00:00:00 GMT</pubDate><category>Logging</category><category>Winston</category><category>CloudWatch</category><category>NestJS</category><category>GraphQL</category><category>DevOps</category></item><item><title>Firestore 장바구니 동기화와 수량 보정</title><link>https://kmsk99.github.io/post/firestore-jangbaguni-donggihwawa-suryang-bojeong/</link><guid isPermaLink="true">https://kmsk99.github.io/post/firestore-jangbaguni-donggihwawa-suryang-bojeong/</guid><pubDate>Mon, 09 Oct 2023 00:00:00 GMT</pubDate><category>Firestore</category><category>Cart</category><category>Ecommerce</category><category>DataIntegrity</category><category>NextJS</category><category>Backend</category></item><item><title>React Context로 통화 로컬라이제이션 구현</title><link>https://kmsk99.github.io/post/react-contextro-tonghwa-rokeollaijeisyeon-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/react-contextro-tonghwa-rokeollaijeisyeon-guhyeon/</guid><pubDate>Fri, 15 Sep 2023 00:00:00 GMT</pubDate><category>React</category><category>NextJS</category><category>Localization</category><category>Currency</category><category>Frontend</category><category>UX</category></item><item><title>Next.js PWA와 S3 업로드 구현</title><link>https://kmsk99.github.io/post/next-js-pwawa-s3-eomnodeu-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/next-js-pwawa-s3-eomnodeu-guhyeon/</guid><pubDate>Mon, 11 Sep 2023 00:00:00 GMT</pubDate><category>PWA</category><category>S3</category><category>NextJS</category><category>Caching</category><category>Offline</category><category>Mobile</category></item><item><title>Next.js App Router + Firebase Auth 관리자 인증</title><link>https://kmsk99.github.io/post/next-js-app-router-firebase-auth-gwallija-injeung/</link><guid isPermaLink="true">https://kmsk99.github.io/post/next-js-app-router-firebase-auth-gwallija-injeung/</guid><pubDate>Mon, 28 Aug 2023 00:00:00 GMT</pubDate><category>NextJS</category><category>Firebase</category><category>Auth</category><category>RBAC</category><category>Security</category></item><item><title>AWS Elastic Beanstalk에서 AWS ECS로 docker 백엔드 마이그레이션하기</title><link>https://kmsk99.github.io/post/aws-elastic-beanstalkeseo-aws-ecsro-docker-baegendeu-maigeureisyeonhagi/</link><guid isPermaLink="true">https://kmsk99.github.io/post/aws-elastic-beanstalkeseo-aws-ecsro-docker-baegendeu-maigeureisyeonhagi/</guid><pubDate>Tue, 15 Aug 2023 00:00:00 GMT</pubDate><category>AWS</category><category>ECS</category><category>Docker</category><category>Fargate</category><category>ElasticBeanstalk</category><category>Migration</category><category>DevOps</category><category>CI/CD</category></item><item><title>Firebase Admin SDK 푸시 알림 필터링</title><link>https://kmsk99.github.io/post/firebase-admin-sdk-pusi-allim-pilteoring/</link><guid isPermaLink="true">https://kmsk99.github.io/post/firebase-admin-sdk-pusi-allim-pilteoring/</guid><pubDate>Mon, 19 Jun 2023 00:00:00 GMT</pubDate><category>Firebase</category><category>AdminSDK</category><category>PushNotifications</category><category>Backend</category><category>NestJS</category></item><item><title>Canvas + jsPDF로 인증 문서 자동 생성</title><link>https://kmsk99.github.io/post/canvas-jspdfro-injeung-munseo-jadong-saengseong/</link><guid isPermaLink="true">https://kmsk99.github.io/post/canvas-jspdfro-injeung-munseo-jadong-saengseong/</guid><pubDate>Mon, 19 Jun 2023 00:00:00 GMT</pubDate><category>React</category><category>Canvas</category><category>jsPDF</category><category>PDF</category><category>Automation</category><category>Docs</category></item><item><title>NestJS GraphQL에서 역할 기반 접근 제어 구현하기</title><link>https://kmsk99.github.io/post/nestjs-graphqleseo-yeokal-giban-jeopgeun-jeeo-guhyeonhagi/</link><guid isPermaLink="true">https://kmsk99.github.io/post/nestjs-graphqleseo-yeokal-giban-jeopgeun-jeeo-guhyeonhagi/</guid><pubDate>Mon, 19 Jun 2023 00:00:00 GMT</pubDate><category>NestJS</category><category>GraphQL</category><category>RBAC</category><category>Prisma</category><category>Auth</category><category>Security</category></item><item><title>GitHub Actions와 Docker, Elastic Beanstalk로 통합 배포 자동화하기</title><link>https://kmsk99.github.io/post/github-actionswa-docker-elastic-beanstalkro-tonghap-baepo-jadonghwahagi/</link><guid isPermaLink="true">https://kmsk99.github.io/post/github-actionswa-docker-elastic-beanstalkro-tonghap-baepo-jadonghwahagi/</guid><pubDate>Sun, 21 May 2023 00:00:00 GMT</pubDate><category>GitHubActions</category><category>Docker</category><category>ElasticBeanstalk</category><category>AWS</category><category>CI/CD</category><category>Monorepo</category></item><item><title>react-native-clusterer로 지도 마커 클러스터링</title><link>https://kmsk99.github.io/post/react-native-clustererro-jido-makeo-keulleoseuteoring/</link><guid isPermaLink="true">https://kmsk99.github.io/post/react-native-clustererro-jido-makeo-keulleoseuteoring/</guid><pubDate>Mon, 20 Mar 2023 00:00:00 GMT</pubDate><category>ReactNative</category><category>Maps</category><category>Clustering</category><category>Geo</category><category>Performance</category></item><item><title>공공데이터 위치 정보 전처리</title><link>https://kmsk99.github.io/post/gonggongdeiteo-wichi-jeongbo-jeoncheori/</link><guid isPermaLink="true">https://kmsk99.github.io/post/gonggongdeiteo-wichi-jeongbo-jeoncheori/</guid><pubDate>Thu, 09 Mar 2023 00:00:00 GMT</pubDate><category>DataCleaning</category><category>Geo</category><category>CSV</category><category>Automation</category><category>Firebase</category><category>ReactNative</category></item><item><title>Firestore에서 키워드 인덱싱으로 검색 구현하기</title><link>https://kmsk99.github.io/post/firestoreeseo-kiwodeu-indeksingeuro-geomsaek-guhyeonhagi/</link><guid isPermaLink="true">https://kmsk99.github.io/post/firestoreeseo-kiwodeu-indeksingeuro-geomsaek-guhyeonhagi/</guid><pubDate>Tue, 07 Mar 2023 00:00:00 GMT</pubDate><category>Firebase</category><category>Search</category><category>Firestore</category><category>Indexing</category><category>Backend</category></item><item><title>Firebase 서버리스 위치 기반 앱 구현</title><link>https://kmsk99.github.io/post/firebase-seobeoriseu-wichi-giban-aep-guhyeon/</link><guid isPermaLink="true">https://kmsk99.github.io/post/firebase-seobeoriseu-wichi-giban-aep-guhyeon/</guid><pubDate>Wed, 15 Feb 2023 00:00:00 GMT</pubDate><category>Firebase</category><category>Firestore</category><category>Serverless</category><category>ReactNative</category><category>Maps</category><category>Backend</category></item><item><title>NextJs와 도커 사용시 핫리로드 불가 문제</title><link>https://kmsk99.github.io/post/nextjswa-dokeo-sayongsi-hatrirodeu-bulga-munje/</link><guid isPermaLink="true">https://kmsk99.github.io/post/nextjswa-dokeo-sayongsi-hatrirodeu-bulga-munje/</guid><pubDate>Thu, 28 Apr 2022 10:10:00 GMT</pubDate><category>NextJS</category><category>Docker</category><category>HotReload</category><category>DevEnv</category></item></channel></rss>