<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Claude 사용법 on 매일 한 가지</title><link>http://daylogs.me/claude/</link><description>Recent content in Claude 사용법 on 매일 한 가지</description><generator>Hugo</generator><language>ko</language><lastBuildDate>Fri, 17 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://daylogs.me/claude/index.xml" rel="self" type="application/rss+xml"/><item><title>Day 01 — Claude란 무엇인가?</title><link>http://daylogs.me/claude/day-01/</link><pubDate>Sun, 21 Jun 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-01/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 1: 기초&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Claude의 설계 철학과 다른 LLM과의 차별점을 설명할 수 있다&lt;/li&gt;
&lt;li&gt;Claude 모델 계열 (Haiku / Sonnet / Opus)의 특징과 사용 목적을 구분할 수 있다&lt;/li&gt;
&lt;li&gt;Constitutional AI가 무엇인지 개념적으로 이해한다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-claude는-어떤-모델인가"&gt;1. Claude는 어떤 모델인가?&lt;/h2&gt;
&lt;p&gt;Claude는 Anthropic이 만든 대형 언어 모델(LLM)입니다. GPT 계열(OpenAI)과 Gemini(Google)와 함께 현재 상용 LLM의 3대 축 중 하나입니다.&lt;/p&gt;</description></item><item><title>Day 02 — 기본 프롬프트 작성법</title><link>http://daylogs.me/claude/day-02/</link><pubDate>Mon, 22 Jun 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-02/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 1: 기초&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;명확한 프롬프트와 모호한 프롬프트의 차이를 실제 예시로 구분할 수 있다&lt;/li&gt;
&lt;li&gt;컨텍스트, 지시, 출력 형식이라는 3요소를 갖춘 프롬프트를 작성할 수 있다&lt;/li&gt;
&lt;li&gt;긍정적 지시와 부정적 지시를 언제 어떻게 조합하는지 이해한다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-프롬프트-품질이-결과를-결정한다"&gt;1. 프롬프트 품질이 결과를 결정한다&lt;/h2&gt;
&lt;p&gt;LLM은 입력을 통계적으로 완성하는 모델입니다. 모호한 입력은 모호한 출력을 낳습니다. &amp;ldquo;요약해줘&amp;quot;라고 하면 모델은 길이, 대상 독자, 언어, 형식 등 모든 것을 스스로 추측합니다.&lt;/p&gt;</description></item><item><title>Day 03 — 컨텍스트와 대화 흐름</title><link>http://daylogs.me/claude/day-03/</link><pubDate>Tue, 23 Jun 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-03/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 1: 기초&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;컨텍스트 윈도우의 개념과 작동 방식을 설명할 수 있다&lt;/li&gt;
&lt;li&gt;멀티턴 대화에서 &lt;code&gt;messages&lt;/code&gt; 배열을 올바르게 구성할 수 있다&lt;/li&gt;
&lt;li&gt;대화 흐름 설계 시 컨텍스트 관리 전략을 적용할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-컨텍스트-윈도우란"&gt;1. 컨텍스트 윈도우란?&lt;/h2&gt;
&lt;p&gt;Claude는 대화를 처음부터 끝까지 &lt;strong&gt;전부 읽고&lt;/strong&gt; 응답합니다. 이전 대화를 &amp;ldquo;기억&amp;quot;하는 것이 아니라, API 호출 시마다 전체 대화 이력을 입력으로 받습니다.&lt;/p&gt;</description></item><item><title>Day 04 — 출력 형식 제어</title><link>http://daylogs.me/claude/day-04/</link><pubDate>Wed, 24 Jun 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-04/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 1: 기초&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;프롬프트만으로 JSON, 마크다운, 일반 텍스트 등 원하는 형식의 출력을 유도할 수 있다&lt;/li&gt;
&lt;li&gt;구조화된 응답이 필요한 상황과 그렇지 않은 상황을 구분할 수 있다&lt;/li&gt;
&lt;li&gt;형식 지시가 실패할 때 원인을 진단하고 수정할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-왜-출력-형식이-중요한가"&gt;1. 왜 출력 형식이 중요한가?&lt;/h2&gt;
&lt;p&gt;LLM은 기본적으로 자연어를 생성합니다. 하지만 프로덕션 환경에서는 응답을 파싱해 다음 단계에 넘겨야 하는 경우가 많습니다. 형식이 일관되지 않으면 파싱 코드가 깨집니다.&lt;/p&gt;</description></item><item><title>Day 05 — Claude의 한계와 특성 이해</title><link>http://daylogs.me/claude/day-05/</link><pubDate>Thu, 25 Jun 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-05/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 1: 기초&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Hallucination이 발생하는 원인과 완화 방법을 설명할 수 있다&lt;/li&gt;
&lt;li&gt;Claude의 거절(refusal) 동작을 예측하고 프롬프트로 완화할 수 있다&lt;/li&gt;
&lt;li&gt;Knowledge cutoff의 한계를 이해하고 설계에 반영할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-hallucination--존재하지-않는-사실을-생성"&gt;1. Hallucination — 존재하지 않는 사실을 생성&lt;/h2&gt;
&lt;p&gt;Hallucination은 LLM이 사실이 아닌 내용을 자신 있게 말하는 현상입니다. Claude는 다른 모델 대비 낮은 편이지만 완전히 없지는 않습니다.&lt;/p&gt;</description></item><item><title>Day 06 — 역할 지정 (Role Prompting)</title><link>http://daylogs.me/claude/day-06/</link><pubDate>Fri, 26 Jun 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-06/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 2: 프롬프트 엔지니어링&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;System prompt의 구조와 역할을 이해하고 설계할 수 있다&lt;/li&gt;
&lt;li&gt;Role prompting이 응답 품질에 미치는 영향을 설명할 수 있다&lt;/li&gt;
&lt;li&gt;프로덕션 수준의 system prompt 템플릿을 작성할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-system-prompt란"&gt;1. System Prompt란?&lt;/h2&gt;
&lt;p&gt;System prompt는 Claude의 &lt;strong&gt;동작 방식&lt;/strong&gt;을 규정하는 최상위 지시문입니다. 매 대화가 시작되기 전에 주입되며, user 메시지보다 높은 우선순위를 갖습니다.&lt;/p&gt;</description></item><item><title>Day 07 — Few-shot / Chain-of-Thought 프롬프팅</title><link>http://daylogs.me/claude/day-07/</link><pubDate>Sat, 27 Jun 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-07/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 2: 프롬프트 엔지니어링&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Few-shot 예시로 Claude의 출력 패턴을 원하는 방향으로 유도할 수 있다&lt;/li&gt;
&lt;li&gt;Chain-of-Thought(CoT) 프롬프팅이 추론 품질을 높이는 원리를 설명할 수 있다&lt;/li&gt;
&lt;li&gt;두 기법을 조합해 복잡한 태스크에 적용할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-few-shot-프롬프팅"&gt;1. Few-shot 프롬프팅&lt;/h2&gt;
&lt;p&gt;Few-shot은 예시를 보여주어 Claude가 원하는 패턴을 학습하게 하는 기법입니다. &amp;ldquo;형식 설명&amp;quot;보다 &amp;ldquo;예시 제시&amp;quot;가 훨씬 효과적인 경우가 많습니다.&lt;/p&gt;</description></item><item><title>Day 08 — XML 태그 활용</title><link>http://daylogs.me/claude/day-08/</link><pubDate>Sun, 28 Jun 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-08/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 2: 프롬프트 엔지니어링&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;XML 태그가 프롬프트 구조화에 왜 효과적인지 설명할 수 있다&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;instructions&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;example&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;context&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;output&amp;gt;&lt;/code&gt; 등 주요 태그 패턴을 실전에서 쓸 수 있다&lt;/li&gt;
&lt;li&gt;복잡한 멀티파트 프롬프트를 XML 태그로 명확하게 구분하는 방법을 익힌다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-왜-xml-태그인가"&gt;1. 왜 XML 태그인가?&lt;/h2&gt;
&lt;p&gt;Claude는 자연어를 처리하지만, &lt;strong&gt;구조화된 입력에 더 잘 반응&lt;/strong&gt;합니다. 특히 긴 프롬프트에서 &amp;ldquo;어디까지가 배경 설명이고, 어디서부터가 실제 지시인가&amp;quot;를 명확히 하지 않으면 모델이 혼동할 수 있습니다.&lt;/p&gt;</description></item><item><title>Day 09 — 긴 문서 처리</title><link>http://daylogs.me/claude/day-09/</link><pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-09/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 2: 프롬프트 엔지니어링&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Claude의 200K 컨텍스트 윈도우를 효과적으로 활용하는 전략을 설명할 수 있다&lt;/li&gt;
&lt;li&gt;긴 문서에서 요약, 추출, 분석을 위한 프롬프트 패턴을 작성할 수 있다&lt;/li&gt;
&lt;li&gt;문서가 컨텍스트 한도를 초과할 경우 청킹(chunking) 전략을 설계할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-왜-긴-문서-처리가-중요한가"&gt;1. 왜 긴 문서 처리가 중요한가?&lt;/h2&gt;
&lt;p&gt;Claude의 200K 토큰 컨텍스트는 강력한 무기입니다. 일반적인 A4 문서 한 페이지가 약 400–500 토큰이므로, 이론상 약 400페이지 분량의 문서를 한 번에 처리할 수 있습니다.&lt;/p&gt;</description></item><item><title>Day 10 — 코드 생성 및 리뷰 프롬프트</title><link>http://daylogs.me/claude/day-10/</link><pubDate>Tue, 30 Jun 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-10/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 2: 프롬프트 엔지니어링&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;코드 생성 품질을 높이는 프롬프트 구조를 설계할 수 있다&lt;/li&gt;
&lt;li&gt;코드 리뷰 요청을 체계적으로 구성하여 실질적인 피드백을 얻을 수 있다&lt;/li&gt;
&lt;li&gt;반복적인 코드 작업을 위한 재사용 가능한 프롬프트 패턴을 만들 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-코드-생성-프롬프트의-핵심-요소"&gt;1. 코드 생성 프롬프트의 핵심 요소&lt;/h2&gt;
&lt;p&gt;&amp;ldquo;Python 함수 만들어줘&amp;quot;와 &amp;ldquo;다음 조건을 만족하는 Python 함수를 만들어줘&amp;quot;는 결과가 전혀 다릅니다. 코드 생성에서 Claude가 좋은 출력을 내려면 &lt;strong&gt;컨텍스트 4가지&lt;/strong&gt;가 필요합니다.&lt;/p&gt;</description></item><item><title>Day 11 — 다단계 추론 패턴</title><link>http://daylogs.me/claude/day-11/</link><pubDate>Wed, 01 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-11/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 2: 프롬프트 엔지니어링&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;다단계 추론(Multi-step reasoning)이 필요한 상황을 식별할 수 있다&lt;/li&gt;
&lt;li&gt;Chain-of-Thought와 단계적 분해(Step Decomposition) 패턴을 실전에 적용할 수 있다&lt;/li&gt;
&lt;li&gt;복잡한 작업을 서브태스크로 나누어 Claude에게 위임하는 워크플로를 설계할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-왜-다단계-추론이-필요한가"&gt;1. 왜 다단계 추론이 필요한가?&lt;/h2&gt;
&lt;p&gt;LLM은 단순 질의에는 강하지만, &lt;strong&gt;복잡한 문제를 한 번에 처리&lt;/strong&gt;하려 하면 품질이 급격히 떨어집니다. 이유는 두 가지입니다.&lt;/p&gt;</description></item><item><title>Day 12 — 프롬프트 평가 및 반복 개선</title><link>http://daylogs.me/claude/day-12/</link><pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-12/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 2: 프롬프트 엔지니어링&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;프롬프트 품질을 &amp;ldquo;감&amp;quot;이 아니라 측정 가능한 기준으로 평가할 수 있다&lt;/li&gt;
&lt;li&gt;골든셋(golden set) 기반 회귀 테스트 구조를 설계할 수 있다&lt;/li&gt;
&lt;li&gt;프롬프트 개선을 반복 실험으로 관리하는 워크플로를 구축할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-왜-프롬프트를-평가해야-하는가"&gt;1. 왜 프롬프트를 &amp;ldquo;평가&amp;quot;해야 하는가?&lt;/h2&gt;
&lt;p&gt;Day 01~11에서 다양한 프롬프트 기법(역할 지정, Few-shot, CoT, XML 태그, 다단계 추론)을 배웠습니다. 문제는 이 기법들을 적용한 후 &lt;strong&gt;정말 더 나아졌는지 확인할 방법이 없으면&lt;/strong&gt;, 프롬프트 수정이 감에 의존한 도박이 된다는 점입니다.&lt;/p&gt;</description></item><item><title>Day 13 — Anthropic API 기초</title><link>http://daylogs.me/claude/day-13/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-13/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 3: API 활용&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;API 키 발급부터 첫 Messages API 호출까지 전체 흐름을 이해한다&lt;/li&gt;
&lt;li&gt;요청 헤더(x-api-key, anthropic-version)의 역할과 필수 파라미터를 설명할 수 있다&lt;/li&gt;
&lt;li&gt;응답 객체의 구조(content, usage, stop_reason)를 읽고 활용할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-api-접근-준비"&gt;1. API 접근 준비&lt;/h2&gt;
&lt;p&gt;Anthropic API를 쓰려면 두 가지가 필요합니다: &lt;strong&gt;API 키&lt;/strong&gt;와 &lt;strong&gt;엔드포인트&lt;/strong&gt;입니다.&lt;/p&gt;</description></item><item><title>Day 14 — Messages API 파라미터 심화</title><link>http://daylogs.me/claude/day-14/</link><pubDate>Sat, 04 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-14/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 3: API 활용&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;temperature&lt;/code&gt;, &lt;code&gt;top_p&lt;/code&gt;, &lt;code&gt;top_k&lt;/code&gt;가 각각 어떤 방식으로 출력의 무작위성을 조절하는지 설명할 수 있다&lt;/li&gt;
&lt;li&gt;&lt;code&gt;stop_sequences&lt;/code&gt;와 &lt;code&gt;metadata&lt;/code&gt; 파라미터를 실제 요청에 적용할 수 있다&lt;/li&gt;
&lt;li&gt;최신 Claude 모델(Opus 4.7 이상)에서 샘플링 파라미터가 어떻게 달라졌는지 이해하고 대안을 적용할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-temperature--무작위성의-기본-다이얼"&gt;1. temperature — 무작위성의 기본 다이얼&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;temperature&lt;/code&gt;는 다음 토큰을 고를 때 확률 분포를 얼마나 &amp;ldquo;평평하게&amp;rdquo; 만들지 결정합니다. 값이 낮을수록 가장 확률이 높은 토큰을 거의 항상 선택하고, 값이 높을수록 낮은 확률의 토큰도 선택될 여지가 커집니다.&lt;/p&gt;</description></item><item><title>Day 15 — Streaming 응답 처리</title><link>http://daylogs.me/claude/day-15/</link><pubDate>Sun, 05 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-15/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 3: API 활용&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Streaming Messages API의 이벤트 흐름(&lt;code&gt;message_start&lt;/code&gt; → &lt;code&gt;content_block_*&lt;/code&gt; → &lt;code&gt;message_delta&lt;/code&gt; → &lt;code&gt;message_stop&lt;/code&gt;)을 설명할 수 있다&lt;/li&gt;
&lt;li&gt;Python SDK로 텍스트, 도구 입력, extended thinking 델타를 각각 구분해 처리하는 코드를 작성할 수 있다&lt;/li&gt;
&lt;li&gt;스트리밍 중 발생하는 에러를 감지하고, 모델 세대별로 다른 복구 전략을 적용할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-스트리밍이-필요한-이유와-기본-구조"&gt;1. 스트리밍이 필요한 이유와 기본 구조&lt;/h2&gt;
&lt;p&gt;일반적인 &lt;code&gt;messages.create()&lt;/code&gt; 호출은 Claude가 전체 응답을 다 생성할 때까지 기다렸다가 한 번에 반환합니다. 응답이 길어질수록 사용자는 아무 반응 없는 화면을 오래 바라봐야 하고, &lt;code&gt;max_tokens&lt;/code&gt;가 크면 HTTP 커넥션이 타임아웃될 위험도 커집니다. 요청에 &lt;code&gt;&amp;quot;stream&amp;quot;: true&lt;/code&gt;를 추가하면 Claude가 토큰을 생성하는 즉시 Server-Sent Events(SSE)로 잘게 쪼개 전송합니다. 챗봇 UI에서 흔히 보는 &amp;ldquo;타이핑되는&amp;rdquo; 효과가 바로 이 방식입니다.&lt;/p&gt;</description></item><item><title>Day 16 — Tool Use (Function Calling)</title><link>http://daylogs.me/claude/day-16/</link><pubDate>Mon, 06 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-16/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 3: API 활용&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Client tool과 Server tool의 실행 위치 차이를 설명하고, 상황에 맞게 선택할 수 있다&lt;/li&gt;
&lt;li&gt;&lt;code&gt;input_schema&lt;/code&gt;와 &lt;code&gt;tool_choice&lt;/code&gt;를 사용해 Claude의 도구 호출 방식을 설계할 수 있다&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tool_use&lt;/code&gt; → 실행 → &lt;code&gt;tool_result&lt;/code&gt;로 이어지는 전체 루프를 Python 코드로 구현할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-tool-use란-무엇인가--client-tool-vs-server-tool"&gt;1. Tool Use란 무엇인가 — Client Tool vs Server Tool&lt;/h2&gt;
&lt;p&gt;Tool Use(Function Calling)는 Claude가 스스로 답할 수 없는 질문에 부딪혀 외부 함수나 API를 &amp;ldquo;호출&amp;quot;하도록 만드는 기능입니다. 정확히 말하면 Claude가 직접 코드를 실행하는 것이 아니라, &amp;ldquo;이 도구를 이런 입력으로 불러달라&amp;quot;는 구조화된 요청(JSON)을 반환할 뿐입니다. 실제 실행은 도구의 종류에 따라 둘 중 한 곳에서 일어납니다.&lt;/p&gt;</description></item><item><title>Day 17 — Vision API</title><link>http://daylogs.me/claude/day-17/</link><pubDate>Tue, 07 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-17/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 3: API 활용&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;base64, URL, Files API 세 가지 이미지 입력 방식의 차이를 이해하고 상황에 맞게 선택할 수 있다&lt;/li&gt;
&lt;li&gt;이미지 해상도가 visual token 수와 비용으로 어떻게 환산되는지 계산할 수 있다&lt;/li&gt;
&lt;li&gt;여러 이미지를 비교·분석하는 멀티모달 요청을 Python으로 구현할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-이미지를-claude에-전달하는-세-가지-방법"&gt;1. 이미지를 Claude에 전달하는 세 가지 방법&lt;/h2&gt;
&lt;p&gt;Claude는 메시지의 &lt;code&gt;content&lt;/code&gt; 배열에 &lt;code&gt;image&lt;/code&gt; 타입 블록을 넣는 방식으로 이미지를 입력받습니다. 이 블록의 &lt;code&gt;source&lt;/code&gt;는 세 가지 타입 중 하나를 선택합니다.&lt;/p&gt;</description></item><item><title>Day 18 — 비용 최적화</title><link>http://daylogs.me/claude/day-18/</link><pubDate>Wed, 08 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-18/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 3: API 활용&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;모델 선택, 프롬프트 캐싱, Batch API라는 세 가지 축으로 API 비용을 구조적으로 줄이는 방법을 이해한다&lt;/li&gt;
&lt;li&gt;프롬프트 캐싱의 write/read 배수를 계산해 캐싱이 실제로 이득인 시점을 판단할 수 있다&lt;/li&gt;
&lt;li&gt;Python으로 토큰 사용량을 추적하고, 캐싱과 배치 처리를 결합한 견적을 낼 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-비용-최적화의-세-가지-축"&gt;1. 비용 최적화의 세 가지 축&lt;/h2&gt;
&lt;p&gt;Claude API 비용은 결국 &amp;ldquo;어떤 모델을 쓰는가 × 얼마나 많은 토큰을 보내는가 × 얼마나 자주 같은 내용을 반복하는가&amp;quot;로 요약됩니다. 최적화도 이 세 지점을 각각 공략합니다.&lt;/p&gt;</description></item><item><title>Day 19 — 에이전트 설계 패턴</title><link>http://daylogs.me/claude/day-19/</link><pubDate>Thu, 09 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-19/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 4: 고급/프로덕션&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;워크플로우(workflow)와 에이전트(agent)의 아키텍처적 차이를 설명할 수 있다&lt;/li&gt;
&lt;li&gt;ReAct(추론+행동) 루프의 동작 원리를 이해하고 Python으로 최소 구현을 작성할 수 있다&lt;/li&gt;
&lt;li&gt;Plan-and-Execute 패턴이 ReAct와 어떻게 다르며 언제 유리한지 판단할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-워크플로우-vs-에이전트--먼저-구분부터"&gt;1. 워크플로우 vs 에이전트 — 먼저 구분부터&lt;/h2&gt;
&lt;p&gt;Anthropic은 &amp;ldquo;에이전트적 시스템(agentic system)&amp;ldquo;을 두 가지로 나눕니다. &lt;strong&gt;워크플로우&lt;/strong&gt;는 LLM과 도구가 미리 정의된 코드 경로를 따라 오케스트레이션되는 시스템이고, &lt;strong&gt;에이전트&lt;/strong&gt;는 LLM이 스스로 프로세스와 도구 사용을 동적으로 결정하며 작업 수행 방식에 대한 통제권을 갖는 시스템입니다.&lt;/p&gt;</description></item><item><title>Day 20 — Multi-agent 시스템 설계</title><link>http://daylogs.me/claude/day-20/</link><pubDate>Fri, 10 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-20/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 4: 고급/프로덕션&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;오케스트레이터-워커(orchestrator-workers) 패턴의 구조와 각 서브에이전트가 독립적인 컨텍스트를 갖는 이유를 설명할 수 있다&lt;/li&gt;
&lt;li&gt;Claude Agent SDK의 서브에이전트를 활용해 병렬 작업을 위임하는 최소 구현을 작성할 수 있다&lt;/li&gt;
&lt;li&gt;멀티 에이전트 시스템에서 토큰 비용이 급증하는 이유를 이해하고, 언제 단일 에이전트 대신 멀티 에이전트를 선택해야 하는지 판단할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-왜-에이전트를-여러-개로-나누는가"&gt;1. 왜 에이전트를 여러 개로 나누는가&lt;/h2&gt;
&lt;p&gt;Day 19에서 다룬 ReAct나 Plan-and-Execute는 하나의 에이전트가 컨텍스트 하나를 계속 들고 다니며 작업합니다. 하지만 작업 범위가 넓어질수록 컨텍스트 창이 관련 없는 정보로 오염되고, 서로 다른 하위 작업을 순차적으로만 처리해야 하는 병목이 생깁니다.&lt;/p&gt;</description></item><item><title>Day 21 — RAG 패턴</title><link>http://daylogs.me/claude/day-21/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-21/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 4: 고급/프로덕션&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;RAG(Retrieval-Augmented Generation)가 필요한 이유와 기본 파이프라인 구조를 설명할 수 있다&lt;/li&gt;
&lt;li&gt;Voyage AI 임베딩으로 문서를 벡터화하고 유사도 검색을 구현할 수 있다&lt;/li&gt;
&lt;li&gt;Contextual Retrieval 기법과 &lt;code&gt;search_result&lt;/code&gt; 콘텐츠 블록을 활용해 검색 정확도와 답변의 출처 신뢰성을 동시에 높일 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-rag란-무엇이고-왜-필요한가"&gt;1. RAG란 무엇이고 왜 필요한가&lt;/h2&gt;
&lt;p&gt;Claude는 학습 시점 이후의 정보나 사내 문서, 최신 고객 데이터처럼 학습 데이터에 없는 내용은 알지 못합니다. 매번 이런 정보를 프롬프트에 통째로 넣는 것은 컨텍스트 창 한계와 비용 때문에 현실적이지 않습니다. RAG는 질문이 들어올 때마다 관련 문서 조각만 검색해서 프롬프트에 끼워 넣는 방식으로 이 문제를 해결합니다.&lt;/p&gt;</description></item><item><title>Day 22 — 프롬프트 인젝션 방어 및 보안</title><link>http://daylogs.me/claude/day-22/</link><pubDate>Tue, 14 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-22/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 4: 고급/프로덕션&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;직접 프롬프트 인젝션(jailbreak)과 간접 프롬프트 인젝션의 위협 모델이 어떻게 다른지 설명할 수 있다&lt;/li&gt;
&lt;li&gt;Claude Haiku를 이용한 harmlessness screen과 구조화된 출력으로 입력·도구 결과를 검증하는 파이프라인을 구현할 수 있다&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tool_result&lt;/code&gt; 격리, JSON 인코딩, 최소 권한 원칙 등 간접 인젝션에 특화된 방어 기법을 실제 코드에 적용할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-두-가지-위협-모델--직접-인젝션과-간접-인젝션"&gt;1. 두 가지 위협 모델 — 직접 인젝션과 간접 인젝션&lt;/h2&gt;
&lt;p&gt;프롬프트 인젝션은 하나의 문제가 아닙니다. Anthropic 공식 문서는 이를 위협 주체가 다른 두 범주로 나눕니다.&lt;/p&gt;</description></item><item><title>Day 23 — 평가(Evals) 프레임워크</title><link>http://daylogs.me/claude/day-23/</link><pubDate>Wed, 15 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-23/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 4: 고급/프로덕션&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;SMART(구체적·측정 가능·달성 가능·관련성) 원칙에 따라 LLM 애플리케이션의 성공 기준을 정의할 수 있다&lt;/li&gt;
&lt;li&gt;code-based, human, LLM-based 세 가지 grading 방식의 트레이드오프를 비교하고 상황에 맞게 선택할 수 있다&lt;/li&gt;
&lt;li&gt;Claude Haiku를 grader로 사용하는 rubric 기반 LLM-graded eval 파이프라인을 Python으로 구현할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-성공-기준부터-정의한다"&gt;1. 성공 기준부터 정의한다&lt;/h2&gt;
&lt;p&gt;프롬프트를 다듬기 전에 먼저 &amp;ldquo;무엇을 잘하는 것으로 볼 것인가&amp;quot;를 명확히 해야 합니다. Anthropic 공식 문서는 좋은 성공 기준의 조건으로 다음 네 가지를 제시합니다.&lt;/p&gt;</description></item><item><title>Day 24 — 프로덕션 배포 고려사항</title><link>http://daylogs.me/claude/day-24/</link><pubDate>Thu, 16 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-24/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 4: 고급/프로덕션&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Claude API의 HTTP 에러 코드를 재시도 가능(transient) / 재시도 불가(non-transient)로 분류하고 각각에 맞는 처리 전략을 설계할 수 있다&lt;/li&gt;
&lt;li&gt;지수 백오프(exponential backoff)와 &lt;code&gt;retry-after&lt;/code&gt; 헤더를 존중하는 재시도 로직을 구현하고, SDK 기본 동작을 조정할 수 있다&lt;/li&gt;
&lt;li&gt;타임아웃·레이턴시·폴백(fallback)을 고려한 프로덕션급 호출 래퍼를 Python으로 작성할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-에러-코드부터-이해한다--무엇을-재시도할-것인가"&gt;1. 에러 코드부터 이해한다 — 무엇을 재시도할 것인가&lt;/h2&gt;
&lt;p&gt;프로덕션에서 가장 먼저 결정해야 하는 것은 &amp;ldquo;어떤 에러를 재시도하고, 어떤 에러는 즉시 실패시킬 것인가&amp;quot;입니다. Claude API는 예측 가능한 HTTP 상태 코드 체계를 따르며, 이를 두 부류로 나누는 것이 핵심입니다.&lt;/p&gt;</description></item><item><title>Day 25 — 실전 케이스 스터디</title><link>http://daylogs.me/claude/day-25/</link><pubDate>Fri, 17 Jul 2026 00:00:00 +0000</pubDate><guid>http://daylogs.me/claude/day-25/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Phase 4: 고급 / 프로덕션&lt;/strong&gt; | 예상 학습 시간: 30분&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-학습-목표"&gt;🎯 학습 목표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;지금까지 배운 프롬프트 엔지니어링·API·프로덕션 기법을 하나의 실제 시나리오(고객 지원 AI Agent)로 연결해 설명할 수 있다&lt;/li&gt;
&lt;li&gt;요구사항 정의 → 프롬프트 설계 → 도구 연동 → 평가 → 배포로 이어지는 엔드투엔드 흐름을 코드 수준에서 재현할 수 있다&lt;/li&gt;
&lt;li&gt;Sendbird AI Agent 같은 실서비스 맥락에서 흔히 부딪히는 트레이드오프(비용, 레이턴시, 안전성)를 판단 기준과 함께 정리할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-시나리오-정의--무엇을-왜-만드는가"&gt;1. 시나리오 정의 — &amp;ldquo;무엇을, 왜 만드는가&amp;rdquo;&lt;/h2&gt;
&lt;p&gt;가상의 요구사항으로 시작합니다. 커머스 앱에 붙일 &lt;strong&gt;고객 지원 AI Agent&lt;/strong&gt;를 만든다고 가정합니다. 사용자가 주문/배송/환불 관련 질문을 채팅으로 보내면, Agent가 스스로 주문 DB를 조회하고 정책 문서를 참고해 답하며, 처리 불가능한 건은 사람 상담사에게 넘겨야 합니다.&lt;/p&gt;</description></item></channel></rss>