All Posts
Thoughts, learnings, and snippets from the journey back to dev.
Supabase Free 사용 제한
Supabase 무료 사용 제한 내용
에이전트 활용 방법 및 생성
AI 에이전트 블로그에서 활용하기
[정보] 모바일 신분증을 활용한 블록체인 & AI 해커톤
모바일 신분증을 활용한 블록체인 & AI 해커톤 지원할까?
Ollama 사용후기 (각 모델별 사용 느낌)
각 모델별 사용후기 — DeepSeek, EXAONE, QWEN 비교
Ollama 설치 및 로컬 AI 시작하기
로컬 AI 사용을 위한 Ollama 설치와 모델 선택 가이드
구글 플레이스토어 앱 등록 A-Z — 스크린샷으로 전 과정 정리
앱 생성부터 비공개 테스트 통과까지, 구글 플레이 콘솔의 전 과정을 스크린샷으로 정리한 실전 가이드
[에세이] 학습이 되어 간다
블로그 시작 7주 차, 이것저것 만들다 보니 어느새 AI 개발 공부에 빠져 있었다
Google AdSense Rejected Me — The Reality of a Tool-Only Site
After being rejected for "low value content," I expanded content and reapplied to AdSense on a WiFi QR code generator site
I Built a WiFi QR Code Generator — My First Completed Side Project with AI
A WiFi QR code generator I made because sharing passwords to guests was annoying — React + i18n + print support
Why GitHub Actions Commits Don't Show on Your Contribution Graph — Fix with KST Timezone
The timezone issue where GitHub Actions auto-commits don't appear on the contribution graph. One line — TZ=Asia/Seoul — fixes it.
Claude Code, 대화가 길어질수록 느려지는 이유와 /clear 활용법
Claude Code에서 context가 쌓이면 왜 느려지고 비싸지는지, /clear로 어떻게 해결하는지 실용적으로 정리
Obsidian Git 모바일 설정 — 안드로이드에서 GitHub 동기화하기
안드로이드에서 Obsidian Git 플러그인으로 GitHub 레포를 클론하고 자동 동기화까지 설정하는 방법
Obsidian Git 플러그인 설정하다가 xcrun 에러 만난 이야기
Obsidian을 GitHub에 연결하고 Git 플러그인을 설정하는 과정에서 만난 xcrun 에러 해결법
Supabase service role로 멀티 유저 앱 만들다 터진 데이터 격리 버그들
RLS 없이 service role 클라이언트만 쓸 때 빠지기 쉬운 데이터 격리 함정 4가지와 해결법
Why Is Android Background Playback So Hard — Doze, WakeLock, and Foreground Service
How I fixed a bug where track transitions stopped working when the screen turned off in a cassette music player app, using Foreground Service + PARTIAL_WAKE_LOCK
[JobRadar Part 7] Google OAuth "Database error" — Down the Supabase Trigger Rabbit Hole
Google login kept failing with "Database error saving new user" — I dug all the way to creating a new Supabase project before finding the fix was one line in a trigger function
[JobRadar Part 6] Cover Letters Done Right, UX Polish, and Adding Login
Cover letter save/download/AI review, memo and status management, direct JD input, and Supabase Auth — everything built in one day
Claude Code로 블로그 운영하는 법 — 작성부터 예약 배포까지 자동화
포스트 작성, 번역, 등록, 예약 배포까지 Claude Code와 함께 블로그를 운영하는 전체 워크플로우를 정리했다.
[Claude Console] Buy Credits button is disabled - Causes and solutions for not checking out
In the Claude Console, the Buy button would not activate even after all payment information was entered. The cause was a bug that reset the city selection when switching languages.
JobRadar Part 5: Dropping the Automation Fantasy and Building a Practical Pipeline
After giving up on Playwright auto-scraping, I built an on-demand pipeline — URL paste → JD scraping → AI matching → cover letter generation — over two days.
JobRadar Part 4: Why I Ditched Playwright for cheerio — The Day-4 Pivot
After three days fighting Playwright, I gave up. On day 4, I completely changed direction — from auto-collection to URL-based on-demand scraping, using cheerio + JSON-LD.
How to Email Claude Support — Bypassing the AI Chatbot
When Claude support only gives you AI responses, here's the step-by-step process to create a real email ticket and reach an actual person.
Building a Claude Code Custom Agent — A Practical Guide with blog-auto-draft
How to create Claude Code custom agents to automate repetitive tasks. A step-by-step walkthrough using blog-auto-draft as a real example, from file structure to invocation.
[Claude Console] Payment Broken. DO NOT Delete Your Organization!!!
Claude Console organization deletion accidentally deleted the account — a cautionary tale
JobRadar Part 3: Deploying Playwright to Vercel Blew Up — The @sparticuz/chromium Journey
Why a scraper that ran fine locally kept exploding on Vercel. From @sparticuz/chromium adoption to ETXTBSY, 60-second timeouts, and everything in between.
Connecting Gemini to Claude Code via MCP — Using Two AIs Without Token Anxiety
A step-by-step guide to connecting Gemini as an MCP tool inside Claude Code, so you can delegate token-heavy tasks to Gemini without leaving your workflow.
[JobRadar Part 2] Supabase Schema + Playwright Scraper — Debugging Notes
JobRadar part 2. From Supabase multi-user schema design to Indeed and Seek Playwright scraper implementation. Glassdoor blocks, ETXTBSY, missing modules — all the pain points documented.
Claude Code Hooks — Automate Tasks When Claude Finishes
Auto-format on save, response completion alerts, approval request notifications — a step-by-step guide to automating repetitive tasks with Claude Code Hooks.
[JobRadar Part 1] Project Setup — I Built an AI Tool to Help Me Find a Job
From automated job scraping to AI matching — JobRadar side project part 1. A step-by-step walkthrough of the initial Next.js + Supabase + Vercel setup.
I Built an App — Now How Do I Publish It? Google Play Console from Start to Finish
A step-by-step walkthrough of publishing an app on Google Play Console for the first time — from developer account registration to AAB upload and review submission.
[App Launch] How to Gather 12 Testers — Why You Should Use Google Groups
How to efficiently recruit 12 testers for a Google Play test track. Why Google Groups beats manual email registration, and the exact order of steps that actually works.
DeepL API Integration — Adding Translation to a Next.js App
A step-by-step guide to adding translation functionality to a Next.js app using the DeepL API Free plan. From getting an API key to building a server-side route.
Scheduled Blog Post Publishing with GitHub Actions
How to set up a GitHub Actions workflow that automatically publishes blog posts on a specified date — based on a real implementation experience.
How to Register a Google Play Developer Account (2026 Guide)
A complete step-by-step guide to creating a Google Play Console developer account and completing identity verification as of 2026.
Comparing 3 translation APIs - MyMemory vs DeepL vs Claude, what should I use?
I'm comparing and contrasting my experience with MyMemory, DeepL, and Claude APIs while adding translation functionality to my blog admin.
Changing Page Title and Meta Tags per Page in React SPA — react-helmet-async
How to dynamically control title and meta tags per page in a React SPA using react-helmet-async for better SEO.
Wireless ADB Debugging — Install APKs Without a Cable
How to set up wireless ADB debugging between a MacBook and an Android device. Install APKs over Wi-Fi with a single command — no USB cable needed.
[Claude Code] How to Create and Use Skills - Your Own Slash Commands
Learn how to create and use Skills to automate repetitive tasks in Claude Code with hands-on exercises.
Getting Your Site on Google — Next.js SEO Setup Guide
How to add robots.txt, sitemap.xml, Open Graph, and JSON-LD to a Next.js App Router blog to get it indexed on Google — based on a real implementation.
[App] Developing Cassette Player App_02
Cassette Tape Player App Development Journal 02
[App] Developing Cassette Player App_01
Cassette tape player app development journal 01
What is a good platform for beginners to Replit vs Claude Code?
Reviews comparing Replit and ClaudeCode.
Data inbreeding
When the data produced by AI-dependent humans stops growing, what happens to AI?
We go to the library to look at book covers.
[Claude Code] Claude Code Study Guidelines to Learn Efficiently and Quickly
Claude Code The direction to study and the basic study sequence
[AI] Stitch review
Reviews using Design AI in Stitch
[AI_StartDevelopment04] Maintain Session
If the network changes while working, the session is sometimes broken.: (
I was a legacy developer.
[Start AI Development_000] Opinion on AI Development (Guidelines)
Comments and Thoughts on AI Development
[AI development start_003] Create multilingual features
How to create multilingual features
[AI Start_001] Claude Code Start
start creating this blog with ai clod code
[AI Start Development_002] Add Image
Add image embedding feature
Re-development started in the 40s
Why did you create this site?