<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>SamHyun Dev</title><description>Software Engineer | Spring, Cloud, AI Chatbot</description><link>https://samhyun.github.io/</link><item><title>AI 챗봇 인프라 클라우드 마이그레이션 — AWS ECS에서 GKE/AKS 멀티클라우드 대응까지</title><link>https://samhyun.github.io/blog/chatbot-infra-multicloud-terraform/</link><guid isPermaLink="true">https://samhyun.github.io/blog/chatbot-infra-multicloud-terraform/</guid><description>고객사의 클라우드 플랫폼이 미정인 상황에서 AWS ECS 인프라를 GCP GKE와 Azure AKS로 대응할 수 있도록 Terraform 코드를 준비했다. Cloud Run을 선택하지 않은 이유와 클라우드별 비용/아키텍처 비교를 함께 정리한다.</description><pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Terraform 코드 품질 3/10에서 8/10으로 — Terraformer 자동 생성 코드를 프로덕션 수준으로 개선하기</title><link>https://samhyun.github.io/blog/terraform-code-quality-improvement/</link><guid isPermaLink="true">https://samhyun.github.io/blog/terraform-code-quality-improvement/</guid><description>Terraformer로 AWS 인프라를 임포트한 결과 50개 파일 3500줄이 나왔지만 품질은 낮았다. 보안 개선과 모듈화 그리고 상태 관리 중앙화와 비용 최적화까지 프로덕션 수준으로 개선한 과정을 정리한다.</description><pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate></item><item><title>멀티 에이전트 챗봇에 다국어를 넣으려면 — 싱글톤 제약 아래의 설계 판단</title><link>https://samhyun.github.io/blog/multi-agent-i18n-architecture/</link><guid isPermaLink="true">https://samhyun.github.io/blog/multi-agent-i18n-architecture/</guid><description>Google ADK 기반 멀티 에이전트 챗봇을 다국어로 확장하기 위해 5가지 방법을 검토하고 3가지를 탈락시킨 과정. 싱글톤 에이전트의 불변 instruction이라는 제약 아래에서 내린 설계 판단을 정리한다.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>RAG 문서 전처리 파이프라인 설계 — AWS Batch + GPU Spot으로 비동기 문서 변환 구축하기</title><link>https://samhyun.github.io/blog/rag-document-preprocessing-pipeline/</link><guid isPermaLink="true">https://samhyun.github.io/blog/rag-document-preprocessing-pipeline/</guid><description>AWS Batch와 GPU Spot Instance를 활용한 비동기 문서 전처리 파이프라인 설계, 카테고리별 파이프라인 분리, 콜백 패턴 기반 상태 추적을 구현한 경험을 정리한다.</description><pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate></item><item><title>RAG 지식 관리 시스템 설계 — Milvus 컬렉션 버저닝과 Alias 기반 블루-그린 배포</title><link>https://samhyun.github.io/blog/rag-knowledge-versioning-milvus/</link><guid isPermaLink="true">https://samhyun.github.io/blog/rag-knowledge-versioning-milvus/</guid><description>Milvus 벡터 DB의 버전별 컬렉션 관리, Alias 기반 블루-그린 배포, 스냅샷 기반 버전 생성, 문서 상태 머신 등 RAG 지식 관리 시스템의 설계 과정을 정리한다.</description><pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate></item><item><title>멀티 에이전트 챗봇의 메시지 그룹핑 스키마 설계 — 1:N 응답 문제 해결과 무중단 마이그레이션</title><link>https://samhyun.github.io/blog/multi-agent-message-grouping-schema/</link><guid isPermaLink="true">https://samhyun.github.io/blog/multi-agent-message-grouping-schema/</guid><description>병렬 실행 멀티 에이전트 시스템에서 사용자 1명의 메시지에 여러 에이전트가 동시 응답할 때 피드백 추적과 모니터링을 위한 메시지 그룹핑 스키마 설계와 Flyway 무중단 마이그레이션 경험을 정리했다.</description><pubDate>Fri, 30 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Multi-Agent 챗봇에서 컨텍스트 윈도우 관리하기 — 토큰 추정 Fallback 체인과 LLM 기반 압축</title><link>https://samhyun.github.io/blog/multi-agent-context-compression/</link><guid isPermaLink="true">https://samhyun.github.io/blog/multi-agent-context-compression/</guid><description>Google ADK 기반 멀티 에이전트 시스템에서 대화가 길어질수록 토큰이 폭증하는 문제를 해결하기 위해 적용한 토큰 추정 Fallback 체인, State 정리, LLM 기반 대화 요약 압축 전략을 정리한다.</description><pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate></item><item><title>RxJava3로 멀티 에이전트 병렬 실행 파이프라인 설계하기</title><link>https://samhyun.github.io/blog/multi-agent-parallel-execution/</link><guid isPermaLink="true">https://samhyun.github.io/blog/multi-agent-parallel-execution/</guid><description>Google ADK 기반 챗봇에서 RxJava3의 concat, merge, zip, defer를 활용하여 의존성이 있는 에이전트는 순차로 독립적인 에이전트는 병렬로 실행하는 3-Phase 오케스트레이션 아키텍처를 설계한 경험을 정리한다.</description><pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate></item><item><title>ECS 인프라 비용 절감기 — NAT 정리부터 EC2 Spot 전환까지</title><link>https://samhyun.github.io/blog/aws-ecs-cost-optimization/</link><guid isPermaLink="true">https://samhyun.github.io/blog/aws-ecs-cost-optimization/</guid><description>정식 운영 전 단계에서 ECS Fargate 인프라 비용이 부담되어 NAT Gateway 제거와 EC2 Spot 전환을 적용했다. Public Subnet 배치 판단 근거와 VPC Endpoint 구성 등 각 단계의 트레이드오프를 정리한다.</description><pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate></item><item><title>멀티 에이전트 챗봇의 응답 품질 개선 — 피드백 기반 프롬프트 튜닝 패턴 5가지</title><link>https://samhyun.github.io/blog/multi-agent-feedback-quality-improvement/</link><guid isPermaLink="true">https://samhyun.github.io/blog/multi-agent-feedback-quality-improvement/</guid><description>병렬 실행 멀티 에이전트 챗봇에서 실제 고객 피드백을 통해 발견한 답변 중복, 흐름 단절, 모호한 추천 등의 문제를 프롬프트 튜닝으로 해결한 패턴을 정리한다.</description><pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate></item><item><title>멀티 턴 워크플로우를 상태 머신으로 설계하기 — 에이전트 분리와 단계별 라우팅</title><link>https://samhyun.github.io/blog/multi-agent-quotation-state-machine/</link><guid isPermaLink="true">https://samhyun.github.io/blog/multi-agent-quotation-state-machine/</guid><description>Google ADK 기반 챗봇에서 다단계 정보 수집 워크플로우를 상태 머신 패턴으로 설계하고 Parser → Router → Domain Agent 3단계 파이프라인으로 구현한 경험을 정리했다.</description><pubDate>Sat, 15 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Milvus 파티션 기반 Multi-Source RAG 설계 — 마케팅과 기술 스펙을 분리 검색하기</title><link>https://samhyun.github.io/blog/multi-agent-rag-dual-source/</link><guid isPermaLink="true">https://samhyun.github.io/blog/multi-agent-rag-dual-source/</guid><description>Milvus 벡터 DB의 파티션을 PRODUCT_SPECS, MARKETING, FAQ로 분리하고 에이전트별로 다른 소스를 조합하여 검색하는 Dual-Source RAG 전략과 Auto-Discovery 모드를 설계한 경험을 정리했다.</description><pubDate>Wed, 05 Nov 2025 00:00:00 GMT</pubDate></item><item><title>프로덕션 챗봇 서비스의 장애 대응 설계 — 타임아웃, 재시도, Fallback, Feature Toggle 4계층 방어</title><link>https://samhyun.github.io/blog/chatbot-resilience-patterns/</link><guid isPermaLink="true">https://samhyun.github.io/blog/chatbot-resilience-patterns/</guid><description>외부 시스템 의존성이 높은 프로덕션 챗봇의 타임아웃, 재시도, Fallback, Feature Toggle을 통한 4계층 방어 전략</description><pubDate>Sat, 25 Oct 2025 00:00:00 GMT</pubDate></item><item><title>멀티 에이전트 챗봇의 SSE 스트리밍 아키텍처 — Spring WebFlux로 실시간 응답 전달하기</title><link>https://samhyun.github.io/blog/multi-agent-sse-streaming-webflux/</link><guid isPermaLink="true">https://samhyun.github.io/blog/multi-agent-sse-streaming-webflux/</guid><description>Spring WebFlux와 SSE로 멀티 에이전트 챗봇의 실시간 응답을 스트리밍하고, 메타데이터 필터링, Fire-and-Forget 완료 추적, 음성 통합 3가지 모드를 구현한 경험을 정리했다.</description><pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate></item><item><title>LLM 멀티 에이전트 시스템의 Intent 라우팅 설계 — 키워드가 아닌 맥락으로 분류하기</title><link>https://samhyun.github.io/blog/multi-agent-intent-routing/</link><guid isPermaLink="true">https://samhyun.github.io/blog/multi-agent-intent-routing/</guid><description>Intent 분류 체계 설계, 컨텍스트 우선 오버라이드, 모호한 질문 감지, 오분류 방지를 위한 프롬프트 엔지니어링 전략을 실제 B2B 챗봇 운영 경험을 통해 정리했다.</description><pubDate>Sun, 05 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Querydsl Web Support의 Entity 노출 문제를 Alias 아키텍처로 해결하기</title><link>https://samhyun.github.io/blog/querydsl-web-support-alias-architecture/</link><guid isPermaLink="true">https://samhyun.github.io/blog/querydsl-web-support-alias-architecture/</guid><description>Spring Data의 Querydsl Web Support에 Alias 시스템을 도입하여 Entity 노출 문제를 해결하고, API 스펙의 안정성과 문서화를 Single Source of Truth로 관리하는 아키텍처를 설계했다.</description><pubDate>Sat, 15 Feb 2025 00:00:00 GMT</pubDate></item><item><title>반복 테스트에 들어가는 시간을 줄이는 방법 — 자동화 전략과 QA 협업</title><link>https://samhyun.github.io/blog/automated-testing-qa-collaboration/</link><guid isPermaLink="true">https://samhyun.github.io/blog/automated-testing-qa-collaboration/</guid><description>릴리즈마다 같은 시나리오를 수동으로 반복하는 데 시간이 너무 많이 들었다. 테스트 피라미드 재설계와 계약 테스트 도입으로 반복을 줄이고 QA가 탐색 테스트에 집중할 수 있는 구조를 만들기까지의 고민을 정리한다.</description><pubDate>Mon, 05 Feb 2024 00:00:00 GMT</pubDate></item><item><title>S3 Maven Repository에서 GitHub Packages로 전환한 이유</title><link>https://samhyun.github.io/blog/github-packages-java-library/</link><guid isPermaLink="true">https://samhyun.github.io/blog/github-packages-java-library/</guid><description>S3 버킷 기반 사내 Maven Repository를 운영하다 버전 확인이 불편하고 설정이 복잡해서 GitHub Packages로 전환했다. Gradle 설정부터 Jenkins 배포까지 전환 과정과 실제로 겪은 문제를 정리한다.</description><pubDate>Sun, 05 Nov 2023 00:00:00 GMT</pubDate></item><item><title>Kotlin DSL로 RestDocs 테스트 코드 반복을 줄인 방법</title><link>https://samhyun.github.io/blog/kotlin-test-dsl/</link><guid isPermaLink="true">https://samhyun.github.io/blog/kotlin-test-dsl/</guid><description>RestDocs 컨트롤러 테스트에서 JSON 필드 설명을 하나하나 작성하는 반복 작업이 지루해서 Kotlin DSL로 간결하게 만들었다. Kotest와 확장 함수를 활용한 테스트 DSL 설계 과정을 정리한다.</description><pubDate>Tue, 20 Jun 2023 00:00:00 GMT</pubDate></item><item><title>AWS Cognito와 S3를 활용한 파일 업로드 기능 구현</title><link>https://samhyun.github.io/blog/aws-cognito-s3-file-upload/</link><guid isPermaLink="true">https://samhyun.github.io/blog/aws-cognito-s3-file-upload/</guid><description>AWS Cognito Identity Pool과 S3를 연동하여 인증 기반 파일 업로드를 구현하는 방법을 백엔드(Java)와 클라이언트(JavaScript) 양쪽에서 설명한다.</description><pubDate>Sat, 20 May 2023 00:00:00 GMT</pubDate></item><item><title>Swagger UI를 활용한 공용 API 문서 서버 구성</title><link>https://samhyun.github.io/blog/swagger-ui-centralized-api-docs/</link><guid isPermaLink="true">https://samhyun.github.io/blog/swagger-ui-centralized-api-docs/</guid><description>분산된 Spring RestDocs 문서를 Swagger UI로 통합하고 epages-restdocs 플러그인과 Jenkins CI/CD를 활용해 자동화된 API 문서 서버를 구축한 과정을 정리한다.</description><pubDate>Wed, 05 Apr 2023 00:00:00 GMT</pubDate></item><item><title>Spring Cloud Config 롤백 시 설정이 안 맞는 문제 해결하기</title><link>https://samhyun.github.io/blog/cloud-config-versioning-rollback/</link><guid isPermaLink="true">https://samhyun.github.io/blog/cloud-config-versioning-rollback/</guid><description>운영 환경에서 특정 버전으로 롤백했더니 설정 정보가 현재 마스터 기준으로 내려와서 서비스가 정상 동작하지 않았다. Jenkins와 Docker를 활용해 배포 버전별로 Cloud Config 라벨을 자동 지정하는 방식으로 해결한 과정을 정리한다.</description><pubDate>Tue, 10 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Spring Cloud Config로 설정 정보 중앙화하기 — 도입 배경과 Server/Client 구성</title><link>https://samhyun.github.io/blog/spring-cloud-config-centralized-management/</link><guid isPermaLink="true">https://samhyun.github.io/blog/spring-cloud-config-centralized-management/</guid><description>여러 Java 프로젝트에서 개별 관리되던 설정 파일을 Spring Cloud Config로 중앙화한 경험을 정리한다. 도입 배경, Server/Client 구성, 암호화, 테스트 환경 분리, 동적 갱신까지 다룬다.</description><pubDate>Sat, 20 Aug 2022 00:00:00 GMT</pubDate></item><item><title>QuerydslPredicate를 사용한 동적 쿼리 생성과 커스터마이징을 통한 확장</title><link>https://samhyun.github.io/blog/querydsl-predicate-customization/</link><guid isPermaLink="true">https://samhyun.github.io/blog/querydsl-predicate-customization/</guid><description>Spring Data JPA의 @QuerydslPredicate를 활용하여 동적 쿼리를 생성하고, 타입 기반 커스터마이징으로 확장성과 재사용성을 높이는 방법을 정리했다.</description><pubDate>Sat, 10 Jul 2021 00:00:00 GMT</pubDate></item><item><title>Jxls에서 반복문과 셀 병합을 동시에 처리하는 커스텀 커맨드</title><link>https://samhyun.github.io/blog/jxls-custom-command-excel/</link><guid isPermaLink="true">https://samhyun.github.io/blog/jxls-custom-command-excel/</guid><description>Jxls의 기본 커맨드로는 반복 처리 중 셀 병합이 안 된다. 계층 구조 데이터를 엑셀로 출력하면서 상위 항목 셀을 자동 병합하는 EachMergeCommand를 만들어 해결했다.</description><pubDate>Sun, 15 Sep 2019 00:00:00 GMT</pubDate></item></channel></rss>