
Mium 주요 기능
Ontul 없이 Mium은 무의미합니다. 인증된 정의에 근거한 자연어 분석, 잡 운영, 코드 생성 — 모든 기능이 Ontul을 데이터 엔진으로 전제합니다.
자연어 데이터 분석
자연어로 질문하면 표·차트, 값이 하나면 큰 숫자 한 줄로 답합니다. 결과는 CSV/Markdown/Excel/PDF/PPTX로 내보낼 수 있습니다. 답이 먼저 나오고 SQL은 클릭 한 번 뒤에 있으며, 직접 손보고 실행할 수 있어 분석가가 화면을 떠날 필요가 없습니다.
인증된 정의에 근거한 답변
Mium은 자체 시맨틱 레이어를 두지 않고, Ontul이 인증(CERTIFIED)한 메트릭·디멘션·조인 경로·온톨로지를 모델에 제시합니다. 모델은 이름만 고르고 집계와 JOIN은 엔진이 작성하므로, 그럴듯한 답이 아니라 맞는 답이 나옵니다. 모든 답변에는 실제 실행된 SQL에서 역산한 근거(사용한 뷰·메트릭과 인증 여부)가 함께 표시되며, 원본 테이블로 작성된 답변은 그렇다고 스스로 밝힙니다.
SQL로 표현할 수 없는 검색
"방수 되는 상품", "이것과 비슷한 상품", "함께 산 상품 두 다리 건너", "이 사진과 비슷한 상품" — 집계가 아니라 관련성과 관계를 묻는 질문입니다. Mium은 Ontul의 인증된 리트리버(전문검색·벡터 유사도·그래프 탐색·하이브리드)를 호출하고, NeorunBase가 BM25·HNSW·그래프 순회로 실행합니다. 스크린샷을 붙여넣으면 워커의 CLIP이 512차원 벡터로 만들어 같은 공간에서 찾습니다. 결과는 표가 아니라 순위·점수·이미지로 보여주고, 재순위가 실제로 돌았는지도 그대로 밝힙니다.
쓸수록 정확해지는 답변
답이 틀렸으면 클릭 한 번으로 신고하고, 분석가가 SQL을 고쳐 검증하면 이후 같은 질문에는 검증자 이름과 함께 그 답이 나갑니다. 회계연도 시작월, 제외할 행 같은 조직의 규칙은 평문으로 한 번 적어두면 모든 질문에 적용되며, 메트릭 정의를 건드리지 않습니다. 정답을 아는 질문 모음(벤치마크)으로 실제로 좋아졌는지 점수로 확인합니다.
멀티 에이전트 오케스트레이션
단일 user turn에서 15개 action을 strict-JSON 프로토콜로 디스패치합니다 — 대화 맥락만으로 답하는 설명, 즉석 질의, 배치·스트리밍 잡 제출, 상태·로그·종료, 잡 이력, 코드 생성, 카탈로그 관리, Ontul 관리 API 패스스루. 동일한 인터페이스로 어떤 LLM 백엔드든 교체 가능합니다.
플러그 가능한 LLM 백엔드
Anthropic Claude, 자체 호스팅 Ollama 등 사용자가 직접 선택한 LLM 백엔드에 연결합니다. 자격 증명은 ConnectionStore에 봉투 암호화되어 저장되며, 사용자별로 서로 다른 모델을 쓸 수 있습니다.
Ontul Job 라이프사이클
대화 한 번으로 Ontul Batch/Streaming 잡을 제출하고, 상태·로그·이력 조회와 종료까지 일관되게 제어합니다. CLASS·PYTHON 등 여러 Job 유형의 SDK 코드 생성도 지원합니다.
소버린 운영 모델
IAM, KMS, ConnectionStore는 내장 RocksDB에 저장됩니다. 채팅 메모리·프롬프트·임베딩과 검증된 답변·하우스룰·벤치마크 이력은 NeorunBase에, 서버 렌더링 파일은 S3 호환 오브젝트 스토어에 저장되어 Master와 Worker가 stateless로 운영됩니다.
IAM · KMS 봉투 암호화
AWS 스타일 JSON 정책 기반 IAM(사용자·그룹·정책·조직), 액세스 키와 STS 단기 자격 증명을 제공합니다. 모든 민감 데이터는 AES-256-GCM 봉투 암호화로 저장되며, 버전 관리되는 KMS 키는 운영 중 회전이 가능합니다.
싱글 사인온 (SSO)
OIDC · SAML 2.0 · LDAP/Active Directory 로 기존 ID 제공자에 인증을 위임합니다. 관리 콘솔은 브라우저 리다이렉트로, 에이전트·SDK·스크립트는 보유한 자격증명(ID 토큰 · SAML assertion · 디렉터리 비밀번호)을 보내 로컬 로그인과 동일한 토큰을 받습니다 — 클라이언트 수정 불필요. 권한은 provider 가 아니라 매핑된 그룹의 IAM 정책이 결정하며, federated 세션이 IAM 스냅샷을 타고 마스터와 워커 모두에 도달하므로 워커에서 실행되는 잡도 같은 신원으로 인가됩니다. 로그인 상태는 모든 노드가 공유하는 키로 봉인되어 로드밸런서 뒤에서도 동작합니다.
고가용성 클러스터
Master-Worker 토폴로지 + ZooKeeper 리더 선출 + 커스텀 NIO 컨트롤 플레인. 리더만 쓰기를 처리하고 팔로워는 자동 프록시하며, IAM · KMS · 커넥션 상태를 변경마다 1초 내에 복제합니다(폴링 주기가 아닙니다) — 그래서 요청이 어느 마스터에 떨어져도 같은 답을 받습니다. 각 노드는 바인드 주소와 별개로 피어가 실제로 접속할 주소를 공개하므로, 단일 호스트에서만 맞아 보이는 것이 아니라 여러 호스트에 걸친 클러스터가 성립합니다. 워커는 리더에서 상태를 받아가며 LLM · 툴 호출을 분산 실행하고, 리더가 중간에 사라지면 남은 노드가 승계해 쓰기를 이어받고 워커도 그대로 붙어 있습니다. Netty 기반 HTTP가 Admin UI와 REST를 동시에 서빙합니다.
통합 관리 콘솔
채팅, 사용자·조직·정책 관리, KMS 키 회전, 노드 토폴로지·메트릭·로그 테일링, S3 임시 파일 저장 설정까지 React 기반 Admin UI 한 곳에서 처리합니다.
유지보수 모드 — 쓰기만 닫고 읽기는 살려두기
백업 복원이나 키 교체처럼 도중에 쓰기가 끼어들면 곤란한 순간을 위해, 클러스터 전체의 쓰기를 거부합니다. 에이전트 턴, 채팅 세션 변경, Job 제출이 503 과 Retry-After 로 거부되는 동안 읽기는 그대로 서비스되고 IAM·KMS·커넥션 설정도 계속 수정할 수 있습니다. 에이전트 턴을 가장 먼저 막는 이유는 그것이 가장 무거운 쓰기이기 때문입니다 — 대화 기억을 저장할 뿐 아니라 툴을 통해 Ontul·GitHub·Slack 등 Mium 바깥 시스템에까지 씁니다. 동시에 TTL 기반으로 만료 데이터를 지우는 보존 스윕도 멈춥니다. 복원 중에 이것이 돌면 복원이 막 되살린 것을 지워버리고, 운영자는 그것을 복원 실패와 구분할 방법이 없습니다. 실행 중인 Job 은 죽이지 않고, 중지 경로는 계속 열려 있습니다. 설정 행을 읽지 못하면 닫힌 쪽이 아니라 열린 쪽으로 판단합니다 — 순간적인 DB 장애가 클러스터 전체 중단으로 번지는 것이 훨씬 나쁜 실패이기 때문입니다.
활용 사례
비즈니스 데이터 분석
SQL을 모르는 비즈니스 사용자도 자연어로 Ontul 데이터를 분석합니다. 답변은 인증된 메트릭 정의에서 나오며, 어떤 정의를 썼는지가 답변 옆에 표시됩니다.
Ontul Job 운영
데이터 엔지니어가 채팅에서 Batch/Streaming 잡을 제출·모니터링·종료하고, SDK 코드까지 생성해 파이프라인을 빠르게 구축합니다.
리포트 · 문서 내보내기
분석 결과를 Chart, Markdown, Excel, PDF, PPTX로 즉시 내보내 공유 가능한 리포트를 만듭니다. 서버 측 렌더링 결과는 봉투 암호화 후 저장됩니다.
온프레미스 소버린 AI
데이터가 외부로 나가지 않는 자체 인프라에서 LLM 기반 데이터 분석을 안전하게 수행합니다. CCL 스택과 동일한 운영 표준을 그대로 적용합니다.
