4월, 2026의 게시물 표시

gitea / ubuntu linux 개발 환경 구축기

개발 환경 구축기 Gitea가 뭔가요 Gitea는 내 서버에 직접 설치해서 운영할 수 있는 Git 저장소 관리 도구입니다. GitHub처럼 코드를 올리고, 버전을 관리하고, 웹 UI로 파일을 둘러볼 수 있는데, 다른 점이 있다면 서버가 내 것이라는 겁니다. Go 언어로 만들어져서 가볍고 빠릅니다. 라즈베리파이에도 돌아갈 정도입니다. 왜 GitHub 말고 Gitea인가 GitHub도 Private 저장소를 무료로 제공합니다. 그러니까 보안 때문에 Gitea를 선택해야 한다는 건 아닙니다. 다만 이런 경우라면 Gitea가 맞습니다. 소스코드를 외부 서버에 올리기 싫을 때. 인터넷이 안 되는 환경에서 써야 할 때. 이미 서버가 있고 직접 관리하고 싶을 때. 이 세 가지 중 하나라도 해당된다면 Gitea를 선택하면 됩니다. 참고 개인 용도라면 GitHub 무료 플랜도 충분합니다. Private 저장소도 무제한이고 서버 관리를 안 해도 됩니다. 굳이 서버를 직접 관리하고 싶지 않다면 GitHub를 쓰세요. 설치 전 준비 이 글의 환경은 Ubuntu 20.04 LTS입니다. Docker 없이 바이너리를 직접 설치합니다. 먼저 OS 버전을 확인합니다. cat /etc/os-release 설치 과정 먼저 Gitea 전용 시스템 계정을 만듭니다. Gitea는 이 계정으로 실행됩니다. sudo adduser --system --shell /bin/bash \ --gecos 'Git Version Control' \ --group --disabled-password \ --home /home/git git 바이너리를 다운로드합니다. sudo wget -O /usr/local/bin/gitea \ https://dl.gitea.com/gitea/1.21.11/gitea-1.21.11-linux-amd64 su...

로컬 Gemma를 Claude Code 백엔드로 쓰기

로컬 Gemma를 Claude Code 백엔드로 쓰기 ollama 없이, 파이썬 FastAPI 서버만으로 Gemma를 띄우고 LAN의 어떤 PC에서든 Claude Code가 이를 백엔드로 사용하게 하는 방법입니다. 전체 구조 [Host PC - Windows] gemma_server.py (FastAPI + transformers) └─ /v1/messages ← Anthropic Messages API └─ port 8000 → LAN 전체 허용 ────────── LAN ────────── [Client - Windows / Linux] ANTHROPIC_BASE_URL = http://192.168.x.x:8000 claude → Gemma로 응답 ⚠️ 중요: Claude Code는 OpenAI 포맷( /chat/completions )이 아니라 Anthropic Messages API 포맷 ( /v1/messages )을 사용합니다. 1. 패키지 설치 pip install fastapi uvicorn transformers accelerate torch 2. 서버 코드 (gemma_server.py) import json, os, time, uuid from threading import Thread from typing import Optional import torch, uvicorn from fastapi import FastAPI from fastapi.responses import StreamingResponse from pydantic import BaseModel from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer MODEL_ID = os.environ.get("MODEL_ID", "google/gemma-3-4b-it") HF_TOKEN...

키움 API 를 이용한 자동매매 프로그램 개발 (삽질일기), KIWOOM REST API AUTO TRADING BOT

Python Kiwoom REST API 알고리즘 트레이딩 키움 REST API로 그리드 자동매매 봇 만들기 — 삽질 기록 v2.0부터 v3.4까지, 3주간의 개발 과정에서 겪은 오류와 해결법을 정리합니다. 2026-04-02 · TIGER KOSDAQ150 · Python 3 · Kiwoom REST API 목차 프로젝트 개요 및 아키텍처 핵심 매매 전략 — 그리드 + 연속 스트릭 삽질 1: API 파라미터가 문서랑 달랐다 삽질 2: Rate Limit — HTTP 429의 습격 삽질 3: 페이지네이션 없이 체결내역 집계했더니 수익이 반토막 삽질 4: 오버나이트 토큰 만료 — 매일 아침 봇이 죽는 이유 상태 복구 전략의 변천사 마무리: 지금 돌아가고 있는 구조 1. 프로젝트 개요 및 아키텍처 TIGER KOSDAQ150 ETF를 대상으로 그리드 방식의 자동매매 봇을 만들었다. 목표는 단순하다: 기준가 위아래에 매수/매도 주문을 4개 깔아두고, 체결이 발생하면 즉시 재정비한다. v2.0에서 완전히 새로 짠 구조는 다음과 같다. config.py 중앙 설정, .env 로드 kiwoom_api.py REST API 클라이언트 trader.py 핵심 매매 로직 main.py 진입점, 대시보드 서버 cancel_all.py 긴급 주문 취소 도구 .env API 자격증명 (gitignore) API 인증은 Bearer 토큰 방식이라 acnt_no / acnt_pwd 를 매 요청마다 넘길 필요가 없었다. 시뮬레이션(모의투자)은 헤더에 simulation-yn: "Y" 만 추가하면 된다. 2. 핵심 매매 전략 — 그리드 + 연속 스트릭 10초마다 폴링하며 아래 사이클을 반복한다. 매 사이클 (10s): 1. ka10075로 미체결 주문 수 조회 2. 주문 수 != 4이면: a...