← 전체 글로 돌아가기

웹 개발

배포 전에 연결 문자열 다시 한 번 확인하기

데이터베이스 연결 문자열은 작은 오타도 배포 후 서비스 전체를 내릴 수 있다. 배포 전 체크리스트를 정리했다.

로컬과 배포 환경의 연결 문자열이 다르다

로컬에서 개발할 때는 localhost를 사용하지만 배포 후에는 실제 데이터베이스 호스트가 필요하다. 이 과정에서 오류가 나기 쉽다.

내가 경험한 사례:

  • localhost:5432를 그대로 배포 환경에 배포
  • 환경 변수 파일을 커밋하지 않음
  • 호스트명은 맞는데 포트를 빼먹음

환경 변수 확인 체크리스트

배포 전에 다음을 확인한다:

# 1. 로컬 환경 변수
grep -E 'DATABASE_URL|DB_HOST|DB_PORT' .env.local

# 2. 배포 환경 설정
# Docker: docker inspect <container> | grep ENV
# 클라우드: 대시보드의 환경 변수 섹션

# 3. 실제 연결 테스트
psql -h db.example.com -U user -d dbname -c 'SELECT 1'

연결이 성공하면 적어도 호스트, 포트, 인증 정보는 맞다.

설정 파일의 구조

로컬과 배포 환경의 차이를 명확히 하자:

.env.local (로컬, 커밋X)
DATABASE_URL=postgresql://user:pass@localhost:5432/dev

.env.production (배포, 보안이 필요하면 따로 설정)
DATABASE_URL=postgresql://user:[email protected]:5432/prod

빌드 스크립트나 배포 자동화에서 올바른 환경 변수를 로드하는지 확인한다.

사용자 영향 확인

배포 직전 마지막 점검:

# 빌드와 로컬 테스트
npm run build
npm run start  # 프로덕션 모드로 실행

# 데이터베이스 쿼리 테스트
select * from users limit 1;

로컬에서 제대로 동작하는지 확인한 후 배포한다.

실수를 줄이는 습관

배포 후 다음을 확인한다:

  • 공개 화면에서 데이터가 보이는가?
  • 실제 사용자 데이터가 나타나는가?
  • 환경 차이로 인한 오류가 있는가?

문제를 발견했을 때는 즉시 기록한다:

  • 언제 배포했는가
  • 어떤 값을 사용했는가
  • 어디서 실패했는가

이런 기록이 모여 다음 배포를 훨씬 안전하게 만든다.