반응형 전체 글68 서버 한 대로 무중단 배포하기: Caddy 헬스체크가 못 막는 502 이미지 편집 엔진 서버 한 대로 무중단 배포하기: Caddy 헬스체크가 못 막는 502 상태 위치 조사부터 재시도 설정까지, 실측 557건으로 확인한 절차 핵심 요약 무중단의 전제는 서버 대수가 아니라 상태의 위치다. 상태를 안 가진 계층만 교체할 수 있고, 그 계층만 골라내면 VPS 한 대로도 된다. 인스턴스를 둘 띄우되 로드밸런싱은 하지 않는 선택도 정당하다. 프로세스 메모리에 사는 것(요청 한도 카운터 등)이 있으면 트래픽을 나누는 순간 그 값이 두 배가 된다. 헬스체크만으로는 못 막는 구간이 원리적으로 남는다. 관찰이 주기적이기 때문이다. 롤링 중 555번 중 3번이 502였다. 연결 실패에만 재시도를 걸어 그 구간을 덮었다. 재측정 557번 중 실패 0,.. 2026. 8. 24. Docker 메모리 한도를 감으로 정하지 않는 법: 최악 입력과 RSS 기울기 이미지 편집 엔진 Docker 메모리 한도를 감으로 정하지 않는 법: 최악 입력과 RSS 기울기 가끔 죽는 컨테이너에서 시작해 한도를 실측으로 다시 잡기까지 핵심 요약 간헐 장애는 재현하려 하지 말고 흔적을 찾는다. 자동 복구가 로그를 지우는 동안에도 재시작 카운터는 쌓인다 — 그게 restarts=3을 가리켰다. 재보지 않으면 손에 있던 픽스처가 한도를 정해 버린다. 먼저 정할 것은 "시스템이 받아들이는 가장 무거운 입력"이고, 입력 제약이 여러 개면 그 지점은 어느 한 상한이 아니라 상한들이 함께 걸리는 모서리에 있다. 올릴지 고칠지는 값이 아니라 기울기로 가른다. 재시작 후 같은 작업을 여러 건 넣고 RSS를 찍어 평평하면 한도 상향이 해결, 우상향이면 시간 벌기.. 2026. 8. 24. CI가 초록인데 라이브가 깨졌다: 배포 검증을 어디서 끝낼 것인가 이미지 편집 엔진 CI가 초록인데 라이브가 깨졌다: 배포 검증을 어디서 끝낼 것인가 각 신호가 실제로 증명하는 것, 그리고 자동화가 멈춰야 하는 지점 핵심 요약 테스트 189개, config 검증, 헬스체크, 필수값 가드가 전부 초록인 채로 법적 고지가 깨져서 배포됐다. 넷 다 정상 동작했다 — 각자 다른 것을 증명하고 있었을 뿐이다. 설정값이 여러 파일을 건널 때 중간이 끊겨도 아무것도 실패하지 않는다. 빌드는 성공하고 컨테이너는 뜬다. 이 경계에는 타입 검사에 해당하는 것이 없다. 검사를 만들어 두는 것으로 끝나지 않는다. 실행되지 않는 검사는 없는 검사보다 나쁘다 — 있다고 믿는 만큼 확인을 덜 하기 때문이다. 그래서 배포 마지막에 라이브 페이지를 직접 긁게.. 2026. 8. 24. AI가 만든 JSON이 계속 퇴짜맞을 때: LLM 호출을 75% 줄인 세 가지 처방 LLM 프로덕트 엔지니어링 AI가 만든 JSON이 계속 퇴짜맞을 때: LLM 호출을 75% 줄인 세 가지 처방 PydanticAI 구조화 출력 · 검증-재시도 루프 최적화 실측 기록 핵심 요약 자연어를 복잡한 트레이딩 전략 JSON으로 바꿔주는 AI 기능이, 간단한 요청 하나에 131초 · LLM 호출 8회를 쓰고 있었다. 범인은 모델이 아니라 검증 실패 → 전체 재생성(retry) 루프였다. 처방 세 가지: ① 프롬프트에 완전한 동작 예제 JSON(규칙 목록 10줄보다 효과적) ② 흔한 파라미터는 quick reference로 인라인(불필요한 도구 호출 제거) ③ 흔한 실수는 검증 전에 코드로 수리. 결과: LLM 호출 8회 → 2~3회, 토큰 66K → 13~26K.. 2026. 8. 23. 이전 1 2 3 4 5 6 ··· 17 다음 반응형