결제하자마자 빨간 timeout이 떴다 — 한 번에 다 만들려다 생긴 일

앱에서 제일 터지면 안 되는 순간이 언제일까요? 저는 사용자가 막 결제를 끝낸 직후라고 생각해요. 돈을 냈는데 결과물이 안 나오면, 그건 단순한 버그가 아니라 신뢰가 깨지는 사고니까요. 그런데 제 안드로이드 앱이 딱 거기서 터졌습니다. 프리미엄 결제 직후 이름 10개 생성을 눌렀더니, 잠시 뒤 폼에 빨간 글씨로 timeout이 떴어요. 등골이 서늘했죠. 더 얄궂었던 건, 무료 기능은 멀쩡했다는 … 더 읽기

AI가 쓴 리포트를 그대로 믿어도 될까 — AI 결과를 다른 AI로 검수하기

제가 만드는 수학 학습 플랫폼에는 AI가 학생의 시험 결과를 분석해 리포트를 자동으로 써주는 기능이 있어요. 편하긴 한데, 쓰다 보니 불안한 마음이 들더라고요. “이 리포트, 그냥 믿고 학부모한테 보내도 되나?” AI는 그럴듯하게 틀리는 데 선수잖아요. 그래서 저는 AI가 쓴 걸 또 다른 AI가 검수하게 만들어봤습니다. 오늘은 그 ‘critic loop’를 붙이면서 챙긴 세 가지 — 편향, 무해한 … 더 읽기

매일 아침 주식 브리핑을 AI 에이전트가 자동으로 — 예약 루틴 만든 이야기

아침마다 환율 보고, 지수 보고, 관심 종목 훑고, 밤새 뜬 공시랑 뉴스까지 챙기는 거 은근히 번거롭잖아요. 저는 이 “매일 똑같이 반복하는 일”을 AI 에이전트 예약 루틴으로 넘겨버렸어요. 정해둔 시각이 되면 에이전트가 알아서 데이터를 모아 채팅에 상세 브리핑을 띄우고, 핵심 요약은 카카오톡으로 쏴줍니다. 오늘은 그걸 어떻게 짰는지, 그리고 예약 루틴을 만들 때 꼭 알아야 할 설계 … 더 읽기

앱을 지웠다 재설치했는데 첫 무료부터 페이월이 떴다 — 범인은 안드로이드 Auto Backup

제 안드로이드 앱은 평생 딱 1회 무료 작명을 줍니다. 그 한 번을 쓰고 나면 유료고요. 그래서 “앱을 지웠다 다시 깔면 무료 1회가 리셋된다”가 제가 정한 설계 규칙이었어요. 그런데 실기기에서 앱을 삭제하고 새로 설치한 직후, 첫 무료 작명을 눌렀더니 대뜸 페이월(유료 안내창)이 떴습니다. “무료 미리보기를 모두 사용했어요.” 방금 깐 앱인데요. 등골이 서늘했죠. 이게 저를 한참 헤매게 … 더 읽기

릴리스 앱 logcat에 내 API 키가 그대로 찍혔다 — 디버그 로깅을 안 끄면 생기는 일

API 키는 비밀번호나 마찬가지예요. 그 키로 남이 내 API를 마음대로 쓰면 요금이 저한테 청구되니까요. 그런데 배포용으로 빌드한 제 앱을 실기기에서 테스트하다가, logcat에 제 API 키가 평문 그대로 찍혀 있는 걸 봤습니다. ?key=AIza… 이렇게요. 등골이 서늘했죠. 원인은 제가 개발 편의로 켜둔 로그 하나를 배포 빌드에서 끄지 않은 것이었어요. 초보가 정말 자주 하는 실수라 정리합니다. 코드 한 … 더 읽기

인앱결제 한 번에 유료 기능이 무한으로 풀렸다 — ‘소비 실패’를 뭉뚱그린 대가

결제 기능은 만들 때 제일 조마조마해요. 돈이 오가니까요. 제가 만드는 안드로이드 앱에 유료 프리미엄 기능을 인앱결제(앱 안에서 구글 결제로 유료 기능을 파는 것)로 붙였는데, 실기기 테스트에서 등골이 서늘한 걸 봤습니다. 결제 한 번으로 프리미엄이 결제 없이 무한 생성되고 있었어요. 흔히 말하는 ‘money leak'(돈이 새는 버그)이죠. 이 앱의 프리미엄은 “결제 1건당 프리미엄 1회”인 1회권이에요. 그러니 한 … 더 읽기

AI가 코드를 바로 안 고치고 먼저 하던 일 — 맡기기 전에 ‘판’부터 깔기

AI 코딩 도구한테 “이 기능 좀 고쳐줘” 하고 일을 맡겼는데, 얘가 코드를 바로 안 건드리는 거예요. 대신 프로젝트 문서부터 주르륵 읽더니, 파일 이름 규칙을 먼저 정하고 있더라고요. 처음엔 “빨리 고치기나 하지 뭐 하나” 싶었는데, 지켜보니 이게 초보인 제가 자꾸 건너뛰던 습관이었어요. 오늘은 그 두 가지를 정리해 봅니다. 버그 잡는 이야기는 아니고, AI랑 일할 때 시작 … 더 읽기

AI가 앱 화면을 보고 고치게 하는 법 — ‘한 번에 하나씩’을 버리고 묶음 루프로

앱을 만들다 보면 화면을 정말 많이 손봅니다. 버튼이 조금 붙어 있어서 띄우고, 글자가 잘려서 줄이고, 색이 안 맞아서 바꾸고… 저는 이걸 AI한테 시킬 때 늘 한 번에 하나씩 했어요. “이 버튼 간격 좀 띄워줘” → 빌드해서 확인 → “이번엔 글자 크기 줄여줘” → 또 빌드 → 확인. 이 왕복이 생각보다 느립니다. 그런데 이번에 재밌는 일이 … 더 읽기

두 프로그램이 같은 파일을 동시에 건드리면 — 덮어쓰기 사고와 ‘쓰기 전에 다시 읽기’

제 개발 기록(devlog)을 이제 한 도구만 쓰는 게 아니라 여러 AI 에이전트가 같은 파일에 나눠 씁니다. 편해진 만큼 새 걱정이 생겼어요. “둘이 같은 파일에 동시에 쓰면 어떻게 되지?” 이번에 그 사고를 미리 막는 규칙을 넣으면서, 초보도 언젠가 꼭 만나는 함정이라 정리해 둡니다. 버그를 잡은 무용담은 아니고, 사고가 나기 전에 막는 이야기예요. 같은 파일을 둘이 동시에 … 더 읽기

굵게가 안 먹고 별표가 그대로 보인다면 — 한국어 마크다운의 숨은 함정

블로그 글을 마크다운으로 쓰다 보면 이런 일을 겪습니다. 분명히 별표 두 개로 감싸서 굵게를 만들었는데, 발행하고 보니 글에 별표가 그대로 ** 이렇게 노출돼 있어요. 굵게는 안 먹고요. 마크다운(Markdown): 글에 서식을 주는 간단한 문법. **단어**처럼 별표 두 개로 감싸면 굵게가 됩니다. 더 당황스러운 건, 어떤 줄에서만 이런다는 겁니다. 같은 방식으로 썼는데 대부분은 멀쩡하고 특정 줄만 깨져요. … 더 읽기