웹 개발
배포 전에 연결 문자열 다시 한 번 확인하기
데이터베이스 연결 문자열은 작은 오타도 배포 후 서비스 전체를 내릴 수 있다. 배포 전 체크리스트를 정리했다.
로컬과 배포 환경의 연결 문자열이 다르다
로컬에서 개발할 때는 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;
로컬에서 제대로 동작하는지 확인한 후 배포한다.
실수를 줄이는 습관
배포 후 다음을 확인한다:
- 공개 화면에서 데이터가 보이는가?
- 실제 사용자 데이터가 나타나는가?
- 환경 차이로 인한 오류가 있는가?
문제를 발견했을 때는 즉시 기록한다:
- 언제 배포했는가
- 어떤 값을 사용했는가
- 어디서 실패했는가
이런 기록이 모여 다음 배포를 훨씬 안전하게 만든다.