전체 글

✉️ seohui.duck.jo@gmail.com
이번에는 Coursera Building with the Claude API 강의의 Claude Features 파트를 정리해본다.이전 글에서는 Claude가 Tool을 선택하고 Backend가 실행 결과를 돌려주는 구조를 살펴봤다. 이번에는 복잡한 문제를 더 깊게 추론하고, 이미지와 PDF를 이해하고, 출처를 표시하고, 반복되는 Context를 효율적으로 재사용하는 기능으로 범위를 넓힌다.Extended Thinking ↓Image / PDF ↓Citations ↓Prompt Caching ↓Code Execution / Files APICoursera 강의 순서에 따라 하나씩 살펴보자.Extended Thinking일반적인 요청에서 Claude는 입력..
이번에는 Claude API 강의의 Tool Use 심화 파트를 정리해본다.이전 글에서는 Claude가 tool_use를 반환하면 Backend가 실제 함수를 실행하고, 그 결과를 tool_result로 다시 전달하는 기본 흐름을 살펴봤다.User ↓Claude ↓ tool_useBackend ↓ Tool 실행External API / DB ↓ tool_resultClaude ↓Final Answer하지만 실제 애플리케이션에서는 한 번의 Tool 호출만으로 해결할 수 없는 요청이 많다. 여러 단계의 작업을 이어서 수행하거나, 여러 Tool 중 적절한 것을 선택하고, 경우에 따라 여러 Tool을 동시에 호출해야 한다.Multi-turn Conversations with Tools사용자가 다음과 같..
이번에는 Claude API 강의의 Tool Use 기본 개념을 정리해본다.지금까지는 Claude에게 Prompt를 전달하고 Text 응답을 받는 흐름을 살펴봤다. 하지만 실제 AI 애플리케이션을 만들다 보면 모델의 학습 데이터만으로는 처리할 수 없는 요청이 생긴다.현재 서울 날씨를 알려줘.주문 번호 1234의 배송 상태를 조회해줘.Jira에 버그 티켓을 만들어줘.이런 작업에는 외부 API, Database 또는 애플리케이션 내부 함수와의 연결이 필요하다. 이때 사용하는 기능이 Tool Use다.Tool Use란 무엇인가?Tool Use는 LLM의 판단 능력과 Backend의 실행 능력을 연결하는 구조다.LLM의 판단 능력 +Backend의 실행 능력 =실제로 작업할 수 있는 A..
이번에는 Claude API 강의의 Prompt Engineering 파트를 정리해본다.LLM을 사용하다 보면 같은 모델을 사용해도 Prompt를 어떻게 작성하느냐에 따라 결과가 꽤 달라진다.Prompt Engineering은 단순히 Prompt를 길고 상세하게 작성하는 것이 아니라, 모델이 수행해야 하는 작업과 원하는 결과를 명확하게 전달하는 과정이다.강의에서는 Prompt를 개선하는 방법으로 크게 다음 네 가지를 소개한다.Clear and DirectBeing SpecificStructure with XML TagsProviding ExamplesClear and Direct가장 기본적인 방법은 모델에게 무엇을 해야 하는지 명확하게 이야기하는 것이다.예를 들어 다음과 같은 Prompt가 있다고 해보자..
지난 글에서는 Claude API를 사용하기 위해 필요한 Token, Context, System Prompt, Temperature 등의 기본 개념을 살펴봤다.이번 글에서는 한 단계 더 나아가 LLM 애플리케이션의 사용자 경험과 출력 안정성, 품질을 개선하는 방법을 정리한다. 주요 주제는 다음 세 가지다.Response Streaming→ 생성 중인 응답을 실시간으로 전달Structured Output→ 프로그램이 처리할 수 있는 형태로 출력 제어Prompt Evaluation→ 프롬프트의 품질을 반복적이고 객관적으로 검증1. Response StreamingLLM의 응답이 길어질수록 전체 생성에 필요한 시간도 길어진다. 일반적인 API 방식에서는 응답 생성이 끝난 뒤에야 결과를 전달하기 때문에, 사용..
최근 LLM을 조금 더 체계적으로 공부하기 위해 Anthropic에서 제공하는 「Claude with the Anthropic API」 강의를 듣기 시작했다.이 글은 해당 강의의 내용을 한국어로 번역해 정리한 글이다. 영어로 그대로 사용하는 편이 자연스러운 Token, Embedding, System Prompt 등의 기술 용어는 원문 표현을 유지했다.첫 번째 강의에서는 Claude의 모델 종류부터 API 요청 방식, LLM이 텍스트를 생성하는 과정, Multi-Turn Conversation, System Prompt, Temperature까지 LLM API를 사용하기 위한 기본적인 개념을 다룬다.Claude 모델은 어떻게 선택할까?Claude에는 목적에 따라 특성이 다른 세 가지 모델 계열이 있다.O..
신규 서비스를 배포하는 과정에서, 각 환경에서 사용 중인 배포 방식을 다시 점검하게 되었다.현재 개발 환경에서는 dev, perf, stg를 용도별로 분리하여 사용하고 있으며, 이 중 dev와 perf / stg 간에는 배포 방식에 명확한 차이가 존재한다. 본 글에서는 왜 환경에 따라 서로 다른 배포 전략을 선택했는지, 그리고 그 선택이 어떤 목적을 반영하고 있는지를 정리해보고자 한다. 환경별 배포의 목적환경별 배포 전략을 이해하기 위해서는, 각 환경이 가지는 목적을 먼저 살펴볼 필요가 있다.Dev 환경은 빠른 실험과 반복적인 변경을 통해 기능을 검증하는 것이 목적이다.Stg / Perf 환경은 운영 환경과 최대한 유사한 조건에서 시스템을 검증하는 것이 목표이다.이처럼 환경별로 추구하는 가치가 다르기 ..
1️⃣ 테스트 피라미드란 무엇인가?테스트 피라미드는테스트의 종류를 계층화하여 비율과 역할을 구분한 개념. 단위 테스트는 많고 빠르게,통합 테스트는 적절히E2E 테스트는 최소한으로 유지이렇게 밸런스를 맞추는 것이 테스트 피라미드의 핵심. 2️⃣ 구글의 테스트 피라미드구글은 테스트를 크기 기준으로 구분함.구분이름의미Small Test (소형 테스트)단일 클래스, 함수 단위 테스트빠름, 결정적, 외부 의존 XMedium Test (중형 테스트)여러 컴포넌트 간 연동 테스트DB, 네트워크 등 일부 의존Large Test (대형 테스트)시스템 전체 통합 테스트느림, 환경 의존, 복잡함 3️⃣ 테스트를 구분하는 두 가지 핵심 기준① 테스트가 결정적인가? (Deterministic)테스트는 언제 실행해도 결과가 같아..
1️⃣ 서비스란 무엇인가?스프링에서 흔히 말하는 "서비스 클래스"는 비즈니스 로직을 담는 계층으로 알려져 있지만,실제로는 역할에 따라 두 가지 종류로 나뉨.도메인 서비스: 비즈니스 규칙의 핵심 로직 담당애플리케이션 서비스: 로직을 조합하고 실행 흐름을 관리이 둘을 구분하지 않으면,서비스는 점점 비대해지고 결국 "모든 걸 하는 슈퍼 클래스"가 되어버림. 2️⃣ 도메인 (Domain) — “비즈니스의 중심 객체”도메인은 주문, 결제, 배송, 상품 같은비즈니스의 핵심 개념을 직접 표현하는 객체.즉, 실세계의 규칙과 제약이 녹아 있는 코드.@Entitypublic class Order { private OrderStatus status; private Money totalPrice; public..
1️⃣ 순환 참조란 무엇인가? 순환 참조란두 개 이상의 객체나 모듈이 서로를 직접 또는 간접적으로 참조하는 관계.class A { private B b;}class B { private A a;} 2️⃣ 순환 참조의 문제점 ⚠️ 1. 무한 루프서로가 서로를 호출하는 재귀적 구조가 생길 수 있음.특히 toString(), equals(), hashCode() 재정의 시 주의.public class A { private B b; public String toString() { return "A -> " + b; }}public class B { private A a; public String toString() { return "B -> " + a; }}// A.toStri..
둘기덕
덕토피아