기능 소개

사내 DB 연결하기

인원, 매출, 재고처럼 회사 DB에 있는 데이터를 채팅으로 바로 물어보세요. 자주 받는 질문을 관리자가 도구(조회 양식)로 등록해 두면, 개발 없이 바로 쓸 수 있습니다.

이 페이지는 워크스페이스 관리자용입니다. 계정·방화벽 준비는 연동 준비 가이드 (IT 담당자용)를 IT 담당자에게 전달하세요.

이렇게 동작합니다

직원이 질문하면 AI가 알맞은 도구를 골라, 등록된 SQL에 값만 넣어 실행해 답합니다

도구는 관리자가 미리 등록해 두는 SQL 양식(SQL + 빈칸)입니다. AI는 빈칸에 값만 채워 실행합니다. 대부분 조회용으로 만들지만, 등록·수정·삭제 문장도 도구로 만들 수 있습니다.

준비할 것

사내 DB 연결 준비 순서와 담당

  • DB 종류와 주소: PostgreSQL, MySQL, Oracle, Microsoft SQL Server 지원
  • 전용 계정: 필요한 표만 다룰 수 있는 모노클 전용 계정. 조회만 필요하다면 읽기 전용 계정을 권장합니다
  • 접속 허용: 방화벽에서 모노클 서버 IP 허용 (IP는 고객센터 support@monocle-ai.com 문의)
  • 질문 3~5개: "부서별 인원", "지점별 월 매출"처럼 자주 받는 질문

1단계: DB 연결

1. + 앱 추가 › DB 연결

앱 메뉴 오른쪽 위에 있습니다. 관리자에게만 보입니다.

① 「+ 앱 추가」 ② 「DB 연결」

2. 접속 정보 입력

「새 DB 연결」 창

항목 내용 예시
① 이름 목록과 채팅에 표시될 이름 인사 DB
② 설명 어떤 데이터인지 (선택) 부서별 인원·입퇴사 현황
③ DB 종류 4종 중 선택 PostgreSQL
④ 주소 · 포트 포트는 자동 입력 (PostgreSQL 5432, MySQL 3306, Oracle 1521, SQL Server 1433) hr-db.example.co.kr
⑤ 데이터베이스 이름 Oracle은 서비스 이름. Autonomous DB(mTLS)는 Wallet 파일·비밀번호도 입력 hr
⑥ 계정 · 비밀번호 IT 담당자가 만든 모노클 전용 계정 (조회만 필요하면 읽기 전용) monocle_readonly

⑦ 데이터 소스 만들기를 누르면 저장됩니다. 비밀번호는 암호화되어 다시 표시되지 않습니다.

3. 연결 테스트

저장 후 DB 카드의 ⋯ › 편집 › 연결 편집에서 연결 테스트를 누릅니다. 실패하면 원인이 표시됩니다. 아래 '문제 해결'을 참고하세요.

2단계: 도구 만들기

도구 하나 = 질문 유형 하나. "부서별 인원", "기간별 입사자"처럼 나눠 만드세요.

1. + 도구 추가하기

① 「+ 도구 추가하기」

2. 도구 편집기 입력

도구 편집기

항목 내용
① 도구 이름 영문 소문자로 시작, 소문자·숫자·_만, 64자 이내. 예: get_department_headcount
② 도구 설명 AI가 이 설명을 보고 도구를 고릅니다. 무엇을 조회하는지, 어떤 질문에 쓰는지 적으세요.
③ SQL SQL 한 문장. 조회(SELECT·UNION)뿐 아니라 등록·수정·삭제(INSERT·UPDATE·DELETE)도 넣을 수 있습니다. 바뀌는 값은 :이름으로 비워 둡니다.
④ 인자 빈칸마다 이름·형식·필수·기본값·설명
⑤ 테스트 실행 샘플 값으로 저장 전에 결과 확인. 등록·수정·삭제 문장은 테스트 실행에서도 실제로 실행됩니다
⑥ 저장 저장하면 도구가 등록됩니다
SELECT department, job_level, COUNT(*) AS headcount
FROM employees
WHERE department = :department
  AND status = '재직'
GROUP BY department, job_level

SQL에 :department를 적으면 인자로 추가 버튼이 나타납니다. 누르면 인자가 바로 만들어집니다.

① 정의되지 않은 인자 안내 → 「인자로 추가」

3. 인자 설정

항목 내용
형식 string(글자), integer(정수), number(숫자), boolean(예/아니오). 날짜는 string으로 받습니다
필수 값이 있어야만 실행됩니다
기본값 값이 없을 때 쓸 값. 예: 최대 건수 20
설명 형식과 예시를 적으면 정확해집니다. 예: 조회 시작일 (YYYY-MM-DD)

인자 예시 — ① 시작일(글자, 필수) ② 최대 건수(정수, 기본값 20)

4. 도구 켜고 끄기

저장한 도구는 목록의 활성 스위치로 켜고 끕니다. 잠시 쓰지 않을 도구는 삭제 대신 꺼 두세요.

① 도구 켜기·끄기 ② 연결 편집 (접속 정보·접근 정책)

좋은 도구 만드는 요령

  • 설명은 구체적으로: "인원 조회" ✕ → "부서 이름을 받아 직급별 재직 인원을 조회합니다. '영업본부 인원 현황' 같은 질문에 사용합니다." ○
  • 필요한 컬럼만: SELECT * 대신 답에 필요한 컬럼만 적습니다.
  • 민감 정보는 합계로: 연봉 등은 개인별 대신 부서 합계·평균으로.
  • 날짜는 SQL에서 변환: CAST(:start_date AS DATE), Oracle은 TO_DATE(:start_date, 'YYYY-MM-DD')
  • 건수 제한: 목록은 LIMIT(SQL Server는 TOP (:max_rows), Oracle 12c 이상은 FETCH FIRST)을 둡니다.
  • Oracle은 스키마 이름까지: hr.employees처럼 적습니다.
  • 표·컬럼 이름은 인자로 못 바꿉니다: 표가 다르면 도구를 따로 만드세요.

SQL이 어렵다면 모노클 AI에게 표 구조를 알려 주고 초안을 받은 뒤, IT 담당자 검토를 거쳐 등록하세요.

3단계: 사용 범위 정하기

기본은 공개(모든 사용자)입니다. 일부 부서만 쓰게 하려면 연결 편집 › 접근 정책에서 제한을 고르고 그룹(부서)·역할을 추가합니다.

① 「제한」 선택 ② 사용할 그룹 추가

4단계: 채팅에서 사용

1. 앱 메뉴에서 연결

사용할 직원이 각자 앱 메뉴에서 한 번 연결해 둡니다. 아래는 관리자 화면의 ⋯ 메뉴입니다.

① 「⋯」 메뉴 ② 「연결」

2. 채팅에서 켜고 질문

① 입력창의 「앱」 버튼 ② 인사 DB 켜기

  • "영업본부 직급별 인원을 표로 정리해줘"
  • "9월 이후 입사자 명단과 부서별 인원 수 알려줘"

관리하기

하고 싶은 일 방법
도구 수정 DB 카드 ⋯ › 편집 › 도구 이름 클릭
접속 정보 변경 연결 편집 › 연결 문자열 변경 (저장 시 자동 테스트, 실패하면 기존 연결 유지)
잠시 멈추기 DB 카드 ⋯ › 비활성화
삭제 DB 카드 ⋯ › 삭제 (되돌릴 수 없음)

문제 해결

① 연결 테스트 실패 원인 표시

메시지 해결 방법
timed out (응답 시간 초과) 방화벽이 막고 있을 가능성이 큽니다. 모노클 서버 IP 허용을 요청하세요.
연결 거부 (connection refused) 포트를 확인하고, DB가 외부 접속을 받는지 확인하세요.
데이터베이스를 찾을 수 없음 DB 이름(Oracle은 서비스 이름)을 대소문자까지 확인하세요.
풀러(pooler)와 호환되지 않음 클라우드 DB의 직접 연결(direct) 주소를 입력하세요.
인증 실패 · 접근 거부 계정·비밀번호와 권한을 IT 담당자에게 확인하세요.
정의되지 않은 인자 인자로 추가를 누르거나 이름 철자를 맞추세요.
required parameter is missing 필수 인자에 샘플 값을 넣고 다시 실행하세요.
query execution failed SQL 문법, 표·컬럼 이름, 연결 상태를 확인하세요.

자주 묻는 질문

Q. AI가 DB 전체를 볼 수 있나요?

아니요. 등록한 도구의 SQL만 실행합니다.

Q. 데이터가 바뀔 위험은 없나요?

관리자가 도구에 넣은 SQL에 달려 있습니다. 조회(SELECT) 도구만 등록하면 데이터는 바뀌지 않습니다. 등록·수정·삭제 문장을 넣은 도구는 AI가 대화 중에 실행하면 실제로 데이터를 바꿉니다. 조회만 필요하다면 읽기 전용 계정을 쓰세요. 그러면 DB 권한으로도 수정이 막힙니다.

Q. 실시간 데이터인가요?

네. 질문할 때마다 DB를 조회합니다.

Q. 운영 DB에 부담이 되지 않나요?

부담은 등록한 SQL에 따라 다릅니다. 무거운 집계는 인덱스를 확인하거나 읽기 전용 복제본(replica)을 연결하세요.

Q. DB를 직접 열 수 없는 시스템이에요.

커스텀 앱으로 연결하세요. 엑셀·PDF 파일은 문서 참고시키기를 쓰면 됩니다.