> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 배포 및 게시

> 게시 실패 디버그, 로그 읽기, 런타임 오류 수정, 재배포, 지역 변경 등 일반적인 게시 질문에 대한 답변.

이 답변은 게시 및 배포를 다룹니다. 단계별 문제 해결은 [배포 문제 해결](/ko/build/troubleshooting)을, 배포 유형 및 모니터링은 [Autoscale 배포](/ko/references/publishing/autoscale-deployments) 및 [배포 모니터링](/ko/references/publishing/monitoring-a-deployment)을 참조하세요.

<AccordionGroup>
  <Accordion title="&#x22;Autoscale 서비스 생성 중&#x22;에서 게시가 실패해요. 어떻게 디버그하나요?">
    대부분의 Autoscale 게시 실패는 배포 로그를 읽으면 수정할 수 있습니다:

    1. **게시**를 열고 실패한 배포를 찾으세요.
    2. 옆의 세 점 메뉴를 선택하여 로그를 여세요.
    3. 로그 출력을 복사하고 새 Agent 채팅을 열어 붙여넣고 무엇이 잘못되었는지, 어떻게 수정하는지 물어보세요.

    실행 명령을 설정했는데도 `No run command configured` 오류가 표시되면 배포 설정을 열고, 실행 명령의 연결을 끊었다가 다시 추가한 다음 저장하고 다시 게시하세요. [배포 문제 해결](/ko/build/troubleshooting)을 참조하세요.
  </Accordion>

  <Accordion title="게시는 성공했는데 앱에서 Internal Server Error가 표시돼요. 무엇이 잘못된 건가요?">
    게시는 성공했지만 라이브 앱에서 500 오류가 반환된다면 Replit 인프라가 아닌 앱 코드에 문제가 있는 것입니다:

    1. **게시**를 열고 로그를 확인한 다음 전체 오류 텍스트를 복사하세요.
    2. 새 Agent 채팅을 열고 로그를 붙여넣어 오류의 원인을 물어보세요.
    3. 수정 사항을 적용하고 다시 게시하세요.

    Agent가 문제를 찾지 못하면 **게시 → 기록**을 열고 마지막으로 작동했던 버전을 찾아 재배포하세요. [배포 문제 해결](/ko/build/troubleshooting)을 참조하세요.
  </Accordion>

  <Accordion title="빌드 또는 마이그레이션 중에 배포가 멈췄어요. 어떻게 해야 하나요?">
    1. **Shell** 패널을 열고 `kill 1`을 실행하여 백그라운드 프로세스를 재시작하세요. (Replit에서 `kill 1`은 안전합니다. 프로젝트의 메인 프로세스를 재시작하며 아무것도 삭제하지 않습니다.)
    2. **게시**를 열고 **게시**를 선택하여 새 배포를 시작하세요.
    3. 다시 실패하면 세 점 메뉴에서 실패한 배포의 로그를 열고 빌드 로그를 복사하여 진단을 위해 새 Agent 채팅에 붙여넣으세요.

    배포가 계속 멈춰 있다면 전체 빌드 로그와 함께 [Replit 지원팀에 문의](https://replit.com/support)하세요. [배포 문제 해결](/ko/build/troubleshooting)을 참조하세요.
  </Accordion>

  <Accordion title="앱이 라이브이지만 느리거나 타임아웃이 발생해요. 무엇을 확인해야 하나요?">
    1. 배포 로그에서 반복되는 타임아웃 또는 메모리 부족 메시지를 확인하세요.
    2. CPU 또는 메모리 한도에 대한 배포 리소스를 확인하세요. [배포 모니터링](/ko/references/publishing/monitoring-a-deployment)을 참조하세요.
    3. 새 Agent 채팅을 열고 최근 로그를 붙여넣어 Agent에게 병목 지점을 찾도록 요청하세요.

    일반적인 원인으로는 인덱스 없는 데이터베이스 쿼리, 블로킹 동기 작업, 메모리 누수가 있습니다. [Autoscale 배포](/ko/references/publishing/autoscale-deployments)의 경우 제로로 스케일 다운된 후 첫 번째 요청은 몇 초가 걸릴 수 있습니다. 이는 정상적인 콜드 스타트입니다.
  </Accordion>

  <Accordion title="배포 기록에 실패한 빌드가 표시돼요. 무엇이 잘못된 건지 어떻게 찾나요?">
    **게시 → 기록**을 열고 실패한 배포를 선택한 다음 빌드 로그를 확인하세요. `ERROR` 또는 `FAILED`로 표시된 첫 번째 줄을 찾으세요. 보통 그게 근본 원인이며 이후 줄은 그로 인한 결과입니다. 해당 섹션을 새 Agent 채팅에 복사하여 진단하세요. 대부분의 빌드 실패는 누락된 의존성, 잘못된 실행 명령, 또는 실패한 데이터베이스 마이그레이션에서 옵니다. [배포 모니터링](/ko/references/publishing/monitoring-a-deployment)을 참조하세요.
  </Accordion>

  <Accordion title="에디터 미리보기에서는 앱이 작동하는데 게시하면 작동하지 않아요. 왜 그런가요?">
    거의 항상 환경 간 구성 차이입니다. 다음을 확인하세요:

    * 개발 [Secrets](/ko/core-concepts/project-editor/app-setup/secrets) 패널의 모든 키가 배포 시크릿에도 설정되어 있는지 확인하세요. 서로 다른 환경입니다.
    * `DATABASE_URL`이 개발용이 아닌 프로덕션 데이터베이스를 가리키는지 확인하세요.
    * 하드코딩된 `localhost` 또는 `127.0.0.1` 참조가 없는지 확인하세요. 대신 상대 경로나 환경 기반 URL을 사용하세요.

    그런 다음 프로덕션 특정 오류에 대한 배포 로그를 확인하세요. [배포 문제 해결](/ko/build/troubleshooting)을 참조하세요.
  </Accordion>

  <Accordion title="Autoscale 배포가 계속 재시작돼요. SIGTERM이나 Exit code 1은 무엇을 의미하나요?">
    [Autoscale 배포](/ko/references/publishing/autoscale-deployments)는 설계상 정기적으로 재시작됩니다. 로그의 `SIGTERM`은 프로세스가 정상적으로 중지되었다는 의미입니다. 이는 정상입니다. `Exit code 1`은 프로세스가 자체적으로 충돌했음을 의미합니다. 실제 오류를 확인하려면 그 직전 줄을 확인하세요.

    재시작이 사용자에게 영향을 줄 만큼 빈번하다면 처리되지 않은 프로미스 거부, 메모리 부족 오류, 시작 실패를 유발하는 누락된 환경 변수를 찾아보세요.
  </Accordion>

  <Accordion title="환경 변수를 업데이트했는데 게시된 앱에 반영되지 않아요. 왜 그런가요?">
    Replit은 개발 및 프로덕션 시크릿을 별도의 저장소에 보관하며 하나를 변경해도 다른 쪽은 업데이트되지 않습니다. [개발 Secrets](/ko/core-concepts/project-editor/app-setup/secrets) 패널은 에디터에서만 사용 가능하며 게시된 앱은 배포 시크릿을 읽습니다.

    라이브 앱에서 변수를 업데이트하려면 배포 시크릿에 설정하고 **게시**를 열어 **게시**를 선택하여 다시 라이브로 push하세요. 새 값은 새 배포가 시작될 때 적용됩니다. [배포 문제 해결](/ko/build/troubleshooting)을 참조하세요.
  </Accordion>

  <Accordion title="코드를 변경하지 않고 재배포를 트리거하려면 어떻게 하나요?">
    **게시**를 열고 **게시**를 선택하세요. 변경 사항이 없어도 Replit이 현재 코드를 빌드하고 게시합니다. 시크릿 업데이트 후, 데이터베이스 재개 후, 또는 의존성 업데이트를 적용할 때 유용합니다.

    앱이 응답하지 않고 전체 재배포가 부담스럽다면 **Shell** 패널을 열고 `kill 1`을 실행하여 재배포 없이 백그라운드 프로세스를 재시작하세요.
  </Accordion>

  <Accordion title="게시 후 앱의 배포 지역을 변경할 수 있나요?">
    네. **게시**를 열고 새 지역을 선택한 다음 게시하여 해당 위치에 재배포하세요. [게시 지역](/ko/references/publishing/publishing-geography)을 참조하세요.

    데이터베이스 지역은 현재 위치에서 변경할 수 없습니다. 이동하려면 앱을 포크하고 새 지역에 포크된 버전을 배포하세요. 지역 변경 후 `.replit.app` 서브도메인이 변경될 수 있으므로, 안정적인 URL이 필요하다면 먼저 [커스텀 도메인](/ko/references/publishing/custom-domains)을 연결하고 배포 시크릿을 다시 추가하세요.
  </Accordion>

  <Accordion title="앱을 오프라인으로 만들거나 게시를 취소하려면 어떻게 하나요?">
    **게시**를 열고 배포 종료 옵션을 선택한 다음 확인하세요. 앱이 오프라인이 되고 배포 요금이 더 이상 발생하지 않습니다. 프로젝트 파일, 코드, 데이터베이스는 삭제되지 않으며 라이브 배포만 중지됩니다. 이 배포에 연결된 커스텀 도메인 연결이 제거되므로 재게시 시 다시 추가하세요.

    비용이 걱정된다면 [Autoscale 배포](/ko/references/publishing/autoscale-deployments)는 트래픽이 없을 때 제로로 스케일 다운되므로 종료하지 않아도 될 수 있습니다.
  </Accordion>
</AccordionGroup>

## 도움이 더 필요하신가요?

여기서 배포 질문의 답변을 찾을 수 없다면 [Replit 지원팀에 문의](https://replit.com/support)하세요.
