Skip to content

장애삽질이 가르쳐 준 것들

실무에서 만난 문제들을 기록합니다.

0편의 포스트·9년차 백엔드·광고 0
thumbnail
AI
📖 3

"안녕" 한마디에 최고급 모델이 돌고 있었습니다 — LLM 비용 라우팅

TL;DR 증상: AI 집사의 모든 응답에 최상위 모델을 고정해두니, 일상 잡담에도 가장 비싼 모델이 호출됨 원인: “좋은 모델 = 항상 좋다”는 단일 기준. 질문 난이도와 모델 등급을 매칭하지 않음 해결: 질문을 trivial / normal / deep 세 단계로 분류해 모델 티어를 라우팅 효과: normal(일상) 쿼리당 약 40% 비용 절감, 전체 API 비용 약 20~28% 절감 예상 한계: 무조건 싼 모델로…

  • #LLM
  • #FinOps
  • #비용최적화
thumbnail
AI
📖 5

RAG가 날짜를 물으면 자꾸 엉뚱한 날을 가져왔습니다 - 벡터 검색의 한계와 BM25 하이브리드

TL;DR 증상: 자비스한테 “3월 15일 미팅 뭐였지?” 물으면 4월 미팅을 가져옴. 날짜·장소명에서 집중적으로 틀림 원인: 벡터 검색은 “의미가 비슷한 것”을 찾는데, 날짜 숫자는 의미적 무게가 작아서 맥락 비슷한 다른 날 기록한테 밀림 해결: 단어가 실제로 박혀 있는지만 보는 BM25를 붙여서, 벡터랑 둘 다 돌리고 결과를 합침(하이브리드) 효과: 날짜·장소명 검색이 거의 다 맞게 바뀜. 대신 응답이 한…

  • #RAG
  • #LanceDB
  • #BM25
JWT Refresh Token, 서버에 저장 안 하면 탈취 감지가 불가능합니다 썸네일
Spring
📖 4

JWT Refresh Token, 서버에 저장 안 하면 탈취 감지가 불가능합니다

TL;DR 증상: 자동 토큰 갱신 시스템이 멀쩡한데도 전체 인증이 무효화됐습니다 원인: 두 갱신 주체가 같은 Refresh Token을 동시에 사용 → Reuse Detection 발동 해결: RT를 DB/Redis에 저장하고 플래그로 재사용 감지 + 갱신 주체 단일화 효과: RT 탈취 즉시 감지, 전체 세션 무효화 가능 한계: DB 조회 비용 발생, 분산 환경에서 Race Condition 별도 처리 필요 왜 AT와…

  • #Spring Security
  • #JWT
  • #Refresh Token
thumbnail
AI
📖 6

백엔드 개발자의 AI 비서 만들기 (3편) — "저번에 말한 거 기억해?"

TL;DR 문제: Claude는 대화가 끝나면 리셋. 어제 한 얘기를 오늘 또 처음부터 해야 했습니다 실패 1: 대화 전체를 시스템 프롬프트에 붙여넣기 → 4주 만에 토큰 폭발 실패 2: MEMORY.md 하나에 요약 누적 → 20KB 돌파 후 에이전트가 죽었습니다 성공: LanceDB 벡터 DB + 유사도 검색 → 관련 것만 꺼내서 주입 결과: 발표 전날 아침, Jarvis가 먼저 “내일 기술 공유 세미나가 있습니다…

  • #Claude
  • #AI
  • #RAG
thumbnail
AI
📖 4

백엔드 개발자의 AI 비서 만들기 (2편) — 메시지 하나가 처리되는 과정

TL;DR 전체 흐름: Discord 메시지 → Node.js 봇 → Nexus MCP → → Discord 응답. 전부 맥미니 로컬에서 돌아갑니다 채널이 11개인 이유: 처음엔 1개였습니다. 섞이는 게 불편해서 하나씩 쪼갰습니다. 채널 = 페르소나 + 컨텍스트 Nexus MCP 없으면: Claude는 대화만 합니다. 외부를 조회하거나 명령을 실행할 수 없습니다 그 차이: “GCP 콘솔 직접 확인해주세요” vs…

  • #Claude
  • #AI
  • #Discord
thumbnail
AI
📖 6

백엔드 개발자의 AI 비서 만들기 (1편) — 1월 28일, 맥미니와 Anthropic 공지

TL;DR 발단 1: 1월 28일, 당근마켓에서 맥미니 중고 충동구매 → “기왕 돈 썼으니 제대로 해보자” 발단 2: 바로 그 주, Anthropic이 Claude Max를 서드파티 SaaS에 연결하면 계정 밴 예고 두 가지가 겹쳤다: 서버가 생겼고, 직접 만들 수밖에 없는 이유도 생겼다 48시간 후: Discord 메시지를 보내면 집 맥미니가 Claude를 돌려 답해주는 프로토타입 완성 지금: 크론 93개, RAG…

  • #Claude
  • #AI
  • #Discord
thumbnail
AI
📖 7

MEMORY.md 20KB가 에이전트를 죽였다 — OpenClaw 오픈소스 탄생기

TL;DR 상황: OpenClaw 에이전트를 24/7 운영하다가 가 20KB+로 팽창 원인: 매 세션마다 MEMORY.md를 전부 로딩 → 컨텍스트 압박 → 게이트웨이 크래시 해결 1: openclaw-self-healing — 4단계 자동 복구 (~30초) 해결 2: openclaw-memorybox — 3-tier 메모리 관리 CLI (20KB → 3.5KB) 한계: 토큰 절감은 전체 세션의 5-15%. 진짜 가치는…

  • #AI
  • #OpenClaw
  • #Memory Management
🤖ARTIFICIAL INTELLIGENCE
AI
📖 4

자바 개발자의 AI 입문기 (5편) - LangGraph, 상태 기반 멀티 에이전트

TL;DR LangGraph: 상태 기반 AI 워크플로우 프레임워크 핵심 개념: 노드(작업) + 엣지(연결) + 상태(데이터) 사용 사례: 다단계 처리, 조건부 분기, 도구 사용 에이전트 자바 비유: Spring Batch의 Job/Step 구조와 유사 한계: 노드 수 증가에 따라 디버깅 복잡도 상승, 단순 선형 흐름에서는 체이닝이 더 적합 이전 편 요약 4편에서는 다음을 다뤘습니다: RAG 파이프라인 완성…

  • #AI
  • #LangGraph
  • #Agent
🤖ARTIFICIAL INTELLIGENCE
AI
📖 4

자바 개발자의 AI 입문기 (4편) - RAG 실전, Knowledge Base 검색 챗봇 만들기

TL;DR 목표: 회사 문서 기반 Q&A 챗봇 완성 파이프라인: 질문 → 문서 검색 → 컨텍스트 주입 → 답변 생성 핵심: 검색된 문서를 프롬프트에 넣어서 AI가 답변하게 함 결과: “우리 회사 정책”에 대해 정확히 답변하는 챗봇 한계: 청킹 전략과 검색 k값 튜닝이 품질을 좌우, 최적값은 도메인마다 다름 이전 편 요약 3편에서는 다음을 다뤘습니다: Embedding으로 텍스트를 벡터로 변환 ChromaDB…

  • #AI
  • #RAG
  • #LangChain