docker system prune이 배포를 망친 날
GitHub Actions 배포가 갑자기 실패했다. 에러: failed to get destination image "sha256:454ddd...": No such image: sha256:454ddd... 전날까지 잘 되던 배포가 왜? 원인 deploy.yaml 빌드 스텝 마지막에 이게 있었다: docker system prune -f ...
GitHub Actions 배포가 갑자기 실패했다. 에러: failed to get destination image "sha256:454ddd...": No such image: sha256:454ddd... 전날까지 잘 되던 배포가 왜? 원인 deploy.yaml 빌드 스텝 마지막에 이게 있었다: docker system prune -f ...
ArgoCD를 Helm 기반 GitOps로 전환하고 나서, sync가 끝없이 실패했다. 에러 메시지는 전부 이거: Operation cannot be fulfilled on deployments.apps "backend-unified": the object has been modified; please apply your changes to the ...

자꾸 헷갈려서 정리한다. 코드, 매니페스트, Helm 차트가 각각 뭐고 배포가 어떻게 돌아가는지. 세 가지 개념 코드 = 앱 로직 (Python, TypeScript) 매니페스트 = 운영 설정 (몇 개 띄울지, 메모리, 환경변수, 이미지 태그) Helm 차트 = 매니페스트를 템플릿으로 관리하는 도구 코드가 “뭘 하는지”...

기존 UX: 성경 책 선택 → 장 번호 → 절 번호 → 묵상 작성. 성경을 잘 아는 사람에겐 괜찮지만, “오늘 뭘 묵상하지?”에서 시작하는 대부분의 사용자에겐 진입장벽이다. 대화형 UI 카카오톡처럼, 봇이 질문하고 사용자가 선택지를 고르는 방식으로 바꿨다: 🤖 "어떤 말씀을 묵상하고 싶으세요?" [마음이 이래요] [이런 상황이에요] [교회...

AI 이미지 생성은 장당 $0.04다. 완전 무료면 남용되고, 유료만이면 진입 장벽이 높다. 기독교 서비스니까 “크레딧 충전해주세요” 같은 직접적인 돈 얘기도 피하고 싶었다. 만나 — 출애굽기 16장에서 이스라엘 백성이 광야에서 매일 아침 하늘에서 만나를 거뒀다. 하루치만 거둬야 하고, 다음 날로 남기면 상했다. 이 비유를 그대로 토큰으로...
카드 이미지에 워터마크가 필요했다. 두 가지 방법이 있다: A. 저장 시 박기: 워터마크를 영구 새김 B. 서빙 시 찍기: 원본 유지, 요청 시마다 실시간 적용 A는 간단하지만, 디자인 변경 시 200장+ 재처리해야 하고 원본이 손상된다. 프리미엄 사용자에게 워터마크 없는 버전을 줄 수도 없다. B(on-the-fly)를 선택했다. ...
이미지 풀 208장, 각 150~300KB. 슬라이드에서 6장 동시 로드하면 1MB+. 모바일에서 체감 1초씩 기다렸다. 용도별 해상도 분리 용도 해상도 용량 동시 로드 슬라이드 (선택지) 256px ~12KB 6장 =...

이미지 풀 100장+가 필요한데, DALL-E API는 장당 $0.04다. 개발 중에 매번 실제 이미지를 생성하면 비용이 누적된다. 해결: Pillow 플레이스홀더 검정 배경에 프롬프트 텍스트를 렌더링한 더미 이미지를 만들었다: from PIL import Image, ImageDraw, ImageFont def create_placeholde...

같은 “시편 23편”이라도 사람마다 떠올리는 이미지가 다르다. 푸른 목초지를 떠올리는 사람도 있고, 잔잔한 물가를 떠올리는 사람도 있다. 208장의 이미지 풀에서 묵상에 가장 어울리는 이미지를 자동으로 골라주는 시스템을 만들었다. 3축 태깅 모든 이미지에 3가지 축으로 태그를 부여했다: 축 설명 예...

BibleCardAI의 이미지 풀을 만들기 위해 DALL-E 3로 200장 넘게 생성하고 검수했다. 10개 테마 × 10장 + 말씀 특화 69장 + 감정/상황 39장 = 208장. 비용은 장당 $0.04, 재생성 포함 총 약 $10. 그 과정에서 정리된 원칙들. 필수 프롬프트 뼈대 warm soft pastel tones, loose brushs...