turin's blog
만들고, 터지고,
기록합니다
풀스택, Flutter, 서버 운영, SEO, 배포 삽질을 실제 프로젝트 기준으로 정리합니다. 검색해서 들어온 사람이 바로 쓸 수 있는 체크리스트와 명령을 남기는 게 목표입니다.
자주 다루는 주제
주제별로 빠르게 훑어보기
전체 글
운영 중 부딪힌 문제를 검색 의도에 맞춰 정리
배포 후 빌드 로그를 제대로 읽는 법
배포 오류는 build 로그의 처음과 마지막만 보면 대부분 찾을 수 있다.
API 에러 응답을 일관되게 만들기
에러 응답 형식을 미리 정해두면 프론트엔드에서 처리하기 훨씬 쉬워진다.
계속 읽기 →서버에서만 에러가 날 때 체계적으로 찾기
로컬에서는 안 나는데 서버에서만 나는 에러는 환경 차이부터 확인해야 한다.
계속 읽기 →Postgres 마이그레이션이 안 먹을 때
데이터베이스 마이그레이션 에러는 스키마, 권한, 데이터 순서로 체크하면 찾을 수 있다.
계속 읽기 →React 컴포넌트가 너무 커졌을 때 나누기
컴포넌트를 나눌 때는 상태와 렌더링을 먼저 분리하고, 실제 재사용성을 고려해야 한다.
계속 읽기 →환경변수 타입 때문에 Next.js가 막힐 때
Next.js에서 환경변수 타입 에러는 build 로그와 .env 파일을 함께 보면 빨리 찾을 수 있다.
계속 읽기 →배포 전에 꼭 확인해야 할 것들
배포 전 체크리스트를 고정해두면 같은 실수를 반복하지 않을 수 있다.
계속 읽기 →Next.js 배포 후 메타데이터가 안 적용될 때
Next.js에서 SEO 메타데이터는 build 설정과 실제 배포 환경에서 다르게 작동할 수 있다.
계속 읽기 →서버 백업이 외부에서 접속이 안 될 때
백업 서버 접속 문제는 포트, 방화벽, 권한 순서로 체크하면 빠르게 찾을 수 있다.
계속 읽기 →React 모달에서 에러가 보이지 않을 때
모달 내 에러는 콘솔과 모달 상태를 함께 봐야 찾을 수 있다.
계속 읽기 →API에서 CORS 에러를 만났을 때
CORS 문제는 브라우저 콘솔과 네트워크 탭을 함께 보면 원인을 빠르게 찾을 수 있다.
계속 읽기 →폼 검증 디버깅할 때 먼저 확인할 것
React 폼 검증 버그를 좁히려면 UX 흐름 전체를 보고, 한 부분씩 확인해야 한다.
계속 읽기 →TypeScript 제네릭 타입 에러가 빌드 타임에만 날 때
TypeScript에서 제네릭 사용 시 로컬에서는 문제가 없는데 빌드할 때만 타입 에러가 발생하는 경우를 해결하는 방법을 정리했다.
계속 읽기 →웹 서비스 운영 중 리스트 페이지가 갑자기 느려지면
운영 환경에서 리스트 페이지의 성능이 저하되었을 때 원인을 찾고 개선하는 단계별 방법을 정리했다.
계속 읽기 →운영 중 데이터를 삭제해야 할 때 실수를 줄이는 방법
프로덕션 데이터베이스에서 데이터를 삭제하거나 초기화해야 할 때 되돌릴 수 없는 실수를 방지하는 체크리스트를 정리했다.
계속 읽기 →데이터베이스 스키마 변경 후 데이터가 사라졌을 때
프로덕션 데이터베이스에서 스키마 마이그레이션 후 데이터 손실이나 예상치 못한 동작이 발생했을 때 디버깅하는 방법을 정리했다.
계속 읽기 →로컬 SQLite 개발에서 운영 PostgreSQL로 이전할 때 체크리스트
SQLite 기반 개발 환경을 PostgreSQL로 마이그레이션할 때 확인해야 할 사항들을 정리했다.
계속 읽기 →Docker 컨테이너 로그를 읽고 문제를 찾는 순서
Docker 컨테이너가 실패했을 때 로그를 확인하고 문제를 디버깅하는 체계적인 방법을 정리했다.
계속 읽기 →웹 개발할 때 네트워크 요청이 막힐 때 순서대로 확인하는 법
웹 애플리케이션에서 API 요청이 실패하거나 응답이 오지 않을 때 체계적으로 원인을 찾아가는 방법을 정리했다.
계속 읽기 →멀티스테이지 Docker 빌드가 로컬과 서버에서 다르게 동작할 때
멀티스테이지 Dockerfile이 로컬 개발 환경과 CI/CD 서버에서 다른 결과를 낼 때 원인을 찾고 안전하게 수정하는 방법을 정리했다.
계속 읽기 →Unique 제약 위반 에러가 나면
데이터베이스에서 unique 제약 조건 때문에 배포가 실패할 때 디버깅하고 해결하는 방법을 정리했다.
계속 읽기 →Flutter 앱이 네트워크 요청을 하지 않을 때
Flutter 모바일 앱에서 API 호출이 안 되는 문제를 에뮬레이터와 실기기에서 다르게 디버깅하는 방법을 정리했다.
계속 읽기 →Flutter 리스트가 느릴 때 에뮬레이터와 실기기에서 다르게 보이는 이유
Flutter에서 리스트 성능이 느릴 때 에뮬레이터와 실제 안드로이드/iOS 기기에서 확인해야 할 사항들을 정리했다.
계속 읽기 →TypeScript에서 null 처리할 때 확인해야 할 것
TypeScript의 null 값 문제를 해결할 때 차례로 확인할 조건들을 정리했다.
계속 읽기 →