본문으로 건너뛰기
r/artificial조회 1

SQL 추적으로 검증하는 self-hosted AI Analyst

SQL과 자체 검증을 공개한 AI Analyst가 Engineering 인력 집계의 4명 불일치를 찾아냈습니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

게시자는 자연어 답변만 내놓는 데이터 분석 도구의 불투명성을 보완하기 위해 분석 계획, 실제 SQL, 행 수, 결과 인용, 자체 검증을 화면에 남기는 self-hosted AI Analyst를 만들었습니다. HR 데이터에서 도구는 Governed Semantic Model에 Hires 지표가 없음을 확인하고 raw monthly table로 전환했으며, Engineering의 채용 31건과 퇴사 14건을 집계해 약 55%가 순수한 인원 증가에 해당한다고 산출했습니다. 동시에 net adds +17과 Headcount 변화 +13 사이의 4명 차이를 스스로 경고했고, Support는 backfill ratio 1.42로 채용보다 퇴사가 많았습니다. 이 시스템은 Kimi K3와 OpenRouter를 포함한 BYOK 구성을 지원하고 Docker·Supabase 기반으로 실행되지만, Elastic License 2.0에 따라 호스팅 서비스 재판매는 제한됩니다.

합의점 vs 논쟁점

논쟁점

  • LLM analytics에서 결과와 함께 SQL을 공개하는 방식을 신뢰성의 기준으로 삼을 수 있는지가 핵심 쟁점입니다. 게시자는 SQL이 없으면 분석이 실제로 수행됐는지 판단하기 어렵다고 보지만, SQL 공개만으로 데이터 정의와 결과의 정확성이 모두 보장되는지는 별도 검증이 필요합니다. 특히 Engineering의 net adds와 headcount delta 사이에 4명의 차이가 남아 있어 투명한 표시와 정확한 조정은 서로 다른 문제로 드러났습니다.
  • Elastic License 2.0을 적용한 저장소를 source-available로 부르는 것이 OSI 오픈소스와 구분되는 지점도 논쟁의 대상이 될 수 있습니다. 사용자는 코드를 읽고 수정할 수 있지만 호스팅 서비스 재판매가 제한되므로 일반적인 오픈소스 기대와 상업적 사용 범위가 일치하지 않습니다.

실용적 조언

  • LLM이 데이터 분석을 수행할 때는 자연어 답변만 저장하지 말고 사용한 테이블, SQL, 행 수, 결과 인용을 함께 기록하는 편이 재현성 확보에 유리합니다. 스키마에 필요한 지표가 없을 때는 대체 테이블을 선택한 사실과 선택 이유를 명시해야 합니다.
  • 집계된 채용·퇴사 수치와 첫 달·마지막 달 Headcount 차이를 별도로 계산해 서로 대조해야 합니다. 두 값이 일치하지 않으면 원인 조정 없이 성장률이나 backfill 비중을 확정하지 말고, 해당 격차를 보고서의 검증 항목으로 남겨야 합니다.
  • self-hosted 도구를 도입하기 전에는 Docker 실행 방식, Supabase 의존성, BYOK 지원 범위, 모델 제공자 연동 방식을 확인해야 합니다. 또한 Elastic License 2.0의 호스팅 재판매 제한을 조직의 배포 및 상업화 계획과 대조해야 합니다.

섹션별 상세

01
게시자는 일반적인 데이터 대화 도구가 정답처럼 보이는 답변만 내놓는 문제를 지적하고, 분석의 전체 과정을 화면에 남기는 AI Analyst를 구축했다고 밝혔습니다. 이 도구는 스키마를 읽고 분석 순서를 먼저 세운 뒤, Governed Semantic Model에 Hires 지표가 없다는 점을 확인하면 raw monthly table로 전환합니다. 어떤 데이터 소스를 선택했는지 숨기지 않는 점이 핵심 설계로 제시됐습니다.
02
분석 단계마다 실제 SQL, 처리된 행 수, 수치의 출처가 함께 표시됩니다. 사용자는 결과를 믿기 어려울 때 해당 수치를 만든 쿼리를 직접 확인할 수 있으며, 게시자는 이를 LLM analytics의 최소 기준으로 보았습니다. 분석 흐름은 plan에서 SQL 실행, 결과 점검, 출처 인용으로 이어집니다.
03
AI Analyst는 자신의 결과에서 불일치를 찾아 경고하는 self-check pass를 수행했습니다. Engineering의 합산 net adds는 +17이었지만 첫 달 Headcount 122와 마지막 달 135의 차이는 +13이어서 4명의 격차가 발생했고, 이 문제는 최종 보고서의 주의사항으로 남았습니다. 게시자는 오류를 숨기지 않고 추가 검증 대상으로 넘기는 분석기가 그렇지 못한 시스템보다 가치 있다고 평가했습니다.
04
HR 데이터 결과에서는 Engineering 채용의 약 55%가 이직자 대체가 아닌 순수한 인원 증가로 나타났고, 한 달에는 attrition이 3.70%까지 올랐습니다. Support는 backfill ratio가 1.42로 채용보다 더 많은 인원이 빠져나가 감소세를 보였습니다. 화면에는 Engineering의 31 hires, 14 exits, 0.4516 backfill ratio와 부서별 headcount 변화가 함께 표시됐습니다.
05
게시자는 분석 결과에 단계별 인용을 붙이고, 사용자가 Mark verified 또는 Flag as wrong으로 결과를 표시하게 했습니다. 실제 결과에서 생성한 후속 질문, 반복 실행 일정, CSV와 PDF export도 제공한다고 밝혔습니다. 전체 시스템은 Docker와 사용자의 Supabase 프로젝트에서 실행되며, 데모 모델은 OpenRouter를 통한 Kimi K3였습니다.
06
게시된 저장소는 Elastic License 2.0을 따르므로 코드를 읽고 self-host하거나 수정할 수 있지만 호스팅 서비스로 재판매할 수는 없습니다. 게시자는 agents, multi-agent swarms, RAG, BI dashboards, budgets, full tracing을 포함한 더 큰 self-hosted 플랫폼의 일부로 AI Analyst를 위치시켰습니다. 따라서 이 글의 쟁점은 단순한 제품 시연보다 LLM 기반 분석에서 재현성, 검증 가능성, 라이선스 경계를 어디에 둘 것인지에 있습니다.

이미지 분석

부서별 채용·퇴사·순증가·backfill ratio와 첫 달·마지막 달 Headcount를 보여주는 AI Analyst 실행 화면입니다.
Screenshot

화면 상단에는 부서별 전체 기간 집계를 만들기 위한 SQL 일부와 데이터 출처 확인 영역이 있고, 중앙에는 total_hires 막대와 backfill_ratio 선이 함께 표시됩니다. 하단 표에서 Engineering은 31 hires, 14 exits, net adds 17, backfill ratio 0.45161290322580644를 기록했지만 Headcount는 122에서 135로 13명만 늘어 4명의 불일치가 경고로 표시됩니다.

부서별 채용·퇴사·순증가·backfill ratio와 첫 달·마지막 달 Headcount를 보여주는 AI Analyst 실행 화면입니다.

SQL 기반 부서별 인력 분석 결과와 Engineering의 Headcount 불일치 경고를 담은 화면입니다.
Screenshot

차트에서는 Engineering과 Sales의 채용 규모가 크고 Support의 backfill ratio가 약 1.42로 가장 높게 나타납니다. 표와 경고창은 Support의 net adds가 -5인 점, Engineering의 합산 net adds와 실제 Headcount 변화가 일치하지 않는 점을 동시에 확인하게 해 결과 자체와 검증 상태를 함께 보여줍니다.

SQL 기반 부서별 인력 분석 결과와 Engineering의 Headcount 불일치 경고를 담은 화면입니다.

용어 해설

거버넌스 시맨틱 모델(Governed Semantic Model)
데이터베이스의 원시 테이블과 지표를 조직의 규칙에 맞춰 표준화한 의미 계층입니다. AI Analyst는 이 모델에 Hires 지표가 없다는 사실을 확인한 뒤, 임의로 추정하지 않고 hr_dept_monthly 원시 테이블로 전환했습니다.
사용자 키 등록 방식(BYOK)
사용자가 자신의 API 키와 모델 제공자를 연결해 서비스를 사용하는 방식입니다. 이 분석기는 특정 모델에 종속되지 않으며, 게시자의 데모에서는 OpenRouter를 통해 Kimi K3를 호출했습니다.
검색 증강 생성(RAG)
외부 문서나 데이터베이스에서 관련 정보를 검색해 모델의 입력 문맥에 넣는 방식입니다. 게시물에서는 RAG를 전체 self-hosted 플랫폼이 지원하는 기능 중 하나로 언급했지만, HR 분석의 핵심 처리는 SQL 실행과 검증입니다.
Elastic License 2.0
소스 코드를 읽고 수정하거나 직접 호스팅할 수 있지만, 이를 호스팅 서비스로 재판매하는 행위는 제한하는 라이선스입니다. 게시자는 OSI 승인 오픈소스와 source-available의 차이를 명시했습니다.

코드 예제

sql
WITH ranked AS (SELECT Department, Headcount, Hires, Exits, ROW_NUMBER() OVER (PARTITION BY Department ORDER BY "Month") AS rn_first,

부서별 월별 데이터를 나누고 Month 순서로 행 번호를 부여해 첫 달과 마지막 달의 Headcount를 비교하기 위한 SQL 일부입니다.

언급된 도구

Kimi K3중립

OpenRouter를 통해 데모 분석을 실행한 언어 모델

OpenRouter중립

Kimi K3를 호출하는 모델 제공자 연결 계층

Supabase중립

self-hosted 분석기를 실행할 때 사용자가 연결하는 프로젝트

Docker중립

한 번의 명령으로 분석 플랫폼을 실행하는 배포 방식

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 18.수집 2026. 08. 18.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.