유안타증권 AI Agent 프로젝트 : 실전 LLM 서비스 개발(고생)기

“많은 경험과 노하우, 끊임없는 프롬프팅으로 간극을 조절해야 하겠죠.”


안녕하세요. 크라우드웍스 서비스개발실 실장 김동국입니다. 이번 포스팅에서는 LLM 기반 Agent를 프로덕션 환경에 구축하면서 겪은 실제 사례와 기술적 도전 과제들을 공유하고자 합니다.

서두

2025년 AI 업계의 화두는 단연 ‘Agent’입니다. 하지만 돌이켜보면 2024년 초·중반까지만 해도 RAG(Retrieval-Augmented Generation)가 주목받던 시기였죠. 이 시기에는 “챗봇 구현은 문서를 청킹(chunking)하고 벡터 임베딩(Vector Embedding)해서 조회하면 된다”라는 다소 단순화된 접근이 업계의 주류를 이루고 있었습니다.

이러한 트렌드를 반영하듯, “5분 만에 챗봇 만들기”와 같은 솔루션들이 등장했고, 문서 업로드만으로 자동 청킹과 벡터 기반 검색을 구현해 주는 스튜디오 서비스들이 속속 출시되었습니다. OpenAI의 다양한 즉시 사용 가능한 서비스들 역시 이런 단순화된 인식을 강화했죠.

이런 배경 속에서 유안타증권의 Chat 서비스 구축 프로젝트를 시작했을 때, 가장 먼저 받은 질문이 “모든 데이터는 Vector DB에 넣고 조회하는 거 아닌가요?”였습니다. 과장, 허위 광고의 폐해였죠. 저희는 RAG 중심 접근 방식에서 한 발 더 나아가, 이미 Agent 기반의 아키텍처를 구상하고 있었습니다. 실제 챗 기반의 실생활의 환경에서는 단순 벡터 검색을 넘어서는 더 고도화된 시스템이 필요하다는 것을 알고 있었기 때문이죠.

이번 글에서는 시장의 트렌드를 앞서 내다보고 구현한 Agent 기반 서비스 구축 과정과, 그 과정에서 맞닥뜨린 기술적 난관들을 해결해 나간 경험을 상세히 공유하고자 합니다. 2024년 중반, RAG가 전성기를 누리던 시기에 이미 Agent 아키텍처를 도입했던 저희의 선제적 접근이 어떤 결과를 가져왔는지 함께 살펴보시죠.

1. 프로젝트 소개 (유안타 AI 챗봇 서비스)

시작은 RFP, 끝은 혁신 금융 서비스

최초 유안타증권의 RFP를 받았을 때만 해도, 이 프로젝트가 이토록 복잡한 여정이 될 줄은 예상하지 못했습니다. 물론 Function Calling, RAG, Prompt Chaining 등의 기술 스택들을 이미 염두에 둔 계획이었지만, 실제 프로덕션 환경에서 마주한 현실의 벽은 우리의 예상을 훨씬 뛰어넘었습니다. 특히,

“금융권만의 까다로운 보안 요건”

은 저희에게는 큰 도전 과제였습니다. LLM 서비스를 위한 망 구성과 클라우드 이용 보고 관련 이슈들은 한때 “이 프로젝트를 완료할 수 있을까?”라는 근본적인 의문이 들 정도로 험난한 과정이었죠.

하지만 우리의 도전은 결실을 맺었습니다. 2025년 1월, 본 서비스가 금융위원회 혁신 금융 서비스로 선정된 것입니다. 현재는 금융보안원 보안 심사 및 행정 절차만 남겨두고 있으며, 곧 B2C 서비스로 정식 출시를 앞두고 있습니다.

저희가 개발한 AI Agent는 단순한 정보 검색을 넘어서, 아래와 같이 실제 투자자들에게 필요한 다양한 분석 기능들을 제공합니다.

  • 실시간 주가 정보 제공: 지연 없는 실시간 시세 정보 처리
  • 재무제표 분석 & 기업 비교: 다각도의 기업 가치 분석 및 경쟁사 비교 기능
  • TopK 종목 찾기: 다양한 조건에 따른 최적 종목 추천
  • 뉴스/공시 기반 호재/악재 분석: 실시간 뉴스와 공시 데이터를 활용한 심층 분석
  • 산업 동향 파악: 업종별 트렌드 및 시장 동향 분석

이어지는 내용에서는 이러한 기능들을 구현하면서 마주친 기술적 과제들과 그 해결 과정을 상세히 다뤄보도록 하겠습니다.

2. 요구사항의 도출

대규모 B2C 챗봇을 개발하면서 가장 먼저 마주친 문제는 “오픈북 시험을 도대체 어디까지 개발해야 하나?”였습니다. 처음엔 고객사의 요구사항대로 현금흐름표, 재무비율 등 20개 정도의 기능을 계획했죠. 하지만 실제 서비스 범위를 정의하기 전에 정확한 사용자 니즈를 파악하는 게 우선이었고, 크라우드웍스의 70만 명의 작업자풀을 통해 손쉽게 20,000개의 실제 질문 Set을 수집할 수 있었습니다.

이 데이터를 상세히 뜯어보았더니, 결과가 흥미로웠습니다. 예상과 전혀 다른 패턴이 보였거든요.

고객사의 요구 조건

“ fnguide에서 제공하는 전문적인 정보들을 많이 활용해서 답을 해 주세요.”
“유안타에서 가지고 있는 데이터베이스를 모두 활용해서 챗봇의 대답을 해 주세요.”
“ krx에서 제공하는 정보들을 모두 활용해서 챗봇을 구축해 주세요.”

어떤가요? 벌써부터 포기하고 싶어진다고요? 하지만 의외로 고객사에서 강조했던 세부적인 데이터보다 실제 고객이 할만할 질문들을 보시고는 이내 많은 부분에 대한 생각을 바꾸셨습니다.

……….

이어지는 내용이 궁금하다면, 크라우드웍스 기술블로그에서 전문을 확인해보세요!