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

# 일반 문제

> 클라우드타입 사용 중 자주 발생하는 일반적인 문제와 해결 방법

## 일반

<AccordionGroup>
  <Accordion title="서브 디렉토리 미적용 (Error: Project files not found)">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ko/subdir01.png" />
    </Frame>

    > 배포 시 루트 디렉토리를 기준으로 빌드가 진행됩니다. 저장소의 루트 디렉토리가 아닌 서브 디렉토리에 실행할 소스가 있는 경우 별도로 서브 디렉토리를 지정해주어야 합니다.
  </Accordion>

  <Accordion title="버전 불일치">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ko/deploy05.png" />
    </Frame>

    > 배포할 프로젝트를 개발할 때 적용한 JDK, Python, Node.js 등의 버전과 cloudtype의 배포 설정에 적용한 버전이 서로 다를 경우 서비스가 정상적으로 빌드 혹은 실행되지 않습니다.
    > 프로젝트의 언어/플랫폼 버전에 따라 [배포 설정의 버전을 알맞게 설정한 후 재배포하세요.](/ko/developers/deploy#5)
  </Accordion>

  <Accordion title="포트 번호 문제">
    > 특정 포트에서 서비스되는 프로젝트의 경우, 배포 설정에서 포트 번호가 누락되거나 잘못 입력되면 정상적으로 실행되지 않을 수 있습니다.
    > **특정 포트에 바인딩 되지 않는 프로젝트의 경우, 배포 설정에서 포트 번호 항목을 공란으로 두어야 합니다.**
  </Accordion>

  <Accordion title="selenium, puppeteer 등의 Chrome 라이브러리 사용">
    > cloudtype 에서 제공하는 템플릿은 기본 모듈 및 라이브러리가 상이합니다. <Icon icon="windows" size={15} color="9fa3a5" /> Windows, <Icon icon="chrome" size={15} color="9fa3a5" /> Chrome 라이브러리처럼 기본으로 제공되지 않는 라이브러리를 사용하려는 경우, [Dockerfile](/ko/developers/dockerfile)을 작성해서 배포해야 합니다.
  </Accordion>

  <Accordion title="CORS 문제">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ko/reverseproxy02.png" />
    </Frame>

    > CORS는 각 프레임워크 별로 그 해결방법이 상이하며, 각 프레임워크에서 지원하는 라이브러리 혹은 모듈을 활용하여 발생하는 이슈를 해결할 수 있습니다.
    > Next.js 등과 같이 자체적으로 리버스 프록시를 지원하는 프레임워크를 사용하면 내장된 Rewrites 기능으로 해결할 수 있으며, Reat, Vue와 같은 프론트엔드를 배포할 때에는 [Rewrites 설정을 통해 리버스 프록시를 적용](/ko/developers/reverseproxy)할 수 있습니다.
  </Accordion>

  <Accordion title="오류에 대한 실행로그가 보이지 않는 경우">
    > 서비스 패널의 **플레이 버튼으로 재시작** 후 실행로그를 확인해보세요. 어떤 로그도 표시되지 않는다면 서비스 상세 페이지의 **이벤트탭**에서 발생한 이벤트를 확인하여 문제를 해결해야합니다.
  </Accordion>

  <Accordion title="유료 구독했지만 매일 서비스가 중단되는 경우">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ko/resource02.png" />
    </Frame>

    > 프리티어 플랜에서 구독 플랜(Hobby, Pro)으로 전환한 경우, 배포된 서비스에 구독 리소스가 자동으로 적용되지 않습니다. 프리티어 라벨이 붙은 서비스의 설정화면에서 구독 리소스를 적용한 후 다시 배포하면, 구독리소스가 적용되어 서비스가 중단되지 않습니다.
  </Accordion>

  <Accordion title="리소스 부족(out of memory)">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ko/deploy12.png" />
    </Frame>

    > JVM 기반의 어플리케이션을 배포하는 경우 JVM에 할당한 메모리가 사용 가능한 리소스의 범위를 초과할 때 OOM이 발생할 수 있으며, Node.js 역시 heap 메모리의 부족으로 같은 현상이 발생할 수 있습니다.
    > 언어 혹은 프레임워크에서 적절하게 메모리를 부여하거나 리소스를 추가로 할당하여 배포해야 합니다.
  </Accordion>

  <Accordion title="타임존">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ko/deploy13.png" />
    </Frame>

    > 일반적인 프레임워크에서는 `TZ`라는 환경변수를 통해 타임존을 설정할 수 있으며, [여기](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) 제시된 일람에 따라 국가 및 도시를 설정할 수 있습니다.
    > 이외의 방법은 사용하고 있는 프레임워크의 공식문서를 참고하시기 바랍니다.
  </Accordion>

  <Accordion title="HTML 파일이 GitHub 저장소에 있는데 도메인으로 접속하면 정상적으로 페이지가 로드되지 않아요.">
    > HTML 템플릿은 기본적으로 github 저장소 내 최상위(루트) 디렉토리의 `index.html` 파일을 렌더링하여 홈 화면으로 설정합니다. 저장소 내의 html 파일명을 확인해주세요.
  </Accordion>

  <Accordion title="Cloudflare 도메인 연결시 ERR_TOO_MANY_REDIRECTS 오류가 발생합니다.">
    > 클라우드플레어 연결 후 ERR\_TOO\_MANY\_REDIRECTS 발생할 때 SSL/TLS 암호화 모드가 가변으로 되어 있는 경우, 전체 혹은 전체(엄격)으로 변경이 필요합니다.
    > 도메인 연결 과정에서는 프록시 상태 체크를 해제해야 합니다. 인증서 발급까지 완료된 경우 프록시를 다시 체크하여 활성화 해주세요.

    <Figure className="mt-5 mb-12" src="faq/domain-01.png" size="3xl" />
  </Accordion>

  <Accordion title="클라우드타입에서 볼 수 있는 로그뷰 말고 별도의 파일로 로그를 따로 저장하고 싶습니다.">
    > 현재 클라우드타입은 디스크 마운트를 지원하지 않아 어플리케이션에서 파일로 출력하더라도 영구히 저장되지 않습니다. 추후 디스크 마운트 기능을 지원 예정이며, 로그 수집은 [Papertrail](https://www.papertrail.com/)과 같은 서비스를 사용하는 것을 권장합니다.
  </Accordion>

  <Accordion title="클라우드타입 터미널에서 sudo 명령어를 사용하고 싶습니다.">
    > 컨테이너 기반 서비스 특성상 VM과는 달리 클라우드타입의 터미널은 디버깅 및 확인 용도로만 사용하는 것을 권장합니다. 또한 터미널에서 조작한 모든 설정은 재시작시 초기화됩니다. 설치가 필요한 라이브러리 등이 있다면 [Dockerfile 을 통해 배포](/ko/developers/dockerfile)해주세요.
  </Accordion>

  <Accordion title="서비스 접속 시 50X 페이지만 뜹니다.">
    서비스 배포 후 50X 발생 시, 실행 로그 결과에 따라 다음과 같은 케이스로 나눠 살펴볼 수 있습니다.

    **1️⃣ 어플리케이션이 정상적으로 구동되지 않고 예외가 발생하거나 서버가 종료된 경우**

    > 어플리케이션 구동에 필요한 패키지가 정상적으로 설치되지 않았거나 데이터베이스 연결이 실패했을 수 있습니다. 실행 로그의 에러 메세지를 기반으로 소스 내용 및 [환경 변수 등을 확인](/ko/developers/env)해주세요.

    **2️⃣ 서버는 정상적으로 구동됐는데 권한과 관련된 에러가 발생하는 경우**

    > 언어 및 프레임워크 중 특정 도메인 규칙에 대하여 CORS 허용 규칙을 적용해주어야 접속가능한 것이 있습니다. [리버스 프록시 페이지](/ko/developers/reverseproxy)를 참고해주세요.

    **3️⃣ 빌드가 정상적으로 완료 되었는데 상태가 ‘시작중’에서 바뀌지 않고 생성된 URL에 접속해도 503 페이지만 뜨는 경우**

    > 루트 디렉토리가 아닌 서브디렉토리에 코드가 존재하는 경우 이러한 상황이 발생할 수 있습니다. 사용자의 저장소를 디렉토리를 확인하고, 해당되는 경우 [서브디렉토리 설정](/ko/developers/subdir)을 추가해주세요.

    **4️⃣ 서버는 정상적으로 구동됐는데 접속시 에러창이 뜨고 실행 로그에 아무런 반응이 없는 경우**

    > 소스 코드에 설정된 포트가 배포시에 작성하신 포트와 불일치할 경우일 확률이 높습니다. [입력한 포트를 확인해주세요](/ko/developers/port).
  </Accordion>
</AccordionGroup>
