블로그
개발하면서 배운 것들을 기록합니다.
버전 1.0.1조회 7
웹사이트 검색 노출 가이드 — robots.txt·사이트맵·RSS·IndexNow의 역할 나누기
robots.txt·사이트맵·RSS·IndexNow의 역할과 Google·네이버·Bing에 사이트를 알리는 방법을 정리한다. 제출과 색인, 검색 노출은 서로 다른 단계임을 짚는다.
버전 1.0.0조회 9
MyHome Drizzle ORM 도입기 — Next.js에서 PostgreSQL을 타입 안전하게 다루기
Next.js App Router와 PostgreSQL 사이에 Drizzle을 붙인 실제 구성을 정리한다. 스키마·연결·Server Component/Action CRUD·SQL 마이그레이션까지, 개발 서버 연결 누수와 운영 DB 오접속처럼 직접 걸린 문제도 함께 다룬다.
버전 1.0.0조회 23
Playwright 브라우저 자동화 도입기 — 화면 없이 시험하고 관리 작업까지 맡기기
MyHome의 E2E 시험과 블로그 관리 작업을 Playwright에 맡겼다. headless Chromium이 화면 없이 로그인·입력·업로드·검증하고, locator·자동 대기·trace로 실패 원인까지 남기는 방식을 적었다.
버전 1.0.0조회 22
MyHome CI/CD 배포 흐름 구축기 — GitHub Actions와 Docker Compose 기반 태그 배포
개발 서버는 현재 브랜치를 바로 보여 주고, 운영은 v* 태그에서만 나가게 만들었다. GitHub Actions 의 검사, self-hosted runner, Docker Compose 의 마이그레이션 순서, 앱만 돌아오는 롤백까지 적었다.
버전 1.0.0조회 22
MyHome 도메인 이전기 — Cloudflare 에서 사고 DNS 붙이고 프록시 뒤에 Caddy 구성하기
duckdns 를 떠나 leechis.dev 를 샀다. Cloudflare 에서 사고, A 레코드와 구름을 붙이고, 프록시 뒤에서 Caddy 에 오리진 인증서를 물리기까지. 인증서가 왜 두 장이 되는지, 도메인이 .dev 라서 알림 규칙이 운영을 뺄 뻔한 일, 프록시 뒤에서도 패스키가 되는지 확인한 것까지 적었다.
버전 1.0.0조회 16
MyHome 감시 스택 구축기 (2) — Next.js 앱 지표를 올리고 대시보드를 코드로
힙·이벤트 루프·글 수처럼 앱만 아는 숫자를 prom-client 로 내고 Grafana 대시보드에 올렸다. 컨테이너 안의 Prometheus 가 앱에 접근하지 못하는 문제를 Caddy 로 풀고, 문을 세 겹으로 막고, 40KB 짜리 대시보드 JSON 을 손으로 고치지 않는 방법까지.
버전 1.0.0조회 21
MyHome 감시 스택 구축기 (1) — Prometheus·Docker 로 올리고 사이트에 임베드하기
Prometheus 와 Grafana 를 Docker 로 올리고, 그 대시보드를 사이트 관리 화면 안에 iframe 으로 임베드했다. 사이트에 로그인하면 대시보드도 열린다. compose·prometheus.yml·Caddyfile·앱 코드를 줄이지 않고 전부 담은 따라 하기 가이드. 프레임을 막는 헤더와 문지기(forward_auth)에서 걸린 것도 적었다.
버전 1.0.0조회 19댓글 1
MyHome 개인 홈페이지 구축기 — Next.js · Drizzle · PostgreSQL 로 나흘 만에 첫 판
나흘 만에 첫 판을 내고 계속 손보고 있다. Next.js 16, Drizzle, PostgreSQL 18, Docker, Caddy 로 만들었다. 잘된 것보다 걸린 것을 더 자세히 적었다.
버전 1.0.0조회 25
Caddy 리버스 프록시 구축기 — 서버 한 대의 여러 서비스를 도메인으로 나누고 문을 하나로
서버 한 대에 서비스가 늘면서 포트를 외우게 됐다. 감시 도구 셋이 인터넷에 열려 있던 것을 발견하고 정리한 과정. 바깥으로 나가는 문은 Caddy 하나뿐으로.
버전 1.0.0조회 18
OpenClaw 구축 및 운영 가이드