프로젝트가 Replit 작업 공간에서 잘 실행되고 출시되자마자 누락된 환경 변수, 빈 API 키, 존재하지 않는 데이터베이스 주소를 보고하기 시작한다면, 이런 문제는 보통 환경 변경으로 코드가 깨지는 것이 아니라, 배포 환경이 원하는 대로 작업 공간 내 모든 것을 자동으로 상속하지 않기 때문입니다.
현재 Replit 문서에서 가장 중요한 팁은 이슈를 게시할 때 배포 패널의 프로덕션 비밀과 환경 변수를 먼저 확인해야 한다는 점입니다. 많은 사람들이 프로그램이 Workspace에서 실행될 수 있고, 기본 릴리스 환경도 같은 값을 가진다는 것만 확인하지만, 출시 후에는 프로덕션 환경이 전혀 제공되지 않는다는 것을 알게 됩니다.
이 구덩이는 특히 두 가지 상황에 취약합니다. 먼저, 작업 공간 셸이나 디버깅 프로세스에서 임시로 환경 변수를 설정하되, 공식 Secret에는 설정하지 않습니다. 둘째, 팀 내 누군가는 작업 공간에서 값을 볼 수 있지만, 배포 대상에는 이런 구성이 없어서 "여기서는 괜찮지만 온라인은 안 된다"는 착각을 만듭니다.
다음과 같이 배열하는 것이 권장됩니다:
1. 프로그램이 실행되기 위해 의존해야 하는 모든 환경 변수를 나열한다.
2. 비밀과 배포 구성을 하나씩 점검하세요. 단순히 작업 공간이 있는지 확인하는 것이 아닙니다.
3. 배포 후에는 로그나 출력을 사용하여 현재 환경에서 어떤 값이 읽혔는지 확인합니다.
4. 로직이 개발과 생산을 구분해야 한다면, 조건부 전환에 REPLIT_DEPLOYMENT과 같은 환경 변수를 명시적으로 사용한다.
Replit은 최근에 "Secrets를 배포하여 작업 공간 비밀과 더 잘 동기화한다"는 방향으로 나아갔지만, 그렇다고 해서 검사를 건너뛸 수 있는 것은 아닙니다. 특히, 오래된 프로젝트, 마이그레이션된 프로젝트, 다인 협업 프로젝트는 '한쪽은 가치가 있고 다른 쪽은 없다'는 반동기식 상태를 가질 가능성이 가장 높습니다.
따라서 작업 공간에서 실행할 수는 있지만, 릴리스 후 환경 변수가 부족하므로 프레임워크 호환성 탓을 하지 마세요. 비밀 환경과 배포 환경을 따로 확인하는 것이 코드를 계속 변경하는 것보다 보통 더 빠릅니다.