광고 자리 모집 중 · 제휴 문의

외부 API로 소스코드 유출 없이 CodeGPT와 Ollama를 연동하여 완전 로컬 AI 코딩 환경 구축하기

365Finds Editorial
Wiki 문서 11,430편 수록

내 AI에서 365 Wiki 사용하기

아래 프롬프트를 복사해 평소 사용하는 AI에 붙여넣고 바로 질문하세요.

전체 Skill 다운로드

먼저 프롬프트로 체험해 보세요. 365 Wiki를 자주 쓴다면 전체 365Wiki Skill을 설치해 매번 붙여넣는 수고를 줄일 수 있습니다. 평소 쓰는 AI가 없다면 Gemini나 Microsoft Copilot 웹 버전도 사용할 수 있습니다.

금융 기술(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 또는 시스템 메모리에 모델 가중치를 로드하고, 로컬 하드웨어에서 추론을 완료한 뒤 에디터로 스트리밍 반환합니다. 따라서 물리적으로 외부 인터넷 회선을 통과하는 트래픽이 일절 발생하지 않습니다.


로컬 코딩 모델 선택 및 하드웨어 사양 권장

모델의 파라미터 크기는 추론 속도와 코드 생성 정밀도에 직접적인 영향을 미칩니다. 보유한 하드웨어 환경에 알맞은 모델을 선택해야 합니다:

  1. Qwen2.5-Coder (7B / 14B): 다국어 프로그래밍, 복잡한 로직 리팩터링 및 단위 테스트 생성에서 탁월한 정확도를 보여주는 최고 수준의 코드 모델입니다. 7B 모델은 16 GB 통합 메모리 Mac이나 8 GB VRAM을 갖춘 PC에서 쾌적하게 구동됩니다.
  2. DeepSeek-Coder (6.7B / 1.3B): 탄탄한 알고리즘 분석과 프로젝트 전반의 코드 구조 이해도가 뛰어나 중급 사양의 노트북에 적합합니다.
  3. Codestral (22B): 대용량 컨텍스트 창을 지원하는 Mistral의 전문 코딩 모델로, 24 GB 이상의 VRAM을 갖춘 전용 GPU 워크스테이션이나 32 GB 이상의 메모리를 탑재한 Mac에 추천합니다.
  4. Qwen2.5-Coder (1.5B / 3B): 초저지연 토큰 생성을 지원하여 키보드 입력 시 즉각 반응하는 인라인 자동 완성(Ghost Text)에 가장 적합합니다.

1단계: Ollama 설치 및 코딩 모델 다운로드

운영체제에 맞는 Ollama 설치 프로그램을 내려받습니다:

설치가 완료되면 터미널을 열고 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 토큰으로 확장합니다:

  1. 임의의 로컬 폴더에 확장자가 없는 Modelfile 텍스트 파일을 생성합니다:
FROM qwen2.5-coder:7b

# 컨텍스트 창을 8192 토큰으로 확장
PARAMETER num_ctx 8192

# 코드 문법과 로직의 엄밀성을 위해 온도를 낮춤
PARAMETER temperature 0.2

# 샘플링 상위 확률 조정
PARAMETER top_p 0.95
  1. 터미널에서 해당 디렉터리로 이동하여 최적화된 로컬 모델을 빌드합니다:
ollama create my-local-coder -f ./Modelfile

또는 백그라운드 서비스 구동 전 환경 변수 OLLAMA_CONTEXT_LENGTH=8192를 지정할 수도 있습니다. 컨텍스트 크기를 확장하면 KV 캐시로 인해 VRAM 및 시스템 메모리 점유율이 증가한다는 점을 고려해야 합니다.


3단계: VS Code에서 CodeGPT 설치 및 로컬 연동

  1. Visual Studio Code를 실행합니다.
  2. 확장 마켓플레이스(Ctrl+Shift+X, macOS는 Cmd+Shift+X)를 엽니다.
  3. CodeGPT(DanielSanMedium.dscodegpt)를 검색하여 설치를 클릭합니다.
  4. 좌측 액티비티 바에서 CodeGPT 아이콘을 클릭하거나 Ctrl+Shift+P를 누른 후 CodeGPT: Focus on Chat View를 실행합니다.
  5. CodeGPT 채팅 패널 상단의 톱니바퀴 아이콘을 누르거나 Manage my AI Models를 선택합니다.
  6. 모델 카테고리 탭에서 Local LLMs를 선택합니다.
  7. Provider 드롭다운 목록에서 Ollama를 지정합니다.
  8. Server URL(API Base URL) 항목에 로컬 서버 주소를 확인하거나 입력합니다:
http://localhost:11434

(사내 내부망의 전용 GPU 워크스테이션에서 Ollama를 호스팅하는 경우 사내 프라이빗 IP 주소(예: http://192.168.1.100:11434)를 입력합니다).

  1. Model 드롭다운 목록에서 내려받은 모델(예: qwen2.5-coder:7b 또는 my-local-coder)을 선택합니다.
  2. 창 외부를 클릭하여 설정을 저장합니다. CodeGPT가 Ollama 로컬 엔드포인트와 연결 핸드셰이크를 완료합니다.

4단계: 사이드바 대화 및 실시간 자동 완성 활성화

CodeGPT는 사이드바 인터랙티브 질의응답과 에디터 내 실시간 자동 완성의 두 가지 핵심 기능을 제공합니다.

사이드바 대화 및 코드 리팩터링

에디터에서 코드를 선택한 후 CodeGPT 명령어를 통해 다음 작업을 수행할 수 있습니다:

인라인 자동 완성(Autocomplete) 활성화

  1. CodeGPT 사이드바 메뉴에서 Autocomplete 항목을 선택합니다.
  2. 자동 완성 스위치를 ON으로 전환합니다.
  3. 자동 완성용 모델로 경량 모델(qwen2.5-coder:1.5b 등)을 지정하여 타이핑 중 지연 없는 고속 추천을 보장합니다.
  4. 워크스테이션 사양에 맞게 Suggestion Delay(추천 지연 시간)와 Max Tokens 값을 미세 조정합니다.

5단계: 엔터프라이즈 보안 강화 및 완전 오프라인 검증

사내 보안 감사 기준을 완벽하게 통과하기 위해 다음 단계를 통해 환경을 검증합니다:

1. VS Code 텔레메트리(원격 분석) 비활성화

에디터 자체에서 외부 마이크로소프트 서버로 진단 데이터가 전송되지 않도록 방지합니다:

  1. VS Code 설정(Ctrl+, 또는 Cmd+,)을 엽니다.
  2. telemetry.telemetryLevel을 검색합니다.
  3. 설정값을 off로 변경합니다.

2. 루프백 전용 바인딩 유지

Ollama는 기본적으로 127.0.0.1:11434에만 바인딩됩니다. 로컬 개발 환경에서는 OLLAMA_HOST 환경 변수를 불필요하게 0.0.0.0으로 설정하지 않음으로써, 동일 서브넷의 다른 호스트가 로컬 인스턴스에 접근하거나 스니핑하지 못하도록 차단합니다.

3. 완전 오프라인(망 분리) 실증 테스트

  1. 컴퓨터의 Wi-Fi를 끄고 유선 이더넷 케이블을 물리적으로 분리합니다(또는 로컬 방화벽으로 모든 아웃바운드 인터넷 트래픽을 차단).
  2. VS Code에서 프로젝트 소스 파일을 엽니다.
  3. CodeGPT에 리팩터링 질문을 던지고, 에디터에 코드를 입력하여 인라인 자동 완성을 트리거합니다.
  4. 인터넷 연결이 차단된 상태에서도 정상적으로 코드가 생성되는지 확인합니다. 오프라인 상태에서 원활히 동작한다면, 외부 API 전송 없이 완전한 데이터 주권이 보장되는 환경임이 검증된 것입니다.

문제 해결 및 성능 최적화


참고 자료