← 전체 글로 돌아가기

웹 개발

배포 전에 꼭 확인해야 할 것들

배포 전 체크리스트를 고정해두면 같은 실수를 반복하지 않을 수 있다.

혼자 개발해서 배포하면 작은 설정 실수나 누락이 자주 생긴다. 배포 후에야 발견되는 문제들 대부분은 배포 전에 다섯 분간 확인하면 방지할 수 있다.

핵심은 매번 다른 순서로 확인하는 게 아니라, 고정된 체크리스트를 가지고 같은 순서로 확인하는 것이다.

환경변수 확인

로컬 .env 파일과 배포 환경의 환경변수가 일치하는지 본다. 특히 API 엔드포인트, 데이터베이스 URL, 인증 토큰 같은 값들이 있으면 배포 환경에 맞게 설정되었는지 반드시 확인한다.

# 배포 환경의 환경변수 목록
env | grep -E 'DATABASE|API|SECRET'

빌드 완료 확인

Production 빌드가 제대로 완료되고, 빌드 과정에 경고나 에러가 없는지 본다.

npm run build 2>&1 | tee build.log

warning이라도 있으면 기록해두고, 다음 배포 때는 진짜 문제인지 아니면 무시해도 되는 건지 판단한다.

데이터베이스 마이그레이션

ORM(Prisma, TypeORM 등)을 쓰면, 배포 환경에서도 migration이 필요한지 확인한다. 새 테이블이나 컬럼이 추가되었다면 migration이 실행되어야 한다.

npx prisma migrate deploy
npx prisma db push

불필요한 로그 제거

console.log나 console.error가 프로덕션 코드에 남아 있으면 성능에 영향을 준다. 특히 큰 객체를 로깅하고 있다면 메모리 낭비다.

# 프로덕션 빌드의 로그 확인
grep -r "console\.log" src/

타입스크립트 타입 체크

build 전에 TypeScript 타입 에러가 없는지 확인한다.

npx tsc --noEmit

API 응답 테스트

배포 환경의 API 엔드포인트에 실제로 요청을 보내본다. 응답이 예상한 형식인지, 필요한 데이터가 모두 포함되어 있는지 본다.

curl -i https://api.example.com/endpoint

정적 자산 확인

CSS, JavaScript, 이미지 파일들이 제대로 배포되었고, 브라우저가 캐시하지 않도록 버전 관리가 되어 있는지 본다.

  1. 환경변수가 배포 환경에 맞게 설정되었는지 확인한다.
  2. build가 성공하고 warning이 없는지 본다.
  3. 필요한 데이터베이스 마이그레이션을 실행한다.
  4. 배포 환경에서 주요 API를 테스트한다.

배포 후 추가 확인

배포가 완료된 후에도 첫 몇 시간은 실제 사용자가 만나는 에러를 모니터링해야 한다. 에러 로그를 짧게라도 남겨두면 다음 배포 때 비슷한 문제를 방지할 수 있다.