[{"data":1,"prerenderedAt":1891},["ShallowReactive",2],{"nav-docs":3,"page-/ko/docs/admin/ai/vector-db-operations":924,"surround-/ko/docs/admin/ai/vector-db-operations":1885,"raw-/ko/docs/admin/ai/vector-db-operations":1888},[4,56,246,581,673,817,850,907],{"title":5,"path":6,"stem":7,"children":8,"page":55},"스페이스빌더 시작하기","/getting-started","00.getting-started",[9,13,17,23,29,33,38,42,46,50],{"title":10,"path":11,"stem":12,"children":-1},"스페이스빌더 소개","/getting-started/overview","00.getting-started/00.overview",{"title":14,"path":15,"stem":16,"children":-1},"SetFN 계정 생성","/getting-started/create-setfn-account","00.getting-started/05.create-setfn-account",{"title":18,"path":19,"stem":20,"tags":21,"children":-1},"Linux에 설치하기","/getting-started/install-linux","00.getting-started/10.install-linux",[22],"recommended",{"title":24,"path":25,"stem":26,"tags":27,"children":-1},"Docker로 설치하기","/getting-started/install-docker","00.getting-started/12.install-docker",[28],"preparing",{"title":30,"path":31,"stem":32,"children":-1},"Windows에 설치하기","/getting-started/install-windows","00.getting-started/14.install-windows",{"title":34,"path":35,"stem":36,"tags":37,"children":-1},"macOS에 설치하기","/getting-started/install-macos","00.getting-started/16.install-macos",[28],{"title":39,"path":40,"stem":41,"children":-1},"초기 설정","/getting-started/initial-setup","00.getting-started/20.initial-setup",{"title":43,"path":44,"stem":45,"children":-1},"라이선스 활성화","/getting-started/license-activation","00.getting-started/30.license-activation",{"title":47,"path":48,"stem":49,"children":-1},"접속 주소 확인 (로컬/내부망)","/getting-started/access-url","00.getting-started/35.access-url",{"title":51,"path":52,"stem":53,"tags":54,"children":-1},"외부 접속 방식 선택","/getting-started/access-domain","00.getting-started/40.access-domain",[22],false,{"title":57,"path":58,"stem":59,"children":60,"page":55},"스페이스 관리하기","/admin","10.admin",[61,74,111,140,187,200,229],{"title":62,"path":63,"stem":64,"children":65,"page":55},"관리자 홈","/admin/home","10.admin/00.home",[66,70],{"title":67,"path":68,"stem":69,"children":-1},"관리자 페이지 접속","/admin/home/admin-page-access","10.admin/00.home/00.admin-page-access",{"title":71,"path":72,"stem":73,"children":-1},"라이선스 관리","/admin/home/license","10.admin/00.home/20.license",{"title":75,"path":76,"stem":77,"children":78,"page":55},"사용자 관리","/admin/user-management","10.admin/10.user-management",[79,83,87,91,95,99,103,107],{"title":80,"path":81,"stem":82,"children":-1},"가입 정책 및 기본 권한 설정하기","/admin/user-management/signup-policy","10.admin/10.user-management/02.signup-policy",{"title":84,"path":85,"stem":86,"children":-1},"사용자 계정 만들기","/admin/user-management/invite-new-member","10.admin/10.user-management/10.invite-new-member",{"title":88,"path":89,"stem":90,"children":-1},"사용자 계정 수정하기","/admin/user-management/edit-member","10.admin/10.user-management/11.edit-member",{"title":92,"path":93,"stem":94,"children":-1},"관리자 추가하기","/admin/user-management/add-new-admin","10.admin/10.user-management/12.add-new-admin",{"title":96,"path":97,"stem":98,"children":-1},"팀 관리","/admin/user-management/team","10.admin/10.user-management/22.team",{"title":100,"path":101,"stem":102,"children":-1},"레벨 관리","/admin/user-management/level","10.admin/10.user-management/24.level",{"title":104,"path":105,"stem":106,"children":-1},"접속 기록 확인하기","/admin/user-management/access-log","10.admin/10.user-management/30.access-log",{"title":108,"path":109,"stem":110,"children":-1},"계정·보안 정책 설정하기","/admin/user-management/account-security","10.admin/10.user-management/32.account-security",{"title":112,"path":113,"stem":114,"children":115,"page":55},"서비스 구성","/admin/service-config","10.admin/20.service-config",[116,120,124,128,132,136],{"title":117,"path":118,"stem":119,"children":-1},"파일 영역 설정","/admin/service-config/file-area","10.admin/20.service-config/10.file-area",{"title":121,"path":122,"stem":123,"children":-1},"웹훅 설정","/admin/service-config/webhook-settings","10.admin/20.service-config/16.webhook-settings",{"title":125,"path":126,"stem":127,"children":-1},"커뮤니티 설정","/admin/service-config/community-space","10.admin/20.service-config/22.community-space",{"title":129,"path":130,"stem":131,"children":-1},"AI 챗봇 정책 설정","/admin/service-config/community-ai-chatbot","10.admin/20.service-config/24.community-ai-chatbot",{"title":133,"path":134,"stem":135,"children":-1},"메일 설정","/admin/service-config/email-settings","10.admin/20.service-config/30.email-settings",{"title":137,"path":138,"stem":139,"children":-1},"브랜딩 설정","/admin/service-config/brand","10.admin/20.service-config/40.brand",{"title":141,"path":142,"stem":143,"children":144,"page":55},"지능형 서비스 (AI)","/admin/ai","10.admin/30.ai",[145,149,153,157,161,165,169,175,179,183],{"title":146,"path":147,"stem":148,"children":-1},"AI 모델 설정","/admin/ai/ai-model-setting","10.admin/30.ai/10.ai-model-setting",{"title":150,"path":151,"stem":152,"children":-1},"AI DB 설정","/admin/ai/ai-db-setting","10.admin/30.ai/20.ai-db-setting",{"title":154,"path":155,"stem":156,"children":-1},"벡터 DB 운영 가이드","/admin/ai/vector-db-operations","10.admin/30.ai/22.vector-db-operations",{"title":158,"path":159,"stem":160,"children":-1},"Qdrant 연결","/admin/ai/qdrant","10.admin/30.ai/24.qdrant",{"title":162,"path":163,"stem":164,"children":-1},"Qdrant 서버 준비하기","/admin/ai/qdrant-server-setup","10.admin/30.ai/25.qdrant-server-setup",{"title":166,"path":167,"stem":168,"children":-1},"Milvus 연결","/admin/ai/milvus","10.admin/30.ai/26.milvus",{"title":170,"path":171,"stem":172,"children":173},"지식 인덱싱","/admin/ai/knowledge-indexing","10.admin/30.ai/30.knowledge-indexing",[174],{"title":170,"path":171,"stem":172,"children":-1},{"title":176,"path":177,"stem":178,"children":-1},"AI 연동 및 정책 설정","/admin/ai/ai-link","10.admin/30.ai/40.ai-link",{"title":180,"path":181,"stem":182,"children":-1},"MCP 서버 관리","/admin/ai/mcp-server","10.admin/30.ai/50.mcp-server",{"title":184,"path":185,"stem":186,"children":-1},"검색 관리","/admin/ai/search-management","10.admin/30.ai/60.search-management",{"title":188,"path":189,"stem":190,"children":191,"page":55},"플러그인","/admin/plugin","10.admin/40.plugin",[192,196],{"title":193,"path":194,"stem":195,"children":-1},"플러그인 관리하기","/admin/plugin/overview","10.admin/40.plugin/00.overview",{"title":197,"path":198,"stem":199,"children":-1},"확장 플러그인 설정","/admin/plugin/settings","10.admin/40.plugin/10.settings",{"title":201,"path":202,"stem":203,"children":204,"page":55},"보안 관리","/admin/security","10.admin/50.security",[205,209,213,217,221,225],{"title":206,"path":207,"stem":208,"children":-1},"보안 개요","/admin/security/overview","10.admin/50.security/00.overview",{"title":210,"path":211,"stem":212,"children":-1},"감사 로그 확인하기","/admin/security/audit-log","10.admin/50.security/05.audit-log",{"title":214,"path":215,"stem":216,"children":-1},"차단 관리","/admin/security/block-management","10.admin/50.security/10.block-management",{"title":218,"path":219,"stem":220,"children":-1},"보안 설정","/admin/security/security-setting","10.admin/50.security/12.security-setting",{"title":222,"path":223,"stem":224,"children":-1},"승인 대기 기기 처리하기","/admin/security/device-approvals","10.admin/50.security/14.device-approvals",{"title":226,"path":227,"stem":228,"children":-1},"IP 접근 제한","/admin/security/ip-restriction","10.admin/50.security/16.ip-restriction",{"title":230,"path":231,"stem":232,"children":233,"page":55},"시스템 관리","/admin/system-admin","10.admin/60.system-admin",[234,238,242],{"title":235,"path":236,"stem":237,"children":-1},"디바이스 정보","/admin/system-admin/device-info","10.admin/60.system-admin/10.device-info",{"title":239,"path":240,"stem":241,"children":-1},"서버 재시작 및 시스템 유지보수","/admin/system-admin/server-restart","10.admin/60.system-admin/12.server-restart",{"title":243,"path":244,"stem":245,"children":-1},"백그라운드 서비스","/admin/system-admin/background-service","10.admin/60.system-admin/14.background-service",{"title":247,"path":248,"stem":249,"children":250,"page":55},"워크스페이스 사용하기","/workspace","20.workspace",[251,284,301,372,483,530,562],{"title":252,"path":253,"stem":254,"children":255,"page":55},"메뉴","/workspace/menu","20.workspace/05.menu",[256,260,264,268,272,276,280],{"title":257,"path":258,"stem":259,"children":-1},"워크스페이스 소개","/workspace/menu/overview","20.workspace/05.menu/00.overview",{"title":261,"path":262,"stem":263,"children":-1},"팀 스페이스","/workspace/menu/team-space","20.workspace/05.menu/05.team-space",{"title":265,"path":266,"stem":267,"children":-1},"클라이언트 스페이스","/workspace/menu/client-space","20.workspace/05.menu/06.client-space",{"title":269,"path":270,"stem":271,"children":-1},"즐겨찾기","/workspace/menu/favorites","20.workspace/05.menu/10.favorites",{"title":273,"path":274,"stem":275,"children":-1},"최근 문서","/workspace/menu/recent","20.workspace/05.menu/20.recent",{"title":277,"path":278,"stem":279,"children":-1},"외부 공유","/workspace/menu/external-share","20.workspace/05.menu/30.external-share",{"title":281,"path":282,"stem":283,"children":-1},"휴지통","/workspace/menu/trash","20.workspace/05.menu/40.trash",{"title":285,"path":286,"stem":287,"children":288,"page":55},"계정","/workspace/account","20.workspace/10.account",[289,293,297],{"title":290,"path":291,"stem":292,"children":-1},"회원가입 및 로그인","/workspace/account/signup","20.workspace/10.account/10.signup",{"title":294,"path":295,"stem":296,"children":-1},"비밀번호 재설정","/workspace/account/reset-password","20.workspace/10.account/20.reset-password",{"title":298,"path":299,"stem":300,"children":-1},"계정 설정","/workspace/account/account-settings","20.workspace/10.account/30.account-settings",{"title":302,"path":303,"stem":304,"children":305,"page":55},"폴더","/workspace/folder","20.workspace/20.folder",[306,310,314,318,322,328,333,337,341,346,350,354,358,362,368],{"title":307,"path":308,"stem":309,"children":-1},"폴더 기본 기능","/workspace/folder/basic","20.workspace/20.folder/10.basic",{"title":311,"path":312,"stem":313,"children":-1},"여러 폴더 한꺼번에 만들기","/workspace/folder/bulk-folder-creation","20.workspace/20.folder/12.bulk-folder-creation",{"title":315,"path":316,"stem":317,"children":-1},"필터","/workspace/folder/filter","20.workspace/20.folder/13.filter",{"title":319,"path":320,"stem":321,"children":-1},"폴더 보기 옵션 설정","/workspace/folder/folder-view-options","20.workspace/20.folder/14.folder-view-options",{"title":323,"path":324,"stem":325,"tags":326,"children":-1},"폴더를 게시판으로 사용하기","/workspace/folder/board-view","20.workspace/20.folder/15.board-view",[327],"hot",{"title":329,"path":330,"stem":331,"tags":332,"children":-1},"폴더 웹 보기","/workspace/folder/folder-web-view","20.workspace/20.folder/16.folder-web-view",[327],{"title":334,"path":335,"stem":336,"children":-1},"폴더 정리","/workspace/folder/folder-organize","20.workspace/20.folder/17.folder-organize",{"title":338,"path":339,"stem":340,"children":-1},"폴더 공지 (README)","/workspace/folder/folder-readme","20.workspace/20.folder/18.folder-readme",{"title":342,"path":343,"stem":344,"tags":345,"children":-1},"폴더/파일 목록 내보내기","/workspace/folder/folder-export","20.workspace/20.folder/20.folder-export",[327],{"title":347,"path":348,"stem":349,"children":-1},"레벨별 접근 권한 설정","/workspace/folder/level-access-permissions","20.workspace/20.folder/24.level-access-permissions",{"title":351,"path":352,"stem":353,"children":-1},"팀별 접근 권한 설정","/workspace/folder/team-access-permissions","20.workspace/20.folder/26.team-access-permissions",{"title":355,"path":356,"stem":357,"children":-1},"파일 규칙 설정하기","/workspace/folder/file-rules","20.workspace/20.folder/28.file-rules",{"title":359,"path":360,"stem":361,"children":-1},"폴더 웹훅","/workspace/folder/webhook","20.workspace/20.folder/30.webhook",{"title":363,"path":364,"stem":365,"children":366},"폴더 지식인덱스 설정하기","/workspace/folder/knowledge-index","20.workspace/20.folder/32.knowledge-index",[367],{"title":363,"path":364,"stem":365,"children":-1},{"title":369,"path":370,"stem":371,"children":-1},"업무 자동화 폴더","/workspace/folder/automation","20.workspace/20.folder/40.automation",{"title":373,"path":374,"stem":375,"children":376,"page":55},"파일","/workspace/file","20.workspace/30.file",[377,381,386,390,394,398,402,406,410,415,419,423,427,431,435,439,443,447,451,455,459,463,467,471,475,479],{"title":378,"path":379,"stem":380,"children":-1},"파일 관리 기본 기능","/workspace/file/overview","20.workspace/30.file/00.overview",{"title":382,"path":383,"stem":384,"tags":385,"children":-1},"파일 보면서 목록 확인하기","/workspace/file/list-in-file","20.workspace/30.file/05.list-in-file",[327],{"title":387,"path":388,"stem":389,"children":-1},"텍스트 파일 보기 및 편집","/workspace/file/text-file-viewer","20.workspace/30.file/10.text-file-viewer",{"title":391,"path":392,"stem":393,"children":-1},"HTML 파일 보기","/workspace/file/html-viewer","20.workspace/30.file/11.html-viewer",{"title":395,"path":396,"stem":397,"children":-1},"CSV 파일 보기 및 편집","/workspace/file/csv-viewer","20.workspace/30.file/12.csv-viewer",{"title":399,"path":400,"stem":401,"children":-1},"이미지/동영상 파일 보기","/workspace/file/image-file-viewer","20.workspace/30.file/13.image-file-viewer",{"title":403,"path":404,"stem":405,"children":-1},"오피스/PDF 파일 보기","/workspace/file/office-viewer","20.workspace/30.file/14.office-viewer",{"title":407,"path":408,"stem":409,"children":-1},"웹페이지 붙여넣기 (HTML)","/workspace/file/paste-html","20.workspace/30.file/20.paste-html",{"title":411,"path":412,"stem":413,"tags":414,"children":-1},"스크린샷 붙여넣기","/workspace/file/paste-screenshot","20.workspace/30.file/21.paste-screenshot",[327],{"title":416,"path":417,"stem":418,"children":-1},"마크다운 붙여넣기 (MD)","/workspace/file/paste-md","20.workspace/30.file/22.paste-md",{"title":420,"path":421,"stem":422,"children":-1},"스크린 녹화하기","/workspace/file/screen-recording","20.workspace/30.file/23.screen-recording",{"title":424,"path":425,"stem":426,"children":-1},"파일 태그","/workspace/file/file-tag","20.workspace/30.file/33.file-tag",{"title":428,"path":429,"stem":430,"children":-1},"파일 이름 일괄 변경","/workspace/file/bulk-name-revise","20.workspace/30.file/34.bulk-name-revise",{"title":432,"path":433,"stem":434,"children":-1},"파일 변환","/workspace/file/file-convert-overview","20.workspace/30.file/40.file-convert-overview",{"title":436,"path":437,"stem":438,"children":-1},"템플릿 파일","/workspace/file/templates","20.workspace/30.file/41.templates",{"title":440,"path":441,"stem":442,"children":-1},"할일 목록 (Todo)","/workspace/file/template-todo","20.workspace/30.file/42.template-todo",{"title":444,"path":445,"stem":446,"children":-1},"결재 서식","/workspace/file/template-approval","20.workspace/30.file/43.template-approval",{"title":448,"path":449,"stem":450,"children":-1},"칸반 보드","/workspace/file/template-kanban","20.workspace/30.file/44.template-kanban",{"title":452,"path":453,"stem":454,"children":-1},"타임라인","/workspace/file/template-timeline","20.workspace/30.file/45.template-timeline",{"title":456,"path":457,"stem":458,"children":-1},"메모장","/workspace/file/template-memo","20.workspace/30.file/46.template-memo",{"title":460,"path":461,"stem":462,"children":-1},"AI 채팅 파일","/workspace/file/ai-chat-file","20.workspace/30.file/47.ai-chat-file",{"title":464,"path":465,"stem":466,"children":-1},"파일 변경 기록 확인","/workspace/file/audit-trail","20.workspace/30.file/50.audit-trail",{"title":468,"path":469,"stem":470,"children":-1},"파일 버전 관리","/workspace/file/version-trail","20.workspace/30.file/51.version-trail",{"title":472,"path":473,"stem":474,"children":-1},"편집 잠금","/workspace/file/file-lock","20.workspace/30.file/52.file-lock",{"title":476,"path":477,"stem":478,"children":-1},"파일 암호화","/workspace/file/file-encrypt","20.workspace/30.file/53.file-encrypt",{"title":480,"path":481,"stem":482,"children":-1},"디스크 파일 등록","/workspace/file/disk-file-registration","20.workspace/30.file/60.disk-file-registration",{"title":484,"path":485,"stem":486,"children":487,"page":55},"협업","/workspace/cooperation","20.workspace/35.cooperation",[488,492,496,500,505,509,513,517,522,526],{"title":489,"path":490,"stem":491,"children":-1},"파일·폴더 댓글","/workspace/cooperation/file-comments","20.workspace/35.cooperation/00.file-comments",{"title":493,"path":494,"stem":495,"children":-1},"채팅","/workspace/cooperation/chat","20.workspace/35.cooperation/10.chat",{"title":497,"path":498,"stem":499,"children":-1},"협업 채팅 및 편집 잠금","/workspace/cooperation/collaboration-chat","20.workspace/35.cooperation/11.collaboration-chat",{"title":501,"path":502,"stem":503,"tags":504,"children":-1},"팀원 작업 위치 따라가기","/workspace/cooperation/follow-team-location","20.workspace/35.cooperation/12.follow-team-location",[327],{"title":506,"path":507,"stem":508,"children":-1},"멘션","/workspace/cooperation/mention","20.workspace/35.cooperation/14.mention",{"title":510,"path":511,"stem":512,"children":-1},"쪽지","/workspace/cooperation/dm","20.workspace/35.cooperation/16.dm",{"title":514,"path":515,"stem":516,"children":-1},"알림 보관함","/workspace/cooperation/notification-inbox","20.workspace/35.cooperation/18.notification-inbox",{"title":518,"path":519,"stem":520,"tags":521,"children":-1},"팀 활동 확인하기","/workspace/cooperation/file-activity","20.workspace/35.cooperation/30.file-activity",[327],{"title":523,"path":524,"stem":525,"children":-1},"외부 공유 링크 만들기","/workspace/cooperation/share-link-creation","20.workspace/35.cooperation/40.share-link-creation",{"title":527,"path":528,"stem":529,"children":-1},"외부 공유 이메일 전송","/workspace/cooperation/share-link-email","20.workspace/35.cooperation/42.share-link-email",{"title":531,"path":532,"stem":533,"children":534,"page":55},"검색","/workspace/search","20.workspace/40.search",[535,539,544,550,554,558],{"title":536,"path":537,"stem":538,"children":-1},"파일 검색","/workspace/search/search","20.workspace/40.search/00.search",{"title":540,"path":541,"stem":542,"tags":543,"children":-1},"문맥 검색 (AI 검색)","/workspace/search/context-search","20.workspace/40.search/10.context-search",[327],{"title":545,"path":546,"stem":547,"tags":548,"children":-1},"이미지 검색","/workspace/search/image-search","20.workspace/40.search/20.image-search",[549],"new",{"title":551,"path":552,"stem":553,"children":-1},"채팅 검색","/workspace/search/chat-search","20.workspace/40.search/30.chat-search",{"title":555,"path":556,"stem":557,"children":-1},"댓글 검색","/workspace/search/comment-search","20.workspace/40.search/40.comment-search",{"title":559,"path":560,"stem":561,"children":-1},"유의어 검색","/workspace/search/synonym-search","20.workspace/40.search/50.synonym-search",{"title":563,"path":564,"stem":565,"children":566,"page":55},"AI","/workspace/ai","20.workspace/50.ai",[567,571,576],{"title":568,"path":569,"stem":570,"children":-1},"AI 기능 요약","/workspace/ai/overview","20.workspace/50.ai/00.overview",{"title":572,"path":573,"stem":574,"tags":575,"children":-1},"로컬 AI에게 업무 요청하기","/workspace/ai/ai-work","20.workspace/50.ai/10.ai-work",[327],{"title":577,"path":578,"stem":579,"tags":580,"children":-1},"외부 AI 활용하기","/workspace/ai/external-ai","20.workspace/50.ai/20.external-ai",[549],{"title":582,"path":583,"stem":584,"children":585,"page":55},"웹스페이스","/webspace","40.webspace",[586,590,594,598,602,606,611,615,619,623,627,656],{"title":587,"path":588,"stem":589,"children":-1},"웹스페이스(Webspace)란?","/webspace/overview","40.webspace/00.overview",{"title":591,"path":592,"stem":593,"children":-1},"웹사이트 배포하기","/webspace/website-release","40.webspace/10.website-release",{"title":595,"path":596,"stem":597,"children":-1},"스키마 파일(.sfn) 만들기","/webspace/create-database","40.webspace/20.create-database",{"title":599,"path":600,"stem":601,"children":-1},"API 빌드 및 데이터베이스 배포하기","/webspace/api-overview","40.webspace/24.api-overview",{"title":603,"path":604,"stem":605,"children":-1},"프론트엔드 샘플 확인하기","/webspace/frontend-example","40.webspace/26.frontend-example",{"title":607,"path":608,"stem":609,"tags":610,"children":-1},"팀 내부용 웹서비스 만들기","/webspace/internal-webservice","40.webspace/32.internal-webservice",[327],{"title":612,"path":613,"stem":614,"children":-1},"외부 공개용 웹서비스 만들기","/webspace/external-webservice","40.webspace/34.external-webservice",{"title":616,"path":617,"stem":618,"children":-1},"SQL 가져오기와 내보내기","/webspace/sql-converter","40.webspace/42.sql-converter",{"title":620,"path":621,"stem":622,"children":-1},"개발자 팁 2: Code 컨버터","/webspace/code-converter","40.webspace/44.code-converter",{"title":624,"path":625,"stem":626,"children":-1},"성능과 확장","/webspace/performance","40.webspace/48.performance",{"title":628,"path":629,"stem":630,"children":631,"page":55},"웹스페이스 관리","/webspace/admin","40.webspace/50.admin",[632,636,640,644,648,652],{"title":633,"path":634,"stem":635,"children":-1},"웹스페이스 관리 시작하기","/webspace/admin/overview","40.webspace/50.admin/00.overview",{"title":637,"path":638,"stem":639,"children":-1},"운영 현황","/webspace/admin/operations","40.webspace/50.admin/10.operations",{"title":641,"path":642,"stem":643,"children":-1},"워크스페이스 접근","/webspace/admin/workspace-access","40.webspace/50.admin/20.workspace-access",{"title":645,"path":646,"stem":647,"children":-1},"API · 사이트 보안","/webspace/admin/api-site-security","40.webspace/50.admin/30.api-site-security",{"title":649,"path":650,"stem":651,"children":-1},"서비스 및 용량","/webspace/admin/service-capacity","40.webspace/50.admin/40.service-capacity",{"title":653,"path":654,"stem":655,"children":-1},"배포 관리와 프론트엔드 릴리스","/webspace/admin/deployments","40.webspace/50.admin/50.deployments",{"title":657,"path":658,"stem":659,"children":660,"page":55},"웹스페이스 따라해보기","/webspace/examples","40.webspace/60.examples",[661,665,669],{"title":662,"path":663,"stem":664,"children":-1},"웹스페이스 응용편","/webspace/examples/overview","40.webspace/60.examples/00.overview",{"title":666,"path":667,"stem":668,"children":-1},"나만의 업무 시스템 만들기","/webspace/examples/my-own-system","40.webspace/60.examples/10.my-own-system",{"title":670,"path":671,"stem":672,"children":-1},"실시간 오목 게임 만들기","/webspace/examples/realtime-gomoku","40.webspace/60.examples/20.realtime-gomoku",{"title":674,"path":675,"stem":676,"children":677,"page":55},"플러그인 사용하기","/plugin","50.plugin",[678,682,699,748,766,796],{"title":679,"path":680,"stem":681,"children":-1},"플러그인 개요","/plugin/overview","50.plugin/00.overview",{"title":683,"path":684,"stem":685,"children":686,"page":55},"캘린더","/plugin/calendar","50.plugin/10.calendar",[687,691,695],{"title":688,"path":689,"stem":690,"children":-1},"캘린더 소개","/plugin/calendar/overview","50.plugin/10.calendar/00.overview",{"title":692,"path":693,"stem":694,"children":-1},"일정 생성, 수정 및 삭제하기","/plugin/calendar/create-event","50.plugin/10.calendar/10.create-event",{"title":696,"path":697,"stem":698,"children":-1},"활동 기록 확인하기","/plugin/calendar/file-activity","50.plugin/10.calendar/40.file-activity",{"title":700,"path":701,"stem":702,"children":703,"page":55},"이메일","/plugin/email","50.plugin/20.email",[704,708,712,716,720,724,728,732,736,740,744],{"title":705,"path":706,"stem":707,"children":-1},"이메일 소개","/plugin/email/overview","50.plugin/20.email/00.overview",{"title":709,"path":710,"stem":711,"children":-1},"이메일 설정","/plugin/email/setfn-email-setting","50.plugin/20.email/05.setfn-email-setting",{"title":713,"path":714,"stem":715,"children":-1},"외부 이메일 연결","/plugin/email/external-email","50.plugin/20.email/07.external-email",{"title":717,"path":718,"stem":719,"children":-1},"이메일 기본 기능","/plugin/email/email-basic","50.plugin/20.email/10.email-basic",{"title":721,"path":722,"stem":723,"children":-1},"메일 AI 어시스턴트 사용하기","/plugin/email/email-ai-assistant","50.plugin/20.email/15.email-ai-assistant",{"title":725,"path":726,"stem":727,"children":-1},"이메일 작성 및 전송","/plugin/email/email-compose","50.plugin/20.email/20.email-compose",{"title":729,"path":730,"stem":731,"children":-1},"파일 첨부하기","/plugin/email/email-attachment","50.plugin/20.email/30.email-attachment",{"title":733,"path":734,"stem":735,"children":-1},"이메일 폴더 관리","/plugin/email/email-folders","50.plugin/20.email/40.email-folders",{"title":737,"path":738,"stem":739,"children":-1},"이메일 자동 분류하기","/plugin/email/email-auto-classify","50.plugin/20.email/50.email-auto-classify",{"title":741,"path":742,"stem":743,"children":-1},"이메일 파일 보관 및 공유","/plugin/email/email-open-in-space","50.plugin/20.email/60.email-open-in-space",{"title":745,"path":746,"stem":747,"children":-1},"이메일 보안","/plugin/email/email-security","50.plugin/20.email/70.email-security",{"title":749,"path":750,"stem":751,"children":752,"page":55},"워크플로우 (업무자동화)","/plugin/workflow","50.plugin/30.workflow",[753,757,762],{"title":754,"path":755,"stem":756,"children":-1},"워크플로우 소개","/plugin/workflow/overview","50.plugin/30.workflow/00.overview",{"title":758,"path":759,"stem":760,"tags":761,"children":-1},"새 워크플로우 만들기","/plugin/workflow/new-workflow","50.plugin/30.workflow/10.new-workflow",[327],{"title":763,"path":764,"stem":765,"children":-1},"실행 기록 확인하기","/plugin/workflow/execution-history","50.plugin/30.workflow/20.execution-history",{"title":767,"path":768,"stem":769,"children":770,"page":55},"파인튜닝 (AI 학습)","/plugin/fine-tuning","50.plugin/40.fine-tuning",[771,776,780,784,788,792],{"title":772,"path":773,"stem":774,"tags":775,"children":-1},"파인튜닝 소개","/plugin/fine-tuning/overview","50.plugin/40.fine-tuning/00.overview",[327],{"title":777,"path":778,"stem":779,"children":-1},"학습 데이터 전처리","/plugin/fine-tuning/pre-processing","50.plugin/40.fine-tuning/10.pre-processing",{"title":781,"path":782,"stem":783,"children":-1},"학습","/plugin/fine-tuning/training","50.plugin/40.fine-tuning/20.training",{"title":785,"path":786,"stem":787,"children":-1},"평가","/plugin/fine-tuning/evaluation","50.plugin/40.fine-tuning/30.evaluation",{"title":789,"path":790,"stem":791,"children":-1},"채팅 테스트","/plugin/fine-tuning/chat-test","50.plugin/40.fine-tuning/40.chat-test",{"title":793,"path":794,"stem":795,"children":-1},"내보내기","/plugin/fine-tuning/export","50.plugin/40.fine-tuning/50.export",{"title":797,"path":798,"stem":799,"children":800,"page":55},"EDC (데이터 수집)","/plugin/edc","50.plugin/50.edc",[801,805,809,813],{"title":802,"path":803,"stem":804,"children":-1},"EDC 소개","/plugin/edc/overview","50.plugin/50.edc/00.overview",{"title":806,"path":807,"stem":808,"children":-1},"데이터 입력, Audit Trail","/plugin/edc/data-entry","50.plugin/50.edc/10.data-entry",{"title":810,"path":811,"stem":812,"children":-1},"빌더","/plugin/edc/builder","50.plugin/50.edc/20.builder",{"title":814,"path":815,"stem":816,"children":-1},"사용자/기관 설정","/plugin/edc/account","50.plugin/50.edc/30.account",{"title":818,"path":819,"stem":820,"children":821,"page":55},"FAQ","/faq","99.FAQ",[822,826,830,834,838,842,846],{"title":823,"path":824,"stem":825,"children":-1},"SetFN vs 클라우드 서비스 비교","/faq/comparison-cloud","99.FAQ/10.comparison-cloud",{"title":827,"path":828,"stem":829,"children":-1},"SetFN vs NAS 비교","/faq/comparison-nas","99.FAQ/20.comparison-nas",{"title":831,"path":832,"stem":833,"children":-1},"보안 정책","/faq/security-policy","99.FAQ/30.security-policy",{"title":835,"path":836,"stem":837,"children":-1},"SetFN은 왜 빠른가요","/faq/why-fast","99.FAQ/40.why-fast",{"title":839,"path":840,"stem":841,"children":-1},"라이선스 FAQ","/faq/license-faq","99.FAQ/50.license-faq",{"title":843,"path":844,"stem":845,"children":-1},"AI 기능 FAQ","/faq/ai-faq","99.FAQ/60.ai-faq",{"title":847,"path":848,"stem":849,"children":-1},"문제 해결 가이드","/faq/troubleshooting","99.FAQ/70.troubleshooting",{"title":851,"path":852,"stem":853,"children":854,"page":55},"응용편(초안)","/draft","draft",[855,859,863,867,871,875,879,883,887,891,895,899,903],{"title":856,"path":857,"stem":858,"children":-1},"예시 1. 소개 페이지 만들기","/draft/static-intro","draft/05.static-intro",{"title":860,"path":861,"stem":862,"children":-1},"예시 2. 공지 게시판 만들기","/draft/public-notice-board","draft/07.public-notice-board",{"title":864,"path":865,"stem":866,"children":-1},"예시 3. 커피챗 예약 시스템 만들기","/draft/coffee-chat-booking","draft/08.coffee-chat-booking",{"title":868,"path":869,"stem":870,"children":-1},"예시 4. 휴가 신청 시스템 만들기","/draft/leave-request","draft/09.leave-request",{"title":872,"path":873,"stem":874,"children":-1},"예시 5. 실시간 팀 채팅 만들기","/draft/team-chat","draft/10.team-chat",{"title":876,"path":877,"stem":878,"children":-1},"예시 6. 채용 지원 서류 제출함 만들기","/draft/client-submission","draft/11.client-submission",{"title":880,"path":881,"stem":882,"children":-1},"예시 7. 팀과 레벨에 따른 이슈 트래커 만들기","/draft/crm-basic","draft/12.crm-basic",{"title":884,"path":885,"stem":886,"children":-1},"예시 8. 이슈 상태별 필터와 통계 요약 화면 만들기","/draft/crm-search-filter","draft/13.crm-search-filter",{"title":888,"path":889,"stem":890,"children":-1},"예시 9. 실시간 커뮤니티 채팅과 운영 기능 만들기","/draft/community-moderation","draft/14.community-moderation",{"title":892,"path":893,"stem":894,"children":-1},"예시 10. 실시간 출석체크·투표 만들기","/draft/attendance-poll","draft/15.attendance-poll",{"title":896,"path":897,"stem":898,"children":-1},"예시 11. 찬반 논쟁 배틀 만들기","/draft/debate-battle","draft/16.debate-battle",{"title":900,"path":901,"stem":902,"children":-1},"예시 13. 공지사항 읽음 확인 만들기","/draft/announcement-read","draft/18.announcement-read",{"title":904,"path":905,"stem":906,"children":-1},"예시 14. 재고 관리 시스템 만들기","/draft/inventory-management","draft/19.inventory-management",{"title":908,"path":909,"stem":910,"children":911,"page":55},"SJAUTO","/sjauto","sjauto",[912,915,918,921],{"title":67,"path":913,"stem":914,"children":-1},"/sjauto/admin-page-access","sjauto/00.admin-page-access",{"title":290,"path":916,"stem":917,"children":-1},"/sjauto/signup","sjauto/10.signup",{"title":460,"path":919,"stem":920,"children":-1},"/sjauto/ai-chat-file","sjauto/ai-chat-file",{"title":666,"path":922,"stem":923,"children":-1},"/sjauto/webspace-schema-example","sjauto/webspace-schema-example",{"id":925,"title":154,"body":926,"cover":1869,"description":1870,"extension":1871,"image":1869,"meta":1872,"navigation":1645,"path":155,"seo":1874,"stem":156,"tags":1869,"thumbnail":1869,"__hash__":1884},"docs_ko/10.admin/30.ai/22.vector-db-operations.md",{"type":927,"value":928,"toc":1852},"minimal",[929,933,937,945,948,953,965,1051,1058,1061,1077,1090,1094,1100,1154,1164,1193,1199,1203,1210,1218,1221,1240,1245,1256,1259,1263,1287,1291,1295,1300,1352,1357,1406,1410,1415,1459,1462,1507,1511,1516,1559,1573,1577,1580,1595,1599,1602,1667,1707,1716,1720,1821,1825,1848],[930,931,154],"h1",{"id":932},"벡터-db-운영-가이드",[934,935,936],"p",{},"벡터 DB는 문서를 AI가 검색할 수 있는 형태(벡터)로 바꿔 저장하는 곳입니다. 지식 인덱싱이 만든 검색 데이터가 여기에 저장되고, AI 문서 검색과 RAG 답변이 이 데이터를 사용합니다.",[934,938,939,940,944],{},"벡터 DB에 저장되는 데이터는 원본 문서에서 언제든 다시 만들 수 있는 ",[941,942,943],"strong",{},"파생 데이터","입니다. 벡터 DB를 바꾸거나 초기화해도 워크스페이스의 원본 파일은 바뀌지 않습니다.",[946,947],"hr",{},[949,950,952],"h2",{"id":951},"벡터-저장소-선택","벡터 저장소 선택",[934,954,955,959,960,964],{},[956,957,150],"a",{"href":958},"/admin/ai/ai-db-setting/","의 ",[961,962,963],"code",{},"드라이버","에서 선택합니다.",[966,967,968,986],"table",{},[969,970,971],"thead",{},[972,973,974,977,980,983],"tr",{},[975,976,963],"th",{},[975,978,979],{},"저장 위치",[975,981,982],{},"컬렉션 준비",[975,984,985],{},"권장 환경",[987,988,989,1004,1021,1035],"tbody",{},[972,990,991,995,998,1001],{},[992,993,994],"td",{},"Automatic (SQLite)",[992,996,997],{},"SpaceBuilder 서버 내부 파일",[992,999,1000],{},"필요 없음",[992,1002,1003],{},"기본값. 임베딩 모델을 선택하면 내장 SQLite 저장소를 사용합니다.",[972,1005,1006,1009,1016,1018],{},[992,1007,1008],{},"Local (SQLite)",[992,1010,1011,1012,1015],{},"지정한 경로의 ",[961,1013,1014],{},"local_vectors.db"," 파일",[992,1017,1000],{},[992,1019,1020],{},"벡터 약 5만 개 이하의 소규모 환경. 저장 경로를 직접 정하고 싶을 때 사용합니다.",[972,1022,1023,1026,1029,1032],{},[992,1024,1025],{},"Qdrant",[992,1027,1028],{},"외부 Qdrant 서버",[992,1030,1031],{},"자동 생성",[992,1033,1034],{},"벡터가 많거나 검색 데이터를 별도 서버로 분리할 때",[972,1036,1037,1040,1043,1048],{},[992,1038,1039],{},"Milvus",[992,1041,1042],{},"외부 Milvus 서버",[992,1044,1045],{},[941,1046,1047],{},"미리 만들어야 함",[992,1049,1050],{},"이미 Milvus를 운영 중이거나 대규모 클러스터가 필요할 때",[934,1052,1053,1054,1057],{},"벡터 수는 문서 수가 아니라 ",[941,1055,1056],{},"문서 조각(청크) 수","입니다. 문서는 형식에 따라 섹션, 페이지, 행 단위로 나눈 뒤 한국어 기준 약 700~1,000자 크기로 다시 나눠 저장합니다. 긴 문서 하나가 수십 개의 벡터가 될 수 있습니다.",[934,1059,1060],{},"외부 벡터 DB의 설치와 연결 방법은 각 문서를 참고하세요.",[1062,1063,1064,1071],"ul",{},[1065,1066,1067,1070],"li",{},[956,1068,158],{"href":1069},"/admin/ai/qdrant/"," — Docker 컨테이너 하나로 설치할 수 있어 가볍습니다. 별도 서버를 처음 구성한다면 Qdrant를 권장합니다.",[1065,1072,1073,1076],{},[956,1074,166],{"href":1075},"/admin/ai/milvus/"," — 메모리 8GB 이상의 별도 서버를 권장합니다. 컬렉션을 직접 만들어야 합니다.",[1078,1079,1080],"note",{},[934,1081,1082,1083,959,1086,1089],{},"임베딩 모델이 준비되지 않으면 어떤 드라이버를 선택해도 벡터 검색은 동작하지 않고, 키워드 검색만 사용합니다. 드라이버와 함께 ",[956,1084,170],{"href":1085},"/admin/ai/knowledge-indexing/",[961,1087,1088],{},"시작 전 설정 확인","을 모두 완료하세요.",[949,1091,1093],{"id":1092},"local-sqlite-운영","Local (SQLite) 운영",[934,1095,1096,1097,1099],{},"Local 드라이버는 외부 서비스 없이 SQLite 파일 하나(",[961,1098,1014],{},")로 벡터 검색을 운영합니다.",[966,1101,1102,1112],{},[969,1103,1104],{},[972,1105,1106,1109],{},[975,1107,1108],{},"항목",[975,1110,1111],{},"내용",[987,1113,1114,1127,1138,1146],{},[972,1115,1116,1119],{},[992,1117,1118],{},"저장 파일",[992,1120,1121,1124,1125],{},[961,1122,1123],{},"데이터 경로"," 아래의 ",[961,1126,1014],{},[972,1128,1129,1131],{},[992,1130,1123],{},[992,1132,1133,1134,1137],{},"기본값은 ",[961,1135,1136],{},"vectordb_local","입니다. 상대 경로는 SpaceBuilder 설정 파일이 있는 폴더를 기준으로 합니다.",[972,1139,1140,1143],{},[992,1141,1142],{},"검색 방식",[992,1144,1145],{},"저장된 벡터를 모두 비교하는 방식입니다. 1024차원 기준 1만 개에서 약 10ms가 걸리며, 데이터가 늘수록 검색 시간도 늘어납니다.",[972,1147,1148,1151],{},[992,1149,1150],{},"권장 규모",[992,1152,1153],{},"벡터 약 5만 개 이하. 이를 넘으면 Qdrant 또는 Milvus로 전환을 권장합니다.",[934,1155,1156,1159,1160,1163],{},[961,1157,1158],{},"로컬 AI DB 운영 현황","에는 ",[961,1161,1162],{},"local_vectors.db 사용량","이 함께 표시됩니다.",[966,1165,1166,1175],{},[969,1167,1168],{},[972,1169,1170,1172],{},[975,1171,1108],{},[975,1173,1174],{},"의미",[987,1176,1177,1185],{},[972,1178,1179,1182],{},[992,1180,1181],{},"DB 파일 / WAL / SHM",[992,1183,1184],{},"SQLite 본 파일과 쓰기 로그 파일의 크기",[972,1186,1187,1190],{},[992,1188,1189],{},"DB 내부 재사용 가능 공간",[992,1191,1192],{},"데이터 삭제로 비었지만 아직 파일 크기에서 빠지지 않은 공간입니다. 새 데이터가 저장될 때 이 공간을 먼저 다시 사용합니다.",[1194,1195,1196],"warning",{},[934,1197,1198],{},"같은 서버에서 여러 SpaceBuilder 프로젝트를 실행한다면 프로젝트마다 다른 데이터 경로를 사용하세요. 실행 중인 다른 프로젝트가 같은 경로를 쓰고 있으면 설정 화면에 경고가 표시됩니다.",[949,1200,1202],{"id":1201},"저장소나-임베딩-모델을-바꿀-때","저장소나 임베딩 모델을 바꿀 때",[934,1204,1205,1206,1209],{},"아래 항목 중 하나라도 바꾸고 저장하면, SpaceBuilder가 변경을 감지해 ",[941,1207,1208],{},"원본 전체 재인덱싱을 자동으로 시작","합니다.",[1062,1211,1212,1215],{},[1065,1213,1214],{},"드라이버, 엔드포인트, 컬렉션, 데이터 경로",[1065,1216,1217],{},"임베딩 모델, 벡터 차원",[934,1219,1220],{},"전환은 다음 순서로 진행됩니다.",[1222,1223,1224,1227,1230,1233],"ol",{},[1065,1225,1226],{},"새 설정을 저장합니다.",[1065,1228,1229],{},"인덱싱 스케줄러가 변경을 감지하고 원본 전체 재인덱싱을 요청합니다.",[1065,1231,1232],{},"모든 문서를 새 설정으로 다시 임베딩해 새 저장소에 저장합니다.",[1065,1234,1235,1236,1239],{},"모든 문서가 새 저장소에 저장되고 검색 검증까지 끝나면, 이전 벡터를 ",[941,1237,1238],{},"원래 저장돼 있던 곳에서"," 삭제합니다.",[1241,1242,1244],"h3",{"id":1243},"전환-중-검색","전환 중 검색",[1062,1246,1247,1250,1253],{},[1065,1248,1249],{},"변경을 감지하기 전까지는 벡터 검색을 잠시 멈추고 키워드 검색만 사용합니다.",[1065,1251,1252],{},"재인덱싱 중에는 새 저장소를 검색합니다. 아직 새 저장소로 옮겨지지 않은 문서는 벡터 검색 결과에 나오지 않을 수 있습니다.",[1065,1254,1255],{},"재인덱싱이 끝나면 새 설정으로 만든 벡터만 검색합니다.",[934,1257,1258],{},"문서가 많으면 재인덱싱에 오래 걸릴 수 있으므로, 사용자가 적은 시간대에 전환하세요.",[1241,1260,1262],{"id":1261},"전환할-때-주의할-점","전환할 때 주의할 점",[1062,1264,1265,1275,1281],{},[1065,1266,1267,1270,1271,1274],{},[941,1268,1269],{},"이전 외부 저장소는 정리가 끝날 때까지 켜두세요."," Qdrant나 Milvus에서 다른 저장소로 옮겼다면, 이전 벡터 삭제가 끝날 때까지 이전 서버에 접속할 수 있어야 합니다. 접속할 수 없으면 정리 작업이 ",[961,1272,1273],{},"기존 저장 대상에 연결할 수 없음","으로 계속 재시도됩니다.",[1065,1276,1277,1280],{},[941,1278,1279],{},"벡터 차원을 바꾸면 컬렉션도 새로 지정하세요."," 이미 만들어진 Qdrant·Milvus 컬렉션은 차원을 바꿀 수 없습니다. 차원이 다른 컬렉션에는 저장할 수 없습니다.",[1065,1282,1283,1286],{},[941,1284,1285],{},"이전 설정으로 되돌려도 다시 인덱싱합니다."," A → B → A로 되돌리면 처음 A의 데이터를 재사용하지 않고 새로 인덱싱합니다.",[949,1288,1290],{"id":1289},"운영-상태-확인","운영 상태 확인",[1241,1292,1294],{"id":1293},"ai-db-운영-현황","AI DB 운영 현황",[934,1296,1297,1299],{},[956,1298,150],{"href":958}," 화면 상단에서 확인합니다.",[966,1301,1302,1310],{},[969,1303,1304],{},[972,1305,1306,1308],{},[975,1307,1108],{},[975,1309,1174],{},[987,1311,1312,1320,1328,1336,1344],{},[972,1313,1314,1317],{},[992,1315,1316],{},"연결 상태",[992,1318,1319],{},"벡터 저장소에 접속할 수 있는지 여부",[972,1321,1322,1325],{},[992,1323,1324],{},"벡터 스토어",[992,1326,1327],{},"사용 중인 드라이버와 유형(내장형·서비스형)",[972,1329,1330,1333],{},[992,1331,1332],{},"데이터(엔티티) 수",[992,1334,1335],{},"이 인스턴스(현재 SpaceBuilder)가 저장한 벡터 수. 같은 저장소를 쓰는 다른 인스턴스의 데이터는 포함하지 않습니다.",[972,1337,1338,1341],{},[992,1339,1340],{},"컬렉션 수",[992,1342,1343],{},"Local은 1(첫 인덱싱 전에는 0), Qdrant·Milvus는 해당 서버의 전체 컬렉션 수",[972,1345,1346,1349],{},[992,1347,1348],{},"컬렉션 구성",[992,1350,1351],{},"저장소의 차원과 거리 계산 방식이 설정과 맞는지 여부",[934,1353,1354,1356],{},[961,1355,1348],{},"에는 다음 중 하나가 표시됩니다.",[966,1358,1359,1368],{},[969,1360,1361],{},[972,1362,1363,1366],{},[975,1364,1365],{},"표시",[975,1367,1174],{},[987,1369,1370,1378,1386,1398],{},[972,1371,1372,1375],{},[992,1373,1374],{},"정상 (차원·거리 설정 일치)",[992,1376,1377],{},"컬렉션을 사용할 수 있습니다.",[972,1379,1380,1383],{},[992,1381,1382],{},"아직 생성되지 않음 · 첫 인덱싱 때 자동으로 만들어집니다",[992,1384,1385],{},"Qdrant 컬렉션이 아직 없습니다. 오류가 아니며, 첫 인덱싱 때 만들어집니다.",[972,1387,1388,1391],{},[992,1389,1390],{},"컬렉션이 없습니다 · Milvus에 컬렉션을 먼저 만들어야 합니다",[992,1392,1393,1394,1397],{},"Milvus 컬렉션은 자동으로 만들어지지 않습니다. ",[956,1395,166],{"href":1396},"/admin/ai/milvus/#%EC%BB%AC%EB%A0%89%EC%85%98-%EB%AF%B8%EB%A6%AC-%EB%A7%8C%EB%93%A4%EA%B8%B0","을 참고해 만드세요.",[972,1399,1400,1403],{},[992,1401,1402],{},"컬렉션 설정 확인 필요",[992,1404,1405],{},"차원이나 거리 계산 방식이 맞지 않습니다. 함께 표시되는 오류 내용을 확인하세요.",[1241,1407,1409],{"id":1408},"지식-인덱싱-화면","지식 인덱싱 화면",[934,1411,1412,1414],{},[956,1413,170],{"href":1085},"의 인덱싱 요약에서 진행 상황을 확인합니다.",[966,1416,1417,1425],{},[969,1418,1419],{},[972,1420,1421,1423],{},[975,1422,1108],{},[975,1424,1174],{},[987,1426,1427,1435,1443,1451],{},[972,1428,1429,1432],{},[992,1430,1431],{},"대기 갱신",[992,1433,1434],{},"새로 만들거나 수정한 파일이 인덱싱을 기다리는 수",[972,1436,1437,1440],{},[992,1438,1439],{},"대기 임베딩",[992,1441,1442],{},"글자 추출이 끝나 벡터로 바뀌기를 기다리는 수",[972,1444,1445,1448],{},[992,1446,1447],{},"임베딩 수",[992,1449,1450],{},"SpaceBuilder가 기록한 현재 임베딩 수. 전환이나 재인덱싱 중에는 벡터 DB의 데이터(엔티티) 수와 다를 수 있습니다.",[972,1452,1453,1456],{},[992,1454,1455],{},"벡터 삭제 대기",[992,1457,1458],{},"파일 삭제나 저장소 전환 뒤 원래 저장 위치에서 지워지기를 기다리는 벡터 수",[934,1460,1461],{},"이전 벡터 삭제에 실패하면 정리 재시도 목록에 저장 대상과 사유가 표시됩니다. 재시도 간격은 점점 늘어나며 최대 5분입니다.",[966,1463,1464,1474],{},[969,1465,1466],{},[972,1467,1468,1471],{},[975,1469,1470],{},"사유",[975,1472,1473],{},"의미와 조치",[987,1475,1476,1483,1491,1499],{},[972,1477,1478,1480],{},[992,1479,1273],{},[992,1481,1482],{},"이전 벡터 DB 서버가 꺼져 있거나 접속할 수 없습니다. 이전 서버를 다시 켜면 자동으로 이어서 정리합니다.",[972,1484,1485,1488],{},[992,1486,1487],{},"원격 삭제 실패",[992,1489,1490],{},"벡터 DB가 삭제 요청을 거부했습니다. 벡터 DB 서버 상태와 로그를 확인하세요.",[972,1492,1493,1496],{},[992,1494,1495],{},"이전 저장 요청 결과 확인 중",[992,1497,1498],{},"결과가 확인되지 않은 저장 요청이 남아 있어 삭제 완료를 기다리는 중입니다. 대부분 자동으로 해소됩니다.",[972,1500,1501,1504],{},[992,1502,1503],{},"삭제 완료 기록 실패",[992,1505,1506],{},"삭제는 됐지만 SpaceBuilder에 완료를 기록하지 못했습니다. 다음 주기에 다시 시도합니다.",[949,1508,1510],{"id":1509},"재인덱싱과-초기화","재인덱싱과 초기화",[934,1512,1513,1515],{},[956,1514,150],{"href":958},"의 관리자 전용 영역에서 실행합니다. 두 작업 모두 원본 파일은 삭제하지 않습니다.",[966,1517,1518,1531],{},[969,1519,1520],{},[972,1521,1522,1525,1528],{},[975,1523,1524],{},"작업",[975,1526,1527],{},"동작",[975,1529,1530],{},"사용 시점",[987,1532,1533,1544],{},[972,1534,1535,1538,1541],{},[992,1536,1537],{},"전체 데이터 다시 인덱싱",[992,1539,1540],{},"모든 원본 문서를 다시 읽고 나누고 임베딩해서 검색 데이터를 새로 만듭니다.",[992,1542,1543],{},"추출 규칙을 바꿨거나 검색 품질이 떨어졌을 때",[972,1545,1546,1549,1556],{},[992,1547,1548],{},"초기화(벡터 삭제 후 재인덱싱)",[992,1550,1551,1552,1555],{},"현재 저장소에서 ",[941,1553,1554],{},"이 인스턴스의 벡터만"," 지우고, 원본 전체 재인덱싱을 요청합니다.",[992,1557,1558],{},"저장소 데이터가 꼬였거나 처음부터 다시 만들고 싶을 때",[1062,1560,1561,1567,1570],{},[1065,1562,1563,1564,1566],{},"두 작업 모두 요청을 접수하는 것이며, 완료는 ",[956,1565,170],{"href":1085},"에서 확인합니다.",[1065,1568,1569],{},"초기화하면 새 인덱스가 준비될 때까지 벡터 검색이 제한됩니다.",[1065,1571,1572],{},"같은 Qdrant·Milvus 컬렉션을 쓰는 다른 인스턴스의 데이터는 초기화해도 지워지지 않습니다.",[949,1574,1576],{"id":1575},"여러-인스턴스가-벡터-db-하나를-함께-쓸-때","여러 인스턴스가 벡터 DB 하나를 함께 쓸 때",[934,1578,1579],{},"인스턴스는 따로 설치해 운영하는 SpaceBuilder 하나를 말합니다. 인스턴스마다 고유한 인스턴스 격리 키가 있고, 저장하는 벡터에는 이 키가 함께 기록됩니다. 그래서 같은 컬렉션을 함께 써도 검색, 통계, 초기화는 각 인스턴스의 데이터 안에서만 이루어집니다.",[934,1581,1582,1583,1586,1587,1590,1591,1594],{},"다만 백업, 용량 관리, 삭제를 인스턴스별로 하려면 ",[941,1584,1585],{},"컬렉션을 인스턴스마다 따로 쓰는 것","을 권장합니다. 기본 컬렉션 이름(",[961,1588,1589],{},"knowledge_vectors",")을 쓰면 설정 화면에 경고와 함께 이 인스턴스의 권장 이름(",[961,1592,1593],{},"setfn_knowledge_...",")이 표시됩니다.",[949,1596,1598],{"id":1597},"백업과-복원","백업과 복원",[934,1600,1601],{},"지식 데이터 백업은 SpaceBuilder 서버를 멈춘 뒤 명령어로 실행합니다. 서버가 실행 중이면 백업과 복원이 거부됩니다. 복원은 같은 인스턴스, 같은 홈 폴더에서 만든 백업만 할 수 있습니다.",[1603,1604,1609],"pre",{"className":1605,"code":1606,"language":1607,"meta":1608,"style":1608},"language-bash shiki shiki-themes github-light github-dark monokai","# 백업 (대상 폴더는 아직 없는 새 경로여야 합니다)\n~/SetFnSpaceBuilder admin knowledge-backup \u003C백업 폴더>\n\n# 복원\n~/SetFnSpaceBuilder admin knowledge-restore \u003C백업 폴더>\n","bash","",[961,1610,1611,1620,1640,1647,1653],{"__ignoreMap":1608},[1612,1613,1616],"span",{"class":1614,"line":1615},"line",1,[1612,1617,1619],{"class":1618},"s8-w5","# 백업 (대상 폴더는 아직 없는 새 경로여야 합니다)\n",[1612,1621,1623,1627,1631,1634,1637],{"class":1614,"line":1622},2,[1612,1624,1626],{"class":1625},"sC2Qs","~",[1612,1628,1630],{"class":1629},"sMOD_","/SetFnSpaceBuilder admin knowledge-backup ",[1612,1632,1633],{"class":1625},"\u003C",[1612,1635,1636],{"class":1629},"백업 폴더",[1612,1638,1639],{"class":1625},">\n",[1612,1641,1643],{"class":1614,"line":1642},3,[1612,1644,1646],{"emptyLinePlaceholder":1645},true,"\n",[1612,1648,1650],{"class":1614,"line":1649},4,[1612,1651,1652],{"class":1618},"# 복원\n",[1612,1654,1656,1658,1661,1663,1665],{"class":1614,"line":1655},5,[1612,1657,1626],{"class":1625},[1612,1659,1660],{"class":1629},"/SetFnSpaceBuilder admin knowledge-restore ",[1612,1662,1633],{"class":1625},[1612,1664,1636],{"class":1629},[1612,1666,1639],{"class":1625},[966,1668,1669,1679],{},[969,1670,1671],{},[972,1672,1673,1676],{},[975,1674,1675],{},"대상",[975,1677,1678],{},"백업 포함 여부",[987,1680,1681,1689,1699],{},[972,1682,1683,1686],{},[992,1684,1685],{},"지식 인덱싱 기록(팀·개인 공간)",[992,1687,1688],{},"포함",[972,1690,1691,1696],{},[992,1692,1693,1694],{},"Local의 ",[961,1695,1014],{},[992,1697,1698],{},"SpaceBuilder 홈 또는 설정 폴더 안에 있을 때만 포함",[972,1700,1701,1704],{},[992,1702,1703],{},"Qdrant·Milvus의 벡터",[992,1705,1706],{},"포함하지 않음 (원본에서 다시 만드는 파생 데이터)",[934,1708,1709,1710,1712,1713,1715],{},"복원 후에는 서버를 시작하고 ",[956,1711,150],{"href":958},"에서 ",[961,1714,1537],{},"을 실행하세요. 백업 이후 외부 벡터 DB에 저장됐던 벡터는 복원 과정에서 정리 대상으로 넘어가, 서버 시작 후 원래 저장 위치에서 자동으로 삭제됩니다.",[949,1717,1719],{"id":1718},"문제-해결","문제 해결",[966,1721,1722,1732],{},[969,1723,1724],{},[972,1725,1726,1729],{},[975,1727,1728],{},"증상",[975,1730,1731],{},"확인할 내용",[987,1733,1734,1745,1758,1775,1786,1799,1809],{},[972,1735,1736,1742],{},[992,1737,1738,1739],{},"연결 상태가 ",[961,1740,1741],{},"연결 안됨",[992,1743,1744],{},"엔드포인트 주소와 포트, 방화벽, 벡터 DB 서버 실행 여부를 확인하세요.",[972,1746,1747,1755],{},[992,1748,1749,1751,1752],{},[961,1750,1402],{},"와 ",[961,1753,1754],{},"collection dimension is ..., expected ...",[992,1756,1757],{},"컬렉션 차원과 설정한 벡터 차원이 다릅니다. 새 컬렉션 이름을 지정하세요.",[972,1759,1760,1768],{},[992,1761,1762,1751,1764,1767],{},[961,1763,1402],{},[961,1765,1766],{},"unnamed dense vector"," 관련 오류",[992,1769,1770,1771,1774],{},"Qdrant 컬렉션을 Hybrid 또는 named vector로 만들었습니다. ",[956,1772,158],{"href":1773},"/admin/ai/qdrant/#%EC%BB%AC%EB%A0%89%EC%85%98%EC%9D%84-%EC%A7%81%EC%A0%91-%EB%A7%8C%EB%93%A4-%EB%95%8C-%EC%A3%BC%EC%9D%98%ED%95%A0-%EC%A0%90","을 참고하세요.",[972,1776,1777,1780],{},[992,1778,1779],{},"데이터(엔티티) 수가 늘지 않음",[992,1781,1782,1783,1785],{},"지식 인덱싱이 켜져 있는지, 허용 시간대 밖이 아닌지, ",[961,1784,1088],{},"이 모두 완료됐는지 확인하세요.",[972,1787,1788,1793],{},[992,1789,1790,1792],{},[961,1791,1088],{},"의 AI 벡터 DB에 경고 표시",[992,1794,1795,1796,1798],{},"벡터 DB 연결 오류, 컬렉션 설정 불일치, 또는 Milvus 컬렉션 없음입니다. 연결 오류와 설정 불일치는 카드에 마우스를 올리면 자세한 오류가 보입니다. Milvus 컬렉션 없음에는 따로 표시되는 오류 내용이 없으니 ",[956,1797,166],{"href":1396},"을 참고해 컬렉션을 만드세요. 카드를 누르면 AI DB 설정으로 이동합니다.",[972,1800,1801,1806],{},[992,1802,1803,1804],{},"벡터 DB에 인증이 걸려 있어 ",[961,1805,1741],{},[992,1807,1808],{},"AI DB 설정에서 API 키(Qdrant·Milvus) 또는 사용자 이름과 비밀번호(Milvus)를 입력하고 저장하세요.",[972,1810,1811,1814],{},[992,1812,1813],{},"정리 재시도가 계속 쌓임",[992,1815,1816,1817,1820],{},"이전 저장소에 접속할 수 있는지 확인하세요. ",[956,1818,1290],{"href":1819},"#%EC%A7%80%EC%8B%9D-%EC%9D%B8%EB%8D%B1%EC%8B%B1-%ED%99%94%EB%A9%B4","의 사유별 조치를 참고하세요.",[949,1822,1824],{"id":1823},"관련-문서","관련 문서",[1062,1826,1827,1831,1835,1839,1843],{},[1065,1828,1829],{},[956,1830,150],{"href":958},[1065,1832,1833],{},[956,1834,158],{"href":1069},[1065,1836,1837],{},[956,1838,166],{"href":1075},[1065,1840,1841],{},[956,1842,170],{"href":1085},[1065,1844,1845],{},[956,1846,243],{"href":1847},"/admin/system-admin/background-service/",[1849,1850,1851],"style",{},"html pre.shiki code .s8-w5, html code.shiki .s8-w5{--shiki-default:#6A737D;--shiki-dark:#6A737D;--shiki-sepia:#88846F}html pre.shiki code .sC2Qs, html code.shiki .sC2Qs{--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sMOD_, html code.shiki .sMOD_{--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":1608,"searchDepth":1622,"depth":1642,"links":1853},[1854,1855,1856,1860,1864,1865,1866,1867,1868],{"id":951,"depth":1622,"text":952},{"id":1092,"depth":1622,"text":1093},{"id":1201,"depth":1622,"text":1202,"children":1857},[1858,1859],{"id":1243,"depth":1642,"text":1244},{"id":1261,"depth":1642,"text":1262},{"id":1289,"depth":1622,"text":1290,"children":1861},[1862,1863],{"id":1293,"depth":1642,"text":1294},{"id":1408,"depth":1642,"text":1409},{"id":1509,"depth":1622,"text":1510},{"id":1575,"depth":1622,"text":1576},{"id":1597,"depth":1622,"text":1598},{"id":1718,"depth":1622,"text":1719},{"id":1823,"depth":1622,"text":1824},null,"AI 검색 데이터를 저장하는 벡터 DB를 고르고, 저장소를 전환하고, 상태를 점검하고, 백업·복원하는 운영 방법을 설명합니다.","md",{"slug":1873},"/admin/ai/vector-db-operations/",{"title":1875,"description":1870,"ogType":1876,"twitterCard":1877,"keywords":1878},"벡터 DB 운영 가이드 | Admin Docs","article","summary_large_image",[1879,1880,1881,1025,1039,1882,1883],"벡터 DB","AI DB","SQLite","재인덱싱","백업","l8VGl61vPEnC_ZWirYFaZx_htSLbUT706JpgqX7iooc",[1886,1887],{"title":150,"path":151,"stem":152,"children":-1},{"title":158,"path":159,"stem":160,"children":-1},{"title":154,"filename":1889,"content":1890},"vector-db-operations","# 벡터 DB 운영 가이드\r\n\r\n벡터 DB는 문서를 AI가 검색할 수 있는 형태(벡터)로 바꿔 저장하는 곳입니다. 지식 인덱싱이 만든 검색 데이터가 여기에 저장되고, AI 문서 검색과 RAG 답변이 이 데이터를 사용합니다.\r\n\r\n벡터 DB에 저장되는 데이터는 원본 문서에서 언제든 다시 만들 수 있는 **파생 데이터**입니다. 벡터 DB를 바꾸거나 초기화해도 워크스페이스의 원본 파일은 바뀌지 않습니다.\r\n\r\n---\r\n\r\n## 벡터 저장소 선택\r\n\r\n[AI DB 설정](/admin/ai/ai-db-setting/)의 `드라이버`에서 선택합니다.\r\n\r\n| 드라이버 | 저장 위치 | 컬렉션 준비 | 권장 환경 |\r\n|----------|-----------|-------------|-----------|\r\n| Automatic (SQLite) | SpaceBuilder 서버 내부 파일 | 필요 없음 | 기본값. 임베딩 모델을 선택하면 내장 SQLite 저장소를 사용합니다. |\r\n| Local (SQLite) | 지정한 경로의 `local_vectors.db` 파일 | 필요 없음 | 벡터 약 5만 개 이하의 소규모 환경. 저장 경로를 직접 정하고 싶을 때 사용합니다. |\r\n| Qdrant | 외부 Qdrant 서버 | 자동 생성 | 벡터가 많거나 검색 데이터를 별도 서버로 분리할 때 |\r\n| Milvus | 외부 Milvus 서버 | **미리 만들어야 함** | 이미 Milvus를 운영 중이거나 대규모 클러스터가 필요할 때 |\r\n\r\n벡터 수는 문서 수가 아니라 **문서 조각(청크) 수**입니다. 문서는 형식에 따라 섹션, 페이지, 행 단위로 나눈 뒤 한국어 기준 약 700~1,000자 크기로 다시 나눠 저장합니다. 긴 문서 하나가 수십 개의 벡터가 될 수 있습니다.\r\n\r\n외부 벡터 DB의 설치와 연결 방법은 각 문서를 참고하세요.\r\n\r\n- [Qdrant 연결](/admin/ai/qdrant/) — Docker 컨테이너 하나로 설치할 수 있어 가볍습니다. 별도 서버를 처음 구성한다면 Qdrant를 권장합니다.\r\n- [Milvus 연결](/admin/ai/milvus/) — 메모리 8GB 이상의 별도 서버를 권장합니다. 컬렉션을 직접 만들어야 합니다.\r\n\r\n::note\r\n임베딩 모델이 준비되지 않으면 어떤 드라이버를 선택해도 벡터 검색은 동작하지 않고, 키워드 검색만 사용합니다. 드라이버와 함께 [지식 인덱싱](/admin/ai/knowledge-indexing/)의 `시작 전 설정 확인`을 모두 완료하세요.\r\n::\r\n\r\n## Local (SQLite) 운영\r\n\r\nLocal 드라이버는 외부 서비스 없이 SQLite 파일 하나(`local_vectors.db`)로 벡터 검색을 운영합니다.\r\n\r\n| 항목 | 내용 |\r\n|------|------|\r\n| 저장 파일 | `데이터 경로` 아래의 `local_vectors.db` |\r\n| 데이터 경로 | 기본값은 `vectordb_local`입니다. 상대 경로는 SpaceBuilder 설정 파일이 있는 폴더를 기준으로 합니다. |\r\n| 검색 방식 | 저장된 벡터를 모두 비교하는 방식입니다. 1024차원 기준 1만 개에서 약 10ms가 걸리며, 데이터가 늘수록 검색 시간도 늘어납니다. |\r\n| 권장 규모 | 벡터 약 5만 개 이하. 이를 넘으면 Qdrant 또는 Milvus로 전환을 권장합니다. |\r\n\r\n`로컬 AI DB 운영 현황`에는 `local_vectors.db 사용량`이 함께 표시됩니다.\r\n\r\n| 항목 | 의미 |\r\n|------|------|\r\n| DB 파일 / WAL / SHM | SQLite 본 파일과 쓰기 로그 파일의 크기 |\r\n| DB 내부 재사용 가능 공간 | 데이터 삭제로 비었지만 아직 파일 크기에서 빠지지 않은 공간입니다. 새 데이터가 저장될 때 이 공간을 먼저 다시 사용합니다. |\r\n\r\n::warning\r\n같은 서버에서 여러 SpaceBuilder 프로젝트를 실행한다면 프로젝트마다 다른 데이터 경로를 사용하세요. 실행 중인 다른 프로젝트가 같은 경로를 쓰고 있으면 설정 화면에 경고가 표시됩니다.\r\n::\r\n\r\n## 저장소나 임베딩 모델을 바꿀 때\r\n\r\n아래 항목 중 하나라도 바꾸고 저장하면, SpaceBuilder가 변경을 감지해 **원본 전체 재인덱싱을 자동으로 시작**합니다.\r\n\r\n- 드라이버, 엔드포인트, 컬렉션, 데이터 경로\r\n- 임베딩 모델, 벡터 차원\r\n\r\n전환은 다음 순서로 진행됩니다.\r\n\r\n1. 새 설정을 저장합니다.\r\n2. 인덱싱 스케줄러가 변경을 감지하고 원본 전체 재인덱싱을 요청합니다.\r\n3. 모든 문서를 새 설정으로 다시 임베딩해 새 저장소에 저장합니다.\r\n4. 모든 문서가 새 저장소에 저장되고 검색 검증까지 끝나면, 이전 벡터를 **원래 저장돼 있던 곳에서** 삭제합니다.\r\n\r\n### 전환 중 검색\r\n\r\n- 변경을 감지하기 전까지는 벡터 검색을 잠시 멈추고 키워드 검색만 사용합니다.\r\n- 재인덱싱 중에는 새 저장소를 검색합니다. 아직 새 저장소로 옮겨지지 않은 문서는 벡터 검색 결과에 나오지 않을 수 있습니다.\r\n- 재인덱싱이 끝나면 새 설정으로 만든 벡터만 검색합니다.\r\n\r\n문서가 많으면 재인덱싱에 오래 걸릴 수 있으므로, 사용자가 적은 시간대에 전환하세요.\r\n\r\n### 전환할 때 주의할 점\r\n\r\n- **이전 외부 저장소는 정리가 끝날 때까지 켜두세요.** Qdrant나 Milvus에서 다른 저장소로 옮겼다면, 이전 벡터 삭제가 끝날 때까지 이전 서버에 접속할 수 있어야 합니다. 접속할 수 없으면 정리 작업이 `기존 저장 대상에 연결할 수 없음`으로 계속 재시도됩니다.\r\n- **벡터 차원을 바꾸면 컬렉션도 새로 지정하세요.** 이미 만들어진 Qdrant·Milvus 컬렉션은 차원을 바꿀 수 없습니다. 차원이 다른 컬렉션에는 저장할 수 없습니다.\r\n- **이전 설정으로 되돌려도 다시 인덱싱합니다.** A → B → A로 되돌리면 처음 A의 데이터를 재사용하지 않고 새로 인덱싱합니다.\r\n\r\n## 운영 상태 확인\r\n\r\n### AI DB 운영 현황\r\n\r\n[AI DB 설정](/admin/ai/ai-db-setting/) 화면 상단에서 확인합니다.\r\n\r\n| 항목 | 의미 |\r\n|------|------|\r\n| 연결 상태 | 벡터 저장소에 접속할 수 있는지 여부 |\r\n| 벡터 스토어 | 사용 중인 드라이버와 유형(내장형·서비스형) |\r\n| 데이터(엔티티) 수 | 이 인스턴스(현재 SpaceBuilder)가 저장한 벡터 수. 같은 저장소를 쓰는 다른 인스턴스의 데이터는 포함하지 않습니다. |\r\n| 컬렉션 수 | Local은 1(첫 인덱싱 전에는 0), Qdrant·Milvus는 해당 서버의 전체 컬렉션 수 |\r\n| 컬렉션 구성 | 저장소의 차원과 거리 계산 방식이 설정과 맞는지 여부 |\r\n\r\n`컬렉션 구성`에는 다음 중 하나가 표시됩니다.\r\n\r\n| 표시 | 의미 |\r\n|------|------|\r\n| 정상 (차원·거리 설정 일치) | 컬렉션을 사용할 수 있습니다. |\r\n| 아직 생성되지 않음 · 첫 인덱싱 때 자동으로 만들어집니다 | Qdrant 컬렉션이 아직 없습니다. 오류가 아니며, 첫 인덱싱 때 만들어집니다. |\r\n| 컬렉션이 없습니다 · Milvus에 컬렉션을 먼저 만들어야 합니다 | Milvus 컬렉션은 자동으로 만들어지지 않습니다. [Milvus 연결](/admin/ai/milvus/#컬렉션-미리-만들기)을 참고해 만드세요. |\r\n| 컬렉션 설정 확인 필요 | 차원이나 거리 계산 방식이 맞지 않습니다. 함께 표시되는 오류 내용을 확인하세요. |\r\n\r\n### 지식 인덱싱 화면\r\n\r\n[지식 인덱싱](/admin/ai/knowledge-indexing/)의 인덱싱 요약에서 진행 상황을 확인합니다.\r\n\r\n| 항목 | 의미 |\r\n|------|------|\r\n| 대기 갱신 | 새로 만들거나 수정한 파일이 인덱싱을 기다리는 수 |\r\n| 대기 임베딩 | 글자 추출이 끝나 벡터로 바뀌기를 기다리는 수 |\r\n| 임베딩 수 | SpaceBuilder가 기록한 현재 임베딩 수. 전환이나 재인덱싱 중에는 벡터 DB의 데이터(엔티티) 수와 다를 수 있습니다. |\r\n| 벡터 삭제 대기 | 파일 삭제나 저장소 전환 뒤 원래 저장 위치에서 지워지기를 기다리는 벡터 수 |\r\n\r\n이전 벡터 삭제에 실패하면 정리 재시도 목록에 저장 대상과 사유가 표시됩니다. 재시도 간격은 점점 늘어나며 최대 5분입니다.\r\n\r\n| 사유 | 의미와 조치 |\r\n|------|-------------|\r\n| 기존 저장 대상에 연결할 수 없음 | 이전 벡터 DB 서버가 꺼져 있거나 접속할 수 없습니다. 이전 서버를 다시 켜면 자동으로 이어서 정리합니다. |\r\n| 원격 삭제 실패 | 벡터 DB가 삭제 요청을 거부했습니다. 벡터 DB 서버 상태와 로그를 확인하세요. |\r\n| 이전 저장 요청 결과 확인 중 | 결과가 확인되지 않은 저장 요청이 남아 있어 삭제 완료를 기다리는 중입니다. 대부분 자동으로 해소됩니다. |\r\n| 삭제 완료 기록 실패 | 삭제는 됐지만 SpaceBuilder에 완료를 기록하지 못했습니다. 다음 주기에 다시 시도합니다. |\r\n\r\n## 재인덱싱과 초기화\r\n\r\n[AI DB 설정](/admin/ai/ai-db-setting/)의 관리자 전용 영역에서 실행합니다. 두 작업 모두 원본 파일은 삭제하지 않습니다.\r\n\r\n| 작업 | 동작 | 사용 시점 |\r\n|------|------|-----------|\r\n| 전체 데이터 다시 인덱싱 | 모든 원본 문서를 다시 읽고 나누고 임베딩해서 검색 데이터를 새로 만듭니다. | 추출 규칙을 바꿨거나 검색 품질이 떨어졌을 때 |\r\n| 초기화(벡터 삭제 후 재인덱싱) | 현재 저장소에서 **이 인스턴스의 벡터만** 지우고, 원본 전체 재인덱싱을 요청합니다. | 저장소 데이터가 꼬였거나 처음부터 다시 만들고 싶을 때 |\r\n\r\n- 두 작업 모두 요청을 접수하는 것이며, 완료는 [지식 인덱싱](/admin/ai/knowledge-indexing/)에서 확인합니다.\r\n- 초기화하면 새 인덱스가 준비될 때까지 벡터 검색이 제한됩니다.\r\n- 같은 Qdrant·Milvus 컬렉션을 쓰는 다른 인스턴스의 데이터는 초기화해도 지워지지 않습니다.\r\n\r\n## 여러 인스턴스가 벡터 DB 하나를 함께 쓸 때\r\n\r\n인스턴스는 따로 설치해 운영하는 SpaceBuilder 하나를 말합니다. 인스턴스마다 고유한 인스턴스 격리 키가 있고, 저장하는 벡터에는 이 키가 함께 기록됩니다. 그래서 같은 컬렉션을 함께 써도 검색, 통계, 초기화는 각 인스턴스의 데이터 안에서만 이루어집니다.\r\n\r\n다만 백업, 용량 관리, 삭제를 인스턴스별로 하려면 **컬렉션을 인스턴스마다 따로 쓰는 것**을 권장합니다. 기본 컬렉션 이름(`knowledge_vectors`)을 쓰면 설정 화면에 경고와 함께 이 인스턴스의 권장 이름(`setfn_knowledge_...`)이 표시됩니다.\r\n\r\n## 백업과 복원\r\n\r\n지식 데이터 백업은 SpaceBuilder 서버를 멈춘 뒤 명령어로 실행합니다. 서버가 실행 중이면 백업과 복원이 거부됩니다. 복원은 같은 인스턴스, 같은 홈 폴더에서 만든 백업만 할 수 있습니다.\r\n\r\n```bash\r\n# 백업 (대상 폴더는 아직 없는 새 경로여야 합니다)\r\n~/SetFnSpaceBuilder admin knowledge-backup \u003C백업 폴더>\r\n\r\n# 복원\r\n~/SetFnSpaceBuilder admin knowledge-restore \u003C백업 폴더>\r\n```\r\n\r\n| 대상 | 백업 포함 여부 |\r\n|------|----------------|\r\n| 지식 인덱싱 기록(팀·개인 공간) | 포함 |\r\n| Local의 `local_vectors.db` | SpaceBuilder 홈 또는 설정 폴더 안에 있을 때만 포함 |\r\n| Qdrant·Milvus의 벡터 | 포함하지 않음 (원본에서 다시 만드는 파생 데이터) |\r\n\r\n복원 후에는 서버를 시작하고 [AI DB 설정](/admin/ai/ai-db-setting/)에서 `전체 데이터 다시 인덱싱`을 실행하세요. 백업 이후 외부 벡터 DB에 저장됐던 벡터는 복원 과정에서 정리 대상으로 넘어가, 서버 시작 후 원래 저장 위치에서 자동으로 삭제됩니다.\r\n\r\n## 문제 해결\r\n\r\n| 증상 | 확인할 내용 |\r\n|------|-------------|\r\n| 연결 상태가 `연결 안됨` | 엔드포인트 주소와 포트, 방화벽, 벡터 DB 서버 실행 여부를 확인하세요. |\r\n| `컬렉션 설정 확인 필요`와 `collection dimension is ..., expected ...` | 컬렉션 차원과 설정한 벡터 차원이 다릅니다. 새 컬렉션 이름을 지정하세요. |\r\n| `컬렉션 설정 확인 필요`와 `unnamed dense vector` 관련 오류 | Qdrant 컬렉션을 Hybrid 또는 named vector로 만들었습니다. [Qdrant 연결](/admin/ai/qdrant/#컬렉션을-직접-만들-때-주의할-점)을 참고하세요. |\r\n| 데이터(엔티티) 수가 늘지 않음 | 지식 인덱싱이 켜져 있는지, 허용 시간대 밖이 아닌지, `시작 전 설정 확인`이 모두 완료됐는지 확인하세요. |\r\n| `시작 전 설정 확인`의 AI 벡터 DB에 경고 표시 | 벡터 DB 연결 오류, 컬렉션 설정 불일치, 또는 Milvus 컬렉션 없음입니다. 연결 오류와 설정 불일치는 카드에 마우스를 올리면 자세한 오류가 보입니다. Milvus 컬렉션 없음에는 따로 표시되는 오류 내용이 없으니 [Milvus 연결](/admin/ai/milvus/#컬렉션-미리-만들기)을 참고해 컬렉션을 만드세요. 카드를 누르면 AI DB 설정으로 이동합니다. |\r\n| 벡터 DB에 인증이 걸려 있어 `연결 안됨` | AI DB 설정에서 API 키(Qdrant·Milvus) 또는 사용자 이름과 비밀번호(Milvus)를 입력하고 저장하세요. |\r\n| 정리 재시도가 계속 쌓임 | 이전 저장소에 접속할 수 있는지 확인하세요. [운영 상태 확인](#지식-인덱싱-화면)의 사유별 조치를 참고하세요. |\r\n\r\n## 관련 문서\r\n\r\n- [AI DB 설정](/admin/ai/ai-db-setting/)\r\n- [Qdrant 연결](/admin/ai/qdrant/)\r\n- [Milvus 연결](/admin/ai/milvus/)\r\n- [지식 인덱싱](/admin/ai/knowledge-indexing/)\r\n- [백그라운드 서비스](/admin/system-admin/background-service/)\n",1790652133338]