AI와 함께 만드는 삶

PM으로 일하며 AI와 함께 무언가를 만들어가는 삶을 기록합니다.

전체 글 30

법제처 API와 Groq, 거짓말 안 하게 섞기 — RAG 그라운딩 실전기 (3장)

진짜 데이터를 주는 것과, 그 데이터를 쓰게 만드는 것LLM한테 그냥 "임금체불 당했는데 어떻게 해야 하나요?"라고 물으면, 그럴싸한 답이 나온다. 문제는 "그럴싸함"이지 "정확함"이 아니라는 것. 법률 서비스에서 조문 번호를 지어내거나, 이미 개정된 옛날 조항을 인용하면 그건 그냥 사고다.그래서 세운 원칙은 하나였다. LLM이 답을 만들어내게 하지 말고, 법제처에서 실제로 검색한 법조문·판례를 던져주고 그걸 그대로 인용하게 시키자. 말은 쉬운데, 실제로 해보니 세 가지 층위의 문제가 연달아 나왔다.1단계 — 검색은 빠르게, 병렬로사용자가 질문을 입력하면 법령 조문과 판례를 각각 검색해서 AI 프롬프트에 끼워 넣는 구조를 짰다. 순서대로 하나씩 검색하면 느리니까, 동시에 실행했다. pythonarticl..

PM을 위한 AI 실무 사전 3편 — RAG, 환각, 그라운딩

누구나법률 3장(법제처 API와 Groq, 거짓말 안 하게 섞기)에서 나온 개념: RAG, 환각(hallucination), 그라운딩(grounding).환각(Hallucination) — LLM이 그럴싸하게 지어내는 것LLM은 "정답을 아는 것"이 아니라 "다음에 올 것 같은 말을 예측하는" 방식으로 작동한다. 그래서 학습 데이터에 없거나 불확실한 내용도, 문법적으로 그럴싸하면 자신 있게 답한다. 이걸 **환각(hallucination)**이라고 부른다. 없는 논문을 인용하거나, 존재하지 않는 법 조항 번호를 지어내는 게 대표적인 예다.법률·의료·금융처럼 "틀리면 실제 피해가 생기는" 분야에서는 환각이 특히 치명적이다. 그럴싸한 오답이 아예 대답을 안 하는 것보다 위험할 수 있다.RAG(검색증강생성) ..

AI와 규칙을 협상하다 — 실주문 자동화 요청과 CLAUDE.md 합의 과정 (9편)

"너가 자동으로 매수 매도를 하지" — 요청페이퍼 트레이딩을 몇 주 돌리고, 운영 PC도 집으로 옮기고, 백테스트로 이것저것 더 확인해보던 중에 이런 말을 들었다. "이제 날짜만 정해주면 그날 PC를 켜놓을게. 그럼 네가 자동으로 매수 매도를 하면 되잖아." 그리고 이어서, "나는 자동화하고 싶은 거야. 그래서 계좌도 따로 만든 거고."순간 멈칫했다. 이건 그냥 "PC 켜놓는 날짜를 알려달라"는 요청이 아니라, 실제 돈으로 자동 주문을 내달라는 요청이었다.규칙을 들이밀 수밖에 없었다이 프로젝트에는 처음부터 못박아둔 절대 규칙이 하나 있다.실주문 코드 작성 금지. 현재는 페이퍼 트레이딩만.이건 내가 그때그때 판단할 문제가 아니라, 프로젝트 문서(CLAUDE.md)에 박혀 있는 규칙이다. "이제 자동화해줘"..

며칠 기다렸다 사면 더 좋을까 — 매수 타이밍 검증과 새 전략 BB8 추가기 (8편)

"그렇게 사면 손해 아니야?" — 지인의 질문전략을 다 확정하고 페이퍼 트레이딩까지 돌리고 있는데, 주식을 10년 넘게 해온 지인에게서 이런 질문을 받았다. "매수일이 매달 1일이면, 이미 고른 종목을 그냥 그날 사버린다는 거잖아. 나도 적립식 투자를 하지만 그래도 떨어진 날 사려고 하는 편인데."정곡을 찌르는 질문이었다. 지금 확정된 방식은 이렇다 — 매달 첫 거래일 저녁에 종가 기준으로 종목을 고르고, 다음 거래일 시가에 무조건 산다. 재량은 전혀 없다. 종목은 저PBR이라는 기준으로 골랐지만, 그날 그 종목을 살지 말지, 혹은 다른 날 살지는 아예 고려 대상이 아니었다.이미 겪어본 문제였다사실 이 프로젝트의 원래 설계(v0.2)는 스토캐스틱·이동평균·하이킨아시 3개 지표로 정확히 이 "타이밍"을 잡..

PM을 위한 AI 실무 사전 2편 — 폴백 체인, 스트리밍, 콜드 슬립

누구나법률 2장(진짜 문제는 기술이 아니라 돈이었다)에서 나온 개념 세 가지: LLM 멀티 프로바이더 체인, SSE vs REST, 무료 호스팅의 콜드 슬립.LLM 폴백 체인 — 왜 모델 하나로는 안 되나AI 서비스를 하나의 LLM(예: Claude API)에만 의존해서 만들면, 그 모델이 막히는 순간 서비스 전체가 멈춘다. 막히는 이유는 다양하다 — API 비용 한도 초과, 요청 제한(rate limit), 일시적 서버 장애. 하나에만 의존하면 그 하나가 곧 전체의 장애 지점(single point of failure)이 된다.그래서 실무에서 흔히 쓰는 패턴이 "주 모델이 실패하면 다음 모델로 자동 전환"하는 폴백 체인이다. 1순위(Groq) 실패 → 2순위(Gemini) 시도 → 3순위(Ollama,..