| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 1차원 DP
- 2차원 dp
- 99클럽
- @BeforeAll
- @BeforeEach
- @Builder
- @Entity
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Query
- @Table
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- api gateway 설계
- api gateway 필터
- ApplicationEvent
- argocd
- assertThat
- async/await
- AVG
- AWS
- aws autoscaling
- aws eks
- aws iam role
- AWS KMS
- Today
- Total
목록전체 글 (343)
기록
이전 글에서는 모델 응답을 Java 객체로 변환하고, 필수값과 길이처럼 코드로 확인할 수 있는 조건을 검증했다. 하지만 구조와 기본 조건을 만족한 응답도 내용은 틀릴 수 있다.예를 들어 다음 응답은 StructuredAnswer로 변환할 수 있고 필드 검증도 통과한다.{ "answer": "48 km/h", "reason": "Average speed = (60 km + 60 km) / 2"}형식은 맞지만 계산은 틀렸다. 이번 글에서는 이런 응답을 별도의 AI 모델로 한 번 더 평가해본다.생성 모델과 평가 모델 나누기답안을 만드는 모델과 답안을 평가하는 모델을 분리한다.질문→ 생성 모델→ StructuredAnswer→ 코드 검증→ 평가 모델→ AnswerEvaluation생성 모델은 사용자 질문에 ..
이전 글에서는 모델의 응답을 문자열로 받아 그대로 반환했다. 이번에는 모델의 출력을 애플리케이션이 다룰 수 있는 구조로 바꾸고, 그 값이 실제로 사용할 수 있는지 검증한다.응답 구조 정의하기최종 답과 이유를 분리해서 받기 위해 응답 타입을 정의한다.public record StructuredAnswer( String answer, String reason) {}Spring AI의 entity()를 사용하면 모델 응답을 지정한 Java 타입으로 받을 수 있다.StructuredAnswer answer = chatClient.prompt() .system(SYSTEM_PROMPT) .user(message) .call() .entit..
생성형 AI를 애플리케이션에 붙이는 첫 단계는 모델을 호출하고 응답을 받아보는 것이다. 이번 글에서는 Ollama로 공개 모델을 로컬에서 실행하고 Spring AI의 ChatClient로 간단한 챗봇 API를 만든다. 모델이 어떤 형태로 응답하는지 확인하고, System Message로 응답 방식을 안내해본다.실습 환경예제는 Java 21, Spring Boot 4.1.1, Spring AI 2.0.1, Docker Compose, Ollama, Qwen2.5 1.5B를 사용한다.Ollama는 모델을 내려받아 실행하고 HTTP API를 제공하는 런타임이고, Qwen2.5 1.5B는 Ollama가 실행하는 언어 모델이다. 따라서 Ollama를 실행한 뒤 사용할 모델을 별도로 내려받아야 한다.Docker C..
1. -DskipTestsmvn package -DskipTests 이 옵션은 테스트 실행만 생략한다. 테스트 코드는 여전히 컴파일된다. 즉 test-compile 단계는 수행되지만, test 단계에서 실제 테스트 러너는 동작하지 않는다. 그 결과 테스트 코드에 문법 오류가 있으면 빌드는 실패한다. 실행은 하지 않지만, 컴파일 오류는 그대로 잡아낸다. 2. -Dmaven.test.skip=truemvn package -Dmaven.test.skip=true 이 옵션은 테스트 컴파일과 실행을 모두 생략한다. 테스트 관련 단계 자체를 건너뛴다. 따라서 src/test/java에 문법 오류가 있어도 빌드는 통과한다. 이 방식은 테스트 영역을 빌드에서 완전히 제외하는 것에 가깝다.
보호되어 있는 글입니다.
1. 개요왼쪽은 Maven의 선형 라이프사이클 구조다. 사용자는 mvn test, mvn package처럼 어디까지 실행할지를 선택하며, 해당 단계까지 정해진 순서대로 내려간다. 각 단계는 내부적으로 플러그인이 실제 작업을 수행한다. 오른쪽은 Gradle의 task 의존성 구조다. build는 assemble과 check에 의존하고, check는 다시 test에 의존한다. Gradle은 먼저 이러한 의존 관계를 계산한 뒤, 필요한 task만 실행한다. 단계가 아니라 의존 그래프를 기준으로 동작한다. 1. Apache MavenMaven은 정해진 순서를 따라 내려가는 빌드 도구다. validate → compile → test → package → install → deploy라는 단계가 이미 정해져 있다..
개요2025년 8월부터 2026년 2월까지 진행한 쿠버네티스 스터디에서 《Kubernetes Patterns, 2nd Edition》을 교재로 사용했다. 이 책은 쿠버네티스 환경에서 반복적으로 등장하는 배포, 운영, 확장 문제를 패턴 형태로 정리한다.https://www.oreilly.com/library/view/kubernetes-patterns-2nd/9781098131678/ Kubernetes Patterns, 2nd EditionThis second edition comes with a dedicated playlist of interactive Katacoda labs mapped to sections of the book. As you read through each chapter, you..
개요2025년 4월부터 5월까지 진행한 스터디에서 《스프링으로 시작하는 리액티브 프로그래밍》을 교재로 사용했다. 리액티브 프로그래밍의 기본 개념과 Reactive Streams, Project Reactor, Spring WebFlux의 핵심 내용을 다루는 책이다. https://product.kyobobook.co.kr/detail/S000201399476 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는product.kyobobook.co.kr목차Part 01 리액티브 프로그래밍(Reactive Programmi..