티스토리 뷰
개요
요즘 팀 내에서 AI 도구를 쓰고 싶은데 막히는 경우가 생각보다 많다.
이유는 단순하다. 망이 막혀 있기 때문이다.
금융권, 공공기관, 제조업 현장, 군 관련 SI 프로젝트... 이런 환경에서 일하는 엔지니어라면 ChatGPT나 Claude를 브라우저에서 열었다가 차단 페이지를 마주한 경험이 한 번쯤은 있을 것이다. 당연히 API 호출도 막혀 있다.
그렇다고 AI 도구를 아예 포기해야 할까? 아니다. 로컬에서 직접 LLM을 돌리면 된다.
이 글에서 다루는 내용
전체 아키텍처 설명
먼저 전체 그림을 머릿속에 그려두고 시작하자.
┌─────────────────────────────────────────────────────────────┐ │ 폐쇄망 서버 (Air-gapped) │ │ │ │ ┌──────────────┐ REST API ┌──────────────────────┐ │ │ │ Python Agent│ ─────────────▶│ Ollama Server │ │ │ │ (LangChain) │ ◀─────────────│ (localhost:11434) │ │ │ └──────┬───────┘ └──────────┬───────────┘ │ │ │ │ │ │ │ 파일 R/W │ 모델 로드 │ │ ▼ ▼ │ │ ┌──────────────┐ ┌──────────────────────┐ │ │ │ Excel 파일 │ │ Gemma 4 모델 파일 │ │ │ │ (.xlsx) │ │ (GGUF / Ollama) │ │ │ └──────────────┘ └──────────────────────┘ │ └─────────────────────────────────────────────────────────────┘
구성 요소별 역할
데이터 흐름
사용 기술 스택
핵심 기술 선택 이유
왜 Gemma 4인가?
2025년 4월 기준으로 폐쇄망에서 사용할 수 있는 오픈소스 LLM 중 Gemma 4는 몇 가지 면에서 실용적이다.
상업적 사용 가능, 기업 내부 OK
실무 문서 처리에 충분한 수준
CPU-only도 가능 (단, 느림)
바로 사용 가능
💡 Tip — 모델 크기 선택
GPU 없이 CPU만 있는 서버라면 gemma4:2b (2B 파라미터) 모델도 고려하자.
속도는 느리지만 간단한 작업은 충분히 처리한다.
gemma4:12b (~8GB)가 속도와 품질의 중간 타협점으로 가장 인기가 많다.
설치 가이드 (STEP BY STEP)
폐쇄망 설치의 핵심은 "반입"이다. 인터넷이 되는 PC에서 아래를 모두 준비해 USB나 내부 파일 서버에 담아가야 한다.
사전 준비 체크리스트 (인터넷 PC에서)
Ollama 바이너리 다운로드 (인터넷 PC에서)
Gemma 4 모델 파일 준비 (인터넷 PC에서)
Ollama 모델은 로컬 캐시 디렉토리에 저장된다. 인터넷이 되는 PC에서 먼저 pull한 뒤 그 디렉토리째로 복사하면 된다.
💡 Tip — 모델 크기 미리 확인
gemma4:27b (Q4_K_M 기본값 기준)는 약 17GB 내외다. USB가 부족하면
gemma4:12b (~8GB)나
gemma4:2b (~2GB)를 선택하자.
정확한 용량은 ollama show gemma4:27b --verbose로 확인 가능하다.
Python 패키지 wheel 준비 (인터넷 PC에서)
폐쇄망 서버에 설치
🚨 주의사항 — Ollama 서비스 등록
장기 운영 환경이라면 systemd 서비스로 등록해두자.
서버 재부팅 후 Ollama가 자동으로 뜨지 않으면 Agent가 동작하지 않는다.
동작 확인
Gemma 4 연동 방법
Python에서 Ollama 연결
Ollama는 OpenAI 호환 REST API를 제공하므로 langchain-ollama 또는 직접 requests로 연결할 수 있다.
OpenAI 호환 방식 (기존 코드 재사용 시)
이미 OpenAI API를 쓰던 코드가 있다면 베이스 URL만 바꾸면 된다.
💡 Tip — 모델 파라미터 튜닝
문서 처리 작업은 창의성보다 정확성이 중요하다. temperature=0.0~0.1로 설정하면 LLM이 일관된 출력을 낸다.
num_ctx(컨텍스트 길이)는 기본 2048인데, 큰 엑셀 데이터를 처리하려면 8192 이상으로 올려주는 게 좋다.
엑셀 문서 정리 자동화 활용
이제 실제로 쓸 수 있는 시나리오로 들어간다. 업무에서 자주 마주치는 상황들이다.
원본 엑셀에 컬럼명이 중구난방으로 되어 있을 때
수백 행의 판매 데이터를 넣으면 LLM이 핵심 지표를 텍스트로 요약해주는 시나리오. 회의 전에 빠르게 현황을 파악하거나, 정기 리포트 작성을 자동화할 때 유용하다.
입력/출력 예시
INPUT — 원본 엑셀 데이터
OUTPUT — LLM 분석 결과 (JSON)
실제 사용 예제 (코드 포함)
완성된 Python 스크립트다. 폐쇄망에서 그대로 실행 가능하다.
Before / After
BEFORE — 실행 전 (원본)
AFTER — 실행 후 (_cleaned.xlsx)
REPORT — _report.txt
장점 / 단점
폐쇄망 환경에서의 장점
한계 및 주의사항
💡 Tip — 대용량 엑셀 처리 전략
엑셀이 수만 행이라면 LLM에 전체를 한 번에 넣는 건 불가능하다. pandas로 500~1000행씩 청크로 나눠서 처리하고 결과를 합산하는 방식을 쓰자.
결론
어떤 조직에 적합한가?
앞으로의 확장 가능성
마치며
로컬 LLM의 성능은 빠르게 올라오고 있다. 지금 당장 GPT-4 수준은 아니지만, 단순 반복 작업, 데이터 품질 검사, 문서 요약 정도는 이미 실무에서 충분히 쓸 수 있는 수준이다.
한 번 구축해두면 API 비용 걱정 없이, 망 분리 위반 걱정 없이, 팀 전체가 쓸 수 있는 내부 AI 인프라가 된다. 이 글에 담긴 내용은 실제로 폐쇄망 환경에서 Ollama를 설치하고 엑셀 자동화 파이프라인을 구축하면서 겪은 과정을 정리한 것이다. 막히는 부분이 있으면 댓글로 남겨주시면 같이 해결해보겠다.
이 글이 도움이 됐다면 공유해 주세요 🙏 | 질문은 댓글로
'기타' 카테고리의 다른 글
| 자유에 관하여 (0) | 2026.05.21 |
|---|---|
| 석유 왕 록펠러, 시장을 어떻게 손에 넣었나 (0) | 2026.04.21 |
| YEBISU BEER — 역사와 전통, 그리고 맛의 계보 (0) | 2026.04.14 |
| 럭비 가이드 (1) | 2026.03.29 |
| Github vscode by PAT 연동 25.03 (0) | 2025.03.02 |
- Total
- Today
- Yesterday
- git@github.com: permission denied (publickey)
- 킹우의 수
- 미국 경제 역사
- 내향인운동
- 맥주 #YEBISU
- ai_agent
- 적극적 자유 #소극적 자유
- 시스티나성당
- pemission
- 석유 독점
- 배드민턴동호회
- 로컬llm
- 폐쇄망AI
- 배드민턴신입
- mybatis
- esim
- 럭비 #노사이드게임
- responsebody
- vscode
- 우르비에트오르비
- Gemma사용법
- 스탠다드 오일
- 배드민턴팁
- 2026
- 동호회적응
- AI AGENT #CLAUDE CODE #개발자 #AI 자동화 #CODEX CLI #GEMINI CLI #OPENHANDS
- SpringBoot
- nginx
- 수직적 통합
- 셔먼법
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
