엔지니어링 지원 안내

문제 영역을 먼저 좁힌 후 재현 가능한 정보를 제출하세요

클라우드 Mac의 연결, 시스템, 빌드, 네트워크, 스토리지 및 계정 문제를 한곳에서 다룹니다. 기본 점검을 순서대로 완료한 뒤 노드, 발생 시간과 민감정보를 제거한 로그를 기록하면 추가 확인을 줄일 수 있습니다.

원격 연결 문제 해결

자격 증명, 연결 경로, 세션 순서로 확인하세요

먼저 연결 대상이 정확한지 확인한 다음 포트와 클라이언트를 점검하세요. 자격 증명을 반복해서 재설정하며 네트워크나 세션 계층의 문제를 가리지 마세요.

01

개통 정보 및 자격 증명 확인

콘솔에서 현재 인스턴스의 호스트 주소, 포트와 사용자 이름을 복사해 이전 주문 정보와 혼용하지 않았는지 확인하세요. 입력기, 대소문자, 앞뒤 공백과 비밀번호 관리자의 자동 입력 결과도 점검하세요. 비밀번호, 개인 키 또는 전체 연결 문자열을 스크린샷과 티켓 본문에 넣지 마세요.

02

포트 연결 확인

로컬 터미널에서 nc 를 사용해 지정 포트를 확인하세요. TCP 연결이 성공했다는 것은 포트에 도달할 수 있다는 뜻일 뿐 그래픽 세션이 정상이라는 의미는 아닙니다. 시간 초과가 발생하면 로컬 네트워크, 통신사와 대상 노드를 계속 기록하세요.

nc -vz "$TARGET_HOST" "$TARGET_PORT"
03

화면 공유 상태 확인

인스턴스가 실행 중이고 그래픽 세션 서비스가 작동하며 현재 계정에 원격 세션 권한이 있는지 확인하세요. 명령줄에는 연결되지만 화면을 열 수 없다면 네트워크 설정을 계속 바꾸기보다 그래픽 서비스, 클라이언트 협상 또는 남은 세션 문제로 범위를 좁히세요.

04

화면 설정을 낮춰 비교하기

먼저 단일 모니터, 낮은 해상도와 낮은 화질로 기준 상태를 만든 뒤 배율, 색상 품질과 다중 모니터 설정을 하나씩 복원하세요. 낮은 해상도에서는 안정적이고 높은 해상도에서 끊긴다면 지연, 패킷 손실과 클라이언트 인코딩 설정도 함께 수집하세요.

05

이전 세션을 정리한 후 다시 연결

클라이언트를 정상적으로 종료하고 이전 연결이 해제될 때까지 기다린 후 세션을 다시 만드세요. 여러 클라이언트가 같은 그래픽 세션에 동시에 연결되지 않도록 하세요. 끊김이 재현되면 분 단위의 정확한 시간, 클라이언트 버전, 네트워크 전환 여부와 명령줄 연결에도 동시에 영향이 있었는지 기록하세요.

시스템 계층 빠른 점검:명령줄에 접속할 수 있다면 시스템 시간, 남은 디스크 공간, 메모리 압력과 사용량이 높은 프로세스를 차례로 확인하세요. 시간 오차는 인증서와 빌드 서명에 영향을 줄 수 있으며 디스크 부족은 의존성 설치, 캐시 기록 또는 아카이브 단계의 실패로 나타나는 경우가 많습니다.

CI/CD 문제 해결

Runner, 환경 또는 작업으로 실패 범위를 좁히세요

프로젝트 키를 읽지 않고 의존성을 설치하지 않는 최소 작업을 먼저 실행하세요. 최소 작업이 성공하면 저장소, 캐시, 서명 자료와 아카이브 단계를 한 계층씩 추가하세요.

Runner

등록 및 온라인 상태

Runner가 올바른 프로젝트 또는 조직에 등록되어 있는지, 태그가 일치하는지, 실행기가 온라인인지 확인하세요. 작업이 계속 대기 중이라면 전체 파이프라인을 바로 다시 실행하지 말고 먼저 태그와 동시 실행 제한을 확인한 다음 Runner 프로세스를 점검하세요.

ps aux | grep -i runner
launchctl list | grep -i runner
Signing

서명 환경

빌드 프로세스에서 사용하는 계정, 키체인 검색 경로, 인증서 가시성과 프로비저닝 프로파일 범위가 일치하는지 확인하세요. 로그에는 인증서 이름, 실패 단계와 오류 텍스트만 남기고 제출 전에 비밀번호, 개인 키 내용과 전체 서명 자료를 제거하세요.

security list-keychains
security find-identity -v -p codesigning
Cache

캐시 디렉터리

의존성 캐시, 파생 데이터와 최종 산출물을 서로 다른 디렉터리에 두세요. 캐시 적중에 이상이 있으면 먼저 캐시 키와 디렉터리 사용량을 기록한 후 단일 프로젝트만 정리해 비교 기준을 보존하세요.

du -sh "$CACHE_PATH"
df -h
find "$CACHE_PATH" -maxdepth 1 -type d
Queue

빌드 대기열

대기 시작, 실제 실행과 종료 시간을 기록해 ‘작업을 할당받지 못함’과 ‘작업은 시작했지만 출력이 오래 없음’을 구분하세요. 전자는 태그, 동시 실행 수와 Runner 상태를, 후자는 스크립트 대기, 네트워크 의존성과 하위 프로세스를 중점적으로 확인합니다.

Logs

로그 수집

실패 단계 전후의 로그를 각각 최소 50줄씩 보관하고 명령어 종료 코드, 도구 버전과 프로젝트에서 공개 가능한 최소 재현 매개변수를 함께 첨부하세요. 오류 팝업 스크린샷 한 장만 제출하거나 토큰, 저장소 자격 증명과 업무 데이터가 포함된 전체 로그를 업로드하지 마세요.

xcodebuild -version
sw_vers
uname -m
Retry

실패 재시도

첫 실패 후 원본 로그를 먼저 저장한 다음 동일한 커밋과 매개변수로 한 번만 재시도하세요. 재시도에 성공하면 네트워크 요청, 캐시 적중과 실행 시간을 비교하고, 계속 실패하면 단일 명령으로 범위를 좁혀 입력값, 종료 코드와 소요 시간을 기록하세요.

네트워크 진단 워크벤치

같은 대상에 연속으로 샘플을 수집하세요

한 번의 ping으로는 연결 품질을 판단할 수 없습니다. 문제가 발생한 동안과 복구된 후 각각 결과를 수집하고 로컬 네트워크, 대상 주소와 명령어 매개변수를 동일하게 유지하세요.

지연 시간 및 패킷 손실

데이터 패킷 20개를 연속 전송하고 최소값, 평균값, 최대값과 손실률을 저장하세요.

ping -c 20 "$TARGET_HOST"

라우팅 경로

경로 결과는 어느 홉부터 지연 시간이 변하는지 파악하는 데 사용합니다. 일부 라우터가 탐색에 응답하지 않아도 연결이 끊겼다는 뜻은 아닙니다.

traceroute "$TARGET_HOST"

DNS 조회

조회 결과, 응답 시간과 현재 사용하는 DNS 서버를 기록해 이름 해석 문제와 대상 포트 문제를 구분하세요.

dig "$TARGET_HOST"
scutil --dns

업로드·다운로드 및 응답 성능

macOS 기본 도구로 업로드·다운로드 용량, 응답 성능과 유휴 지연 시간을 수집하세요. 테스트 중에는 대용량 파일 동기화와 기타 고대역폭 작업을 일시 중지하세요.

networkQuality -v
국경 간 연결은 통신사 라우팅과 로컬 네트워크 부하에 따라 변동할 수 있습니다. 노드 선택은 직선거리만으로 판단하지 마세요. 싱가포르, 일본(도쿄), 한국(서울)과 홍콩의 사용 가능한 대상에서 각각 실제로 테스트한 후 팀 위치와 주요 작업 시간을 함께 고려하세요.

스토리지 및 데이터 관리

소스, 캐시, 산출물과 백업을 분리하세요

스토리지 문제는 단순한 용량 수치만으로 판단할 수 없습니다. 첫 빌드 전에 디렉터리 경계, 쓰기 권한, 복구 가능한 사본과 마이그레이션 시간을 모두 정해야 합니다.

작업 디렉터리 계획

  • 소스 디렉터리에는 저장소 내용과 필요한 설정만 보관하고 대형 빌드 산출물은 섞지 마세요.
  • 의존성 캐시와 파생 데이터는 별도 디렉터리에 두어 프로젝트별 정리와 사용량 확인이 쉽도록 하세요.
  • 아카이브, 설치 패키지와 디버그 기호는 작업 ID가 포함된 산출물 디렉터리에 보관하세요.
  • 임시 파일에 정리 규칙을 설정하고 정리 전에 실행 중인 빌드가 없는지 확인하세요.

애플리케이션 수준 백업 책임

  • 소스, 데이터베이스, 서명 자료와 다시 생성할 수 없는 산출물의 독립 사본을 만드세요.
  • 백업을 정기적으로 읽을 수 있는지 확인하세요. ‘작업이 업로드됨’만으로 복구 테스트를 대신하지 마세요.
  • 키와 자격 증명은 통제된 스토리지에 보관하고 저장소, 빌드 로그 또는 공유 디렉터리에 기록하지 마세요.
  • 임대 종료 전에 내보내기를 완료하고 파일 수, 체크섬과 대상 측 읽기 가능 여부를 확인하세요.

확장 SSD 인식

확장 스토리지를 추가한 후 시스템이 장치를 인식하는지, 볼륨이 마운트되었는지, 파일 시스템에 쓸 수 있는지 먼저 확인한 뒤 빌드 디렉터리를 변경하세요. 작업 중에는 캐시 또는 산출물 경로를 전환하지 마세요.

diskutil list
df -h
mount

마이그레이션 전 점검

  • 데이터를 계속 쓰는 빌드, 동기화와 백그라운드 작업을 중지하세요.
  • 작은 샘플을 먼저 복사해 권한, 파일 이름과 심볼릭 링크 처리 방식을 확인하세요.
  • 전체 마이그레이션 후 디렉터리 크기, 파일 수와 주요 파일 체크섬을 비교하세요.
  • 대상 환경에서 읽기 또는 빌드 테스트를 한 번 완료한 후 원본 디렉터리를 정리하세요.

서비스 가용성

연속 모니터링 기록으로 영향을 확인하세요

상태 기록은 서비스 측 영향 범위를 판단하는 데 사용됩니다. 구체적인 측정 기간, 제외 항목, 신청 조건, 서비스 크레딧과 적용 범위는 서비스 약관을 따릅니다.

목표 가용성
99.9%

노드는 연중 365일 정상 운영됩니다. 불가항력, 사용자 조작, 사용자 측 네트워크와 워크로드 설정으로 인한 영향은 플랫폼 가용성에 포함되지 않습니다.

최근 90일 일별 상태 90 DAYS
정상 영향 기록 있음

주문이 플랫폼 측 서비스 이벤트의 영향을 받았다고 판단되면 주문 ID, 노드, 최초 발견 시간, 복구 시간과 연속 탐색 기록을 보관해 콘솔 티켓으로 제출하세요. 서비스 크레딧 적용 여부와 방식은 서비스 약관의 구체적인 규정을 따릅니다.

서비스 약관 확인

지원 요청 제출

문제 해결을 시작할 수 있는 상황을 한 번에 제공하세요

기술 지원 요청은 하나의 문제를 중심으로 작성하세요. 서로 다른 노드, 주문 또는 장애 단계는 시간 순서가 서로 겹치지 않도록 나누어 설명하세요.

필수 정보 6가지

  1. 01
    주문 ID

    콘솔의 주문 또는 인스턴스 ID를 제공하고 계정 비밀번호는 보내지 마세요.

  2. 02
    대상 노드

    싱가포르, 일본(도쿄), 한국(서울) 또는 홍콩을 명확히 기재하세요.

  3. 03
    문제 발생 시간

    날짜, 시간대, 시작 시간, 지속 시간과 현재 복구 여부를 포함하세요.

  4. 04
    예상 결과와 실제 결과

    무엇이 발생해야 했는지와 실제로 무엇을 확인했는지 각각 설명하세요. ‘사용할 수 없음’이라고만 작성하지 마세요.

  5. 05
    재현 단계

    정상 상태에서 문제가 발생하기까지의 가장 짧은 단계와 재시도 시 일관되게 재현되는지를 적으세요.

  6. 06
    민감정보 제거 로그

    오류 단계 전후의 로그, 명령어 종료 코드와 필요한 스크린샷을 첨부하고 토큰, 비밀번호, 개인 키, 결제 자격 증명과 업무 데이터를 제거하세요.

로그에서 민감정보를 어떻게 제거하나요?

오류 코드, 시간, 명령어 이름, 도구 버전, 경로 구조와 종료 코드는 남기고 액세스 토큰, 비밀번호, 개인 키, 저장소 주소의 자격 증명, 실명과 업무 데이터를 대체하세요. 민감정보 제거 후에는 일반적인 키 접두사와 이메일 주소를 다시 검색하세요.

네트워크 문제에는 어떤 결과를 첨부해야 하나요?

최소한 연속 ping 1세트, traceroute 1회, 문제 발생 시간, 대상 노드, 현지 도시와 통신사를 첨부하고 유선, Wi-Fi 또는 모바일 핫스팟으로 전환한 뒤 결과가 달라졌는지 설명하세요.

빌드 실패 시 전체 프로젝트를 업로드해야 하나요?

대부분 필요하지 않습니다. 먼저 실패한 명령어, 종료 코드, 전후 로그, 도구 버전과 최소 재현 단계를 제공하세요. 샘플이 꼭 필요하다면 업무 코드, 키, 서명 자료와 운영 데이터를 제거하고 문제를 재현하는 최소 구조만 남기세요.

제출 준비

주문, 노드, 타임라인과 민감정보 제거 로그를 첨부하세요

기존 주문과 관련된 문제는 콘솔 티켓을 우선 이용하세요. 일반 문의는 지원 이메일로 연락할 수 있습니다. 전체 상황을 제공하면 엔지니어가 유효한 샘플부터 바로 조사할 수 있습니다.