> ## 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/features/publishing/deployment-types#autoscale) 및 [배포 모니터링](/ko/features/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. `Cmd+K`(Mac) 또는 `Ctrl+K`(Windows)로 명령 팔레트를 열고 **Restart compute**를 검색하여 선택하세요.
    2. **게시**를 열고 **게시**를 선택하여 새 배포를 시작하세요.
    3. 다시 실패하면 세 점 메뉴에서 실패한 배포의 로그를 열고 빌드 로그를 복사하여 진단을 위해 새 Agent 채팅에 붙여넣으세요.

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

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

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

  <Accordion title="배포 기록에 실패한 빌드가 표시돼요. 무엇이 잘못된 건지 어떻게 찾나요?">
    **게시 → 기록**을 열고 실패한 배포를 선택한 다음 빌드 로그를 확인하세요. `ERROR` 또는 `FAILED`로 표시된 첫 번째 줄을 찾으세요. 보통 그게 근본 원인이며 이후 줄은 그로 인한 결과입니다. 해당 섹션을 새 Agent 채팅에 복사하여 진단하세요. 대부분의 빌드 실패는 누락된 의존성, 잘못된 실행 명령, 또는 실패한 데이터베이스 마이그레이션에서 옵니다. [배포 모니터링](/ko/features/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/features/publishing/deployment-types#autoscale)는 설계상 정기적으로 재시작됩니다. 로그의 `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이 현재 코드를 빌드하고 게시합니다. 시크릿 업데이트 후, 데이터베이스 재개 후, 또는 의존성 업데이트를 적용할 때 유용합니다.

    앱이 응답하지 않고 전체 재배포가 부담스럽다면 `Cmd+K`(Mac) 또는 `Ctrl+K`(Windows)로 명령 팔레트를 열고 **Restart compute**를 검색하여 선택하세요.
  </Accordion>

  <Accordion title="게시 후 앱의 배포 지역을 변경할 수 있나요?">
    아니요. 앱을 게시한 후에는 게시 지역을 그 자리에서 변경할 수 없습니다. 앱을 이동하려면 리믹스한 다음 새 지역에서 리믹스를 게시하세요. [프로젝트 지역](/ko/features/publishing/project-geography)을 참조하세요.

    데이터베이스 지역도 그 자리에서 변경할 수 없습니다. 리믹스된 앱은 다른 `.replit.app` 서브도메인을 받을 수 있으므로, 안정적인 URL이 필요하다면 먼저 [커스텀 도메인](/ko/features/publishing/custom-domains)을 연결하고 배포 시크릿을 다시 추가하세요.
  </Accordion>

  <Accordion title="게시된 앱에서 PCI 또는 보안 스캔이 GAESA 쿠키를 플래그하는 이유는 무엇인가요?">
    Google의 서빙 인프라는 요청을 올바른 인스턴스로 라우팅하기 위해 게시된 Replit 앱에 `GAESA`(Google App Engine 세션 어피니티) 쿠키를 추가합니다. 이 값은 불투명한 라우팅 식별자이며 민감하거나 애플리케이션과 관련된 데이터를 포함하지 않습니다.

    일부 보안 스캐너는 `GAESA`가 `Secure` 또는 `HttpOnly` 속성을 설정하지 않기 때문에 이를 플래그합니다. 앱이 이 쿠키를 생성하는 것이 아니며, 게시된 앱에서는 이를 변경하거나 비활성화할 수 없습니다.

    PCI 준수 또는 보안 스캔에서 이 쿠키가 보고되면 스캔 벤더에게 오탐(false positive)으로 이의를 제기하세요. 쿠키 이름을 포함하고 Google의 인프라가 요청 라우팅을 위해 이를 설정한다는 점을 설명하세요. 게시된 앱은 이를 읽거나 변경하거나 비활성화할 수 없으며, 이 쿠키는 민감한 데이터를 포함하지 않습니다.

    직접 빌드한 앱에 대한 규정 준수는 사용자의 책임입니다. [공동 책임 모델](/ko/features/security/shared-responsibility-model)을 참조하세요. 스캔 벤더가 더 자세한 정보가 필요하면 [Replit 지원팀에 문의](https://replit.com/support)하세요.
  </Accordion>

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

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

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

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