Search

Product Engineer: 하루 500건 분석 요청을 받아내는 데이터 에이전트, 일을 돕는 AI에서 일을 수행하는 AI로

URL
생성 일시
2026/05/08 11:06
최종 편집 일시
2026/05/08 11:06
태그
마이리얼트립
파일과 미디어
|| PEPE 세션 — 데이터 엔지니어링팀 정현영 님 마이리얼트립 데이터 에이전트가 슬랙에 라이브된 지 일주일도 채 안 된 시점, 이미 들어온 분석 요청은 2,000건을 넘기고 있었습니다. 이번 PEPE 세션에서 프로덕트 엔지니어(PE) 정현영님은 “하루에 500건 분석 요청을 받아내는 AI Agent 만드는 법”을 소개했습니다. 데이터 에이전트가 라이브되기 전까지는, “어제 거래가 얼마야”라는 질문을 처리하던 사람은 분석가였습니다. 분석가 한 명이 하루에 처리할 수 있는 요청은 많아야 4건에서 7건. 이제는 마이리얼트립 구성원 누구나 슬랙에서 데이터 에이전트를 태그하고 어제 숙박 거래액을, 그것도 취소분 제외하고 전주 대비를 추가해서 엑셀로 받아볼 수 있습니다. 라이브 직후의 어떤 날에는 하루에 500건에서 600건의 분석 요청이 처리됐습니다. 핵심은 처리량의 숫자가 아닙니다. 분석가들이 더 본질적인 일에 집중할 수 있게 됐다는 것이 현영님이 강조하는 변화입니다. 반복적인 분석 요청은 에이전트가 받고, 사람은 지표를 새로 설계하거나 정책 의사결정을 하거나 또 다른 AI 에이전트를 만드는 일에 시간을 씁니다. 그렇다면 그 에이전트는 어떻게 만들어졌을까요. 현영님은 두 축으로 정리해 설명을 시작했습니다. 도구가 아니라 동료를 만들고 싶었다 처음 만든 봇은 그럴듯한 답변을 했습니다. 다만 회사 기준과 어긋났습니다. 같은 “거래액”이라도 어떤 테이블의 어떤 컬럼을 기준으로 뽑느냐, 취소분을 포함하느냐 마느냐에 따라 숫자가 달라지는데, 초기 봇은 그 정의를 명확하게 알지 못한 채 매번 다른 답을 내놨습니다. “거래 뽑아줘 라고 얘기를 하면, 거래액이라는 게 정확히 무엇인가라는 것을 에이전트가 아주 명확하게 알지 못하기 때문에 실수를 좀 연발하고 그랬어요.” 당연한 결과였습니다. 더 잘 설계해야 했습니다. 현영님이 만들고 싶었던 것은 “내 일을 빠르게 도와주는 도구”가 아니라, 통제를 통째로 맡길 수 있는 수준의 AI 동료였습니다. “내가 뭔가를 빠르게 할 수 있다, 잘 할 수 있다 이 정도가 아니라, 이 일은 아예 통제를 얘한테 맡기겠다 하는 수준의 AI를 만들려고 했습니다.” 이 목표를 위해 현영님은 두 축을 잡았습니다. 하나는 하니스(Harness) — 에이전트에게 어떻게 움직일지 알려주는 장치입니다. 워크플로, 권한, 안전망이 여기에 들어갑니다. 다른 하나는 지식 체계 — 거래액은 어떻게 구하고, 어떤 테이블이 어떤 용도인지 정의해 두는 사전입니다. 이 둘이 결합돼야 LLM의 비결정성을 누르고, 매번 같은 질문에 같은 형태로 답할 수 있는 에이전트가 나옵니다. 슬랙 메시지 한 통이 답이 되기까지 데이터 에이전트는 슬랙에서 메시지가 들어오는 순간 여러 단계를 거쳐 동작합니다. 현영님은 발표에서 이 흐름을 단계별로 풀어 설명했습니다. 가장 앞단에는 Listener가 있습니다. 서버에 파이썬 코드 하나가 상시로 떠 있으면서 슬랙 이벤트를 감지합니다. 메시지가 들어오면 입구만 담당하고 바로 다음 단계로 넘깁니다. 다음은 Dispatcher입니다. 슬랙 데이터 에이전트 채널에는 사람들끼리 대화하는 메시지도 들어오고, 같은 질문이 두 번 들어오기도 하고, 광고 카피를 만들어 달라거나 검색을 해달라는 엉뚱한 요청도 들어옵니다. Dispatcher는 잡담과 분석 요청을 분류하고, 중복 요청을 거르고, 스레드 단위의 세션을 관리하는 역할을 동시에 맡습니다. 가벼운 모델로 충분히 처리할 수 있는 일이라 비용 절감을 노렸는데, 처음에 시도한 Haiku는 thinking이 약해 분류 품질이 받쳐 주지 못했습니다. 결국 Sonnet으로 옮겼고, Opus 대비 1/8에서 1/10 수준의 토큰만 쓰면서도 분류 정확도는 안정적이었습니다. Dispatcher를 통과한 요청은 Parent Worker로 넘어갑니다. 이름은 워커지만 개념적으로는 오케스트레이터에 가깝습니다. 요청 자체를 처리하지는 않고, 전체 세션의 맥락을 잡고 작업을 어디로 보낼지 결정합니다. 실제 작업을 하는 것은 Sub-agent(워커)들입니다. 간단한 분석을