turin's blog

만들고, 터지고, 기록합니다

풀스택, Flutter, 서버 운영, SEO, 배포 삽질을 실제 프로젝트 기준으로 정리합니다. 검색해서 들어온 사람이 바로 쓸 수 있는 체크리스트와 명령을 남기는 게 목표입니다.

1175published
8topics
kopractical notes

자주 다루는 주제

주제별로 빠르게 훑어보기

웹 개발350Next.js283서버 운영165Docker110API80TypeScript58DB50Flutter39

전체 글

운영 중 부딪힌 문제를 검색 의도에 맞춰 정리

CI/CD

GitHub Actions 배포가 성공해도 웹이 예전 버전일 때 확인한 캐시 비교

CI 초록불만으로 배포 완료를 판단하지 않고 빌드 캐시, CDN, 브라우저 캐시를 나눠 검증한 비교 글입니다.

·1분 읽기
서버 운영1분 읽기

Ubuntu 서버 디스크 사용량을 오해하지 않게 du와 df를 함께 본 설정 노트

df와 du의 숫자가 다를 때 삭제한 파일을 다시 지우기보다 열린 파일과 마운트를 확인한 순서입니다.

계속 읽기 →
Next.js1분 읽기

React 상태 업데이트가 늦게 보일 때 렌더링 경계를 나눈 기록

버튼을 눌렀는데 화면 일부만 늦게 바뀌던 문제를 재현하고, 상태 위치와 key를 분리해 확인한 기록입니다.

계속 읽기 →
웹 개발2분 읽기

웹훅 재전송을 대비해 요청 ID와 멱등 키를 나눈 비교 글

결제 알림이 두 번 들어왔을 때 요청 ID와 멱등 키를 같은 것으로 보지 않고 처리 기준을 세운 기록이다.

계속 읽기 →
Docker1분 읽기

Docker Compose 배포에서 orphan 컨테이너를 지우기 전 확인한 체크리스트

서비스 이름을 바꾼 뒤 남은 컨테이너 경고를 보고 무턱대고 삭제하지 않기 위해 만든 배포 점검표다.

계속 읽기 →
Next.js1분 읽기

Next.js loading.tsx가 바로 보이지 않을 때 확인한 짧은 튜토리얼

loading.tsx를 만들었는데 전환 중 화면이 그대로여서 Suspense 경계와 캐시를 확인한 방법을 적었다.

계속 읽기 →
서버 운영1분 읽기

cron 시간이 KST와 어긋났을 때 NTP부터 확인한 서버 설정 노트

매일 새벽에 돌려 둔 백업 작업이 한 시간 늦게 기록됐을 때 timezone만 바꾸지 않고 확인한 순서다.

계속 읽기 →
Next.js2분 읽기

React ResizeObserver를 붙였다가 무한 렌더를 막은 실수 정리

컨테이너 폭을 읽어 카드 개수를 바꾸려다 ResizeObserver와 상태 업데이트가 서로를 다시 부른 문제를 정리했다.

계속 읽기 →
Docker1분 읽기

Next.js 이미지 업로드 화면에서 EXIF 회전을 놓친 짧은 튜토리얼

휴대폰 세로 사진만 눕던 업로드 미리보기를 EXIF까지 처리해 고친 방법.

계속 읽기 →
DB1분 읽기

PostgreSQL 복구 연습에서 pg_dump 파일만 믿고 놓친 세 가지

백업 파일은 있었지만 실제 복원에서 권한과 확장을 확인하게 된 회고.

계속 읽기 →
API1분 읽기

작은 API에 rate limit을 넣기 전 응답 기준부터 정한 설정 노트

로그인과 문의 API에 제한을 추가하면서 상태 코드와 프록시 신뢰 범위를 정한 메모.

계속 읽기 →
Next.js1분 읽기

React 탭 전환에서 useEffect가 예전 데이터를 덮어쓴 실수 정리

빠른 탭 전환 중 이전 요청이 늦게 도착해 화면을 덮어쓴 문제를 고친 기록.

계속 읽기 →
서버 운영1분 읽기

Nginx 인증서 갱신 뒤 443이 열리지 않았을 때 먼저 확인한 경로

인증서 갱신 성공 뒤 HTTPS가 열리지 않아 실제 경로를 대조한 기록.

계속 읽기 →
Next.js1분 읽기

검색 결과의 제목이 매번 달라질 때 canonical과 메타데이터를 고친 튜토리얼

쿼리스트링이 붙은 같은 페이지가 검색에 섞였을 때 Next.js metadata로 canonical을 지정한 짧은 튜토리얼.

계속 읽기 →
Docker1분 읽기

작은 VPS에서 디스크가 찼을 때 Docker 정리 순서를 정한 체크리스트

무작정 docker system prune을 실행하기 전, 실제 점유 위치와 복구 가능한 정리 순서를 적은 체크리스트.

계속 읽기 →
Next.js1분 읽기

배포용 환경 변수 이름을 바꾸기 전에 확인한 Next.js 공개 범위 비교

NEXT_PUBLIC_ 접두사와 서버 전용 환경 변수의 차이를 배포 환경에서 검증한 비교 메모.

계속 읽기 →
Next.js1분 읽기

React 모달을 포털로 옮기고 스크롤 잠금을 다시 설계한 회고

z-index만 올리던 모달 문제를 포털과 body 스크롤 잠금으로 정리한 프로젝트 회고.

계속 읽기 →
Next.js1분 읽기

Next.js API 라우트에서 413을 만났을 때 요청 크기부터 재본 기록

파일 업로드가 아니라 JSON 요청에서도 413이 날 수 있다. 프록시와 애플리케이션의 제한을 구분해 확인한 기록.

계속 읽기 →
웹 개발1분 읽기

A 15 Minute Incident Checklist for a Small Side Project

A practical incident response checklist created after a silent outage.

계속 읽기 →
서버 운영1분 읽기

Reverse Proxy Note: Keeping the Real Client IP

A server configuration note on client IPs, trusted proxies, and rate limits.

계속 읽기 →
Next.js1분 읽기

Fixing Stale Results in a React Debounced Search

A short React tutorial for preventing earlier search responses from replacing newer ones.

계속 읽기 →
API1분 읽기

The Environment File Copy That Hid a Missing API Key

A deployment mistake and a small startup check that catches missing configuration.

계속 읽기 →
Docker1분 읽기

Why Next Image Returned 400 Only After Deployment

A troubleshooting record for production-only next/image failures.

계속 읽기 →
웹 개발1분 읽기

사이드 프로젝트 공개 전 문의 이메일을 먼저 만든 체크리스트

기능 배포 뒤에야 문의를 받을 통로가 없다는 사실을 알게 된 경험을 바탕으로, 공개 전 최소 운영 연락처를 준비하는 체크리스트입니다.

계속 읽기 →