
MCP를 많이 파봤지만, 일단 연구주제는 SQL2NL이 위주였으면 한다는 교수님의 바람이 있었다.
그래야 연구실에서 활발히 진행중인 NL2SQL 연구와 엮어서 또 하나의 논문이 나올 수 있다는 관점! 뭐.. 공감한다.
얼마 남지 않은 시간, 다층적으로 봐보자
1.
지난 KCC에선 SQL2NL을 위한 Prompt Engineering을 주제로 논문을 썼다. 그렇게 하다보니, 각종 Evaluation Matrix를 통해서 NL간 Semantic 유사성을 측정할 수 있었고, 이것으로 뭔가 실험을 진행할 수 있었다.
이 번에도 SQL2NL 연구를 하나 진행하고, 이 또한 K-DS에 제출하고 싶은데 어떤 방법론이 있을지 모르겠다.
나도 'CodeLens: a generative ai framework for dynamic feedback on SQL semantic errors' 논문처럼 Fine-tuning을 곁들인 Frame work를 제시해봐야 하나 싶다.
어차피, 이 분야는 LLM을 이용해야 하는 것이 대부분이고 그것도 파인튜닝이랑 Prompt Engineering으로 진행한다. 다른 New Idea는 없는 상황..
즉, 여기선 LLM에 파인튜닝을 좀 잘 하되, RAG, Prompt 등 각종 양념칠을 해서 SQL2NL 모델을 개발 or SQL2NL을 위한 Generative AI framework라고 제목을 좀 따와도 될 거 같다. 이건 실험만 몇개 으쌰으쌰 진행해서 빨리 쳐낼 수 있을 것으로 보인다.
2.
MCP서버 Choice에 관한 연구를 해보고 싶다.
우리가 DB에서 Data를 Retrieve를 할 때, 최적의 경로로 Optimized된 방법( I/O )을 통해 Data를 조회하는 것처럼 User의 Task 처리를 위한 MCP 또는 Function Call도 최적의 Route로 처리해야할 순간이 올 거 같다.
User가 어떤 Task를 요청했고, 우리에겐 MCP 서버 A,B,C,D가 있다고 가정해보자. MCP Host는 본인의 Code Logic에 의해서 Task를 처리하기 위해선 가령 'A' Server를 사용하면 된다고 판단한 뒤 A를 이용해 Task를 처리할 것이다.
근데, 그 방법이 과연 해당 Task를 처리하는데 최적화된 방법이었는지 의심할 필요가 있다는 것이다. 만약 TPC-C / TPC-H 처럼 반복적인 일을 계속 처리해야하는 LLM의 경우 MCP를 이용할 때 비효율적인 MCP Server를 쓰고 있다면 그것은 곧 Time & Cost낭비로 이어질 수 있다.
그래서 특정 Task를 처리함에 있어서 일부의 Case를 추출하여 (가령 10K의 유사한 업무 中 100ea 정도만 가져온다. Case를 1k, 1.5k 등 많이 가져 올수록 좀 더 최적화된 Server조합을 추출할 수 있을 듯) Server A의 사용이 필요하다면 A를 사용하고 그 때 I/O를 측정한다. 그리고 A가 없다고 가정하고 같은 Task를 Try하면, 이번엔 Server B를 사용해서 Task처리를 할 수 있다고 할 수 있다. 그 때 I/O를 측정하고 기록한다.(이 기록을 위한 Memory 공간이 따로 필요할 듯) 그렇게 하나씩 소거하다가 현 시점의 MCP Server만으로 Task처리가 불가하다고 Host가 판단한 시점에 소거를 멈춘다.
그리고 다시 Server 別 성능(?)을 기록해놨던 Memory에 접근하여 가장 Best인 Server를 체크한다. 그리고 앞으로 해당 Task와 유사한 Query가 Host에 주어졌을 때, 해당 Best Server에 접근할 수 있도록 설계한다.
물론 과정에서 Side-effect가 없을 수 없겠지만, 그냥 이렇게 하면 뭔가 DB에서 Data를 Retrieve할 때, Full Table Scan이 아니라 사전에 Build 된 Index를 이용하면 최적의 효율로 Data를 Retrieve하는 것처럼 사전에 일련의 작업만 진행한다면(Time Trade-Off 有) 추후 유사한 Task 수행을 좀 더 효율적으로 할 수 있지 않을까 하는 막연한 기대감이 있다.
이 부분을 DB or SQL과 엮어보자면, 어쨌든 논문이라함은 Evaluation / Experiment가 필요한데 이를 위해 MCP Host ( Generative AI ) 를 이용해 PostgreSQL DB에 접근해서 Data를 Retrieve하거나 DB를 설계할 때 특정 MCP Server를 이용했을 때 걸리는 시간이 얼마나 되는지.. 체크해볼 수 있다.
벌써 위 글을 쓰면서 짜치는 부분이 많이 생각난다. PostgreSQL를 엮을 때, PostgreSQL에 접근/수정하는 MCP Server의 종류가 그렇게 많을까? 많지 않다면 실험을 위해서 내가 해당 MCP 서버를 일부로 여러개 만들어야 하나..?
그리고, PostgreSQL 기능에 국한시키면 MCP Server 전체에 대한 효율검증이라는 대전제에 어긋난다. 이것은 실험을 어떻게 진행할 건지를 잘 생각하면서 다시 검증해봐야할 항목이다.

결론, 1번째 주제는 가야할 길이 명확한데 너무 식상하고 Novelty가 없어서 애매하고, 2번째 주제는 신대륙이고 블루오션이고 뭔가 그럴싸해 보이지만 논문을 타이트하게 적을 자신이 없는 그런 미지의 분야이다.
전혀 성격이 다른 두 가지의 주제를 얼른 Develop 또는 빠른 포기 할 수 있도록 검토해야지.
일단, 할 수 있는거부터 빨리 해보자 1번째 녀석 위주로!!

'Data Science > Research' 카테고리의 다른 글
| SQL2NL 모델 실험진행 (1) | 2025.07.15 |
|---|---|
| SQL2NL 모델 개선방안에 대한 검토 - Prompt & RAG (2) | 2025.07.10 |
| 연구주제 고찰 (0) | 2025.07.07 |
| Research f Model Context Protocol (0) | 2025.05.21 |
| MCP in PostgreSQL(2) (0) | 2025.05.15 |