왜 MCP 서버에 붙는데 HTTP 요청을 보낼까? 원격 MCP 서버 구축기(Feat, Claude)
·
AI Engineering
MCP 서버를 만들면서 궁금했던 내용은 API 요청을 보내는 것이었고 MCP의 통신 흐름에 대해 궁금한 점들이 있었다. “자체 구축한 MCP 서버에 붙는다면서 왜 /mcp로 HTTP 요청을 보내지? 다른 통신 수단이 있는 것이 아닌가?”“Claude Code가 툴 목록을 외부 MCP 서버에 언제 물어보는 거지?” MCP 구조와 통신 흐름에 대해 자세히 분석해 본 적이 없어, 이번 글은 직접 구축한 사내 대시보드 서비스의 회의록 데이터를 Claude Code(MCP Host) 또는 MCP를 지원하는 AI Agent가 조회한다는 전제하에, 회의록 전용 MCP 서버가 어떤 구조로 동작할 수 있는지 정리한 내용이다. 공식 문서와 예시 코드를 바탕으로 어느 시점에 어떤 요청이 오가고 서버 쪽에서 어떤 핸들러가 실..
oh-my-opencode 에이전트별 LLM 세팅 정리 (GPT 중심 운영 기준 + Agent 이름 변경)
·
AI Engineering
LLM 배치 고민: 어떤 에이전트에 어떤 모델을 붙일 것인가oh-my-opencode를 사용하면서 가장 고민되었던 점은 어떤 에이전트에 어떤 LLM을 붙여야 하는지였습니다. 거의 GPT 모델만 사용하는 입장에서 설정을 만지다 보니 결국 중요한 건 탐색 에이전트에 무엇을 붙일지, 계획 역할에 무엇을 붙일지, 문서 작성 계열을 어디에 맡길지였습니다.그래서 이번 글에서는 공식 기준이 무엇인지와 GPT 모델을 중심으로 사용할 때 저는 에이전트별 LLM을 어떤 기준으로 배치했는지를 함께 정리했습니다. 참고로 제 환경은 최근 카카오 프로모션 덕분에 비교적 저렴하게 GPT Pro를 쓰고 있는 상태라,다른 모델보다 GPT 계열 모델과 opencode 제공 무료 모델을 중심으로 설정했습니다. 정리할 때는 아래 세 가지를..
[Spring Boot] Windows10 WebDAV 서버 세팅 및 파일 업로드 및 다운로드 기능 구현 (feat, sardine)
·
Backend
예전에 팀 개발 서버에서 파일 업로드 기능을 사용할 때 각자의 PC에 파일이 저장되어 팀원이 업로드한 파일을 다른 팀원이 다운로드할 수 없는 문제가 있었다. 모든 팀원이 한 공간에 파일을 업로드하고 동일한 공간에서 파일을 다운로드할 수 있도록 개선해야 한다는 요청을 받았고 그 당시 선임님께서 WebDAV라는 것이 있으니 한 번 확인해 보라고 하셨다. WebDAV 서버 구축은 선임님께서 한다고 하셔서 소스 작업만 했었지만 생각난 김에 WebDAV 설정도 해보고 이전에 작업했던 내용들을 정리할 겸 포스팅을 작성한다. WebDAV란?WebDAV(Web Distributed Authoring and Versioning)는 HTTP 프로토콜을 확장한 기술로, 인터넷을 통해 원격 서버의 파일과 폴더를 마치 내 ..
[DB] Windows MariaDB root 비밀번호 초기화 방법
·
Backend
2024년 MariaDB 11.4 버전을 설치해서 사용하다가 root 비밀번호를 분실하여 비밀번호 초기화 방법을 작성한다. 1. 실행중인 MariaDB 중지작업관리자의 서비스 탭에서 MariaDB를 찾은 후 중지시킨다. 2. 권한 테이블 무시하도록 설정윈도우 커맨드에서 mysqld --skip_grant_tables 명령어를 입력하여 권한 테이블을 무시하고 시작하도록 한다. 만약 mysqld 명령어에서 오류가 발생한다면 MariaDB가 설치된 경로(ex: C:\Program Files\MariaDB 11.4\bin)를 환경변수에 추가하거나 커맨드에서 MariaDB가 설치된 경로로 이동하여 mysqld.exe --skip-grant-tables 명령어를 실행한다. 3. 비밀번호 변경윈도우 커맨드를 1개..
[백준] 2449번 : 전구 - JAVA
·
Algorithm
DP 문제 풀이 팁을 유튜브로 찾아보던 중 '개발자로 취직하기' 유튜버님의 DP 문제해설 영상을 보게 되어 해당 문제를 풀게 되었다. 해설 영상을 기존에 봤기 때문에 해당 문제에 대해 다시 정리한다. 풀이 접근4. 2개 이상 전구들 간의 최솟값 계산1. 입력 받은 숫자를 전구 배열에 추가 - 입력 받은 숫자가 연달아 입력되는 경우 색상 변경 시 일괄 변경되므로 추가하지 않음2. 전구 배열에 추가된 숫자 개수만큼 DP 배열 크기 설정3. DP 배열 최댓값으로 초기화(나중에 최솟값 비교) - |1,1|2,2|3,3|4,4|5,5| 0으로 세팅 최솟값 계산 기준 먼저 인접해 있는 동일한 수를 모두 배제한 전구 배열(lamp)에 5개의 요솟수가 있다고 가정한다.이후 1개부터 5개로 분할하여 나온 묶음에서 하..
[MSA] Spring Cloud Gateway(SCG)에서 Rate Limiter 구현 (feat, redis & docker)
·
Backend
개발 환경Spring Boot : 3.3.0Spring Cloud : 2023.0.2 (Spring Boot 3.X 버전과 호환)spring-boot-starter-data-redis-reactive : 3.3.0Redis : 7.4.1 일을 하던 중간에 서비스 과부하 방지를 위해 사용자별 API 요청에 대한 속도 조절 및 요청 제한 기능을 요청받아 구현하는 방식을 알아보던 중 API Rate Limiting 또는 처리율 제한 장치라고 불리는 것을 알게 되었다. 그렇게 일을 하면서 구현한 RateLimit는 bucket4j 라이브러리를 사용하여 OncePerRequestFilter를 상속받아 구현하였고 개인적으로 진행하고 있는 프로젝트(MSA)에도 적용하기 위해 알아보던 중 Spring Cloud에서는 ..
[백준] 3041번 : N-퍼즐 - JAVA
·
Algorithm
퇴근할 때쯤 디자이너 선임님께서 15퍼즐이라는 문제와 해당 문제를 풀 때 사용하는 A-Star 알고리즘을 알고 있냐고 물어봤다. 처음 들어봐서 공부도 할 겸 백준에서 검색을 해보니 비슷한 문제가 나와서 위 문제를 풀려고 했는데 뭔가 이상했다. 문제를 읽었을 때는 선임님에게 들은 내용(퍼즐이 움직이는 것)과 다르게 단순히 각 정사각형이 이동해야 하는 거리만 계산하면 해결되는 문제라고 느꼈지만... 이것도 이 문제와 인연이겠지 하면서 그냥 풀었다.  풀이퍼즐에서 각 정사각형 문자와 'A' 문자를 빼서 얻은 정수는 다음과 같다.[ 각 문자 - 'A' 값 ]A: 0B: 1C: 2...O: 14이렇게 보면 현재 위치에 있는 숫자를 4로 나눈 값이 x이고 4로 나눈 나머지 값이 y인 규칙이 하나 보인다. 현재 위치..
[IntelliJ] Gradle 빌드 오류: metadata.bin 파일을 찾을 수 없습니다 - 문제 해결
·
Backend
개요어느 날 갑자기 build가 잘 되던 프로젝트에서 아래와 같은 오류가 발생했다.C:\Users\사용자명\Desktop\MSA\apigateway-service\.gradle\8.8\dependencies-accessors\c57b72d5865076079ac504978cca2fdf2d4aae53\metadata.bin 파일을 찾을 수 없습니다. 해당 문제를 해결하기 위해 구글링을 해봤을때 검색된 방법은 다음과 같았다. C:\Users\사용자명\.gradle\caches 폴더를 삭제한다.사용중인 IDE의 cache를 삭제한다.해당 프로젝트를 다시 import 한다.( intellij 기준 ) Reload from disk, Repair IDE on file을 실행한다.4가지 방법을 모두 해봤으나 필자는 ..