릴리스 앱에 박힌 API 키 회전 — 서버 키는 바꾸고 Gemini 구키는 놔뒀다, «바꿨다»와 «반영됐다»는 다른 명제였다 (dex 검사표·회전 순서·Vercel Redeploy)

릴리스 앱에 박힌 Gemini API 키를 회전하다 — «바꿨다»와 «반영됐다»는 다른 명제였다 (dex 검사표·회전 순서·Vercel Redeploy)

미리 3줄로 보면 증상: 지난 글에서 새어 나온 그 Gemini 키가 배포된 앱 파일(dex) 안에 평문으로 들어 있었고, 새 것으로 바꾸는 «회전»을 해야 했습니다 원인: 앱이 Gemini와 사주 서버를 직접 부르느라 키를 품은 구조. 그리고 회전 중 함정 — 서버 환경변수를 «바꿨는데» 구키가 여전히 통했습니다. 저장과 반영은 다른 일이었습니다 해결: 새 빌드는 게이트웨이만 부르게 하고 … 더 읽기

AI 노래 만들기 — 제미나이 음악 모드로 6살 아들의 «싫어! 싫어!»를 1분 30초 락송으로 만든 이야기 (프롬프트 전문)

AI 노래 만들기 — 제미나이 음악 모드로 6살 아들의 «싫어! 싫어!»를 1분 30초 락송으로 만든 이야기 (프롬프트 전문)

미리 3줄로 보면 뭘 만드나: 아이의 요즘 말버릇 몇 줄을 제미나이(Gemini) 앱의 «음악» 모드에 넣어 1분 30초짜리 락 후크송 한 곡을 만듭니다. 악기도, 작곡 지식도, 코드도 필요 없습니다 난이도: 프롬프트 한 장. 이 글에 제가 쓴 프롬프트 전문과 결과 곡 두 개의 공유 링크가 있습니다 겪은 것: 프롬프트의 한 줄(«엄마의 계란말이»)이 곡 제목이 돼 튀어나왔고, … 더 읽기

빈칸을 58점으로 채우던 리포트 — AI가 지어낸 기본값 9종을 걷어낸 밤

빈칸을 58점으로 채우던 리포트 — AI가 지어낸 기본값 9종을 걷어낸 밤

미리 3줄로 보면 증상: 학습 리포트가 늘 그럴듯하게 나왔습니다. 그런데 기록이 없는 주의 요약 점수가 항상 58점이었어요 — 계산된 게 아니라 코드에 박힌 상수였습니다 원인: AI와 빠르게 만든 코드 곳곳에 “값이 없으면 이걸로” 기본값이 심겨 있었습니다. 58점, 90분, 출석률 100%, 품질 4점, 지속성 70, 이해도 3… 전부 근거 없이 채워진 숫자였어요 해결: 결측은 결측으로(null) 남기고, … 더 읽기

클로드 자동화 입문 — 예약 작업 하나로 평일 아침 8시 한국 주식 브리핑을 카카오톡으로 받는 법 (지침 전문 포함)

클로드 자동화 입문 — 예약 작업 하나로 평일 아침 8시 한국 주식 브리핑을 카카오톡으로 받는 법 (지침 전문 포함)

미리 3줄로 보면 뭘 해결하나: 아침마다 지수·환율·공시·뉴스를 찾아보는 일을 Claude 데스크톱 앱의 «예약 작업» 하나로 대신합니다. 평일 8시에 카카오톡 200자 요약, 전문은 구글 드라이브에 설치 난이도: 코드 0줄. «새 작업»에 지침 한 장 붙여 넣고 커넥터 두 개 켜면 끝. 지침 전문은 이 글에 있습니다 겪은 함정 3개: 옛 작업은 편집으로 클라우드 실행으로 못 바꿈(새로 … 더 읽기

AI 팀에 “내 승인 없이 끝까지”라고 했더니 — 계획 AI의 첫 회신이 보안 경고였다

미리 3줄로 보면 증상: 자기 전에 AI 팀(계획 모델 + 실행 모델 + 보조 에이전트)에게 “내 승인 없이 끝까지 해라”라고 위임했더니, 계획 AI의 첫 회신 맨 위에 도구의 보안 경고가 떠 있었습니다 — “검증되지 않은 승인 권한으로 머지를 지시한다”고요 원인: 사람이 대화창에서 한 위임을 도구의 안전장치는 검증하지 못했습니다. “누가 승인하나”는 문장이 아니라 문서(머지 매트릭스)에 있어야 … 더 읽기

만드는 AI와 검수하는 AI, 핸드오프 문서 하나로 굴러가는 루프 구축기 — 새 파이프라인이 이틀 만에 선 이유

미리 3줄로 보면 하려던 것: 새 콘텐츠 파이프라인을 세우되, 기획한 AI가 자기 기획을 검수하는 구조는 피하고 싶었습니다 만든 것: 만드는 AI와 검수하는 AI가 복사·붙여넣기 전달 없이 핸드오프 문서로 일을 주고받는 루프(문서 규격은 전부터 쓰던 것) — 기획안 → 검수 회신(GO + 조건) → 스캐폴드 11파일 → 최종 검수까지 이틀 배운 것: 백미는 검수 AI의 “결과는 … 더 읽기

AI에게 새 채널 기획을 맡겼더니 기존 컨셉 복사판이 왔다 — 머릿속의 “~와는 다른”은 프롬프트에 없었다

미리 3줄로 보면 증상: AI에게 새 콘텐츠 채널 기획을 맡겼더니, 지금 운영 중인 채널의 컨셉을 그대로 씌운 기획안이 왔습니다 — 머릿속엔 “기존과는 별개”가 분명했는데요 원인: 그 “~와는 다른”이 프롬프트에 문장으로 적혀 있지 않았습니다. 대조 구문 속의 암시였고, 적히지 않은 부정형 조건은 AI에게 없는 조건이었어요 해결: 정정 2회 + 레퍼런스를 다시 읽히자 기획이 제자리를 찾았고, 이어서 … 더 읽기

AI 에이전트 무인 루틴이 죽는 3가지 방식 — 세 번의 실행, 세 가지 다른 고장에서 배운 폴백 설계

먼저 밝혀둡니다 이 글은 자동화 시스템을 만든 경험을 공유하는 것으로, 특정 종목·투자에 대한 추천이나 권유가 아닙니다. 브리핑의 시세는 지연·오차가 있을 수 있으며, 투자 판단과 그 결과에 대한 책임은 투자자 본인에게 있습니다. 미리 3줄로 보면 증상: 아침마다 저절로 도는 AI 브리핑 루틴이 사흘 사이 세 번의 실행에서, 매번 다른 이유로 의도한 데이터를 온전히 담지 못했습니다 — … 더 읽기

Claude Code 서브에이전트 감사단 — 초록불 코드베이스에서 숨은 결함 201건을 찾아낸 5가지 검사

미리 3줄로 보면 뭘 해결하나: strict 타입체크가 통과하는데도 완성된 채 죽어 있는 기능이 쌓이는 문제 — 초록불은 “틀리지 않았다”지 “살아 있다”가 아닙니다 방법: 결함을 5가지 패턴으로 정의하고, 패턴마다 전담 AI 서브에이전트(큰 부류는 영역별로 쪼개서)를 병렬로 돌립니다 실제 결과: 하룻밤 다섯 부류 합계 발견 201건 — 죽은 산출 41건, 이름이 통째로 어긋난 스키마, 한 번도 돌 … 더 읽기

같은 날 API 키를 바꿨는데 임포트가 전부 504 — 범인은 gemini-pro-latest 별칭이었다

미리 3줄로 보면 증상: 낮까지 되던 AI 자료 임포트가 저녁부터 전부 504로 죽었습니다. 코드도 배포도 그대로 — 그날 바꾼 건 API 키뿐이라 키를 의심했어요 원인: 키는 무죄. gemini-pro-latest 별칭이 가리키는 모델이 바뀌어 같은 호출이 307초까지 걸렸고(고정 ID 모델은 15초), 함수 실행 제한 60초에 걸려 매번 죽은 것 해결: 모델을 별칭이 아닌 고정 ID로 박고, 생각 … 더 읽기