[AidFlow] 소프트웨어 개발 파트너 MCP
·
Projects/MCP
https://github.com/g-hyeong/MCP-AidFlow GitHub - g-hyeong/MCP-AidFlowContribute to g-hyeong/MCP-AidFlow development by creating an account on GitHub.github.com 개발 동기회사에서 개발 AX 프로젝트를 리딩하게 되면서, 첫 번째로 진행한 게 사내 개발 사이클에 맞춘 MCP 서버 구축이었다. MCP 서버를 통해, AI Code Assistant를 통한 개발 시 사내 개발 워크플로우에 맞게 진행되도록 유도해주는 작업이었는데, 기대 이상으로 만족스러운 성능을 보였어서, 퇴사하고 나니 아래와 같은 생각이 들었다. "이거 충분히 어떤 개발이든 적용시킬 수 있을 것 같은데?" 사내 MCP는 우..
GraphQL Federation 직접 부딪히며 배우기
·
Learnings
회사에서 내가 구축한 영상 이해 데이터 플랫폼의 연장으로, 브랜드 대시보드 프로젝트를 진행하면서 GraphQL과 Apollo Federation을 본격적으로 다뤘다.그 과정에서 Federation 환경의 GraphQL 서버를 개발하며 느낀 것들을 담아봤다GraphQL에 대한 오해GraphQL은 흔히 overfetching(불필요한 데이터까지 가져오는 문제)과 underfetching(한 번에 필요한 데이터를 다 못 가져오는 문제)을 해결한다고 설명된다. 처음에 내가 잘못 생각했던 부분은, “각 요청마다 딱 맞는 스키마를 계속 추가해야 한다”라고 생각한 것이다.즉, 상황별로 최적화된 쿼리와 응답을 위해 스키마를 세분화·확장하는 방식이 맞다고 여겼다.설계를 하면서는 내가 정말 잘 하고 있다고 생각했고, 깔끔..
LangChain 구성 요소: LCEL, Runnable, 스트리밍, 운영 (feat. LangGraph)
·
Study/LLM
LLM을 단순히 API 호출로 쓰는 수준을 넘어서, 실제 애플리케이션에 활용하려면 체인 구성, 상태 관리, 스트리밍, 관측성까지 고려해야 한다. LangChain은 이런 요구를 체계적으로 해결할 수 있도록 설계된 대표적인 프레임워크다.이 글에서는 LCEL & Runnable → 스트리밍 → 배포/운영 → 선택 가이드 → LangChain 장점 순서로 핵심을 정리한다.1) LCEL & RunnableLCEL과 RunnableLangChain Expression Language(LCEL)은 LangChain에서 체인과 에이전트를 선언적이고 간결하게 표현하는 문법이다.핵심은 모든 컴포넌트를 Runnable이라는 실행 단위로 추상화한다는 점이다.Runnable은 LangChain이 정의한 실행 가능한 최소 단위..
오픈서치(엘라스틱서치) 인덱스와 매핑, 그리고 리인덱싱
·
Learnings
오픈서치에서 작업을 하다가 매핑의 중요성을 몸소 깨닫게 된 적이 있다. 해당 데이터는 “확률 분포” 데이터였다.예를 들어, 문서마다 특정 데이터의 확률 분포를 다음과 같이 넣어야 하는 상황이었다.{ "positive": 0.3, "neutral": 0.5, "negative": 0.2}평소처럼 동작에만 신경을 쓰고 워크플로우를 돌렸는데, 해당 데이터가 hot에서 warm으로 옮겨지면서 문제가 발견되었다.최초 데이터의 저장은 hot 인덱스에 저장된다. 이 때, positive 필드가 float으로 동적 매핑이 되었다고 해보자.그런데, warm 인덱스로 일부 데이터가 옮겨질 때, positive 값이 0.0인 게 맨 처음 들어가게 되어 warm 인덱스에서는 positive 필드가 int 로 ..
MongoDB로 동시성과 상태 관리하기
·
Learnings
크롤러 같은 멀티 프로세스 / 멀티 인스턴스 환경에서는 “지금 누가 작업 중인지”, “데이터가 준비되었는지” 같은 상태를 안전하게 관리해야 한다. 이를 제대로 안 하면, 여러 봇이 동시에 같은 타깃을 갱신하거나, 아직 준비되지 않은 데이터를 읽어가면서 꼬일 수 있다.이번 글에서는 인턴 시절 첫 프로젝트였던 '무중단 분산 크롤링 봇'에서 MongoDB Document 필드만으로 동시성과 상태를 관리하도록 설계했던 방법을 소개하려고 한다.상태 플래그Document에는 두 가지 핵심 플래그가 있다.isReady: 크롤러가 대상(seeds)을 사용해도 되는지 여부isEditing: 현재 다른 프로세스가 갱신 작업을 하고 있는지 여부이 두 가지 조합으로 현재 상태를 판별한다.상태 의미isReady=true, is..
손쉽게 로깅 관리하기: Logging Advisor MCP 서버 개발기
·
Projects/MCP
https://github.com/g-hyeong/Logging-Advisor-MCP GitHub - g-hyeong/Logging-Advisor-MCPContribute to g-hyeong/Logging-Advisor-MCP development by creating an account on GitHub.github.com "이 로그, 지금 제대로 남기고 있는 게 맞나?"빠른 개발과 잦은 배포 환경에서 개발자라면 한 번쯤 해봤을 고민입니다.'누군가 옆에서 로깅에 대한 전문가적인 조언을 해주면 좋겠다'는 생각에서 이 프로젝트를 시작했습니다. 이 글은 로깅 관리의 어려움을 해결하기 위해 AI와 MCP를 활용해 Logging Advisor MCP 서버를 개발한 과정을 담고 있습니다.요약Logging Adv..