본문 바로가기

1인기업

요금 폭탄의 공포, Gemini API 비용 제어와 할당량 관리 블로그 자동화 파이프라인의 완성도를 높이기 위해 Gemini API를 연동한 직후, 저는 예상치 못한 두려움에 직면했습니다. 무한 루프나 시스템 버그가 발생할 경우, 자는 동안 수천 번의 API가 호출되어 막대한 비용이 청구될 수 있다는 불안감이었습니다.우리가 흔히 접하는 챗봇 UI를 통해 질문을 던질 때는 내가 직접 입력하고 결과를 기다리는 구조이므로 과도한 호출이 일어날 일이 없습니다. 하지만 파이썬 코드로 API를 연동하여 백그라운드 스케줄러에 물려놓은 순간 이야기는 완전히 달라집니다. 단 하나의 논리적 오류(Logic Error)나 무한 루프(Infinite Loop) 버그가 발생하면, 컴퓨터는 1초에도 수십 번씩 API 서버에 요청을 때릴 수 있기 때문입니다.비용 폭탄의 두려움을 느끼는 파이선생.. 더보기
티스토리 자동화 중 발생한 마크다운 파싱 오류와 정규식(Regex) 복구 로직 이번 글에서는 파이썬 기반으로 티스토리 자동 포스팅 봇을 운영하던 중 발생한 치명적인 '마크다운 파싱 오류'와 이를 정규식(Regex)으로 해결한 과정을 기록합니다. 자동화 시스템이 뱉어낸 반쪽짜리 원고에 당황했던 경험이 있다면, 이 트러블슈팅 과정을 주목해 주시기 바랍니다.완벽할 줄 알았던 포스팅 봇의 배신수십 줄의 코드를 작성하고 여러 번의 테스트를 거쳐 티스토리 자동 포스팅 파이프라인의 뼈대를 완성했습니다. 하지만 기쁨도 잠시, 봇을 가동하여 새로운 원고를 주입하자마자 에디터 화면을 보고 두 눈을 의심했습니다. 분명히 제가 넘겨준 원고는 기승전결이 갖춰진 긴 글이었는데, 정작 티스토리 에디터에는 글이 중간까지만 적히다 말고 뚝 끊겨 있었기 때문입니다.마치 누군가 가위로 문서를 싹둑 자른 것처럼 기괴.. 더보기
AI가 자꾸 기억을 잃어버린다: mem0 도입과 기억 상실 해결기 AI가 자꾸 기억을 잃어버린다: mem0 도입과 기억 상실 해결기AI 서비스에 장기 기억을 부여하려다 예상치 못한 기억 혼동 버그를 마주쳤다. mem0 라이브러리를 도입해 유저 데이터를 저장하는 코드는 동작했지만, AI는 저장된 기억을 업데이트하지 못하고 서로 충돌하는 정보를 동시에 물고 수습없는 답변을 내놓았다. 원인과 해결에 이르는 과정을 기록한다.Mem0 라이브러리를 활용하여 AI 에이전트의 단기/장기 메모리를 관리하는 코드 스니펫위 화면은 mem0가 검색한 과거 기억 중 상충하는 두 기억("1년 전 피자 좋아함"vs"어제부터 다이어트 시작이라고 함")이 LLM에 동시에 주입된 비정상 응답의 예시다. 답이 엉뚱하게 돌아가는 이유가 한 문장으로 설명된다."어제 한 말을 오늘 또 물어보네요."인공지능 .. 더보기
자동화 블로그의 첫 수익화 세팅, 그리고 처참한 실패와 복구 기록 자동화 블로그의 첫 수익화 세팅, 그리고 처참한 실패와 복구 기록블로그 자동화 파이프라인에 애드센스 수익화를 붙이려다 검색 엔진 페널티를 맞은 경험과 복구 과정을 담았다.청구서가 쏘아 올린 수익화의 꿈자동화 파이프라인이 안정화되면서 검색 엔진에 인덱싱되는 글이 하루가 다르게 늘어났다. 구글 서치 콘솔의 그래프가 아름다운 우상향을 그리는 것을 보며 성취감에 젖어 있던 것도 잠시, 현실적인 문제가 수면 위로 떠올랐다. 바로 매달 청구되는 클라우드 서버 비용과 API 사용료였다. 트래픽이 늘어날수록 유지 유지비용도 정비례해서 증가하고 있었다.이제는 이 자동화 시스템이 스스로 제 밥값을 벌어오게 만들어야 할 타이밍이었다. 그동안 구축해 둔 파이프라인에 구글 애드센스(AdSense) 광고와 제휴 마케팅 링크를 자.. 더보기
유튜브 모니터링 텔레그램 알림 봇, 중복 메시지 폭탄을 해결하기까지 유튜브 모니터링 텔레그램 알림 봇, 중복 메시지 폭탄을 해결하기까지매일 아침 반복되는 리서치 업무를 코드로 해결하려던 시도와, 그 과정에서 겪은 에러 해결기를 정리했다.유튜브 API 연동 코드 작업 화면위 화면은 텔레그램 봇이 유튜브 새 영상을 확인하고 전송하도록 짜인 초기 파이썬 코드다. 이 코드는 정상적으로 작동하는 것처럼 보였지만, 곧 서버에 치명적인 문제를 일으켰다.💡 발단: 매일 아침 30분, 반복 업무를 없애고 싶었다사업을 운영하다 보면 업계 트렌드를 기민하게 파악하는 것이 필요적입니다. 저 역시 매일 아침 업무 시작 전, 유튜브에 핵심 키워드를 검색해 경쟁사 동향과 신기술 트렌드를 파악하는 것이 중요한 일과였습니다. 방대한 정보가 모이는 유튜브는 훌륭한 리서치 채널이었기 때문입니다.하지만 .. 더보기
긴 글 작성의 함정: AI의 5000자 출력 한계를 마주하다 긴 글 작성의 함정: AI의 5000자 출력 한계를 마주하다이 현상을 마주하고 분석하는 과정은 AI 활용의 한계를 깨닫게 해 준 중요한 계기가 되었다.위 화면은 AI가 긴 글을 작성하다가 문장을 채 완성하지 못하고 강제로 출력이 끊긴 모습이다. 서버 에러도, 네트워크 오류도 아닌 이 현상의 원인을 밝혀야만 했다."엔터 한 번에 A4 3장 분량의 안정적인 리포트가 나올까?"회사를 운영하다 보면 가장 품이 많이 드는 일 중 하나가 '깊이 있는 텍스트'를 생산하는 것입니다. 고객을 설득하는 상세한 서비스 소개글, 기술적 인사이트를 담은 전문 블로그 포스팅, 그리고 논리 정연한 기획서까지. 비즈니스의 가치를 제대로 전달하려면 짧은 카피라이팅을 넘어 호흡이 긴 웰메이드 콘텐츠가 반드시 필요합니다.하지만 늘 그렇듯.. 더보기
파이썬만으로 프론트엔드 만들기: 스트림릿(Streamlit) 도입 고군분투기 파이썬만으로 프론트엔드 만들기: 스트림릿(Streamlit) 도입 고군분투기파이썬 스크립트를 웹으로 쉽게 변환할 수 있다는 스트림릿의 장점 이면에는 상태 관리라는 독특한 패러다임이 숨어 있었다. 이를 이해하지 못해 겪은 무한 새로고침의 늪과 해결 과정을 정리한다.위 화면은 스트림릿으로 구현한 초기 웹 애플리케이션에서 상호작용 시 값이 초기화되는 현상을 캡처한 것이다. 버튼을 누를 때마다 화면이 초기화되는 이 오류는, 스트림릿의 렌더링 구조를 훌륭하게 이해하기 전까지 나를 끊임없이 괴롭혔다.터미널의 벽을 허물기 위한 선택최근 사내 업무 효율화를 위해 데이터 처리용 파이썬 스크립트를 여러 개 작성했다. 터미널 환경에 익숙한 개발자에게는 그저 명령어 한 줄이면 끝날 일이었지만, 비개발 직군 팀원들에게 까만 콘.. 더보기
LLM과 Pydantic: 프롬프트 대신 코드 레벨에서 JSON 에러 잡기 LLM과 Pydantic: 프롬프트 대신 코드 레벨에서 JSON 에러 잡기LLM(대규모 언어 모델)에게 JSON 형태로 출력을 요구할 때 흔히 겪는 파싱 에러와 이를 해결하기 위한 과정이다. 단순히 프롬프트를 튜닝하는 것을 넘어, 코드 레벨에서 구조적인 검증을 통해 시스템의 안정성을 높여야 한다는 깨달음을 얻었다.위 화면은 LLM에게 프롬프트로 엄격하게 형식을 지시했음에도 불구하고 잘못된 응답을 반환하여 시스템 에러가 발생한 상황을 보여주는 예시다. LLM의 자유도를 통제하지 못하면 파이프라인 전체가 무너질 수 있음을 보여준다.프롬프트 한 줄이면 JSON이 예쁘게 나올 줄 알았다최근 인공지능을 활용해 다양한 비정형 텍스트 데이터를 분석하고, 이를 서비스 데이터베이스에 맞게 구조화하는 파이프라인 구축을 시.. 더보기