[{"data":1,"prerenderedAt":1590},["ShallowReactive",2],{"nav-docs":3,"page-/ko/docs/admin/ai/qdrant-server-setup":885,"surround-/ko/docs/admin/ai/qdrant-server-setup":1584,"raw-/ko/docs/admin/ai/qdrant-server-setup":1587},[4,56,226,546,638,778,811,868],{"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,107,136,171,184,209],{"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],{"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":111,"page":55},"서비스 구성","/admin/service-config","10.admin/20.service-config",[112,116,120,124,128,132],{"title":113,"path":114,"stem":115,"children":-1},"파일 영역 설정","/admin/service-config/file-area","10.admin/20.service-config/10.file-area",{"title":117,"path":118,"stem":119,"children":-1},"웹훅 설정","/admin/service-config/webhook-settings","10.admin/20.service-config/16.webhook-settings",{"title":121,"path":122,"stem":123,"children":-1},"커뮤니티 설정","/admin/service-config/community-space","10.admin/20.service-config/22.community-space",{"title":125,"path":126,"stem":127,"children":-1},"AI 챗봇 정책 설정","/admin/service-config/community-ai-chatbot","10.admin/20.service-config/24.community-ai-chatbot",{"title":129,"path":130,"stem":131,"children":-1},"메일 설정","/admin/service-config/email-settings","10.admin/20.service-config/30.email-settings",{"title":133,"path":134,"stem":135,"children":-1},"브랜딩 설정","/admin/service-config/brand","10.admin/20.service-config/40.brand",{"title":137,"path":138,"stem":139,"children":140,"page":55},"지능형 서비스 (AI)","/admin/ai","10.admin/30.ai",[141,145,149,153,159,163,167],{"title":142,"path":143,"stem":144,"children":-1},"AI 모델 설정","/admin/ai/ai-model-setting","10.admin/30.ai/10.ai-model-setting",{"title":146,"path":147,"stem":148,"children":-1},"AI DB 설정","/admin/ai/ai-db-setting","10.admin/30.ai/20.ai-db-setting",{"title":150,"path":151,"stem":152,"children":-1},"Qdrant 서버 준비하기","/admin/ai/qdrant-server-setup","10.admin/30.ai/25.qdrant-server-setup",{"title":154,"path":155,"stem":156,"children":157},"지식 인덱싱","/admin/ai/knowledge-indexing","10.admin/30.ai/30.knowledge-indexing",[158],{"title":154,"path":155,"stem":156,"children":-1},{"title":160,"path":161,"stem":162,"children":-1},"AI 연동 및 정책 설정","/admin/ai/ai-link","10.admin/30.ai/40.ai-link",{"title":164,"path":165,"stem":166,"children":-1},"MCP 서버 관리","/admin/ai/mcp-server","10.admin/30.ai/50.mcp-server",{"title":168,"path":169,"stem":170,"children":-1},"검색 관리","/admin/ai/search-management","10.admin/30.ai/60.search-management",{"title":172,"path":173,"stem":174,"children":175,"page":55},"플러그인","/admin/plugin","10.admin/40.plugin",[176,180],{"title":177,"path":178,"stem":179,"children":-1},"플러그인 관리하기","/admin/plugin/overview","10.admin/40.plugin/00.overview",{"title":181,"path":182,"stem":183,"children":-1},"확장 플러그인 설정","/admin/plugin/settings","10.admin/40.plugin/10.settings",{"title":185,"path":186,"stem":187,"children":188,"page":55},"보안 관리","/admin/security","10.admin/50.security",[189,193,197,201,205],{"title":190,"path":191,"stem":192,"children":-1},"보안 개요","/admin/security/overview","10.admin/50.security/00.overview",{"title":194,"path":195,"stem":196,"children":-1},"감사 로그 확인하기","/admin/security/audit-log","10.admin/50.security/05.audit-log",{"title":198,"path":199,"stem":200,"children":-1},"차단 관리","/admin/security/block-management","10.admin/50.security/10.block-management",{"title":202,"path":203,"stem":204,"children":-1},"보안 설정","/admin/security/security-setting","10.admin/50.security/12.security-setting",{"title":206,"path":207,"stem":208,"children":-1},"IP 접근 제한","/admin/security/ip-restriction","10.admin/50.security/16.ip-restriction",{"title":210,"path":211,"stem":212,"children":213,"page":55},"시스템 관리","/admin/system-admin","10.admin/60.system-admin",[214,218,222],{"title":215,"path":216,"stem":217,"children":-1},"디바이스 정보","/admin/system-admin/device-info","10.admin/60.system-admin/10.device-info",{"title":219,"path":220,"stem":221,"children":-1},"서버 재시작 및 시스템 유지보수","/admin/system-admin/server-restart","10.admin/60.system-admin/12.server-restart",{"title":223,"path":224,"stem":225,"children":-1},"백그라운드 서비스","/admin/system-admin/background-service","10.admin/60.system-admin/14.background-service",{"title":227,"path":228,"stem":229,"children":230,"page":55},"워크스페이스 사용하기","/workspace","20.workspace",[231,264,281,337,448,495,527],{"title":232,"path":233,"stem":234,"children":235,"page":55},"메뉴","/workspace/menu","20.workspace/05.menu",[236,240,244,248,252,256,260],{"title":237,"path":238,"stem":239,"children":-1},"워크스페이스 소개","/workspace/menu/overview","20.workspace/05.menu/00.overview",{"title":241,"path":242,"stem":243,"children":-1},"팀 스페이스","/workspace/menu/team-space","20.workspace/05.menu/05.team-space",{"title":245,"path":246,"stem":247,"children":-1},"클라이언트 스페이스","/workspace/menu/client-space","20.workspace/05.menu/06.client-space",{"title":249,"path":250,"stem":251,"children":-1},"즐겨찾기","/workspace/menu/favorites","20.workspace/05.menu/10.favorites",{"title":253,"path":254,"stem":255,"children":-1},"최근 문서","/workspace/menu/recent","20.workspace/05.menu/20.recent",{"title":257,"path":258,"stem":259,"children":-1},"외부 공유","/workspace/menu/external-share","20.workspace/05.menu/30.external-share",{"title":261,"path":262,"stem":263,"children":-1},"휴지통","/workspace/menu/trash","20.workspace/05.menu/40.trash",{"title":265,"path":266,"stem":267,"children":268,"page":55},"계정","/workspace/account","20.workspace/10.account",[269,273,277],{"title":270,"path":271,"stem":272,"children":-1},"회원가입 및 로그인","/workspace/account/signup","20.workspace/10.account/10.signup",{"title":274,"path":275,"stem":276,"children":-1},"비밀번호 재설정","/workspace/account/reset-password","20.workspace/10.account/20.reset-password",{"title":278,"path":279,"stem":280,"children":-1},"계정 설정","/workspace/account/account-settings","20.workspace/10.account/30.account-settings",{"title":282,"path":283,"stem":284,"children":285,"page":55},"폴더","/workspace/folder","20.workspace/20.folder",[286,290,294,298,302,308,312,316,321,325,329,333],{"title":287,"path":288,"stem":289,"children":-1},"폴더 기본 기능","/workspace/folder/basic","20.workspace/20.folder/10.basic",{"title":291,"path":292,"stem":293,"children":-1},"여러 폴더 한꺼번에 만들기","/workspace/folder/bulk-folder-creation","20.workspace/20.folder/12.bulk-folder-creation",{"title":295,"path":296,"stem":297,"children":-1},"필터","/workspace/folder/filter","20.workspace/20.folder/13.filter",{"title":299,"path":300,"stem":301,"children":-1},"폴더 보기 옵션 설정","/workspace/folder/folder-view-options","20.workspace/20.folder/14.folder-view-options",{"title":303,"path":304,"stem":305,"tags":306,"children":-1},"폴더 웹 보기","/workspace/folder/folder-web-view","20.workspace/20.folder/16.folder-web-view",[307],"hot",{"title":309,"path":310,"stem":311,"children":-1},"폴더 정리","/workspace/folder/folder-organize","20.workspace/20.folder/17.folder-organize",{"title":313,"path":314,"stem":315,"children":-1},"폴더 공지 (README)","/workspace/folder/folder-readme","20.workspace/20.folder/18.folder-readme",{"title":317,"path":318,"stem":319,"tags":320,"children":-1},"폴더/파일 목록 내보내기","/workspace/folder/folder-export","20.workspace/20.folder/20.folder-export",[307],{"title":322,"path":323,"stem":324,"children":-1},"레벨별 접근 권한 설정","/workspace/folder/level-access-permissions","20.workspace/20.folder/24.level-access-permissions",{"title":326,"path":327,"stem":328,"children":-1},"팀별 접근 권한 설정","/workspace/folder/team-access-permissions","20.workspace/20.folder/26.team-access-permissions",{"title":330,"path":331,"stem":332,"children":-1},"폴더 웹훅","/workspace/folder/webhook","20.workspace/20.folder/30.webhook",{"title":334,"path":335,"stem":336,"children":-1},"업무 자동화 폴더","/workspace/folder/automation","20.workspace/20.folder/40.automation",{"title":338,"path":339,"stem":340,"children":341,"page":55},"파일","/workspace/file","20.workspace/30.file",[342,346,351,355,359,363,367,371,375,379,384,388,392,396,400,404,408,412,416,420,424,428,432,436,440,444],{"title":343,"path":344,"stem":345,"children":-1},"파일 관리 기본 기능","/workspace/file/overview","20.workspace/30.file/00.overview",{"title":347,"path":348,"stem":349,"tags":350,"children":-1},"파일 보면서 목록 확인하기","/workspace/file/list-in-file","20.workspace/30.file/05.list-in-file",[307],{"title":352,"path":353,"stem":354,"children":-1},"디스크 파일 등록","/workspace/file/disk-file-registration","20.workspace/30.file/06.disk-file-registration",{"title":356,"path":357,"stem":358,"children":-1},"텍스트 파일 보기 및 편집","/workspace/file/text-file-viewer","20.workspace/30.file/10.text-file-viewer",{"title":360,"path":361,"stem":362,"children":-1},"HTML 파일 보기","/workspace/file/html-viewer","20.workspace/30.file/11.html-viewer",{"title":364,"path":365,"stem":366,"children":-1},"CSV 파일 보기 및 편집","/workspace/file/csv-viewer","20.workspace/30.file/12.csv-viewer",{"title":368,"path":369,"stem":370,"children":-1},"이미지/동영상 파일 보기","/workspace/file/image-file-viewer","20.workspace/30.file/13.image-file-viewer",{"title":372,"path":373,"stem":374,"children":-1},"오피스/PDF 파일 보기","/workspace/file/office-viewer","20.workspace/30.file/14.office-viewer",{"title":376,"path":377,"stem":378,"children":-1},"웹페이지 붙여넣기 (HTML)","/workspace/file/paste-html","20.workspace/30.file/20.paste-html",{"title":380,"path":381,"stem":382,"tags":383,"children":-1},"스크린샷 붙여넣기","/workspace/file/paste-screenshot","20.workspace/30.file/21.paste-screenshot",[307],{"title":385,"path":386,"stem":387,"children":-1},"마크다운 붙여넣기 (MD)","/workspace/file/paste-md","20.workspace/30.file/22.paste-md",{"title":389,"path":390,"stem":391,"children":-1},"스크린 녹화하기","/workspace/file/screen-recording","20.workspace/30.file/23.screen-recording",{"title":393,"path":394,"stem":395,"children":-1},"파일 태그","/workspace/file/file-tag","20.workspace/30.file/33.file-tag",{"title":397,"path":398,"stem":399,"children":-1},"파일 이름 일괄 변경","/workspace/file/bulk-name-revise","20.workspace/30.file/34.bulk-name-revise",{"title":401,"path":402,"stem":403,"children":-1},"파일 변환","/workspace/file/file-convert-overview","20.workspace/30.file/40.file-convert-overview",{"title":405,"path":406,"stem":407,"children":-1},"템플릿 파일","/workspace/file/templates","20.workspace/30.file/41.templates",{"title":409,"path":410,"stem":411,"children":-1},"할일 목록 (Todo)","/workspace/file/template-todo","20.workspace/30.file/42.template-todo",{"title":413,"path":414,"stem":415,"children":-1},"결재 서식","/workspace/file/template-approval","20.workspace/30.file/43.template-approval",{"title":417,"path":418,"stem":419,"children":-1},"칸반 보드","/workspace/file/template-kanban","20.workspace/30.file/44.template-kanban",{"title":421,"path":422,"stem":423,"children":-1},"타임라인","/workspace/file/template-timeline","20.workspace/30.file/45.template-timeline",{"title":425,"path":426,"stem":427,"children":-1},"메모장","/workspace/file/template-memo","20.workspace/30.file/46.template-memo",{"title":429,"path":430,"stem":431,"children":-1},"AI 채팅 파일","/workspace/file/ai-chat-file","20.workspace/30.file/47.ai-chat-file",{"title":433,"path":434,"stem":435,"children":-1},"파일 변경 기록 확인","/workspace/file/audit-trail","20.workspace/30.file/50.audit-trail",{"title":437,"path":438,"stem":439,"children":-1},"파일 버전 관리","/workspace/file/version-trail","20.workspace/30.file/51.version-trail",{"title":441,"path":442,"stem":443,"children":-1},"편집 잠금","/workspace/file/file-lock","20.workspace/30.file/52.file-lock",{"title":445,"path":446,"stem":447,"children":-1},"파일 암호화","/workspace/file/file-encrypt","20.workspace/30.file/53.file-encrypt",{"title":449,"path":450,"stem":451,"children":452,"page":55},"협업","/workspace/cooperation","20.workspace/35.cooperation",[453,457,461,465,470,474,478,482,487,491],{"title":454,"path":455,"stem":456,"children":-1},"파일·폴더 댓글","/workspace/cooperation/file-comments","20.workspace/35.cooperation/00.file-comments",{"title":458,"path":459,"stem":460,"children":-1},"채팅","/workspace/cooperation/chat","20.workspace/35.cooperation/10.chat",{"title":462,"path":463,"stem":464,"children":-1},"협업 채팅 및 편집 잠금","/workspace/cooperation/collaboration-chat","20.workspace/35.cooperation/11.collaboration-chat",{"title":466,"path":467,"stem":468,"tags":469,"children":-1},"팀원 작업 위치 따라가기","/workspace/cooperation/follow-team-location","20.workspace/35.cooperation/12.follow-team-location",[307],{"title":471,"path":472,"stem":473,"children":-1},"멘션","/workspace/cooperation/mention","20.workspace/35.cooperation/14.mention",{"title":475,"path":476,"stem":477,"children":-1},"쪽지","/workspace/cooperation/dm","20.workspace/35.cooperation/16.dm",{"title":479,"path":480,"stem":481,"children":-1},"알림 보관함","/workspace/cooperation/notification-inbox","20.workspace/35.cooperation/18.notification-inbox",{"title":483,"path":484,"stem":485,"tags":486,"children":-1},"팀 활동 확인하기","/workspace/cooperation/file-activity","20.workspace/35.cooperation/30.file-activity",[307],{"title":488,"path":489,"stem":490,"children":-1},"외부 공유 링크 만들기","/workspace/cooperation/share-link-creation","20.workspace/35.cooperation/40.share-link-creation",{"title":492,"path":493,"stem":494,"children":-1},"외부 공유 이메일 전송","/workspace/cooperation/share-link-email","20.workspace/35.cooperation/42.share-link-email",{"title":496,"path":497,"stem":498,"children":499,"page":55},"검색","/workspace/search","20.workspace/40.search",[500,504,509,515,519,523],{"title":501,"path":502,"stem":503,"children":-1},"파일 검색","/workspace/search/search","20.workspace/40.search/00.search",{"title":505,"path":506,"stem":507,"tags":508,"children":-1},"문맥 검색 (AI 검색)","/workspace/search/context-search","20.workspace/40.search/10.context-search",[307],{"title":510,"path":511,"stem":512,"tags":513,"children":-1},"이미지 검색","/workspace/search/image-search","20.workspace/40.search/20.image-search",[514],"new",{"title":516,"path":517,"stem":518,"children":-1},"채팅 검색","/workspace/search/chat-search","20.workspace/40.search/30.chat-search",{"title":520,"path":521,"stem":522,"children":-1},"댓글 검색","/workspace/search/comment-search","20.workspace/40.search/40.comment-search",{"title":524,"path":525,"stem":526,"children":-1},"유의어 검색","/workspace/search/synonym-search","20.workspace/40.search/50.synonym-search",{"title":528,"path":529,"stem":530,"children":531,"page":55},"AI","/workspace/ai","20.workspace/50.ai",[532,536,541],{"title":533,"path":534,"stem":535,"children":-1},"AI 기능 요약","/workspace/ai/overview","20.workspace/50.ai/00.overview",{"title":537,"path":538,"stem":539,"tags":540,"children":-1},"로컬 AI에게 업무 요청하기","/workspace/ai/ai-work","20.workspace/50.ai/10.ai-work",[307],{"title":542,"path":543,"stem":544,"tags":545,"children":-1},"외부 AI 활용하기","/workspace/ai/external-ai","20.workspace/50.ai/20.external-ai",[514],{"title":547,"path":548,"stem":549,"children":550,"page":55},"웹스페이스","/webspace","40.webspace",[551,555,559,563,567,571,576,580,584,588,592,621],{"title":552,"path":553,"stem":554,"children":-1},"웹스페이스(Webspace)란?","/webspace/overview","40.webspace/00.overview",{"title":556,"path":557,"stem":558,"children":-1},"웹사이트 배포하기","/webspace/website-release","40.webspace/10.website-release",{"title":560,"path":561,"stem":562,"children":-1},"스키마 파일(.sfn) 만들기","/webspace/create-database","40.webspace/20.create-database",{"title":564,"path":565,"stem":566,"children":-1},"API 빌드 및 데이터베이스 배포하기","/webspace/api-overview","40.webspace/24.api-overview",{"title":568,"path":569,"stem":570,"children":-1},"프론트엔드 샘플 확인하기","/webspace/frontend-example","40.webspace/26.frontend-example",{"title":572,"path":573,"stem":574,"tags":575,"children":-1},"팀 내부용 웹서비스 만들기","/webspace/internal-webservice","40.webspace/32.internal-webservice",[307],{"title":577,"path":578,"stem":579,"children":-1},"외부 공개용 웹서비스 만들기","/webspace/external-webservice","40.webspace/34.external-webservice",{"title":581,"path":582,"stem":583,"children":-1},"SQL 가져오기와 내보내기","/webspace/sql-converter","40.webspace/42.sql-converter",{"title":585,"path":586,"stem":587,"children":-1},"개발자 팁 2: Code 컨버터","/webspace/code-converter","40.webspace/44.code-converter",{"title":589,"path":590,"stem":591,"children":-1},"성능과 확장","/webspace/performance","40.webspace/48.performance",{"title":593,"path":594,"stem":595,"children":596,"page":55},"웹스페이스 관리","/webspace/admin","40.webspace/50.admin",[597,601,605,609,613,617],{"title":598,"path":599,"stem":600,"children":-1},"웹스페이스 관리 시작하기","/webspace/admin/overview","40.webspace/50.admin/00.overview",{"title":602,"path":603,"stem":604,"children":-1},"운영 현황","/webspace/admin/operations","40.webspace/50.admin/10.operations",{"title":606,"path":607,"stem":608,"children":-1},"워크스페이스 접근","/webspace/admin/workspace-access","40.webspace/50.admin/20.workspace-access",{"title":610,"path":611,"stem":612,"children":-1},"API · 사이트 보안","/webspace/admin/api-site-security","40.webspace/50.admin/30.api-site-security",{"title":614,"path":615,"stem":616,"children":-1},"서비스 및 용량","/webspace/admin/service-capacity","40.webspace/50.admin/40.service-capacity",{"title":618,"path":619,"stem":620,"children":-1},"배포 관리와 프론트엔드 릴리스","/webspace/admin/deployments","40.webspace/50.admin/50.deployments",{"title":622,"path":623,"stem":624,"children":625,"page":55},"웹스페이스 따라해보기","/webspace/examples","40.webspace/60.examples",[626,630,634],{"title":627,"path":628,"stem":629,"children":-1},"웹스페이스 응용편","/webspace/examples/overview","40.webspace/60.examples/00.overview",{"title":631,"path":632,"stem":633,"children":-1},"나만의 업무 시스템 만들기","/webspace/examples/my-own-system","40.webspace/60.examples/10.my-own-system",{"title":635,"path":636,"stem":637,"children":-1},"실시간 오목 게임 만들기","/webspace/examples/realtime-gomoku","40.webspace/60.examples/20.realtime-gomoku",{"title":639,"path":640,"stem":641,"children":642,"page":55},"플러그인 사용하기","/plugin","50.plugin",[643,647,664,709,727,757],{"title":644,"path":645,"stem":646,"children":-1},"플러그인 개요","/plugin/overview","50.plugin/00.overview",{"title":648,"path":649,"stem":650,"children":651,"page":55},"캘린더","/plugin/calendar","50.plugin/10.calendar",[652,656,660],{"title":653,"path":654,"stem":655,"children":-1},"캘린더 소개","/plugin/calendar/overview","50.plugin/10.calendar/00.overview",{"title":657,"path":658,"stem":659,"children":-1},"일정 생성, 수정 및 삭제하기","/plugin/calendar/create-event","50.plugin/10.calendar/10.create-event",{"title":661,"path":662,"stem":663,"children":-1},"활동 기록 확인하기","/plugin/calendar/file-activity","50.plugin/10.calendar/40.file-activity",{"title":665,"path":666,"stem":667,"children":668,"page":55},"이메일","/plugin/email","50.plugin/20.email",[669,673,677,681,685,689,693,697,701,705],{"title":670,"path":671,"stem":672,"children":-1},"이메일 소개","/plugin/email/overview","50.plugin/20.email/00.overview",{"title":674,"path":675,"stem":676,"children":-1},"이메일 설정","/plugin/email/setfn-email-setting","50.plugin/20.email/05.setfn-email-setting",{"title":678,"path":679,"stem":680,"children":-1},"외부 이메일 연결","/plugin/email/external-email","50.plugin/20.email/07.external-email",{"title":682,"path":683,"stem":684,"children":-1},"이메일 기본 기능","/plugin/email/email-basic","50.plugin/20.email/10.email-basic",{"title":686,"path":687,"stem":688,"children":-1},"이메일 작성 및 전송","/plugin/email/email-compose","50.plugin/20.email/20.email-compose",{"title":690,"path":691,"stem":692,"children":-1},"파일 첨부하기","/plugin/email/email-attachment","50.plugin/20.email/30.email-attachment",{"title":694,"path":695,"stem":696,"children":-1},"이메일 폴더 관리","/plugin/email/email-folders","50.plugin/20.email/40.email-folders",{"title":698,"path":699,"stem":700,"children":-1},"이메일 자동 분류하기","/plugin/email/email-auto-classify","50.plugin/20.email/50.email-auto-classify",{"title":702,"path":703,"stem":704,"children":-1},"이메일 파일 보관 및 공유","/plugin/email/email-open-in-space","50.plugin/20.email/60.email-open-in-space",{"title":706,"path":707,"stem":708,"children":-1},"이메일 보안","/plugin/email/email-security","50.plugin/20.email/70.email-security",{"title":710,"path":711,"stem":712,"children":713,"page":55},"워크플로우 (업무자동화)","/plugin/workflow","50.plugin/30.workflow",[714,718,723],{"title":715,"path":716,"stem":717,"children":-1},"워크플로우 소개","/plugin/workflow/overview","50.plugin/30.workflow/00.overview",{"title":719,"path":720,"stem":721,"tags":722,"children":-1},"새 워크플로우 만들기","/plugin/workflow/new-workflow","50.plugin/30.workflow/10.new-workflow",[307],{"title":724,"path":725,"stem":726,"children":-1},"실행 기록 확인하기","/plugin/workflow/execution-history","50.plugin/30.workflow/20.execution-history",{"title":728,"path":729,"stem":730,"children":731,"page":55},"파인튜닝 (AI 학습)","/plugin/fine-tuning","50.plugin/40.fine-tuning",[732,737,741,745,749,753],{"title":733,"path":734,"stem":735,"tags":736,"children":-1},"파인튜닝 소개","/plugin/fine-tuning/overview","50.plugin/40.fine-tuning/00.overview",[307],{"title":738,"path":739,"stem":740,"children":-1},"학습 데이터 전처리","/plugin/fine-tuning/pre-processing","50.plugin/40.fine-tuning/10.pre-processing",{"title":742,"path":743,"stem":744,"children":-1},"학습","/plugin/fine-tuning/training","50.plugin/40.fine-tuning/20.training",{"title":746,"path":747,"stem":748,"children":-1},"평가","/plugin/fine-tuning/evaluation","50.plugin/40.fine-tuning/30.evaluation",{"title":750,"path":751,"stem":752,"children":-1},"채팅 테스트","/plugin/fine-tuning/chat-test","50.plugin/40.fine-tuning/40.chat-test",{"title":754,"path":755,"stem":756,"children":-1},"내보내기","/plugin/fine-tuning/export","50.plugin/40.fine-tuning/50.export",{"title":758,"path":759,"stem":760,"children":761,"page":55},"EDC (데이터 수집)","/plugin/edc","50.plugin/50.edc",[762,766,770,774],{"title":763,"path":764,"stem":765,"children":-1},"EDC 소개","/plugin/edc/overview","50.plugin/50.edc/00.overview",{"title":767,"path":768,"stem":769,"children":-1},"데이터 입력, Audit Trail","/plugin/edc/data-entry","50.plugin/50.edc/10.data-entry",{"title":771,"path":772,"stem":773,"children":-1},"빌더","/plugin/edc/builder","50.plugin/50.edc/20.builder",{"title":775,"path":776,"stem":777,"children":-1},"사용자/기관 설정","/plugin/edc/account","50.plugin/50.edc/30.account",{"title":779,"path":780,"stem":781,"children":782,"page":55},"FAQ","/faq","99.FAQ",[783,787,791,795,799,803,807],{"title":784,"path":785,"stem":786,"children":-1},"SetFN vs 클라우드 서비스 비교","/faq/comparison-cloud","99.FAQ/10.comparison-cloud",{"title":788,"path":789,"stem":790,"children":-1},"SetFN vs NAS 비교","/faq/comparison-nas","99.FAQ/20.comparison-nas",{"title":792,"path":793,"stem":794,"children":-1},"보안 정책","/faq/security-policy","99.FAQ/30.security-policy",{"title":796,"path":797,"stem":798,"children":-1},"SetFN은 왜 빠른가요","/faq/why-fast","99.FAQ/40.why-fast",{"title":800,"path":801,"stem":802,"children":-1},"라이선스 FAQ","/faq/license-faq","99.FAQ/50.license-faq",{"title":804,"path":805,"stem":806,"children":-1},"AI 기능 FAQ","/faq/ai-faq","99.FAQ/60.ai-faq",{"title":808,"path":809,"stem":810,"children":-1},"문제 해결 가이드","/faq/troubleshooting","99.FAQ/70.troubleshooting",{"title":812,"path":813,"stem":814,"children":815,"page":55},"응용편(초안)","/draft","draft",[816,820,824,828,832,836,840,844,848,852,856,860,864],{"title":817,"path":818,"stem":819,"children":-1},"예시 1. 소개 페이지 만들기","/draft/static-intro","draft/05.static-intro",{"title":821,"path":822,"stem":823,"children":-1},"예시 2. 공지 게시판 만들기","/draft/public-notice-board","draft/07.public-notice-board",{"title":825,"path":826,"stem":827,"children":-1},"예시 3. 커피챗 예약 시스템 만들기","/draft/coffee-chat-booking","draft/08.coffee-chat-booking",{"title":829,"path":830,"stem":831,"children":-1},"예시 4. 휴가 신청 시스템 만들기","/draft/leave-request","draft/09.leave-request",{"title":833,"path":834,"stem":835,"children":-1},"예시 5. 실시간 팀 채팅 만들기","/draft/team-chat","draft/10.team-chat",{"title":837,"path":838,"stem":839,"children":-1},"예시 6. 채용 지원 서류 제출함 만들기","/draft/client-submission","draft/11.client-submission",{"title":841,"path":842,"stem":843,"children":-1},"예시 7. 팀과 레벨에 따른 이슈 트래커 만들기","/draft/crm-basic","draft/12.crm-basic",{"title":845,"path":846,"stem":847,"children":-1},"예시 8. 이슈 상태별 필터와 통계 요약 화면 만들기","/draft/crm-search-filter","draft/13.crm-search-filter",{"title":849,"path":850,"stem":851,"children":-1},"예시 9. 실시간 커뮤니티 채팅과 운영 기능 만들기","/draft/community-moderation","draft/14.community-moderation",{"title":853,"path":854,"stem":855,"children":-1},"예시 10. 실시간 출석체크·투표 만들기","/draft/attendance-poll","draft/15.attendance-poll",{"title":857,"path":858,"stem":859,"children":-1},"예시 11. 찬반 논쟁 배틀 만들기","/draft/debate-battle","draft/16.debate-battle",{"title":861,"path":862,"stem":863,"children":-1},"예시 13. 공지사항 읽음 확인 만들기","/draft/announcement-read","draft/18.announcement-read",{"title":865,"path":866,"stem":867,"children":-1},"예시 14. 재고 관리 시스템 만들기","/draft/inventory-management","draft/19.inventory-management",{"title":869,"path":870,"stem":871,"children":872,"page":55},"SJAUTO","/sjauto","sjauto",[873,876,879,882],{"title":67,"path":874,"stem":875,"children":-1},"/sjauto/admin-page-access","sjauto/00.admin-page-access",{"title":270,"path":877,"stem":878,"children":-1},"/sjauto/signup","sjauto/10.signup",{"title":429,"path":880,"stem":881,"children":-1},"/sjauto/ai-chat-file","sjauto/ai-chat-file",{"title":631,"path":883,"stem":884,"children":-1},"/sjauto/webspace-schema-example","sjauto/webspace-schema-example",{"id":886,"title":150,"body":887,"cover":1567,"description":1568,"extension":1569,"image":1567,"meta":1570,"navigation":1141,"path":151,"seo":1572,"stem":152,"tags":1567,"thumbnail":1567,"__hash__":1583},"docs_ko/10.admin/30.ai/25.qdrant-server-setup.md",{"type":888,"value":889,"toc":1553},"minimal",[890,894,907,910,915,932,936,939,944,1037,1041,1152,1156,1184,1188,1192,1199,1289,1293,1296,1317,1365,1412,1416,1429,1436,1511,1525,1534,1538,1549],[891,892,150],"h1",{"id":893},"qdrant-서버-준비하기",[895,896,897,901,902,906],"p",{},[898,899,146],"a",{"href":900},"./ai-db-setting","에서 드라이버로 ",[903,904,905],"code",{},"Qdrant","를 선택하려면 먼저 접속할 수 있는 Qdrant 서버가 있어야 합니다. SetFN이 Qdrant 서버를 함께 설치해 주지는 않으므로, Docker로 직접 준비하는 방법을 안내합니다.",[908,909],"hr",{},[911,912,914],"h2",{"id":913},"시작하기-전에","시작하기 전에",[916,917,918,926,929],"ul",{},[919,920,921,922,925],"li",{},"Qdrant 서버를 올릴 Linux(Ubuntu) 환경과 관리자(",[903,923,924],{},"sudo",") 권한이 필요합니다.",[919,927,928],{},"해당 환경에 Docker가 설치되어 있지 않다면 먼저 설치합니다.",[919,930,931],{},"SetFN 서버가 이 Qdrant 서버에 네트워크로 접근할 수 있어야 합니다.",[911,933,935],{"id":934},"docker-설치하기","Docker 설치하기",[895,937,938],{},"Ubuntu 기준 Docker 공식 설치 절차입니다. 이미 Docker가 설치되어 있다면 이 단계는 건너뜁니다.",[940,941,943],"h3",{"id":942},"_1-패키지-색인-갱신-및-필요한-패키지-설치","1. 패키지 색인 갱신 및 필요한 패키지 설치",[945,946,951],"pre",{"className":947,"code":948,"language":949,"meta":950,"style":950},"language-bash shiki shiki-themes github-light github-dark monokai","sudo apt update\nsudo apt install ca-certificates curl\nsudo install -m 0755 -d /etc/apt/keyrings\nsudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc\nsudo chmod a+r /etc/apt/keyrings/docker.asc\n","bash","",[903,952,953,968,984,1004,1024],{"__ignoreMap":950},[954,955,958,961,965],"span",{"class":956,"line":957},"line",1,[954,959,924],{"class":960},"srTi1",[954,962,964],{"class":963},"sstjo"," apt",[954,966,967],{"class":963}," update\n",[954,969,971,973,975,978,981],{"class":956,"line":970},2,[954,972,924],{"class":960},[954,974,964],{"class":963},[954,976,977],{"class":963}," install",[954,979,980],{"class":963}," ca-certificates",[954,982,983],{"class":963}," curl\n",[954,985,987,989,991,995,998,1001],{"class":956,"line":986},3,[954,988,924],{"class":960},[954,990,977],{"class":963},[954,992,994],{"class":993},"s7F3e"," -m",[954,996,997],{"class":993}," 0755",[954,999,1000],{"class":993}," -d",[954,1002,1003],{"class":963}," /etc/apt/keyrings\n",[954,1005,1007,1009,1012,1015,1018,1021],{"class":956,"line":1006},4,[954,1008,924],{"class":960},[954,1010,1011],{"class":963}," curl",[954,1013,1014],{"class":993}," -fsSL",[954,1016,1017],{"class":963}," https://download.docker.com/linux/ubuntu/gpg",[954,1019,1020],{"class":993}," -o",[954,1022,1023],{"class":963}," /etc/apt/keyrings/docker.asc\n",[954,1025,1027,1029,1032,1035],{"class":956,"line":1026},5,[954,1028,924],{"class":960},[954,1030,1031],{"class":963}," chmod",[954,1033,1034],{"class":963}," a+r",[954,1036,1023],{"class":963},[940,1038,1040],{"id":1039},"_2-docker-저장소를-apt-소스에-추가","2. Docker 저장소를 Apt 소스에 추가",[945,1042,1044],{"className":947,"code":1043,"language":949,"meta":950,"style":950},"sudo tee /etc/apt/sources.list.d/docker.sources \u003C\u003CEOF\nTypes: deb\nURIs: https://download.docker.com/linux/ubuntu\nSuites: $(. /etc/os-release && echo \"${UBUNTU_CODENAME:-$VERSION_CODENAME}\")\nComponents: stable\nArchitectures: $(dpkg --print-architecture)\nSigned-By: /etc/apt/keyrings/docker.asc\nEOF\n\nsudo apt update\n",[903,1045,1046,1064,1069,1074,1105,1110,1125,1131,1136,1143],{"__ignoreMap":950},[954,1047,1048,1050,1053,1056,1060],{"class":956,"line":957},[954,1049,924],{"class":960},[954,1051,1052],{"class":963}," tee",[954,1054,1055],{"class":963}," /etc/apt/sources.list.d/docker.sources",[954,1057,1059],{"class":1058},"sC2Qs"," \u003C\u003C",[954,1061,1063],{"class":1062},"sinWB","EOF\n",[954,1065,1066],{"class":956,"line":970},[954,1067,1068],{"class":963},"Types: deb\n",[954,1070,1071],{"class":956,"line":986},[954,1072,1073],{"class":963},"URIs: https://download.docker.com/linux/ubuntu\n",[954,1075,1076,1079,1083,1086,1089,1092,1096,1099,1102],{"class":956,"line":1006},[954,1077,1078],{"class":963},"Suites: $(",[954,1080,1082],{"class":1081},"sTrkL",".",[954,1084,1085],{"class":963}," /etc/os-release && ",[954,1087,1088],{"class":1081},"echo",[954,1090,1091],{"class":963}," \"${",[954,1093,1095],{"class":1094},"sMOD_","UBUNTU_CODENAME",[954,1097,1098],{"class":1058},":-",[954,1100,1101],{"class":1094},"$VERSION_CODENAME",[954,1103,1104],{"class":963},"}\")\n",[954,1106,1107],{"class":956,"line":1026},[954,1108,1109],{"class":963},"Components: stable\n",[954,1111,1113,1116,1119,1122],{"class":956,"line":1112},6,[954,1114,1115],{"class":963},"Architectures: $(",[954,1117,1118],{"class":960},"dpkg",[954,1120,1121],{"class":993}," --print-architecture",[954,1123,1124],{"class":963},")\n",[954,1126,1128],{"class":956,"line":1127},7,[954,1129,1130],{"class":963},"Signed-By: /etc/apt/keyrings/docker.asc\n",[954,1132,1134],{"class":956,"line":1133},8,[954,1135,1063],{"class":1062},[954,1137,1139],{"class":956,"line":1138},9,[954,1140,1142],{"emptyLinePlaceholder":1141},true,"\n",[954,1144,1146,1148,1150],{"class":956,"line":1145},10,[954,1147,924],{"class":960},[954,1149,964],{"class":963},[954,1151,967],{"class":963},[940,1153,1155],{"id":1154},"_3-docker-패키지-설치","3. Docker 패키지 설치",[945,1157,1159],{"className":947,"code":1158,"language":949,"meta":950,"style":950},"sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\n",[903,1160,1161],{"__ignoreMap":950},[954,1162,1163,1165,1167,1169,1172,1175,1178,1181],{"class":956,"line":957},[954,1164,924],{"class":960},[954,1166,964],{"class":963},[954,1168,977],{"class":963},[954,1170,1171],{"class":963}," docker-ce",[954,1173,1174],{"class":963}," docker-ce-cli",[954,1176,1177],{"class":963}," containerd.io",[954,1179,1180],{"class":963}," docker-buildx-plugin",[954,1182,1183],{"class":963}," docker-compose-plugin\n",[911,1185,1187],{"id":1186},"qdrant-컨테이너-실행하기","Qdrant 컨테이너 실행하기",[940,1189,1191],{"id":1190},"_1-docker-composeyml-파일-만들기","1. docker-compose.yml 파일 만들기",[895,1193,1194,1195,1198],{},"Qdrant를 실행할 폴더에 ",[903,1196,1197],{},"docker-compose.yml"," 파일을 만들고 다음 내용을 입력합니다.",[945,1200,1204],{"className":1201,"code":1202,"language":1203,"meta":950,"style":950},"language-yaml shiki shiki-themes github-light github-dark monokai","services:\n  qdrant:\n    image: qdrant/qdrant:latest\n    container_name: qdrant\n    restart: unless-stopped\n    ports:\n      - \"6333:6333\"\n      - \"6334:6334\"\n    volumes:\n      - ./qdrant_storage:/qdrant/storage\n","yaml",[903,1205,1206,1215,1222,1233,1243,1253,1260,1268,1275,1282],{"__ignoreMap":950},[954,1207,1208,1212],{"class":956,"line":957},[954,1209,1211],{"class":1210},"s5clZ","services",[954,1213,1214],{"class":1094},":\n",[954,1216,1217,1220],{"class":956,"line":970},[954,1218,1219],{"class":1210},"  qdrant",[954,1221,1214],{"class":1094},[954,1223,1224,1227,1230],{"class":956,"line":986},[954,1225,1226],{"class":1210},"    image",[954,1228,1229],{"class":1094},": ",[954,1231,1232],{"class":963},"qdrant/qdrant:latest\n",[954,1234,1235,1238,1240],{"class":956,"line":1006},[954,1236,1237],{"class":1210},"    container_name",[954,1239,1229],{"class":1094},[954,1241,1242],{"class":963},"qdrant\n",[954,1244,1245,1248,1250],{"class":956,"line":1026},[954,1246,1247],{"class":1210},"    restart",[954,1249,1229],{"class":1094},[954,1251,1252],{"class":963},"unless-stopped\n",[954,1254,1255,1258],{"class":956,"line":1112},[954,1256,1257],{"class":1210},"    ports",[954,1259,1214],{"class":1094},[954,1261,1262,1265],{"class":956,"line":1127},[954,1263,1264],{"class":1094},"      - ",[954,1266,1267],{"class":963},"\"6333:6333\"\n",[954,1269,1270,1272],{"class":956,"line":1133},[954,1271,1264],{"class":1094},[954,1273,1274],{"class":963},"\"6334:6334\"\n",[954,1276,1277,1280],{"class":956,"line":1138},[954,1278,1279],{"class":1210},"    volumes",[954,1281,1214],{"class":1094},[954,1283,1284,1286],{"class":956,"line":1145},[954,1285,1264],{"class":1094},[954,1287,1288],{"class":963},"./qdrant_storage:/qdrant/storage\n",[940,1290,1292],{"id":1291},"_2-컨테이너-실행","2. 컨테이너 실행",[895,1294,1295],{},"같은 폴더에서 컨테이너를 실행합니다.",[945,1297,1299],{"className":947,"code":1298,"language":949,"meta":950,"style":950},"sudo docker compose up -d\n",[903,1300,1301],{"__ignoreMap":950},[954,1302,1303,1305,1308,1311,1314],{"class":956,"line":957},[954,1304,924],{"class":960},[954,1306,1307],{"class":963}," docker",[954,1309,1310],{"class":963}," compose",[954,1312,1313],{"class":963}," up",[954,1315,1316],{"class":993}," -d\n",[916,1318,1319,1340,1350,1356],{},[919,1320,1321,1324,1325,1328,1329,1335,1336,1339],{},[903,1322,1323],{},"image",": 사용할 Qdrant 이미지와 버전입니다. ",[903,1326,1327],{},"latest","는 컨테이너를 다시 받을 때마다 최신 버전으로 바뀌므로, 운영 환경에서는 ",[898,1330,1334],{"href":1331,"rel":1332},"https://github.com/qdrant/qdrant/releases",[1333],"nofollow","Qdrant 릴리스","에서 특정 버전(예: ",[903,1337,1338],{},"qdrant/qdrant:v1.12.4",")으로 고정하는 것을 권장합니다. 사내 레지스트리를 미러로 쓴다면 이 경로를 그 주소로 바꿀 수 있습니다.",[919,1341,1342,1345,1346,1349],{},[903,1343,1344],{},"container_name",", ",[903,1347,1348],{},"./qdrant_storage",": 컨테이너 이름과 데이터 저장 경로는 예시일 뿐이며 원하는 값으로 바꿔도 됩니다.",[919,1351,1352,1355],{},[903,1353,1354],{},"6333",": REST API(HTTP) 포트입니다.",[919,1357,1358,1361,1362,1364],{},[903,1359,1360],{},"6334",": gRPC 포트입니다. 바이너리 프로토콜(protobuf)을 사용해 대량 업서트나 배치 검색처럼 처리량이 큰 작업에서 REST API보다 빠릅니다. SetFN은 ",[903,1363,146],{},"에서 gRPC 연결을 지원하며, 검색과 벡터 저장에 gRPC를 우선 사용하도록 권장합니다.",[1366,1367,1368,1384,1409],"warning",{},[895,1369,1370,1371,1345,1373,1375,1376,1379,1380,1383],{},"위 설정은 ",[903,1372,1354],{},[903,1374,1360],{}," 포트를 모든 네트워크 인터페이스(",[903,1377,1378],{},"0.0.0.0",")에 엽니다. SetFN 서버와 Qdrant를 같은 머신에서 운영한다면, 외부에 노출되지 않도록 ",[903,1381,1382],{},"127.0.0.1","에만 바인딩하는 것이 안전합니다.",[945,1385,1387],{"className":1201,"code":1386,"language":1203,"meta":950,"style":950},"    ports:\n      - \"127.0.0.1:6333:6333\"\n      - \"127.0.0.1:6334:6334\"\n",[903,1388,1389,1395,1402],{"__ignoreMap":950},[954,1390,1391,1393],{"class":956,"line":957},[954,1392,1257],{"class":1210},[954,1394,1214],{"class":1094},[954,1396,1397,1399],{"class":956,"line":970},[954,1398,1264],{"class":1094},[954,1400,1401],{"class":963},"\"127.0.0.1:6333:6333\"\n",[954,1403,1404,1406],{"class":956,"line":986},[954,1405,1264],{"class":1094},[954,1407,1408],{"class":963},"\"127.0.0.1:6334:6334\"\n",[895,1410,1411],{},"이렇게 바인딩하면 같은 머신에서만 접속할 수 있고, SetFN 서버가 다른 머신에 있다면 접근할 수 없습니다.",[911,1413,1415],{"id":1414},"setfn에-연결하기","SetFN에 연결하기",[895,1417,1418,1420,1421,1424,1425,1428],{},[898,1419,146],{"href":900},"의 ",[903,1422,1423],{},"로컬 AI DB 구성","에서 다음 항목을 입력하고 ",[903,1426,1427],{},"저장"," 버튼을 누릅니다.",[895,1430,1431],{},[1432,1433],"img",{"alt":1434,"src":1435},"드라이버로 Qdrant를 선택했을 때의 AI DB 구성 화면","./_screenshots/admin-ai-db-qdrant.png",[1437,1438,1439,1452],"table",{},[1440,1441,1442],"thead",{},[1443,1444,1445,1449],"tr",{},[1446,1447,1448],"th",{},"항목",[1446,1450,1451],{},"값",[1453,1454,1455,1465,1473,1485,1503],"tbody",{},[1443,1456,1457,1461],{},[1458,1459,1460],"td",{},"드라이버",[1458,1462,1463],{},[903,1464,905],{},[1443,1466,1467,1470],{},[1458,1468,1469],{},"컬렉션",[1458,1471,1472],{},"사용할 컬렉션 이름. 인스턴스마다 다르게 구분해 직접 정합니다.",[1443,1474,1475,1478],{},[1458,1476,1477],{},"REST 엔드포인트",[1458,1479,1480,1481,1484],{},"Qdrant 서버의 REST API 주소 (예: ",[903,1482,1483],{},"http://localhost:6333",")",[1443,1486,1487,1490],{},[1458,1488,1489],{},"gRPC 엔드포인트 (권장)",[1458,1491,1492,1493,1496,1497,1499,1500,1502],{},"REST와 동일한 Qdrant 인스턴스의 gRPC 주소 (예: ",[903,1494,1495],{},"http://localhost:6334","). 검색과 벡터 저장에 gRPC를 우선 사용합니다. 비워 두면 REST 주소가 ",[903,1498,1354],{}," 포트일 때 ",[903,1501,1360],{},"를 자동으로 사용하며, 연결할 수 없으면 REST로 전환합니다.",[1443,1504,1505,1508],{},[1458,1506,1507],{},"API 키",[1458,1509,1510],{},"Qdrant에 인증을 켠 경우에만 입력합니다. 비워 두면 인증 없이 접속하고, 저장된 값을 비운 채 저장하면 삭제됩니다.",[895,1512,1513,1514,1517,1518,1521,1522,1524],{},"저장 후 ",[903,1515,1516],{},"로컬 AI DB 운영 현황","의 연결 상태가 ",[903,1519,1520],{},"연결됨","으로 바뀌고 벡터 스토어가 ",[903,1523,905],{},"로 표시되면 정상적으로 연결된 것입니다.",[1526,1527,1528],"note",{},[895,1529,1530,1531,1533],{},"SetFN 서버와 Qdrant 서버가 서로 다른 머신에 있다면, REST·gRPC 엔드포인트에 ",[903,1532,1382],{},"이 아니라 SetFN 서버에서 실제로 접근 가능한 주소(내부 IP나 호스트명)를 입력해야 합니다.",[911,1535,1537],{"id":1536},"관련-문서","관련 문서",[916,1539,1540,1544],{},[919,1541,1542],{},[898,1543,146],{"href":900},[919,1545,1546],{},[898,1547,154],{"href":1548},"./knowledge-indexing",[1550,1551,1552],"style",{},"html pre.shiki code .srTi1, html code.shiki .srTi1{--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sstjo, html code.shiki .sstjo{--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .s7F3e, html code.shiki .s7F3e{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}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);}html pre.shiki code .sC2Qs, html code.shiki .sC2Qs{--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sinWB, html code.shiki .sinWB{--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#F8F8F2}html pre.shiki code .sTrkL, html code.shiki .sTrkL{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#66D9EF}html pre.shiki code .sMOD_, html code.shiki .sMOD_{--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .s5clZ, html code.shiki .s5clZ{--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-sepia:#F92672}",{"title":950,"searchDepth":970,"depth":986,"links":1554},[1555,1556,1561,1565,1566],{"id":913,"depth":970,"text":914},{"id":934,"depth":970,"text":935,"children":1557},[1558,1559,1560],{"id":942,"depth":986,"text":943},{"id":1039,"depth":986,"text":1040},{"id":1154,"depth":986,"text":1155},{"id":1186,"depth":970,"text":1187,"children":1562},[1563,1564],{"id":1190,"depth":986,"text":1191},{"id":1291,"depth":986,"text":1292},{"id":1414,"depth":970,"text":1415},{"id":1536,"depth":970,"text":1537},null,"AI DB 드라이버로 Qdrant를 사용하려면 접속할 Qdrant 서버가 먼저 있어야 합니다. Docker로 Qdrant 서버를 설치하고 SetFN에 연결하는 방법을 안내합니다.","md",{"slug":1571},"/admin/ai/qdrant-server-setup/",{"title":1573,"description":1574,"ogType":1575,"twitterCard":1576,"keywords":1577},"Qdrant 서버 준비하기 | Admin Docs","Docker로 Qdrant 서버를 설치하고 SetFN의 AI DB 설정에서 Qdrant 드라이버에 연결하는 방법을 안내합니다.","article","summary_large_image",[1578,1579,1580,1581,1582],"Qdrant 설치","Docker Qdrant","벡터 DB 서버","AI DB Qdrant 연동","SetFN","99bM9sHxGqcYxkiiDqMB-hS_b7JhU-6oR0k8pXVZlLs",[1585,1586],{"title":146,"path":147,"stem":148,"children":-1},{"title":154,"path":155,"stem":156,"children":-1},{"title":150,"filename":1588,"content":1589},"qdrant-server-setup","# Qdrant 서버 준비하기\n\n[AI DB 설정](./20.ai-db-setting.md)에서 드라이버로 `Qdrant`를 선택하려면 먼저 접속할 수 있는 Qdrant 서버가 있어야 합니다. SetFN이 Qdrant 서버를 함께 설치해 주지는 않으므로, Docker로 직접 준비하는 방법을 안내합니다.\n\n---\n\n## 시작하기 전에\n\n- Qdrant 서버를 올릴 Linux(Ubuntu) 환경과 관리자(`sudo`) 권한이 필요합니다.\n- 해당 환경에 Docker가 설치되어 있지 않다면 먼저 설치합니다.\n- SetFN 서버가 이 Qdrant 서버에 네트워크로 접근할 수 있어야 합니다.\n\n## Docker 설치하기\n\nUbuntu 기준 Docker 공식 설치 절차입니다. 이미 Docker가 설치되어 있다면 이 단계는 건너뜁니다.\n\n### 1. 패키지 색인 갱신 및 필요한 패키지 설치\n\n```bash\nsudo apt update\nsudo apt install ca-certificates curl\nsudo install -m 0755 -d /etc/apt/keyrings\nsudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc\nsudo chmod a+r /etc/apt/keyrings/docker.asc\n```\n\n### 2. Docker 저장소를 Apt 소스에 추가\n\n```bash\nsudo tee /etc/apt/sources.list.d/docker.sources \u003C\u003CEOF\nTypes: deb\nURIs: https://download.docker.com/linux/ubuntu\nSuites: $(. /etc/os-release && echo \"${UBUNTU_CODENAME:-$VERSION_CODENAME}\")\nComponents: stable\nArchitectures: $(dpkg --print-architecture)\nSigned-By: /etc/apt/keyrings/docker.asc\nEOF\n\nsudo apt update\n```\n\n### 3. Docker 패키지 설치\n\n```bash\nsudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\n```\n\n## Qdrant 컨테이너 실행하기\n\n### 1. docker-compose.yml 파일 만들기\n\nQdrant를 실행할 폴더에 `docker-compose.yml` 파일을 만들고 다음 내용을 입력합니다.\n\n```yaml\nservices:\n  qdrant:\n    image: qdrant/qdrant:latest\n    container_name: qdrant\n    restart: unless-stopped\n    ports:\n      - \"6333:6333\"\n      - \"6334:6334\"\n    volumes:\n      - ./qdrant_storage:/qdrant/storage\n```\n\n### 2. 컨테이너 실행\n\n같은 폴더에서 컨테이너를 실행합니다.\n\n```bash\nsudo docker compose up -d\n```\n\n- `image`: 사용할 Qdrant 이미지와 버전입니다. `latest`는 컨테이너를 다시 받을 때마다 최신 버전으로 바뀌므로, 운영 환경에서는 [Qdrant 릴리스](https://github.com/qdrant/qdrant/releases)에서 특정 버전(예: `qdrant/qdrant:v1.12.4`)으로 고정하는 것을 권장합니다. 사내 레지스트리를 미러로 쓴다면 이 경로를 그 주소로 바꿀 수 있습니다.\n- `container_name`, `./qdrant_storage`: 컨테이너 이름과 데이터 저장 경로는 예시일 뿐이며 원하는 값으로 바꿔도 됩니다.\n- `6333`: REST API(HTTP) 포트입니다.\n- `6334`: gRPC 포트입니다. 바이너리 프로토콜(protobuf)을 사용해 대량 업서트나 배치 검색처럼 처리량이 큰 작업에서 REST API보다 빠릅니다. SetFN은 `AI DB 설정`에서 gRPC 연결을 지원하며, 검색과 벡터 저장에 gRPC를 우선 사용하도록 권장합니다.\n\n::warning\n위 설정은 `6333`, `6334` 포트를 모든 네트워크 인터페이스(`0.0.0.0`)에 엽니다. SetFN 서버와 Qdrant를 같은 머신에서 운영한다면, 외부에 노출되지 않도록 `127.0.0.1`에만 바인딩하는 것이 안전합니다.\n\n```yaml\n    ports:\n      - \"127.0.0.1:6333:6333\"\n      - \"127.0.0.1:6334:6334\"\n```\n\n이렇게 바인딩하면 같은 머신에서만 접속할 수 있고, SetFN 서버가 다른 머신에 있다면 접근할 수 없습니다.\n::\n\n## SetFN에 연결하기\n\n[AI DB 설정](./20.ai-db-setting.md)의 `로컬 AI DB 구성`에서 다음 항목을 입력하고 `저장` 버튼을 누릅니다.\n\n![드라이버로 Qdrant를 선택했을 때의 AI DB 구성 화면](./_screenshots/admin-ai-db-qdrant.png)\n\n| 항목 | 값 |\n|------|-----|\n| 드라이버 | `Qdrant` |\n| 컬렉션 | 사용할 컬렉션 이름. 인스턴스마다 다르게 구분해 직접 정합니다. |\n| REST 엔드포인트 | Qdrant 서버의 REST API 주소 (예: `http://localhost:6333`) |\n| gRPC 엔드포인트 (권장) | REST와 동일한 Qdrant 인스턴스의 gRPC 주소 (예: `http://localhost:6334`). 검색과 벡터 저장에 gRPC를 우선 사용합니다. 비워 두면 REST 주소가 `6333` 포트일 때 `6334`를 자동으로 사용하며, 연결할 수 없으면 REST로 전환합니다. |\n| API 키 | Qdrant에 인증을 켠 경우에만 입력합니다. 비워 두면 인증 없이 접속하고, 저장된 값을 비운 채 저장하면 삭제됩니다. |\n\n저장 후 `로컬 AI DB 운영 현황`의 연결 상태가 `연결됨`으로 바뀌고 벡터 스토어가 `Qdrant`로 표시되면 정상적으로 연결된 것입니다.\n\n::note\nSetFN 서버와 Qdrant 서버가 서로 다른 머신에 있다면, REST·gRPC 엔드포인트에 `127.0.0.1`이 아니라 SetFN 서버에서 실제로 접근 가능한 주소(내부 IP나 호스트명)를 입력해야 합니다.\n::\n\n## 관련 문서\n\n- [AI DB 설정](./20.ai-db-setting.md)\n- [지식 인덱싱](./30.knowledge-indexing.md)\n",1789664762722]