[Spring AI] 4편: MCP 서버 구동과 실행
2026. 3. 20. 14:14
개발/Spring
MCP 서버 구동 방식MCP 연동을 통해 제일 먼저 고민한건 MCP서버를 어디에 둘까?였다.stdio vs streamable-http먼저 stdio 방식은 해당프로세스가 자식프로세스로 mcp 서버를 관리하는 것으로 별도의 네트워크 이슈가 발생하지 않는 장점이 있지만, mcp 프로세스의 메모리점유율이 높아질 경우 해당 서버의 모든 프로세스에 영향이 올 수 있으므로 Enterprise 환경에서 맞지 않다. 그래서 별도로 MCP Server를 가지고 API로 서비스할 수 있는 기능을 활용해야한다. 바로 Streamable-http 방식인데 25년3월부터 해당 방식이 등장했다.(그전에는 sse 방식을 지원함) 결론부터 말하자면 두가지 방식을 다 테스트 해봄~Streamable-http : Google MCP구..
[Spring AI] 3편: Database 쿼리생성 및 실행을 위한 HITL(Human in the Loop)
2026. 3. 20. 14:13
개발/Spring
샘플데이터베이스postgresql용도 데이터베이스 샘플인 dvdrental 을 활용 PostgreSQL Sample DatabaseThis tutorial introduces you to a PostgreSQL sample database that you can use for learning and practicing with PostgreSQL.neon.com구현PromptsqlTool 에 기능을 분류하여 agent가 테이블 스키마를 조회하고 테이블을 조죄할 수 있도록 했다.그리고 잘못된 컬럼을 요청했을 때 자기 수정 규칙을 두어 최대 3번까지 수정을 재시도할 수 있다.당신은 PostgreSQL 전문가입니다. 데이터베이스 이름은 'aidb'이며, DVD 대여 시스템입니다.1. [탐색]: 질문에 관련된..
[Spring AI] 2편: RAG 문서 임베딩
2026. 3. 20. 14:13
개발/Spring
사용사례필자는 경력기술서를 업로드하여 아래 질문을 확인하는 용도로 개발- 내 기술 경력서 요약- 기술 경력서 내용 개선포인트 체크- 면접관이 본다면 어떤 질문을 할까? RAG(Retrieval-Augmented Generation)레그를 적재하고 검색할 수 있도록 해보자.적재RAG 적재에는 아래의 흐름을 가진다.Document Loader -> Text Splitter -> Embedding -> VectorDB우리는 수많은 Chunk 로 잘려진 데이터를 임베딩하여 VectorDB에 적재해야한다.VectorDB는 다양한데 필자는 Postgresql의 vectorDB plugin을 활용해보았다.Cloud Navtive VectorDB종류특징추천 상황Pinecone완전 관리형(SaaS), 설정이 거의 필요 ..
[Spring AI] 1편: 토이 프로젝트 개요
2026. 3. 20. 14:04
개발/Spring
spring AI 에서는 어떤식으로 활용될 수 있을지2주간 구현해본 토이프로젝트(포스팅 맨하단에 github 링크)이며, 완전 무료로 사용할 수 있는 Gemini 를 활용했다. genAI 모델: gemini-3.1-flash-lite-preview (분당 15회 제한이 있으니 천천히..ㅎ)Embedd 모델 : gemini-embedding-001 올라마 임베딩 모델 : all-minilm- 로컬에서 돌리려고 올라마 세팅을 했다가, Rag 임베딩 수준이 처참(내 노트북 기준)해서 제미나이로 변경함개발환경springboot : 3.5.11spring AI : 1.1.2openJDK : 17Gradle 8.14.4VectorDB: pgvector 0.8.2Database: postgresql(16.13-1..
요새 Hot한 MCP, 자동으로 개발 시켜보자
2025. 5. 25. 23:51
개발/기타
이번주에 팀장님이 A2A와 MCP로 시대가 빠르게 변하고 있다고 알려주셔서 잠시 시간을 내어 테스트를 해보았다.MCP란?Model Context Protocol개념: MCP는 Anthropic(Claude 개발사)이 만든 오픈 표준 프로토콜로, AI 모델(예: Claude)이 외부 시스템(파일시스템, 데이터베이스, API 등)과 안전하고 구조화된 방식으로 상호작용할 수 있도록 해줍니다주요 역할: Claude 같은 LLM이 로컬 PC, 서버, 클라우드 등 다양한 리소스와 직접 연결되어 데이터를 읽거나, 도구를 실행하거나, 파일을 관리하는 등 실제 업무 자동화를 할 수 있게 합니다비유: USB Type-C처럼, 다양한 시스템과 AI를 손쉽게 연결하는 "커넥터" 역할활용 예시파일 생성/수정/삭제, 폴더 정리로..
이제 6년 차, 그동안의 내 프로젝트를 정리하기 시작하다.
2025. 5. 2. 22:40
카테고리 없음
그동안 프로젝트를 진행하면서 어떠한 고민들을 했었는지 내용을 짧게나마 정리해보려고 한다.이 내용들을 기반으로 더 Deep하게 복기해보며 면접을 준비해야겠다. [S사 프라이빗 클라우드 쿠버네티스 운영] Iptable 설정 kube-proxy가 설정하는 네트워크의 체인들클러스터 업데이트ㄱ Calico 이슈(IP설정방식의 변화 IPIP VS vxlan)Longhorn 스토리지클래스 커널 이슈 Istio PoC (Virtual Routing, 트래픽)Elastic APM PoC (Go/Vue Performance monitoring)Kubespray 클러스터 운영 (ansible)Prometheus thanos 설계/구축 (중복제거,예외) Fluent-bit 의 리소스 부하 사례 EFK 운영 이슈 (샤드 복제)..
이미지에서 사물을 분석해주는 모델(VGG16)을 사용해 API로 만들어보자
2024. 12. 11. 18:13
개발/Python
언젠가 AI를 해봐야지 생각하면서.. 미루고 있었다.perplexity(GPT) 와 채팅을 하면서 문득 사전에 학습된 모델을 알게되어VGG16 모델을 통해 이미지를 분석하는 테스트를 해보았다. VGG16먼저 VGG16 이란- 키보드, 동물, 연필 등의 정보를 1000개의 Class로 분류 가능- 3x3 커널을 사용- 모델 이미지 입력 크기 224x224 GPU (CUDA) 세팅CPU 를 사용했더니 너무 느려서 노트북에 내장되어 있는 그래픽카드를 셋업했다.필자의 그래픽 카드정보는 NVIDIA GeForce GTX 1650 Ti with Max-Q Design 이며,NVIDIA 사이트에서 Cuda를 지원하는지 체크하여 가능한 것임을 알았다. TensorFlow GPU 지원-소프트웨어 요구사항다음 NVIDIA..
[kubernetes] Storageclass Longhorn vs Kadalu
2024. 10. 12. 21:04
엔지니어링/Kubernetes
올해 1년간 on-prem 쿠버네티스를 운영 프로젝트를 진행하고 있다. 특별히 RKE(Rancher Kubernetes Engine)에서는 Longhorn 이라는 스토리지클래스를 사용하도록 가이드 하고 있어 Rancher Cluster 들은 모두 Longhorn을 사용하고 있다. 그리고 kubespray로 구축된 클러스터는 Kadalu 라는 스토리지클래스를 사용하고 있는데 두 스토리지클래스의 사용 후기를 짧게 나마 적어놓으려 한다.LonghornKadalu분산 블록 스토리지분산 파일 스토리지Longhorn롱혼은 분산 블록 스토리지 솔루션으로, Blob Storage를 제공한다.이로 인해 볼륨 기반의 고가용성과 복제 기능에 중점을 둘 수 있다.주요기능볼륨 복제 : 데이터를 여러 노드에 복제하여, 하나의 노..
Golang Test Standard
2024. 10. 10. 01:58
개발/기타
golang application 개발팀에서 테스트에 대한 가이드가 필요하다고 요청받아 찾아본 내용을 기술한다.좋은 사례로 Thanos Teams, Uber, Devocean, Buzzvil 의 내용을 참고하였다. Test Code의 표준화의 목적은 테이블 주도 테스트(Table-driven Test)로 개발자가 함수를 개발하며 여러 테스트 케이스를 수행해보며 중복을 제거할 수 있도록 표준을 정의한다. 먼저 테스트의 범위를 생각하면 아래 3가지의 항목이 존재한다.1. Data Access Layer - 데이터베이스와의 상호작용, SQL 쿼리 검증2. Business Layer - 비즈니스 로직이 의도한대로 작동하는가, 외부 의존성3. Presentation Layer - API Endpoint 또는 Co..
Elastic APM으로 VUE Application 모니터링
2024. 10. 9. 00:12
엔지니어링/Kubernetes
지난번 Go Application 모니터링을 Elastic APM으로 적용하였고, 그 애플리케이션과 연결된 VUE(frontend) 프로젝트도 간단히 개발해놨었다. 그래서 이번엔 VUE에 RUM Agent를 적용해보려한다. 먼저 적용된 화면이다. 리소스 다운로드 시간에 대한 것들이 벌써부터 내 눈을 즐겁게 해준다.ㅋㅋ작업 순서npm installrum agent js 파일을 다운 받아 public/js/ 안에 복사.환경변수 설정.main.js 에 javascript load 및 init 설정 NPM installnpm install @elastic/apm-rum --saveRum Agent JS 파일 다운아래 공식 github 에 들어가 Release 버전 확인 후 다운로드하자. GitHub - elas..