금융 기술(Fintech), 방위 산업, 의료 및 보안 규제가 엄격한 엔터프라이즈 환경에서 독점 소스 코드와 지적 재산권(IP) 보호는 타협할 수 없는 원칙입니다. 많은 기업이 엄격한 소스 코드 외부 반출 금지 규정을 수립하여, 내부 아키텍처, 핵심 알고리즘, 데이터베이스 스키마가 클라우드 기반 상용 SaaS AI 플랫폼으로 전송되는 것을 금지하고 있습니다. 하지만 AI 코딩 어시스턴트가 제공하는 높은 개발 생산성을 포기하기는 어렵습니다.
이러한 규제 준수와 생산성 간의 딜레마를 해결하는 가장 이상적인 방법은 Visual Studio Code의 CodeGPT 확장 프로그램과 로컬 LLM 런타임인 Ollama를 결합하는 것입니다. CodeGPT는 IDE 내에서 코드 생성, 기술 질의응답, 인라인 실시간 자동 완성(Autocomplete)을 위한 사용자 인터페이스를 담당하고, Ollama는 로컬 하드웨어에서 오픈 소스 코딩 모델을 구동하며 루프백 엔드포인트(http://localhost:11434)를 통해 추론 결과를 전달합니다. 모든 연산과 컨텍스트 분석이 로컬 컴퓨터 내부에서만 이루어지므로 외부 데이터 유출 위험이 원천 차단됩니다.
아키텍처 비교: 클라우드형 어시스턴트 vs. 로컬 Ollama 구동
클라우드 기반 AI 도구와 로컬 CodeGPT + Ollama 환경의 구조적 차이점을 살펴보면, 이 구성이 보안 감사 및 망 분리(Air-gapped) 요건을 완벽히 충족하는 이유를 명확히 이해할 수 있습니다:
| 평가 항목 | 클라우드 AI 어시스턴트 (Copilot, SaaS API 등) | CodeGPT + Ollama (로컬 LLM) |
|---|---|---|
| 데이터 흐름 | 코드 조각과 프롬프트가 HTTPS를 통해 외부 클라우드로 전송 | 데이터 반출 제로; 모든 요청이 루프백(127.0.0.1) 내부에서 처리 |
| 모델 호스팅 | 서드파티 제공업체의 멀티테넌트 데이터센터 | 개발자 로컬 워크스테이션 또는 사내 격리 서버 |
| 네트워크 요구사항 | 지속적인 인터넷 연결 필수 | 완전 오프라인(망 분리 환경)에서도 정상 작동 |
| 규정 준수(컴플라이언스) | 별도의 데이터 처리 계약(DPA) 및 보안 감사 검토 필요 | 사내 소스 코드 보안 정책 및 망 분리 규정에 즉시 부합 |
| 컴퓨팅 자원 부하 | 사용자 PC의 연산 부하 거의 없음 | 모델 추론을 위해 로컬 RAM 및 VRAM 자원 필요 |
| 비용 구조 | 사용자당 월간 구독료 또는 토큰당 API 요금 발생 | 무료 오픈 소스 모델 활용; 하드웨어 리소스만으로 운영 |
CodeGPT의 공급자를 Ollama로 설정하면, 확장 프로그램은 로컬에서 실행 중인 백그라운드 서비스로 표준 JSON 요청을 직접 전송합니다. Ollama는 GPU VRAM 또는 시스템 메모리에 모델 가중치를 로드하고, 로컬 하드웨어에서 추론을 완료한 뒤 에디터로 스트리밍 반환합니다. 따라서 물리적으로 외부 인터넷 회선을 통과하는 트래픽이 일절 발생하지 않습니다.
로컬 코딩 모델 선택 및 하드웨어 사양 권장
모델의 파라미터 크기는 추론 속도와 코드 생성 정밀도에 직접적인 영향을 미칩니다. 보유한 하드웨어 환경에 알맞은 모델을 선택해야 합니다:
- Qwen2.5-Coder (7B / 14B): 다국어 프로그래밍, 복잡한 로직 리팩터링 및 단위 테스트 생성에서 탁월한 정확도를 보여주는 최고 수준의 코드 모델입니다. 7B 모델은 16 GB 통합 메모리 Mac이나 8 GB VRAM을 갖춘 PC에서 쾌적하게 구동됩니다.
- DeepSeek-Coder (6.7B / 1.3B): 탄탄한 알고리즘 분석과 프로젝트 전반의 코드 구조 이해도가 뛰어나 중급 사양의 노트북에 적합합니다.
- Codestral (22B): 대용량 컨텍스트 창을 지원하는 Mistral의 전문 코딩 모델로, 24 GB 이상의 VRAM을 갖춘 전용 GPU 워크스테이션이나 32 GB 이상의 메모리를 탑재한 Mac에 추천합니다.
- Qwen2.5-Coder (1.5B / 3B): 초저지연 토큰 생성을 지원하여 키보드 입력 시 즉각 반응하는 인라인 자동 완성(Ghost Text)에 가장 적합합니다.
1단계: Ollama 설치 및 코딩 모델 다운로드
운영체제에 맞는 Ollama 설치 프로그램을 내려받습니다:
- macOS / Linux: 공식 웹사이트에서 내려받거나 터미널 패키지 관리 명령을 통해 설치합니다.
- Windows:
ollama.com에서 설치 프로그램을 내려받아 실행하면 작업 표시줄 트레이에 상주합니다.
설치가 완료되면 터미널을 열고 Ollama 백그라운드 서비스 상태를 확인합니다:
ollama --version
터미널 세션을 열지 않고 모델 가중치만 백그라운드로 안전하게 다운로드하기 위해 ollama pull 명령을 사용합니다:
# 균형 잡힌 범용 코딩 모델 다운로드
ollama pull qwen2.5-coder:7b
# (선택 사항) 초고속 인라인 자동 완성 전용 경량 모델 다운로드
ollama pull qwen2.5-coder:1.5b
로컬에 다운로드된 모델 목록을 확인합니다:
ollama list
2단계: Modelfile을 통한 컨텍스트 창 확장 및 파라미터 최적화
코드 분석 작업은 상단 임포트 구문, 타입 선언, 인접 함수 정의 등을 파악해야 하므로 충분한 컨텍스트 길이가 필요합니다. Ollama의 기본 설정은 메모리 절약을 위해 컨텍스트 창이 2,048 또는 4,096 토큰으로 제한되어 있을 수 있습니다.
충분한 코드 맥락을 확보하기 위해 커스텀 Modelfile을 작성하여 컨텍스트 창을 8,192 또는 16,384 토큰으로 확장합니다:
- 임의의 로컬 폴더에 확장자가 없는
Modelfile텍스트 파일을 생성합니다:
FROM qwen2.5-coder:7b
# 컨텍스트 창을 8192 토큰으로 확장
PARAMETER num_ctx 8192
# 코드 문법과 로직의 엄밀성을 위해 온도를 낮춤
PARAMETER temperature 0.2
# 샘플링 상위 확률 조정
PARAMETER top_p 0.95
- 터미널에서 해당 디렉터리로 이동하여 최적화된 로컬 모델을 빌드합니다:
ollama create my-local-coder -f ./Modelfile
또는 백그라운드 서비스 구동 전 환경 변수 OLLAMA_CONTEXT_LENGTH=8192를 지정할 수도 있습니다. 컨텍스트 크기를 확장하면 KV 캐시로 인해 VRAM 및 시스템 메모리 점유율이 증가한다는 점을 고려해야 합니다.
3단계: VS Code에서 CodeGPT 설치 및 로컬 연동
- Visual Studio Code를 실행합니다.
- 확장 마켓플레이스(
Ctrl+Shift+X, macOS는Cmd+Shift+X)를 엽니다. - CodeGPT(
DanielSanMedium.dscodegpt)를 검색하여 설치를 클릭합니다. - 좌측 액티비티 바에서 CodeGPT 아이콘을 클릭하거나
Ctrl+Shift+P를 누른 후CodeGPT: Focus on Chat View를 실행합니다. - CodeGPT 채팅 패널 상단의 톱니바퀴 아이콘을 누르거나 Manage my AI Models를 선택합니다.
- 모델 카테고리 탭에서 Local LLMs를 선택합니다.
- Provider 드롭다운 목록에서 Ollama를 지정합니다.
- Server URL(API Base URL) 항목에 로컬 서버 주소를 확인하거나 입력합니다:
http://localhost:11434
(사내 내부망의 전용 GPU 워크스테이션에서 Ollama를 호스팅하는 경우 사내 프라이빗 IP 주소(예: http://192.168.1.100:11434)를 입력합니다).
- Model 드롭다운 목록에서 내려받은 모델(예:
qwen2.5-coder:7b또는my-local-coder)을 선택합니다. - 창 외부를 클릭하여 설정을 저장합니다. CodeGPT가 Ollama 로컬 엔드포인트와 연결 핸드셰이크를 완료합니다.
4단계: 사이드바 대화 및 실시간 자동 완성 활성화
CodeGPT는 사이드바 인터랙티브 질의응답과 에디터 내 실시간 자동 완성의 두 가지 핵심 기능을 제공합니다.
사이드바 대화 및 코드 리팩터링
에디터에서 코드를 선택한 후 CodeGPT 명령어를 통해 다음 작업을 수행할 수 있습니다:
- 해당 코드 로직에 부합하는 단위 테스트 자동 생성.
- 레거시 비즈니스 로직 분석 및 리팩터링 제안.
- 컴파일 오류 및 런타임 예외 스택 트레이스 진단.
인라인 자동 완성(Autocomplete) 활성화
- CodeGPT 사이드바 메뉴에서 Autocomplete 항목을 선택합니다.
- 자동 완성 스위치를 ON으로 전환합니다.
- 자동 완성용 모델로 경량 모델(
qwen2.5-coder:1.5b등)을 지정하여 타이핑 중 지연 없는 고속 추천을 보장합니다. - 워크스테이션 사양에 맞게 Suggestion Delay(추천 지연 시간)와 Max Tokens 값을 미세 조정합니다.
5단계: 엔터프라이즈 보안 강화 및 완전 오프라인 검증
사내 보안 감사 기준을 완벽하게 통과하기 위해 다음 단계를 통해 환경을 검증합니다:
1. VS Code 텔레메트리(원격 분석) 비활성화
에디터 자체에서 외부 마이크로소프트 서버로 진단 데이터가 전송되지 않도록 방지합니다:
- VS Code 설정(
Ctrl+,또는Cmd+,)을 엽니다. telemetry.telemetryLevel을 검색합니다.- 설정값을
off로 변경합니다.
2. 루프백 전용 바인딩 유지
Ollama는 기본적으로 127.0.0.1:11434에만 바인딩됩니다. 로컬 개발 환경에서는 OLLAMA_HOST 환경 변수를 불필요하게 0.0.0.0으로 설정하지 않음으로써, 동일 서브넷의 다른 호스트가 로컬 인스턴스에 접근하거나 스니핑하지 못하도록 차단합니다.
3. 완전 오프라인(망 분리) 실증 테스트
- 컴퓨터의 Wi-Fi를 끄고 유선 이더넷 케이블을 물리적으로 분리합니다(또는 로컬 방화벽으로 모든 아웃바운드 인터넷 트래픽을 차단).
- VS Code에서 프로젝트 소스 파일을 엽니다.
- CodeGPT에 리팩터링 질문을 던지고, 에디터에 코드를 입력하여 인라인 자동 완성을 트리거합니다.
- 인터넷 연결이 차단된 상태에서도 정상적으로 코드가 생성되는지 확인합니다. 오프라인 상태에서 원활히 동작한다면, 외부 API 전송 없이 완전한 데이터 주권이 보장되는 환경임이 검증된 것입니다.
문제 해결 및 성능 최적화
- 연결 거부(Connection Refused): 백그라운드에서 Ollama 프로세스가 실행 중인지 확인하십시오. Windows와 macOS는 작업 표시줄 트레이 아이콘을 확인하고, Linux는
curl http://localhost:11434명령으로 응답을 점검합니다. - CORS 차단 에러: VS Code 웹뷰에서 교차 출처 리소스 공유(CORS) 오류가 발생하는 경우, 환경 변수에
OLLAMA_ORIGINS="*"를 등록한 후 Ollama 서비스를 재시작합니다. - 추론 지연 및 메모리 병목: 토큰 생성 속도가 현저히 느려진다면, 모델 크기가 물리적 GPU VRAM 용량을 초과하여 연산 일부가 시스템 CPU RAM으로 오프로드(Offload)되었을 가능성이 높습니다. 모델 파라미터 크기를 낮추거나(14B에서 7B로, 또는 7B에서 1.5B/3B로 축소), Modelfile의
num_ctx값을 줄여 해결합니다.