turin's blog
만들고, 터지고,
기록합니다
풀스택, Flutter, 서버 운영, SEO, 배포 삽질을 실제 프로젝트 기준으로 정리합니다. 검색해서 들어온 사람이 바로 쓸 수 있는 체크리스트와 명령을 남기는 게 목표입니다.
자주 다루는 주제
주제별로 빠르게 훑어보기
전체 글
운영 중 부딪힌 문제를 검색 의도에 맞춰 정리
API 상태 코드 체크리스트
API 응답의 상태 코드가 의미하는 바를 정확히 이해하고 올바른 코드를 반환하는 방법.
Docker 이미지 용량이 너무 크면 배포가 느려진다
같은 애플리케이션인데 배포 속도가 느릴 때 이미지 레이어를 최적화하는 방법.
계속 읽기 →React Server Component 버그는 서버에서만 터진다
로컬 개발 환경에서는 보이지 않는 에러가 배포 후 나타날 때 확인할 것들.
계속 읽기 →관리자 기능 변경 시 멱등성 보장하기
같은 요청을 여러 번 보내도 결과가 같도록 만드는 설계 패턴과 테스트 방법.
계속 읽기 →Redis가 떠 있는데 캐시가 작동 안 할 때
Redis 컨테이너가 정상인데 캐시 조회가 실패할 때 네트워크 설정부터 확인하는 법.
계속 읽기 →배포 후 데이터가 초기화되는 문제 추적하기
개발할 때는 잘 저장되던 데이터가 배포 후 사라질 때 체계적으로 원인을 찾는 방법.
계속 읽기 →배열 필터할 때 환경변수를 안전하게 쓰는 방법
환경변수는 런타임에 동적으로 정해진다. 배열 필터 같은 로직에서 쓸 때는 타입 체크와 기본값이 필수다.
계속 읽기 →네트워크 오류로 사용자 입력이 중단될 때
폼 제출 중 네트워크 문제가 생기면 사용자는 로딩 상태에 갇힌다. 타임아웃과 재시도 로직을 미리 준비하자.
계속 읽기 →서버에서만 터질 때 확인할 로그
로컬에선 완벽한데 배포 환경에서 실패한다. 컨테이너 로그가 답이다.
계속 읽기 →프론트와 서버의 상태 코드 계약이 어긋날 때
클라이언트는 200을 기대하는데 서버가 400을 보내거나, 에러 형식이 다르면 앱이 깨진다. 하나의 규칙으로 통일하자.
계속 읽기 →TypeScript Record 타입 쓸 때 자주 하는 실수
Record 타입은 유연하지만, 값의 타입이 부정확하면 런타임 에러로 터진다. 타입 가드와 readonly를 함께 쓰자.
계속 읽기 →API rate limit에 자꾸 걸릴 때
Rate limit 에러는 응답 헤더에 힌트가 있다. Retry-After를 읽고, 요청 빈도를 조절하거나 캐시 전략을 바꾸자.
계속 읽기 →배포 후 환경변수가 적용 안 될 때
롤백했는데도 구 버전 동작이 계속 되거나, 환경변수 변경 후 앱이 여전히 옛날 값을 쓰고 있다면 앱 재시작이 문제일 수 있다.
계속 읽기 →Postgres 마이그레이션이 멈췄을 때 확인할 것
마이그레이션이 hang되거나 실패하면, 보통은 lock, 연결 풀 부족, 또는 constraint 위반이 원인이다.
계속 읽기 →SSG 페이지가 검색 결과에 안 나타날 때
정적 페이지는 빌드 시점에 이미 생성된다. 검색 노출이 안 되려면 메타데이터, robots.txt, 사이트맵을 먼저 확인해야 한다.
계속 읽기 →Dockerfile 빌드가 로컬에선 되는데 배포에서 실패할 때
도커 이미지는 빌드 환경에 따라 다르게 나온다. 캐시, 네트워크, 권한 문제가 숨어있을 수 있다.
계속 읽기 →React 상태가 빌드에서만 깨질 때
개발 환경에선 잘 돌아가는데 빌드 후에 상태가 꼬이는 경우가 있다. 보통 의존성 배열 실수나 클로저 문제다.
계속 읽기 →API 날짜 필터가 꼬일 때 먼저 볼 것
날짜 데이터는 단순할수록 복잡한 버그를 숨긴다. 타임존, 포맷, 비교 로직 중 하나가 어긋나면 개발자도 사용자도 같은 데이터를 보지 않는다.
계속 읽기 →Flutter 빌드 시 놓치기 쉬운 Gradle 설정
"빌드 실패"라는 에러 메시지만 나오고 원인이 뭔지 모를 때 체크해야 할 것들.
계속 읽기 →Next.js 배포 후 SEO 메타데이터 확인하기
로컬에서 봤던 제목과 설명이 배포 후 제대로 나타나지 않을 때 확인할 것들.
계속 읽기 →응답 캐싱이 가리는 버그 찾기
이전 응답이 캐시돼서 새 데이터를 못 볼 때 체계적으로 캐시를 제거하는 방법.
계속 읽기 →운영 중 네트워크 문제 빠르게 찾기
사용자 보고 후 즉시 대응해야 할 때 네트워크 문제를 어디서부터 시작할지.
계속 읽기 →데이터베이스 쿼리 디버깅
로컬에서 잘 돌던 쿼리가 배포 환경에서 안 될 때 체크해야 할 것들.
계속 읽기 →Docker 로그로 컨테이너 문제 추적하기
컨테이너가 실행 중인데 접속이 안 될 때 체계적으로 원인을 찾는 방법.
계속 읽기 →