문제를 불편한 채로 두기보다해결하려고 합니다
AI 에이전트를 만들며 부딪힌 것과, 그러다 다시 들여다본 웹·백엔드 기본기를 적습니다.
지금까지 쓴 글
· 백엔드
침묵하거나 무한 재시도하는 자동화를 관찰 가능한 시스템으로 바꾸기
실패를 원장과 로그의 올바른 경계에 기록해 자동화의 재시도 정책과 관찰 가능성을 회복한 과정을 정리한다.
· 인프라·운영
nginx reverse proxy는 그대로, Kubernetes는 Gateway API로
단독 nginx의 reverse proxy는 여전히 유효하지만, Kubernetes에서는 ingress-nginx 은퇴에 맞춰 Gateway API로 단계적으로 전환해야 한다.
· 웹·네트워크
HTTP 캐시는 만료 뒤에도 다시 쓸 수 있다
Cache-Control로 신선도를 정하고 ETag와 If-None-Match, 304로 만료된 응답을 재검증하는 흐름을 정리한다.
· 백엔드
CORS처럼 보인 구매확정 500의 실제 원인과 복구
CORS 문제처럼 보였던 구매확정 500을 추적해 운영 DDL과 레거시 PHP 코드의 스키마 계약 불일치를 찾아 복구한 과정이다.
· 백엔드
성공으로 기록된 실패: 알림 문자가 반년 동안 조용히 사라진 이야기
스토리지 경로 오류와 잘못된 상태값 때문에 문자 미발송이 드러나지 않았던 과정을 돌아보고, 실패를 명확하게 기록해야 하는 이유를 정리한다.
· 백엔드
worker가 모델을 기다리는 동안 책임이 흐려져요
Slack 봇은 3초 안에 답해야 하는데 모델은 몇 분을 씁니다. 그 사이를 worker가 붙잡고 있으면 타임아웃·취소·중복이 한 실행에 뒤엉켜요. 완료를 이벤트로 받아 내부 상태에 한 번만 모으는 구조를 정리했습니다.