plzhans (손원철) @plzhans

개발하며 구축한 것들의 트러블슈팅 기록을 남기는 블로그입니다.

GitHub LinkedIn code mail rss

Categories
Tags
최신글 인기글
Garage 설치와 구성 - 도커로 띄우는 S3 호환 오브젝트 스토리지
Garage 설치와 구성 - 도커로 띄우는 S3 호환 오브젝트 스토리지 missing field s3_region 부터 서명 리전 불일치까지. 도커 컴포즈로 Garage 를 띄워 버킷에 객체를 넣는 데까지.
Infra 2026-09-23
garage-webui 설치 - Garage 클러스터와 버킷을 브라우저에서 관리하기
garage-webui 설치 - Garage 클러스터와 버킷을 브라우저에서 관리하기 Garage 에 garage-webui 를 붙여 레이아웃·버킷·키를 브라우저에서 관리한다. compose 서비스 하나와 htpasswd 로그인 설정.
Infra 2026-09-23
Cloudflare 로 AI 봇 차단하기 - Managed robots.txt 와 AI Crawl Control
Cloudflare 로 AI 봇 차단하기 - Managed robots.txt 와 AI Crawl Control Cloudflare 가 robots.txt 를 대신 써 주고 AI 봇을 엣지에서 차단한다. 어떤 봇이 얼마나 가져갔는지도 보여 준다.
Web 2026-09-16
robots.txt 로 AI 크롤러 제어하기 - 검색·학습·에이전트를 나눠 허용하는 방법
robots.txt 로 AI 크롤러 제어하기 - 검색·학습·에이전트를 나눠 허용하는 방법 AI 크롤러 때문에 robots.txt 에 적을 것이 늘었다. 용도별 봇 이름과 Google-Extended 와 Content-Signal 을 정리한다.
Web 2026-09-16
Sentry 추적 헤더 - 나가는 모든 요청에 붙는 이유와 tracePropagationTargets
Sentry 추적 헤더 - 나가는 모든 요청에 붙는 이유와 tracePropagationTargets Sentry 는 나가는 모든 요청에 sentry-trace 와 baggage 를 붙인다. 왜 붙는지와 tracePropagationTargets 로 좁히는 방법.
Develop 2026-09-16
공공데이터포털 API 400 오류 - 헤더에 environment 가 있으면 거부한다
공공데이터포털 API 400 오류 - 헤더에 environment 가 있으면 거부한다 INVALID_REQUEST_PARAMETER_ERROR 는 파라미터 문제가 아닐 수 있다. data.go.kr 은 헤더 값의 environment= 을 거부한다.
Develop 2026-09-16
Cloudflare Workers 정적 사이트 가이드 - 배포부터 SEO까지
Cloudflare Workers 정적 사이트 가이드 - 배포부터 SEO까지 정적 사이트를 Cloudflare 에 올리고, 그 앞에 코드를 한 겹 얹어 SEO 를 개선하기까지. 네 편으로 나눠 정리한 시리즈의 안내판.
Web 2026-09-11
Cloudflare Workers 정적 사이트 호스팅 - 요청 흐름과 과금 기준
Cloudflare Workers 정적 사이트 호스팅 - 요청 흐름과 과금 기준 Workers Static Assets 가 무엇이고 요청이 어떤 순서로 흐르는지. 언제 워커가 돌고 언제 과금되는지. 정적 사이트에 동적 처리를 얹기 전에 알아야 할 것.
Web 2026-09-11
Cloudflare Workers 캐시 설정 방법 - 엣지 캐시와 Tiered Cache
Cloudflare Workers 캐시 설정 방법 - 엣지 캐시와 Tiered Cache 워커가 외부 API 를 부를 때 캐시를 거는 두 가지 방법과, 모르면 반드시 밟는 함정 셋. 데이터센터별 캐시·Tiered Cache·캐시 키.
Web 2026-09-11
React SPA SEO 개선 방법 - Cloudflare Workers로 메타 태그부터 SSR까지
React SPA SEO 개선 방법 - Cloudflare Workers로 메타 태그부터 SSR까지 React SPA 를 정적 호스팅에 올리면 원본 HTML 이 빈 껍데기다. 서버를 새로 세우지 않고 Cloudflare Workers 만으로 단계적으로 개선한 과정.
Web 2026-09-11
wrangler 사용법 - Cloudflare Workers 로컬 개발과 배포
wrangler 사용법 - Cloudflare Workers 로컬 개발과 배포 wrangler 설치와 타입 설정, wrangler dev 로 workerd 를 띄우는 법, 그리고 배포. wrangler dev 가 프론트 개발 서버가 아니라는 점부터.
Web 2026-09-11
Hugo 블로그 만들기 - 시작부터 SEO까지 Notion→Hugo→GitHub Pages로 블로그를 만들고, 커스텀 도메인 연결, 다국어 지원, 보안 헤더 적용까지 순서대로 정리합니다.
Web 2026-09-03
VPN/원격 접속 가이드 - 뭘 골라야 하나 Tailscale, WireGuard, wg-easy 중 상황에 맞는 VPN 방식을 고르는 방법을 정리합니다. 포트포워딩 없이 빠르게 시작하는 법부터 직접 서버를 운영하는 방법까지 비교합니다.
Networking 2026-09-03
로컬 AI/LLM 인프라 구축 가이드 Ollama로 로컬 LLM 서버를 세우고, 평소 쓰던 Claude Code까지 로컬 모델로 연결하는 방법을 정리합니다.
AI 2026-09-03
SEO 감사가 지적한 보안 헤더 4개, Cloudflare에서 코드 없이 적용하기
SEO 감사가 지적한 보안 헤더 4개, Cloudflare에서 코드 없이 적용하기 SEO 감사 리포트가 HSTS·CSP·X-Content-Type-Options·Referrer-Policy를 지적하는 이유와 각 헤더의 역할을 정리합니다. 값이 고정된 헤더는 Cloudflare Transform Rules로, 자주 바뀌는 CSP는 HTML meta 태그로 나눠 관리하는 방법과 meta에서 frame-ancestors가 안 되기 때문에 …
Web 2026-08-30
텔레그램 대화 백업하는 방법 - 설치 없이 브라우저에서 zip으로 내보내기
텔레그램 대화 백업하는 방법 - 설치 없이 브라우저에서 zip으로 내보내기 텔레그램 공식 내보내기와 달리 기간 지정·특정 방 선택·말풍선 보기·익명 처리가 가능한 브라우저 백업 도구를 소개합니다. 설치 없이 바로 쓰고 서버를 거치지 않아 로그인 정보가 외부로 나가지 않습니다.
Etc 2026-07-27
WireGuard 설치와 클라이언트 접속 설정 방법
WireGuard 설치와 클라이언트 접속 설정 방법 Linux 서버에 WireGuard VPN을 설치하고 키 생성 방화벽 개방 서비스 등록까지 구성하는 방법을 설명합니다. Mac 클라이언트 conf 설정과 GUI 연결 확인 절차를 포함해 안전한 원격 접속 환경을 구축할 수 있습니다.
Networking 2026-07-10
오라클 클라우드 Always Free A1 인스턴스 생성 방법 - 공인 IP 연결과 SSH 보안 설정
오라클 클라우드 Always Free A1 인스턴스 생성 방법 - 공인 IP 연결과 SSH 보안 설정 Oracle Cloud Always Free A1(ARM) 인스턴스를 만드는 방법을 단계별로 정리합니다. 무료 스펙 선택부터 공인 IP 연결 SSH 키 설정 VCN Security List와 NSG로 SSH 22 포트 제한까지 포함합니다.
Cloud 2026-07-10
Claude Code를 Ollama 로컬 LLM으로 사용하는 방법
Claude Code를 Ollama 로컬 LLM으로 사용하는 방법 Claude Code를 Ollama 로컬 LLM으로 연결하는 방법을 설명합니다. Claude 호환 API, 환경변수, 모델 선택, LiteLLM 프록시가 필요한 경우까지 정리합니다.
AI 2026-07-03
Ollama 설치와 로컬 LLM 서버 구축 방법
Ollama 설치와 로컬 LLM 서버 구축 방법 Ollama로 Linux 서버에서 로컬 LLM을 실행하는 방법을 설명합니다. 설치, 외부 접속 설정, 모델 선택, HTTP API 호출 예제로 개인 AI 서버 구축 흐름을 정리합니다.
AI 2026-07-03