Next.js + NestJS로 광고 차단 우회 조회수 카운터 만들기 (2편)
first-party 엔드포인트 하나로 광고 차단기를 우회하는 조회수 API를 만들었습니다. Next.js BlogViewTracker 확장, NestJS ViewsModule의 isbot·$inc·24시간 디바운스, view_logs 컬렉션 설계까지 정리했습니다.
first-party 엔드포인트 하나로 광고 차단기를 우회하는 조회수 API를 만들었습니다. Next.js BlogViewTracker 확장, NestJS ViewsModule의 isbot·$inc·24시간 디바운스, view_logs 컬렉션 설계까지 정리했습니다.
GA4만 쓰는 개인 기술 블로그는 독자의 60% 이상을 놓치고 있을 수 있습니다. Plausible·Umami 등 셀프호스팅 대안을 비교해보고, MongoDB 스택에서 실제로 선택할 수 있는 길을 정리했습니다.
SaaS를 뒤로하고 다시 이직·외주 시장의 문을 두드린 2주차의 기록. AI 시대, 전문성의 깊이(이직)와 넓이(외주) 사이에서 1인 개발자가 무엇을 먼저 갖춰야 할지에 대한 고민을 정리했습니다.
크립토마이너를 발견한 뒤 긴급 재배포, iptables 차단, Docker capability 제거, Next.js 보안 헤더까지 적용한 대응 과정. Coolify의 Docker 옵션 파싱 버그를 발견하고 PR을 올리기까지의 기록을 정리했습니다.
배포된 커밋의 Next.js 버전은 15.1.3이었습니다. pnpm-lock.yaml에는 이미 deprecated 경고가 적혀 있었고, 보안 패치 커밋은 존재했지만 배포되지 않은 채 방치되어 있었습니다. CVE-2025-55182의 공격 체인을 추적하며, 패치와 배포 사이의 간극이 얼마나 치명적인지 되짚어봅니다.
Coolify에서 NestJS 배포가 타임아웃으로 실패했습니다. 서버 리소스를 확인하려고 docker stats를 열었는데, Next.js 프론트엔드 컨테이너가 CPU 123%, 메모리 2.41GB를 점유하고 있었습니다. 컨테이너 안에서 발견한 정체불명의 바이너리와 마이닝 풀 연결까지, 배포 실패에서 크립토마이너를 발견하기까지의 추적 기록입니다.
Karpathy의 LLM Knowledge Base 방법론을 모노레포 환경에 1:1 대입해봤습니다. 7개 구성요소 중 6개는 이미 동작하고 있었고, 전면 도입보다 빠진 조각만 채우는 게 핵심이라는 결론에 도달했습니다.
AI가 코드를 만들어주는 시대, 워크트리로 병렬 개발까지 시도했지만 결국 가장 큰 병목은 검수하는 사람이 한 명이라는 사실이었습니다. 1인 모노레포 운영에서 느낀 현실적인 한계와 방향 전환을 정리했습니다.
NestJS Worker 배포 중 Coolify의 HEALTHCHECK 감지 버그를 발견했습니다. Dockerfile 전체에서 문자열을 검색하는 로직이 multi-stage target을 고려하지 않는 문제였고, 소스 분석부터 PR 제출까지의 과정을 정리했습니다.