All Posts
Thoughts, learnings, and snippets from the journey back to dev.
구글 애드센스 거절당했다 — 콘텐츠 없는 도구 사이트의 현실
애드센스 심사에서 "가치 없는 콘텐츠"로 거절당한 뒤, 도구 사이트에 콘텐츠를 채워 재신청한 과정
WiFi QR 코드 생성기를 만들었다 — AI로 처음 완성한 사이드 프로젝트
손님에게 WiFi 비밀번호 알려주기가 불편해서 만든 QR 코드 생성기 — React + i18n + 인쇄까지
GitHub Actions 자동 커밋이 잔디에 안 심어지는 이유 — KST timezone 설정으로 해결
GitHub Actions가 자동으로 커밋해도 잔디에 반영이 안 되는 timezone 문제. TZ=Asia/Seoul 한 줄로 해결하는 방법을 정리했다.
Android 백그라운드 재생이 왜 이렇게 어렵냐 — Doze, WakeLock, Foreground Service 삽질기
카세트 뮤직 플레이어 앱에서 화면 꺼지면 트랙 전환이 안 되는 버그를 Foreground Service + PARTIAL_WAKE_LOCK으로 해결한 과정
[JobRadar 7편] Google OAuth "Database error" — Supabase 트리거 버그 찾기까지
Google 로그인이 "Database error saving new user"로 계속 실패하는 이유를 찾아 새 프로젝트까지 팠다가, 결국 트리거 함수 한 줄로 해결한 삽질기
[JobRadar 6편] 커버레터 완성, UX 개선, 그리고 로그인 붙이기
커버레터 저장/다운로드/AI재검토, 메모·상태 관리, JD 직접 입력, Supabase Auth까지 하루에 몰아서 만든 이야기
Claude 콘솔 크레딧 구매 버튼이 비활성화될 때 — 결제 안 되는 원인과 해결법
Claude Console에서 결제 정보를 다 입력해도 구매 버튼이 활성화되지 않는 문제. 원인은 언어 전환 시 도시 선택값이 초기화되는 버그였다.
JobRadar 개발기 5편: 자동화의 환상을 버리고 현실적인 파이프라인을 만들었다
Playwright 자동 스크래핑을 포기하고, URL 붙여넣기 → JD 스크래핑 → AI 매칭 → 커버레터 생성까지 이어지는 on-demand 파이프라인을 구축한 과정.
JobRadar 4편: Playwright 버리고 cheerio로 갈아탄 이유 — 4일차 방향 전환기
3일 동안 Playwright와 씨름하다 포기했다. 4일차에 접어들어 방향을 완전히 바꿨다. 자동 수집 대신 URL 기반 on-demand 스크래핑, cheerio + JSON-LD 구현까지.
Claude 고객센터에 이메일 보내는 법 — AI 챗봇 말고 직접 연락하기
Claude support 챗봇이 AI로만 응답할 때, 실제 이메일 티켓을 만들어 사람에게 연락하는 방법을 단계별로 정리했다.
Claude Code 커스텀 에이전트 만들기 — blog-auto-draft로 배우는 실전 세팅
반복 작업을 자동화하는 Claude Code 커스텀 에이전트 만드는 법. blog-auto-draft 예시로 파일 구조부터 호출까지 단계별로 정리합니다.
[클로드 콘솔] 결제 안됨. 조직 삭제하면 안됨!!!
Claude Console Deletion of organization
JobRadar 3편: Vercel에 Playwright 올렸더니 터졌다 — @sparticuz/chromium 삽질기
로컬에서 잘 되던 스크래퍼가 Vercel에만 올리면 터지는 이유. @sparticuz/chromium 도입부터 ETXTBSY, 60초 타임아웃 대응까지 삽질 전 과정.
Claude Code에서 MCP로 Gemini 연결하기 — 토큰 걱정 없이 두 AI 함께 쓰기
Claude Code 안에서 Gemini를 MCP 툴로 연결해 토큰 부담 없이 두 AI를 상황에 맞게 나눠 쓰는 방법을 단계별로 정리합니다.
[JobRadar 2편] Supabase 설계 + Playwright 스크래퍼 — 삽질 기록
JobRadar 2편. Supabase 멀티유저 스키마 설계부터 Indeed · Seek Playwright 스크래퍼 구현까지. Glassdoor 차단, ETXTBSY, 모듈 누락까지 삽질 과정 전부 정리.
Claude Code Hooks — "이 작업 끝나면 자동으로 해줘"를 설정하는 법
파일 저장 시 자동 포맷, 응답 완료 알림, 승인 요청 알림까지 — Claude Code Hooks로 반복 작업을 자동화하는 방법을 단계별로 정리했다.
[JobRadar 1편] 프로젝트 세팅 — 내 취업을 위해 AI 툴을 직접 만들었다
채용공고 자동 수집부터 AI 매칭까지 — JobRadar 사이드 프로젝트 1편. Next.js + Supabase + Vercel 초기 세팅을 단계별로 정리했다.
앱 만들었는데 어떻게 올리지? 구글 플레이 콘솔 등록 처음부터 끝까지
구글 플레이 콘솔에 앱을 처음 등록하는 전체 과정을 단계별로 정리합니다. 개발자 계정 등록부터 AAB 업로드, 심사 제출까지.
[앱 출시] 테스터 12명 모으는 법 — Google Groups를 써야 하는 이유
Google Play 테스트 트랙 등록 시 테스터 12명을 효율적으로 모으는 방법. 이메일 수동 등록 대신 Google Groups를 써야 하는 이유와 순서 정리.
DeepL API 사용법 — Next.js에서 번역 기능 붙이기
DeepL API Free 플랜으로 Next.js 앱에 번역 기능을 붙이는 방법을 단계별로 정리합니다. API 키 발급부터 서버 라우트 구현까지.
GitHub Actions로 블로그 포스트 예약 배포하기
GitHub Actions 워크플로우를 만들어 특정 날짜에 블로그 포스트가 자동으로 발행되도록 설정하는 방법을 실제 구현 경험 기반으로 설명합니다.
2026년 기준 Google Play 콘솔(개발자 계정) 등록 방법
Google Play 콘솔 등록 방법
번역 API 3종 비교 — MyMemory vs DeepL vs Claude, 뭘 써야 할까?
블로그 어드민에 번역 기능을 붙이면서 MyMemory, DeepL, Claude API를 직접 써본 경험을 비교 정리합니다.
React SPA에서 페이지별 title과 meta 태그 바꾸기 — react-helmet-async
SEO작업 중 react-helmet에 대한 설명
앱 테스트시 빠르게 폰에서 하는법 (무선디버깅 사용법)
안드로이드 무선디버깅 하는법
[클로드 코드] 스킬(Skill) 만들고 사용하는 법 — 나만의 슬래시 커맨드
Claude Code에서 반복 작업을 자동화하는 스킬(Skill)을 직접 만들고 사용하는 방법을 실습과 함께 정리합니다.
내 사이트, 구글에서 검색되게 만들기 — Next.js SEO 세팅법
Next.js App Router 기반 블로그에 robots.txt, sitemap.xml, Open Graph, JSON-LD를 추가해서 구글에 노출되는 방법을 실제 작업 기반으로 정리합니다.
[앱] 카세트 플레이어 앱 개발중_02
카세트 테이프 플레이어 앱 개발 일지 02
[앱] 카세트 플레이어 앱 개발중_01
카세트 테이프 플레이어 앱 개발 일지 01
Replit vs Claude Code 초보자에게 좋은 플랫폼은?
Replit과 ClaudeCode를 비교 사용해본 후기.
데이터 근친교배
AI에 의지하는 인간이 작성하는 데이터가 더이상 늘지 않을때....
우리는 도서관에 책 표지를 보러 간다.
[클로드 코드] 효율적으로 빠르게 배울수 있는 클로드코드 스터디 가이드라인
클로드 코드 공부할 방향 및 기본 공부 순서
[AI] Stitch 사용후기
디자인AI 인 Stitch 사용한 후기
[AI_개발시작04] 세션유지하기
작업하다가 네트워크 변경되면, 가끔 세션이 끊어짐.ㅠㅠ
나는 레거시 개발자 였다.
[AI 개발시작_000] AI 개발에 대한 의견 (가이드라인)
AI 개발에 대한 의견 및 생각
[AI 개발시작_003] 다국어 기능 만들기
다국어 기능을 만드는 방법
[AI 개발시작_001] 클로드 코드 시작
ai 클로드 코드로 이 블로그 만들기 시작
[AI 개발시작_002] 이미지 삽입 추가
이미지 삽입기능 추가
40대 다시 개발 시작
이 사이트를 만든 이유