POOOLING FOREST
보안 걱정 없이 우리 회사만의 지식을 학습한 프라이빗 AI 챗봇 구축하기 - 기업의 소중한 지식 자산을 보호하면서도 생산성을 극대화할 수 있는 프라이빗 AI 챗봇 구축 사례와 RAG 기
Case Studies

보안 걱정 없이 우리 회사만의 지식을 학습한 프라이빗 AI 챗봇 구축하기

기업의 소중한 지식 자산을 보호하면서도 생산성을 극대화할 수 있는 프라이빗 AI 챗봇 구축 사례와 RAG 기술, 보안 파이프라인 구축 원칙을 공유합니다.

송찬영

CTO

안녕하세요. 풀링포레스트의 CTO 송찬영입니다.

"CTO님, 우리 회사 규정집이랑 지난 프로젝트 코드들 ChatGPT에 넣어서 물어봐도 되나요?"

어느 날 신입 개발자가 해맑게 물어왔을 때, 저는 순간 등골이 서늘해지는 것을 느꼈습니다. 물론 그 친구의 열정은 이해합니다. 방대한 사내 문서를 일일이 찾아보는 것보다 AI에게 물어보는 게 훨씬 빠르니까요. 하지만 기업의 CTO로서 보안은 타협할 수 없는 절대적인 가치입니다. 외부 퍼블릭 AI 모델에 우리 회사의 소중한 지식 자산과 고객 데이터가 그대로 노출될 수 있다는 위험은 상상만 해도 아찔했습니다.

이 고민은 비단 저만의 것이 아닐 겁니다. 많은 기업들이 생산성을 높이기 위해 AI챗봇 도입을 검토하지만, 동시에 '데이터 유출'이라는 거대한 장벽 앞에서 주저하게 됩니다. 풀링포레스트 역시 같은 딜레마를 겪었고, 우리는 이 문제를 해결하기 위해 '프라이빗 AI 챗봇'을 직접 구축하는 길을 선택했습니다. 오늘은 그 과정에서 겪은 시행착오와 기술적 의사결정의 기준들을 공유하려 합니다.

처음에는 막연했습니다. "그냥 오픈소스 LLM 가져다가 서버에 띄우면 되는 거 아냐?"라고 쉽게 생각했죠. Llama 2나 Mistral 같은 고성능 오픈소스 모델들이 쏟아져 나오고 있었으니까요. 개발팀은 의욕적으로 로컬 서버에 모델을 올리고 사내 문서를 학습시키기 시작했습니다.

하지만 현실은 냉혹했습니다. 첫 번째 문제는 '환각(Hallucination)'이었습니다. 우리 회사 규정을 물었는데, 엉뚱한 타사 규정을 섞어서 대답하거나 없는 말을 지어내기 일쑤였습니다. 두 번째는 '비용'과 '속도'였습니다. 파라미터가 큰 모델을 온프레미스(On-premise) 환경에서 돌리려니 GPU 비용이 만만치 않았고, 응답 속도는 사용자가 기다려주기 힘들 정도로 느렸습니다. 무엇보다 가장 큰 문제는 '보안 아키텍처'의 부재였습니다. 단순히 모델을 로컬에 둔다고 보안이 해결되는 게 아니었습니다. 누가 어떤 질문을 했는지, 모델이 학습한 데이터에 민감 정보(PII)가 포함되어 있지는 않은지 통제할 수단이 없었습니다.

우리는 접근 방식을 완전히 바꿨습니다. 단순히 모델을 돌리는 것이 아니라, '어떻게 데이터를 안전하게 주입하고, 정확한 답변을 얻을 것인가'에 집중하기로 했습니다. 여기서 핵심은 RAG(Retrieval-Augmented Generation, 검색 증강 생성) 기술과 강력한 보안 파이프라인의 결합이었습니다.

우리가 구축한 프라이빗 AI챗봇의 핵심 원칙은 세 가지였습니다.

첫째, 데이터 전처리와 마스킹입니다.

모델에 데이터를 넣기 전, 가장 중요한 단계는 정제입니다. 우리는 사내 문서가 벡터 데이터베이스(Vector DB)로 들어가기 전에, 주민등록번호나 전화번호 같은 개인정보를 자동으로 식별하고 마스킹하는 전처리 파이프라인을 구축했습니다. AI가 학습하거나 참조하는 원본 데이터 자체를 무해하게 만드는 것이 가장 확실한 보안이기 때문입니다.

둘째, 하이브리드 인프라 전략입니다.

모든 것을 사내 GPU 서버에서 처리하는 것은 비용 효율적이지 않았습니다. 대신, 데이터 보안이 핵심인 '벡터 DB'와 '임베딩 처리'는 철저하게 내부망(Private Network) 내에서 수행하고, 추론(Inference) 단계에서만 보안 계약이 체결된 엔터프라이즈급 API를 제한적으로 활용하거나, 민감도가 극도로 높은 업무에는 경량화된 로컬 LLM을 사용하는 방식을 택했습니다. 이 과정에서 데이터가 외부로 나갈 때는 철저히 암호화하고, 학습 데이터로 재사용되지 않도록 약관을 검토하는 것이 필수였습니다.

셋째, 접근 제어(RBAC)의 적용입니다.

"인사팀 정보는 인사팀만 볼 수 있어야 한다." 당연한 이야기지만, 챗봇 환경에서는 간과하기 쉽습니다. 우리는 사용자가 챗봇에게 질문을 던질 때, 해당 사용자의 권한을 먼저 확인하고 벡터 DB에서 검색할 수 있는 문서의 범위를 제한했습니다. 개발자가 챗봇에게 "대표님 연봉 얼마야?"라고 물어도, 검색 권한이 없으므로 "해당 정보에 접근할 수 없습니다"라고 답변하게 만든 것이죠.

이 과정을 통해 우리는 보안 사고 걱정 없이, 사내 규정, 기술 문서, 프로젝트 히스토리를 즉시 찾아주는 우리만의 비서를 갖게 되었습니다. 신입 개발자가 "이 에러 예전에 어떻게 해결했나요?"라고 물으면, 챗봇은 3년 전 슬랙 대화와 지라 티켓을 분석해 정확한 해결책을 제시해 줍니다. 생산성의 차원이 달라진 것입니다.

프라이빗 AI 구축을 고민하는 기술 리더들에게 드리고 싶은 조언은, "모델보다 데이터 파이프라인에 집중하라"는 것입니다. 어떤 모델을 쓸지는 나중 문제입니다. 우리 회사의 데이터가 어디에 있고, 어떻게 정제되어야 하며, 누가 접근할 수 있는지를 정의하는 것이 보안의 시작이자 끝입니다.

AI는 강력한 도구이지만, 그 칼자루는 우리가 쥐고 있어야 합니다. 기술의 편리함에 취해 보안이라는 안전장치를 놓치지 마세요. 안전하게 구축된 시스템 위에서야말로 개발자들은 마음껏 혁신을 실험할 수 있습니다. 풀링포레스트가 그랬던 것처럼, 여러분의 조직도 안전하고 똑똑한 AI 동료를 맞이할 준비를 시작해 보시기 바랍니다.

지금 읽으신 내용, 귀사에 적용해보고 싶으신가요?

상황과 목표를 알려주시면 가능한 옵션과 현실적인 도입 경로를 제안해드립니다.