Ubuntu에서 Ollama 운영

Ubuntu에서 Ollama를 운영할 때는 보통 설치 → systemd 서비스 확인 → 모델 pull → GPU/원격접속 설정 → 모니터링/업데이트 순서로 관리하면 됩니다. 공식 Linux 문서도 systemd 서비스 파일을 사용하는 운영 방식을 안내합니다.

기본 설치

  • 설치는 공식 스크립트로 진행합니다: curl -fsSL https://ollama.com/install.sh | sh 또는 Ubuntu용 안내에 맞는 설치 방법을 사용합니다. 설치가 끝나면 ollama.service가 만들어지고 자동 시작됩니다. docs.ollama+1
  • 상태 확인은 systemctl status ollama로 하고, 실행 중인지 ss -napt | grep 11434 또는 curl http://127.0.0.1:11434/api/tags로 확인합니다. 기본적으로 Ollama API는 127.0.0.1:11434에서 열립니다. server-world

서비스 운영

  • ollama serve는 수동 실행, systemd는 상시 운영에 적합합니다. 터미널을 닫아도 계속 돌아가게 하려면 systemd 서비스로 운용하는 것이 정석입니다.reddit+1
  • 재시작은 sudo systemctl restart ollama, 중지는 sudo systemctl stop ollama, 자동 시작은 sudo systemctl enable ollama로 관리합니다.server-world+1

모델 관리

  • 모델은 ollama pull llama3.1:8b, ollama pull qwen3:8b처럼 내려받고, ollama list로 확인합니다. 이후 ollama run 모델명으로 테스트합니다.docs.ollama
  • 실제 서비스에서는 자주 쓰는 모델만 유지하고, 나머지는 지우거나 교체해 디스크와 메모리를 아끼는 편이 좋습니다.docs.ollama

GPU 설정

  • Linux에서 Ollama가 systemd로 실행될 때는 환경변수를 서비스 오버라이드로 넣는 방식이 권장됩니다. 예를 들어 sudo systemctl edit ollama.service[Service]Environment="OLLAMA_HOST=0.0.0.0:11434" 같은 식으로 추가합니다.mostlytech+1
  • NVIDIA/AMD/Intel GPU 활용 여부는 드라이버와 환경에 따라 달라지며, GPU가 없으면 CPU-only로 동작합니다. Ubuntu 안내에서도 GPU가 없을 경우 CPU 모드로 실행된다고 설명합니다.server-world

원격 접속

  • 다른 PC에서 쓰려면 OLLAMA_HOST=0.0.0.0:11434로 바인딩을 바꾸고, ufw에서 포트를 열어야 합니다. 예: sudo ufw allow 11434/tcp 또는 LAN만 허용하는 규칙을 쓰는 것이 안전합니다.glukhov+1
  • 단, Ollama는 기본적으로 인증/레이트리밋이 없으므로 공개 인터넷에 직접 노출하면 안 됩니다. 가능하면 Tailscale/WireGuard/SSH 터널 같은 방식으로 제한하는 것이 좋습니다.serverman.co+1

운영 팁

  • 안정성 우선이면 systemd 상시 구동 + LAN/VPN 제한 + 필요한 모델만 pull이 가장 깔끔합니다.glukhov+1
  • 성능 우선이면 GPU 드라이버를 먼저 잡고, 큰 모델 대신 7B~8B급 모델로 시작하는 편이 관리가 쉽습니다.mostlytech+1

가능합니다. 가장 쉬운 방법은 OLLAMA_KEEP_ALIVE=-1로 서버를 띄워서, 현재 많이 쓰는 1개 모델만 메모리에 계속 유지하는 것입니다. Ollama는 기본적으로 모델을 약 5분 후 언로드하지만, OLLAMA_KEEP_ALIVE나 요청별 keep_alive로 유지 시간을 조절할 수 있습니다.insiderllm+1

1개 모델만 상시 유지하는 방법

방법 A: 서버 전체에 적용

ollama.service에 환경변수를 넣습니다.

bashsudo systemctl edit ollama.service

아래 추가:

text[Service]
Environment="OLLAMA_KEEP_ALIVE=-1"

적용:

bashsudo systemctl daemon-reload
sudo systemctl restart ollama

이렇게 하면 서버가 실행되는 동안 모델이 계속 메모리에 남아 있게 됩니다.docs.ollama+1

방법 B: 특정 모델만 유지

한 번만 호출해서 그 모델을 계속 유지시킬 수도 있습니다.

bashcurl http://localhost:11434/api/generate -d '{
  "model": "qwen3:8b",
  "prompt": "keep alive",
  "keep_alive": -1
}'

이 방식은 그 요청으로 활성화한 1개 모델만 오래 붙잡는 용도로 쓰기 좋습니다.insiderllm+1

3개 모델 중 1개만 상시 운영할 때

Ollama는 기본적으로 현재 메모리에 올라간 모델이 있으면 그 모델을 유지하고, 다른 모델을 쓰면 그쪽으로 바뀌면서 메모리를 다시 사용합니다. 그래서 실무적으로는:

  • 상시 쓸 1개 모델만 keep_alive=-1
  • 나머지 2개는 필요할 때만 호출
  • 필요 없는 모델은 ollama stop 모델명으로 내리기

이 방식이 가장 단순합니다.ollama.apidog+2

추천 운영 방식

항상 붙여둘 모델

  • 캘린더 CRUD, 음성 명령 처리용이면 가장 자주 쓰는 1개 모델만 상시 유지하세요.
  • 예: qwen3:8b 또는 glm-4.7-flash 같은 주력 모델 1개.ollama+1

나머지 모델

  • 테스트용, 백업용, 고성능 모델은 필요할 때만 로드
  • 사용 후 ollama stop 모델명으로 정리
bashollama stop qwen3:8b

확인 명령

현재 어떤 모델이 올라와 있는지 보려면:

bashollama ps

이걸로 실제로 메모리에 상주 중인 모델을 확인할 수 있습니다.

Ollama LLM을 별도 서버에 설치하고 OpenClaw에서 원격으로 사용하는 방법은 서버에서 Ollama를 외부 접근 가능하게 설정한 후, OpenClaw 구성 파일에서 서버 주소를 지정하는 것입니다. 이 과정은 Ubuntu나 Linux 서버에서 주로 적용되며, 보안 주의가 필요합니다.

Ollama 서버 설정 (별도 서버)

  • 서버(Linux/Ubuntu)에 Ollama 설치: curl -fsSL https://ollama.com/install.sh | sh 실행.recording-it.tistory
  • 원격 접근 허용: OLLAMA_HOST=0.0.0.0:11434 환경변수 설정.
    systemd 서비스 편집 (systemctl edit ollama.service) 후 [Service] Environment="OLLAMA_HOST=0.0.0.0" 추가하고 재시작 (sudo systemctl daemon-reload && sudo systemctl restart ollama).
  • 모델 다운로드: ollama pull llama3.1:8b (또는 원하는 모델, 추천 8B).
  • 방화벽 확인: sudo ufw allow 11434로 포트 개방, 서버 IP 확인 (예: 192.168.x.x).blog.naver

OpenClaw 클라이언트 설정 (다른 컴퓨터)

  • OpenClaw 설치: npm install -g openclaw (Node.js 필요).recording-it.tistory
  • 온보딩 실행: openclaw 명령으로 마법사 실행, Quick Start 선택 후 Ollama provider 선택.recording-it.tistory
  • 구성 파일 수정 (~/.openclaw/openclaw.json 또는 해당 경로):
    text{ "agent": { "provider": "ollama", "model": "llama3.1:8b", "baseUrl": "http://서버IP:11434" } }서버 IP를 실제 주소로 변경.open-clawai+1
  • 재시작: openclaw restart 또는 systemctl restart openclaw-gateway.recording-it.tistory

테스트 및 주의사항

다른 컴퓨터에서 curl http://서버IP:11434/api/tags로 Ollama 연결 확인.growth-coder.tistory
OpenClaw에서 Telegram 등 앱 연동 후 “hello” 테스트. GPU 서버 추천, 보안 위해 VPN/SSH 터널 사용.fdcservers+1

AI 활용 개발 프로세스 단계별 네 가지 도구(PRD, Speckit, Pumasi, Ralph-loop)

AI를 활용해 딸깍하고 개발하는 프로세스를 단계별로 예를 들어 자세히 설명할게. 요청하신 네 가지 도구(PRD, Speckit, Pumasi, Ralph-loop)를 중심으로 각 단계가 어떻게 이어지는지 차근차근 정리합니다.


1. PRD로 서비스 기획 및 개발 문서 작성

  • 서비스의 목표, 주요 기능, 사용자 요구사항 등을 상세히 정리하는 문서
  • 예시)
  • 목표: 대학생 자녀를 둔 부모를 위한 교육 관리 앱 개발
  • 주요 기능: 로그인, 강의 일정 확인, 알림, 성적 관리, 커뮤니케이션 기능
  • 요구사항: 모바일과 웹 모두 지원, 보안 인증 반드시 포함
  • PRD 작성 과정을 통해 팀과 공유할 명확한 로드맵과 요구사항이 만들어진다.

2. Speckit으로 SDD(설계 문서) 진행

  • PRD에서 정의한 기능과 요구사항을 바탕으로 시스템 설계 문서 작성
  • 구체적인 데이터 흐름, 아키텍처, 인터페이스, API 명세 등을 명확히 함
  • 예시)
  • 사용자 로그인 방식: JWT 인증 방식을 채택
  • DB 테이블 설계: 사용자, 강의, 알림, 성적 테이블 구조 작성
  • API 명세: /login, /lectures, /notifications 등 REST API 설계
  • Speckit을 통해 명확하고 일관된 설계 문서 작성, 개발자와 디자이너가 공유

3. Pumasi로 코드 작성 및 병렬 개발

  • Claude Code와 Codex 같은 AI 코딩 도구를 병렬로 활용하여 빠르게 코드 생성
  • 명확하게 작성된 SDD를 기반으로 AI가 필요한 모듈과 기능을 동시에 개발
  • 예시)
  • Claude Code가 로그인 모듈을 작성하고, Codex가 강의 조회 API 코드를 동시에 개발
  • 이후 병렬로 작성된 코드들을 Pumasi 플랫폼에서 리뷰 및 머지(통합)
  • 자동 테스트 및 코드 스타일 검증 병행하여 품질 유지
  • AI 도움으로 개발 속도를 극대화하고 병목 없는 병렬 작업 가능

4. Ralph-loop를 통한 끊임없는 SDD 진행 및 개선

  • 실제 개발 및 테스트 중 발생한 문제점과 요구 변경을 Ralph-loop에 반영
  • SDD 문서를 지속해서 업데이트하고 코드도 개선하는 무한 루프 수행
  • 예시)
  • 사용자 피드백 반영해 기능 추가 및 설계 변경
  • 보안 취약점 발견 시 즉시 SDD에 반영하고 관련 코드 수정
  • Ralph-loop에 의해 문서와 코드가 동시에 최신 상태로 유지됨
  • 이렇게 반복해서 프로세스가 계속 돌면서 서비스 완성도 상승

요약

단계역할주요 작업도구 활용 예시
1. PRD서비스 구상, 요구사항 정의목표 설정, 기능 리스트 작성PRD 문서 작성
2. Speckit시스템 설계(SDD)아키텍처, DB 설계, API 명세설계 문서 작성 및 공유
3. PumasiAI 병렬 코드 작성, 병합AI 코딩(Claude, Codex), 코드 병합 및 테스트AI 코드 자동 생성 및 머지
4. Ralph-loop지속적 설계 및 개선설계 문서 업데이트, 코드 보완 반복무한 루프 피드백 및 개선

이 과정을 통해 AI가 촉진하는 개발 프로세스가 어떻게 순환하며 이루어지는지 한눈에 파악할 수 있을 거야. PRD로 시작해 Speckit에서 설계, Pumasi로 AI 병렬코딩, Ralph-loop로 끊임없는 개선을 반복하면서 개발의 효율성·품질을 최대화하는 흐름이지.

각 도구별 활용 구체 사례와 세부 절차를 단계별로 자세히 설명합니다. 이 과정에서는 실제 개발 현장에서 어떻게 활용하는지 이해하기 쉽게 실제 예시와 구체적인 절차 위주로 다뤄볼게.


1. PRD (Product Requirement Document) 작성

구체 사례

  • 신입 사원 교육 관리 웹서비스 개발 프로젝트
  • 목표: 사용자 친화적인 교육 신청 및 관리 시스템 제공
  • 주요 기능: 회원가입/로그인, 강의 신청, 교육 일정 조회, 알림 발송
  • 요구사항: PC/모바일 웹환경 모두 지원, 1만 명 동시 접속 가능

세부 절차

  1. 이해관계자(서비스 기획자, PM, 커스터머) 미팅
  2. 사용자 요구사항 수집 (인터뷰, 설문 등)
  3. 기능 목록 작성 및 우선순위 정리
  4. 서비스 목표 및 핵심 지표(KPI) 정의
  5. 기능 상세 설명, 비즈니스 규칙 포함 작성
  6. 문서 공유 및 피드백 반영 후 최종 확정

2. Speckit을 활용한 SDD (Software Design Document) 작성

구체 사례

  • PRD 기반 로그인 시스템 설계
  • JWT 토큰 기반 인증 설계 및 API 명세 작성
  • 데이터베이스 테이블 스키마: Users 테이블 설계 (id, 이메일, 비밀번호(hashed), 가입일 등)

세부 절차

  1. PRD 기능별 핵심 로직 추출
  2. 시스템 아키텍처 설계 (클라이언트, 서버, DB 관계)
  3. API 스펙 정의 (URL, HTTP 메서드, 요청/응답 데이터 형식)
  4. 데이터베이스 ER(Entity-Relationship) 다이어그램 작성
  5. 보안, 예외 처리, 오류 코드 정책 등 기술적 상세 명시
  6. 설계문서 내역 팀원과 공유 및 리뷰 → 승인

3. Pumasi로 AI 병렬코드 작성 및 머지

구체 사례

  • Claude Code에 로그인 기능 작성 요청
  • Codex에 강의 목록 CRUD API 구현 요청
  • AI가 동시에 생성한 코드 충돌 없이 병합

세부 절차

  1. SDD의 API 스펙과 데이터베이스 설계를 Pumasi에 입력
  2. 각 AI 엔진에 담당 모듈별 코드 생성 명령 전달
  3. 자동 생성 코드 초기 검토 및 단위 테스트 실행
  4. Pumasi 내 코드 자동 병합 기능 사용, 버전 관리(Git과 연동)
  5. 충돌 발생 시 AI와 사람이 함께 리뷰, 수정 처리
  6. 통합된 코드 리포지토리에 빌드 및 통합 테스트

4. Ralph-loop를 이용한 지속적 SDD 관리 및 개선

구체 사례

  • 고객 피드백 반영해 교육 알림 기능에 푸시 알림 옵션 추가
  • 보안 강화 위해 인증 프로토콜 일부 수정 필요 발생
  • 성능 이슈로 일부 API 최적화 설계 반영

세부 절차

  1. 개발 및 배포 후 사용자 또는 QA 피드백 수집
  2. Ralph-loop에 피드백과 변경 요청 입력 및 설계 변경안 작성
  3. 변경된 설계문서를 다시 팀 내 공유하고 검토
  4. 변경된 SDD 기준으로 AI 혹은 개발자가 코드 업데이트
  5. 변경 사항 테스트 후 배포, 다시 피드백 루프로 이동
  6. 이 과정을 반복하면서 서비스 완성도 향상

이처럼 각 도구의 특징과 역할별로 명확하게 분리되어 있고, 단계별 절차도 명확해서 업무 효율과 품질을 높이는 데 도움이 된다.

애널리틱스 도구로써 PostHog와 Plausible

애널리틱스 도구로 PostHog와 Plausible 중에서 선택할 때 고려할 주요 특징, 차이점, 그리고 각각의 기본 세팅 방법에 대해 단계별로 정리해서 설명합니다.


1. PostHog 특징과 세팅 방법

특징

  • 사용자 행동 추적에 강점: 클릭, 스크롤, 페이지 이동 등 사용자의 모든 행동 이벤트를 실시간으로 기록할 수 있음
  • 세션 리플레이 기능 제공: 사용자가 실제 웹사이트에서 어떤 행동을 했는지 녹화 재생 가능
  • 오픈소스 및 자체 호스팅 가능: 데이터 보안이 중요한 경우 자체 서버에 설치해 운영할 수 있음
  • 풍부한 분석 대시보드 제공: 사용자 집단 분석, 이벤트 분석, 퍼널 분석 등 다양한 시각화 지원
  • 클라우드 서비스도 제공: 서버 설치 번거로움 없이 바로 시작 가능

세팅 방법

  • 클라우드 버전 사용 시
  1. PostHog 웹사이트에서 계정 생성
  2. 새 프로젝트 생성 후 분석할 웹사이트 URL 입력
  3. 제공하는 JavaScript 추적 코드를 웹사이트 HTML에 삽입
  4. 대시보드에서 데이터 실시간 확인 시작
  • 자체 서버 설치 시 (Docker 권장)
  1. Docker가 설치된 서버 준비
  2. PostHog GitHub에서 Docker Compose 파일 다운로드
  3. 다운로드한 디렉토리에서 docker-compose up 명령어 실행
  4. 웹 브라우저에서 서버 주소 접속 후 초기 설정 완료
  5. 사이트에 추적 코드를 삽입해 데이터 수집 시작

2. Plausible 특징과 세팅 방법

특징

  • 경량화, 개인정보 보호 중심: 사용자 데이터 최소 수집, GDPR 등 프라이버시 규제 준수에 최적화
  • 직관적이고 간결한 대시보드: 필수적인 핵심 지표만 보여주며 사용법이 매우 단순함
  • 오픈소스 및 자체 호스팅 지원: 클라우드나 자체 서버 둘 다 가능
  • 빠른 로딩 속도: 사이트 성능에 영향 적음

세팅 방법

  • 클라우드 버전 사용 시
  1. Plausible 공식 사이트에서 계정 생성
  2. 도메인 등록 후 제공된 추적 스크립트를 웹페이지에 삽입
  3. 대시보드에서 방문자 및 이벤트 데이터 확인
  • 자체 서버 설치 시
  1. Docker가 설치된 서버 환경 준비
  2. Plausible GitHub 저장소에서 설치 가이드 참고
  3. 필요한 환경 변수 설정 후 Docker Compose로 실행
  4. 자체 서버 주소에서 접속 후 초기 환경 설정 완료
  5. 추적 코드 삽입 및 데이터 수집 시작

3. PostHog vs Plausible 주요 차이점 비교

항목PostHogPlausible
주요 기능상세 행동 추적, 세션 리플레이, 이벤트/퍼널 분석간결 지표 중심, 가벼운 방문자 통계
데이터 수집량상대적으로 많음최소한, 개인정보보호 우선
사용자 인터페이스복잡하나 강력함단순 명확, 사용 편리
자체 호스팅강력 지원, Docker 기반 설치 편리자체 호스팅 지원, 경량 설치 가능
성능 영향다소 무거움경량, 로딩에 영향 적음
사용 대상복잡한 행동 분석이 필요한 서비스가벼운 방문 통계와 프라이버시 중시 서비스

요약

PostHog는 매우 상세한 사용자 행동 분석과 세션 리플레이 등 고급 기능이 필요한 경우에 적합하며, 자체 설치 또는 클라우드 모두 선택 가능하다. 반면 Plausible는 경량화와 개인정보 보호를 최우선으로 하면서 간단하고 직관적인 방문자 통계를 빠르게 확인하고자 할 때 적합하다. 두 플랫폼 모두 오픈소스이고 자체 호스팅 환경을 지원해 데이터 주권이 중요한 경우 운영할 수 있다. 기본적으로 클라우드 버전을 쓰면 빠르게 시작할 수 있고, Docker 기반 자체 서버 설치가 가능한 구조라 관리 목적에 맞춰 선택하면 된다[1][7].

필요하면 세부 설치 명령어나 코드 삽입 방법도 추가로 설명해 줄게.

참고 자료

[1] billionnapkin.com – PostHog 설치 방법, 개발자가 좋아하는 오픈소스 분석 플랫폼 (구글 … (https://billionnapkin.com/posthog-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95-%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EC%A2%8B%EC%95%84%ED%95%98%EB%8A%94-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EB%B6%84%EC%84%9D-%ED%94%8C%EB%9E%AB/)
[2] Creati.ai – PostHog – 제품 팀을 위한 분석 플랫폼 – Creati.ai (https://creati.ai/ko/ai-tools/posthog/)
[3] agnostic … – [논문 리뷰] CountARFactuals — Generating plausible model-agnostic … (https://www.themoonlight.io/ko/review/countarfactuals-generating-plausible-model-agnostic-counterfactual-explanations-with-adversarial-random-forests)
[4] LobeHub – posthog-헬로월드 | Skills Marketplace – LobeHub (https://lobehub.com/ko/skills/nivkazdan-skills-agents-catalog-posthog-hello-world)
[5] news.hada.io – Vince – Google Analytics를 대체 가능한 셀프 호스팅 솔루션 (https://news.hada.io/topic?id=18039)
[6] Time Humanoid Reaction Synthesis via … – Physically Plausible Real-Time Humanoid Reaction Synthesis via … (https://liner.com/ko/review/physreaction-physically-plausible-realtime-humanoid-reaction-synthesis-via-forward-dynamics)
[7] www.reddit.com – 구글 애널리틱스에서 더 나은 오픈 소스 대안으로 어떻게 갈아탔는지 (https://www.reddit.com/r/privacy/comments/p1m75u/how_i_switched_from_google_analytics_to_a_better/?tl=ko)
[8] Mong dev blog – feature flag로 지속적 배포하기(with. postHog, react) – Mong dev blog (https://mong-blog.tistory.com/entry/feature-flag%EB%A1%9C-%EC%A7%80%EC%86%8D%EC%A0%81-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0with-postHog-react)
[9] www.reddit.com – 셀프 호스팅 아날리틱스: 우마미, 플라우서블, 마토모 비교 : r/selfhosted (https://www.reddit.com/r/selfhosted/comments/1h0fle4/selfhosted_analytics_comparing_umami_plausible/?tl=ko)
[10] Reddit – PostHog가 너무 좋은 거 같은데, 진짜일까? : r/nextjs – Reddit (https://www.reddit.com/r/nextjs/comments/1jkdplv/posthog_seems_to_good_to_be_true_is_it/?tl=ko)

error: Content is protected !!