본문 바로가기
  • 데이터에 가치를 더하다, 서영석입니다.

전체 글193

MCP -A2A 연동 테스트 지난 글에서 MCP 서버를 Railway에 올렸다. "파일 정리 에이전트"가 작업을 끝내고, 그 결과를 "슬랙 알림 에이전트"한테 넘기고 싶다.근데 방법이 없다. 에이전트끼리 대화하는 표준이 없다.MCP는 AI ↔ 도구 사이의 프로토콜이다.그럼 AI ↔ AI 사이는를 A2A라고 부른다.A2A란A2A(Agent-to-Agent)는 Google이 2025년 4월에 공개한 오픈 프로토콜이다.AI 에이전트끼리 서로를 발견하고, 작업을 위임하고, 결과를 주고받기 위한 표준이다.쉽게 말하면:MCP = AI가 도구(DB, API, 파일)를 쓰는 방법A2A = AI가 다른 AI에게 일을 시키는 방법구분MCPA2A통신 대상도구 (DB, API, 파일시스템)다른 에이전트방향클라이언트 → 서버에이전트 ↔ 에이전트주체Anth.. 2026. 4. 12.
MCP 서버를 클라우드에 올리다 (stdio에서 SSE로) 지난 글에서 Tool + Resource + Prompt를 조합한 완성형 MCP 서버를 만들었다.그런데 만들고 나서 팀원한테 공유하려고 했더니 막혔다. 내 로컬에서만 돌아간다. stdio는 표준 입출력 방식이라 내 터미널이 살아있을 때만 동작한다.팀원이 쓰려면 각자 코드를 받아서, 각자 실행해야 한다. 이건 사실상 "공유"가 안 된다는 뜻이다. 그래서 이번에는 로컬 stdio → 클라우드 SSE로 전환하는 방법을 정리했다. Railway에 올려서 팀원 누구나 접속할 수 있는 MCP 서버를 만들어볼 것이다. stdio 방식의 구조는 이렇다. 구분stdioSSE (HTTP)통신 방식표준 입출력 (파이프)HTTP + Server-Sent Events실행 위치로컬 PC 필수서버 어디든 OK공유불가 (본인 PC만.. 2026. 4. 5.
Smart Folder Organizer API 설계 파일 정리를 잘 못 한다, 정확히는, 할 시간이 없다. 다운로드 폴더에 파일이 쌓이고, 바탕화면에도 쌓인다. 필요할 때마다 “그거 어디 있더라”를 반복한다.그러다 바이브코딩으로 개발한 것이 smart-folder-organizer였다.AI가 파일을 분석해서 폴더 구조를 제안해주는 웹앱이다. Claude한테 요구사항을 계속 던지면서 같이 만들었다.전체 구조smart-folder-organizer/├── app/│ ├── page.tsx # 메인 페이지 (6단계 스텝)│ └── api/│ ├── scan/route.ts # 폴더 스캔│ ├── analyze/route.ts # AI 분석 (Claude or 사내 LLM)│ ├── appl.. 2026. 3. 22.
MCP 완전체 만들기 — Resource와 Prompt까지 붙여보기 지난 글에서는 @mcp.tool()을 이용해서 AI가 직접 DB를 조회할 수 있는 MCP 서버를 만들어봤다.Tool을 하나 붙이고 나니까 확실히 느낌이 다르다.Claude가 그냥 답을 만들어내는 게 아니라, 실제로 서버 함수를 호출해서 데이터를 가져오기 시작한다.그런데 MCP를 조금 더 만져보면 알게 된다. Tool만으로는 생각보다 할 수 있는 게 제한적이다.MCP에는 Tool 말고도 두 가지 핵심 기능이 더 있다.기능데코레이터역할Tool@mcp.tool()AI가 실행할 수 있는 함수Resource@mcp.resource()AI에게 읽을 수 있는 데이터를 제공Prompt@mcp.prompt()AI에게 재사용 가능한 지시문을 제공이 세 가지를 모두 갖추면 진짜 쓸 수 있는 MCP 서버가 된다.Tool / .. 2026. 3. 15.
MCP 서버 직접 만들기 — AI가 DB를 직접 읽게 하는 법 지난 글에서 MCP가 "AI와 시스템 사이의 USB"라고 했다. 그 MCP를 직접 만들어보려고 한다.Python으로 MCP 서버를 직접 만들고 AI가 데이터베이스를 읽게 하는 방법을 실습으로 알아본다.SQLite DB (sales.db) — 고객/상품/주문 데이터MCP 서버 (mcp_server.py) — 4개 Tool 보유Claude Desktop — MCP 클라이언트 역할핵심은 "Python 함수 하나를 AI Tool로 만들 수 있다." 이다.STEP 0. MCP 라이브러리 설치먼저 MCP 서버를 만들기 위한 라이브러리를 설치한다.pip install fastmcpSTEP 1. 샘플 데이터베이스 만들기실습을 위한 간단한 판매 데이터베이스를 만든다.# setup_db.pyimport sqlite3con.. 2026. 3. 7.
LLM을 넘어 Agent로: MCP가 여는 기업용 AI 최근 GPT-4, Gemini, Claude와 같은 모델들의 성능을 보며 우리는 "AI가 정말 똑똑해졌다"고 느낀다. 하지만 현업의 목소리는 조금 다르다. "똑똑하긴 한데, 그래서 내 업무를 대신 해줄 수 있어?"라는 질문에는 여전히 의문부호가 붙기 때문이다.이제 문제는 '지능'이 아니다. 핵심은 '연결(Connection)'과 '실행(Action)'이다.1. 왜 LLM은 아직 우리 업무를 '직접' 하지 못할까?LLM은 진짜 무섭게 많이 안다. 세상 거의 모든 지식을 학습했고, 글도 잘 쓰고, 코드도 짠다. 근데 딱 한 가지 약점이 있다. 지금 이 순간, 이 회사 안에서 무슨 일이 일어나는지를 모른다. "올해 3분기 영업이익률 분석해줘" 하면? 학습된 일반 지식으로 뭔가 그럴듯한 말을 한다. 진짜 우리 .. 2026. 2. 21.
[통계] 왜 머신러닝은 확률로 설명될까 머신러닝을 공부하다 보면 이상하게 많은 개념이 확률과 통계로 설명된다.Loss도 확률로 해석되고, 모델 평가도 확률 분포로 이야기하고, 심지어 딥러닝의 출력도 결국 확률값이다.처음에는 단순히 데이터를 많이 다루기 때문이라고 생각했지만, 조금 더 공부하면서 생각이 달라졌다.머신러닝은 결국 정답을 정확히 아는 문제가 아니라, 가장 그럴듯한 답을 추정하는 문제에 가깝다는 것을 느끼게 됐다. 그리고 통계는 바로 그 “추정”을 다루는 학문이었다.확률은 불확실성을 다루는 언어였다현실의 데이터는 항상 노이즈가 있고, 완벽하게 예측할 수 있는 경우는 거의 없다. 같은 조건에서도 결과가 달라지고, 같은 고객도 다른 행동을 한다.이때 모델은 하나의 값을 정확히 맞추는 것이 아니라 “이 결과가 나올 가능성이 얼마나 높은가”.. 2026. 2. 8.
[선형대수] 선형대수는 왜 딥러닝에서 계속 등장할까 딥러닝을 공부하거나 모델을 설계하다 보면 이상할 정도로 같은 수학 개념들이 반복해서 등장한다.Rank, Eigenvalue, SVD, Gradient. 처음에는 서로 다른 단원에 있는 별개의 개념처럼 느껴졌는데실제로 여러 프로젝트를 거치며 다시 정리해보니 결국 이 모든 것들이 하나의 이야기를 하고 있다는 생각이 들었다. 머신러닝은 복잡한 알고리즘의 집합이라기보다, ‘벡터 공간 위에서 구조를 찾고 그 안에서 움직이는 과정’에 가깝다고 느꼈다.그리고 이 네 가지 개념은 그 과정을 서로 다른 관점에서 설명하는 도구였다.Vector Space 가장 먼저 이해해야 할 것은 우리가 다루는 모든 데이터가 결국 벡터라는 사실이었다.텍스트는 임베딩 벡터로 변환되고, 이미지는 수천 차원의 feature map으로 표현되며.. 2026. 2. 1.
AI Agent는 왜 대부분 ‘자동화된 챗봇’으로 끝나는가 (2) 자율 AI가 되지 못한 진짜 이유는 기술이 아니라 설계였다Agent, Multi-Agent, 자율화, 오케스트레이션, 워크플로우까지 AI Agent라는 단어는 이미 너무 흔해졌다.하지만 현장에서 실제로 마주하는 AI Agent의 모습은 대부분 비슷했다. 질문을 입력하면 답을 해주고, 버튼을 눌러주고, 다음 단계는 다시 사람이 판단했다. 겉으로는 Agent였지만, 실제 역할은 “조금 똑똑해진 챗봇”에 가까웠다.이 글을 쓰게 된 이유도 여기에 있었다.Agent를 직접 설계하고, LangGraph를 만지고, MCP 구조를 고민하고, PoC를 반복하면서 느낀 건 단순했다. 문제는 모델 성능이 아니었고, 기술 스택도 아니었으며, 진짜 문제는 ‘결정권을 어디까지 줄 것인가’에 대한 설계 부재였다.Agent가 챗봇으.. 2026. 1. 25.
반응형