AI TOOLS

ChatGPT만 쓰다가 Ollama를 직접 돌려봤다 — 로컬 AI는 뭐가 달랐을까

nocklock 2026. 9. 26. 08:30

나는 그동안 AI를 거의 완성된 서비스로만 사용했다.

ChatGPT를 열고 질문한다.
Claude에게 코드를 보여준다.
답변이 오면 다시 개발한다.

편했다.

그래서 AI 모델을 직접 내 컴퓨터에서 돌린다는 것도 처음에는 생각보다 별일 아닐 거라고 생각했다.

모델 하나 받고, 실행하고, API처럼 연결하면 되는 것 아닐까.

보안렌즈를 만들면서 Ollama를 설치하기 전까지는 그렇게 생각했다.

 

Local AI

로컬 AI를 써보고 싶었던 이유

보안렌즈는 이미지 안에 들어 있는 개인정보를 찾아주는 프로젝트다.

전화번호나 이메일 같은 텍스트뿐 아니라 이미지의 EXIF 정보, GPS 같은 데이터까지 확인한다.

만들다 보니 자연스럽게 이런 생각이 들었다.

개인정보를 검사하는 서비스인데, 그 개인정보가 다시 외부 AI 서버로 전달되는 건 조금 이상하지 않나?

물론 모든 기능을 AI로 처리할 필요는 없다.

정규식으로 찾을 수 있는 정보도 있고, OCR이나 메타데이터 분석만으로 처리할 수 있는 것도 있다.

그래도 AI를 붙여보고 싶었고, 이왕이면 데이터가 내 컴퓨터 밖으로 나가지 않는 구조도 경험해보고 싶었다.

그래서 Ollama를 설치했다.

모델을 '사용하는 것'과 '돌리는 것'은 꽤 달랐다

처음 받은 모델은 Gemma3:4b였다.

 
ollama pull gemma3:4b
 

평소 ChatGPT를 사용할 때는 모델이 어디에서 실행되는지 크게 생각하지 않는다.

그런데 직접 모델을 내려받아 보니 느낌이 조금 달랐다.

몇 GB짜리 모델 파일이 실제로 내 컴퓨터에 들어오고, 내 컴퓨터의 자원을 이용해서 답변을 만든다.

당연한 이야기인데 직접 해보기 전에는 별로 의식하지 않았던 부분이다.

ChatGPT에서 질문 하나를 입력할 때는 그 뒤에 있는 인프라를 볼 일이 없다.

Ollama를 사용하니 갑자기 그 아래쪽이 조금 보이기 시작했다.

첫 번째 문제는 AI가 아니었다

재미있게도 처음 막힌 것은 모델의 성능이나 프롬프트가 아니었다.

환경이었다.

내 PC에서는 CUDA 관련 toolchain 문제가 생겼고 결국 CPU로 돌리는 방향으로 바꿨다.

그 다음에는 Ollama 서버를 직접 실행해보려고 했다.

 
ollama serve
 

그런데 또 실행되지 않았다.

이유를 찾아보니 Ollama가 사용하는 기본 포트인 11434가 이미 사용 중이었다.

처음에는 뭔가 잘못 설치한 줄 알았다.

알고 보니 Ollama가 이미 실행되고 있었고, 나는 실행 중인 서버를 하나 더 띄우려고 하고 있었다.

AI 모델을 연결하려고 시작했는데 실제로 내가 보고 있었던 것은 결국

  • 프로세스
  • 포트
  • 서버
  • GPU와 CPU
  • 실행 환경

같은 아주 평범한 개발 문제들이었다.

이 부분은 따로 개발노트로 정리했다.

Ollama 11434 포트 충돌 해결 — ollama serve가 실행되지 않았던 이유

AI를 사용한다고 해서 기존 개발 지식이 사라지는 건 아니었다.

오히려 그 반대에 가까웠다.

Spring Boot에서 실제로 연결해봤다

보안렌즈는 Spring Boot로 만들고 있었기 때문에 Ollama도 결국 서버에서 호출해야 했다.

구조 자체는 생각보다 특별하지 않았다.

Spring Boot가 로컬에서 실행되고 있는 Ollama 서버에 요청을 보내고,

Ollama가 모델을 실행한 다음 결과를 돌려준다.

대략 이런 구조였다.

사용자
  ↓
Spring Boot
  ↓
Ollama
  ↓
Gemma3:4b
 

여기까지 만들고 나니 조금 재미있는 느낌이 들었다.

브라우저에서 ChatGPT를 사용하는 것과 AI 모델을 내 애플리케이션의 구성 요소 하나로 넣는 것은 같은 AI를 쓰는 일이지만 경험은 꽤 달랐다.

전자는 AI 서비스를 사용하는 것에 가깝고,

후자는 AI가 포함된 시스템을 만드는 것에 조금 더 가까웠다.

로컬 AI가 무조건 좋은 것은 아니었다

직접 돌려보니 로컬 AI가 모든 상황의 정답이라고 생각되지는 않았다.

장점은 분명했다.

가장 먼저 떠오르는 것은 데이터다.

처리할 정보를 외부 AI 서비스로 보내지 않고 내 환경 안에서 처리할 수 있다.

API 비용도 다른 방식으로 생각할 수 있다.

반대로 내가 직접 신경 써야 할 것도 많아졌다.

모델을 받아야 하고,

컴퓨터 자원을 사용해야 하고,

실행 상태도 확인해야 하고,

문제가 생기면 포트와 프로세스도 확인해야 한다.

하드웨어에 따라 사용할 수 있는 모델의 크기도 달라진다.

클라우드 AI에서는 누군가 대신 해주던 일들이 로컬에서는 다시 내 일이 된다.

그래서 지금은 둘 중 하나가 더 좋다고 생각하지 않는다.

어디에서 AI를 돌릴 것인가도 결국 서비스의 요구사항 중 하나인 것 같다.

그런데 한 가지는 확실히 달라졌다

Ollama를 설치하기 전까지 나에게 AI는 거의 항상 이런 모습이었다.

나 → ChatGPT
 

질문을 하고 답을 받는다.

지금은 조금 다르게 보인다.

서비스
 ├─ 일반 코드
 ├─ 데이터 처리
 ├─ 규칙 기반 분석
 └─ AI 모델
 

AI가 애플리케이션 안에 들어갈 수 있는 여러 구성 요소 중 하나처럼 느껴지기 시작했다.

모든 것을 AI에게 맡길 필요도 없고,

반대로 모든 것을 직접 코드로 처리할 필요도 없다.

보안렌즈를 만들면서도 전화번호나 이메일처럼 명확하게 찾을 수 있는 정보는 기존 방식으로 처리하고, AI가 필요한 부분만 별도로 붙이는 방향으로 만들었다.

AI를 많이 쓰는 것보다 어디에 써야 하는지를 정하는 게 더 중요하다는 생각도 조금씩 들기 시작했다.

직접 돌려보니 AI가 조금 덜 마법처럼 보였다

ChatGPT만 사용할 때는 결과만 보게 된다.

Ollama를 사용하면서는 그 앞뒤를 조금 더 보게 됐다.

모델을 받고,

서버를 실행하고,

포트를 확인하고,

애플리케이션에서 호출한다.

그러다 문제가 생기면 다시 로그를 본다.

결국 개발이었다.

AI라고 해서 완전히 새로운 세계가 하나 생긴 것은 아니었다.

내가 알고 있던 서버, API, 프로세스, 하드웨어 위에 새로운 구성 요소 하나가 들어온 느낌에 가까웠다.

그래서 오히려 AI가 예전보다 조금 덜 막연해졌다.

아직 로컬 LLM을 제대로 안다고 말하기에는 한참 멀었다.

그래도 적어도 이제는

“AI를 사용해봤다”와 “AI를 내 서비스 안에서 직접 돌려봤다” 사이에는 꽤 큰 차이가 있다는 것

정도는 알 것 같다.

그리고 이건 아마 앞으로 다른 서비스를 만들 때도 계속 써먹게 될 경험일 것 같다.