회고캐시는 빨랐는데 첫 로딩은 왜 느렸을까: Notion 커버를 R2 CDN으로 옮긴 회고
Notion 커버의 첫 로딩 병목을 요청 경로에서 추적하고, Webhook 시점에 WebP로 변환해 Cloudflare R2 CDN으로 옮긴 설계와 운영 검증 과정을 정리했습니다.
- #Next.js
- #Cloudflare
- #Performance
- #Security
- #Kubernetes
- #Operations
Development Log
결과만 나열하지 않고 가설, 확인한 증거, 선택과 해결 과정을 남깁니다.
회고Notion 커버의 첫 로딩 병목을 요청 경로에서 추적하고, Webhook 시점에 WebP로 변환해 Cloudflare R2 CDN으로 옮긴 설계와 운영 검증 과정을 정리했습니다.
회고집 밖에서 홈서버에 접속하기 위해 공유기, DNS, Nginx와 HTTPS 경계를 하나씩 연결하고 검증한 기록입니다.
회고Docker로 서비스를 직접 운영하며 네트워크, 인증서와 컨테이너 장애를 계층별로 확인하는 습관을 만든 과정입니다.
회고Docker에서 사람이 관리하던 실행 상태를 K3s의 Desired State와 Traefik 요청 경로로 옮긴 과정입니다.
회고GHCR, GitHub Actions와 Argo CD를 연결해 main push가 K3s RollingUpdate로 이어지는 GitOps 흐름을 만든 기록입니다.
회고자동 배포 이후 probe, resource와 RollingUpdate 조건을 점검하며 Deployment를 운영 가능한 상태로 다듬은 기록입니다.
회고Argo CD Web Terminal의 검은 화면을 브라우저 이벤트부터 ServiceAccount와 RBAC 권한까지 추적한 기록입니다.
회고SSH Tunnel 의존을 줄이고 Cloudflare Tunnel, Access와 Google OIDC로 홈서버 관리 화면의 인증 경계를 만든 과정입니다.
회고반복 재시작의 OOMKilled 기록에서 비정상 프로세스를 찾아내고 Next.js 패치와 새 이미지 배포로 대응한 과정입니다.