/ AI Image Generation / 훈련 중 Google Colab 연결 끊김 방지 방법 2025
AI Image Generation 22 분 소요

훈련 중 Google Colab 연결 끊김 방지 방법 2025

AI 훈련 중 Google Colab 연결 끊김을 방지하는 완벽한 가이드입니다. JavaScript 연결 유지 스크립트, 체크포인트 전략, Colab Pro 비교, 안정적인 워크플로우를 다룹니다.

훈련 중 Google Colab 연결 끊김 방지 방법 2025 - Complete AI Image Generation guide and tutorial

LoRA 훈련이 3시간을 지나는 순간 Google Colab이 갑자기 연결이 끊어집니다. 수 시간의 GPU 컴퓨팅이 사라집니다. 저장된 체크포인트 없이 훈련 진행 상황이 사라집니다. Google Colab의 90분 유휴 타임아웃과 12시간 최대 실행 시간은 끊임없는 연결 끊김 불안을 만듭니다. JavaScript 연결 유지 기술과 강력한 체크포인트 전략을 결합하면 Colab의 무료 및 Pro 티어에서 안정적인 장시간 훈련이 가능합니다.

빠른 답변: 브라우저 콘솔 JavaScript를 사용하여 90분 유휴 타임아웃을 우회하고, 훈련 진행 상황을 보존하기 위해 15-30분마다 모델 체크포인트를 구현하고, 24시간 실행 시간을 위해 Colab Pro로 업그레이드하고, 자동으로 상태를 저장하고 중단에서 계속할 수 있는 재개 가능한 세그먼트로 훈련 세션을 구조화하여 Google Colab 연결 끊김을 방지합니다.

핵심 요약: Colab 연결 유지하기
  • 유휴 타임아웃 솔루션: JavaScript 콘솔 스크립트가 활동을 시뮬레이션하여 90분 연결 끊김을 방지합니다
  • 진행 상황 보호: Google Drive에 15-30분마다 체크포인트를 생성하여 훈련 상태를 보존합니다
  • Colab Pro 이점: 24시간 실행 시간(무료 12시간 대비), 더 나은 GPU 가용성, 더 긴 유휴 타임아웃을 제공합니다
  • 모범 사례: 최대 안정성을 위해 연결 유지 스크립트와 체크포인트를 결합합니다
  • 대안: 체크포인트에서 자동 재개되는 여러 짧은 세션으로 훈련을 분할합니다

오후 10시에 훈련을 시작하여 아침에 완성된 LoRA 모델로 깨어날 것을 기대했습니다. 대신 진행 상황이 전혀 저장되지 않은 "Runtime disconnected"를 발견합니다. 이것이 반복적으로 발생하여 무료 GPU 시간을 낭비하고 훈련 프로젝트 완료를 방해한다는 것을 깨달을 때 좌절감이 커집니다. Colab 인터페이스 변경으로 망가진 오래된 스크립트가 아니라 2025년에 실제로 작동하는 안정적인 방법이 필요합니다.

Google Colab은 귀중한 무료 GPU 액세스를 제공하지만 연결 끊김 정책은 진지한 AI 훈련 프로젝트에 어려움을 만듭니다. 연결 끊김 메커니즘과 검증된 완화 전략을 모두 이해하면 Colab을 신뢰할 수 없는 실험 플랫폼에서 실행 가능한 훈련 환경으로 변환할 수 있습니다. Apatero.com과 같은 전용 솔루션이 안정적인 인프라를 통해 연결 끊김 문제를 완전히 제거하는 반면, Colab 기술을 마스터하면 예산을 고려한 훈련과 일반적으로 클라우드 훈련 워크플로우에 대한 이해가 가능합니다.

이 완벽한 Colab 안정성 가이드가 다루는 내용
  • Google Colab의 연결 끊김 메커니즘과 타임아웃 정책 이해하기
  • 2025년에 작동하는 JavaScript 연결 유지 스크립트 구현하기
  • 훈련 상태를 보존하는 강력한 체크포인트 시스템 구축하기
  • 훈련 안정성을 위한 Colab 무료 vs Pro vs Pro+ 비교하기
  • 연결 끊김에서 생존하는 재개 가능한 훈련 워크플로우 구조화하기
  • 일반적인 연결 유지 스크립트 실패 및 CAPTCHA 문제 해결하기
  • 빠른 체크포인트 저장을 위한 Google Drive 통합 최적화하기
  • 세션 상태를 모니터링하고 연결 끊김을 발생 전에 예측하기

Google Colab이 훈련 중에 연결을 끊는 이유는 무엇입니까?

솔루션을 구현하기 전에 Colab의 연결 끊김 메커니즘을 이해하면 적절한 대응책을 선택하고 현실적인 기대치를 설정하는 데 도움이 됩니다.

Colab 연결 끊김의 두 가지 유형

Google Colab은 훈련 세션에 다르게 영향을 미치는 두 가지 별개의 타임아웃 정책을 시행합니다. 공식 Colab 문서에 따르면, 이러한 제한은 모든 사용자에게 공정한 리소스 분배를 보장하기 위해 존재합니다.

유휴 타임아웃(90분):

유휴 타임아웃은 약 90분 동안 사용자 상호작용이 발생하지 않을 때 트리거됩니다. 사용자 상호작용은 버튼 클릭, 셀 실행 또는 노트북 인터페이스 위로 마우스 이동을 의미합니다. 훈련 스크립트가 데이터를 지속적으로 처리하며 실행될 수 있지만 사용자 상호작용이 전혀 없으면 90분 후에 노트북이 여전히 연결이 끊어집니다.

이 타임아웃은 유휴 세션이 다른 사용자가 활용할 수 있는 GPU 리소스를 소비하기 때문에 존재합니다. 열려 있지만 비활성인 노트북은 값비싼 컴퓨팅 용량을 낭비합니다. 90분 창은 활발한 개발 작업에 충분한 시간을 제공하면서 무기한 리소스 점유를 방지합니다.

최대 실행 시간 제한:

Colab 무료는 12시간 절대 실행 시간 제한을 부과합니다. 12시간 연속 후에는 활동이나 훈련 상태와 관계없이 세션이 종료됩니다. Colab Pro는 이를 24시간으로 연장합니다. Colab Pro+는 특정 GPU 유형에 대해 최대 36시간을 제공합니다.

이 하드 제한은 개별 사용자가 컴퓨팅 리소스를 무기한 독점하는 것을 방지합니다. 또한 연장된 실행 시간이 Pro 구독을 장려하는 비즈니스 모델을 반영합니다.

Colab 티어 유휴 타임아웃 최대 실행 시간 GPU 우선순위 비용
무료 ~90분 12시간 낮음 $0/월
Pro ~90분 24시간 높음 $10/월
Pro+ ~90분 36시간 최고 $50/월

이러한 제한을 이해하면 현실적인 훈련 세션 길이와 체크포인트 빈도를 설정하는 데 도움이 됩니다.

유휴 감지를 트리거하는 요인은 무엇입니까?

Colab의 유휴 감지는 코드 실행보다는 노트북 인터페이스와의 사용자 상호작용을 모니터링합니다. GPU가 100% 활용률로 작동해도 최근에 브라우저 창에서 아무것도 클릭하지 않았다면 유휴 타임아웃을 방지하지 못합니다.

모니터링되는 활동:

시스템은 노트북 위의 마우스 움직임, 셀이나 버튼 클릭, 셀이나 인터페이스 요소의 키보드 입력, 사용자가 수동으로 시작한 셀 실행을 추적합니다. 코드에서의 자동 셀 실행은 사용자 상호작용으로 간주되지 않습니다.

모니터링되지 않는 것:

셀로 인쇄되는 훈련 스크립트 출력은 활동으로 등록되지 않습니다. GPU 활용률 백분율은 유휴 감지에 영향을 미치지 않습니다. 코드에서 외부 서비스로의 네트워크 요청은 계산되지 않습니다. 실행 중인 셀 내에서 자동으로 업데이트되는 진행률 표시줄은 보호를 제공하지 않습니다.

이 구분은 인터페이스와 수동으로 상호작용하지 않으면 수 시간이 걸리는 무거운 계산 훈련도 유휴로 표시되기 때문에 중요합니다.

Colab 연결 끊김에 대한 일반적인 오해

몇 가지 널리 퍼진 오해가 연결 끊김이 발생하는 이유와 이를 방지하는 방법에 대한 혼란을 야기합니다.

오해 1: 활성 코드 실행이 연결 끊김을 방지합니다

많은 사용자가 활성적으로 실행 중인 코드가 유휴 타임아웃으로부터 보호한다고 믿습니다. 이것은 거짓입니다. 2024-2025년의 Stack Overflow 토론에 따르면, 6시간 동안 실행되는 훈련 스크립트도 사용자 상호작용 없이 90분에 유휴 타임아웃을 트리거합니다.

오해 2: Colab Pro가 연결 끊김을 제거합니다

Colab Pro는 최대 실행 시간을 연장하고 GPU 가용성을 개선하지만 90분 유휴 타임아웃은 유지합니다. Pro 구독자는 여전히 수동 상호작용 없이 90분을 초과하는 훈련 세션을 위해 연결 유지 솔루션이 필요합니다.

오해 3: 출력 인쇄가 유휴 감지를 방지합니다

print 문이나 진행률 표시줄을 통한 콘솔 출력 생성은 사용자 활동으로 등록되지 않습니다. 유휴 타이머는 출력 생성과 관계없이 계속 카운트다운됩니다.

오해 4: 여러 탭을 열면 타임아웃이 공유됩니다

각 Colab 노트북 탭은 독립적인 유휴 타임아웃을 가집니다. 하나의 노트북과 상호작용해도 다른 열린 노트북의 유휴 타이머가 재설정되지 않습니다. 각각은 연결 끊김을 방지하기 위해 별도의 주의가 필요합니다.

JavaScript 연결 유지 스크립트는 어떻게 작동합니까?

브라우저 콘솔에서 실행되는 JavaScript는 유휴 타임아웃 감지를 방지하는 사용자 상호작용을 시뮬레이션할 수 있습니다. 이것은 훈련 중 Colab 세션을 활성 상태로 유지하는 가장 일반적인 접근 방식을 나타냅니다.

브라우저 콘솔 JavaScript 실행 이해하기

최신 브라우저는 개발자 콘솔에서 JavaScript 코드를 실행할 수 있습니다. 이 코드는 현재 웹페이지의 컨텍스트에서 실행되며 수동 사용자 작업처럼 페이지 요소와 상호작용할 수 있습니다.

Colab의 노트북 인터페이스는 브라우저에서 JavaScript 애플리케이션으로 실행됩니다. 브라우저 콘솔 JavaScript는 수동 클릭이 하는 것과 동일한 인터페이스 상호작용을 트리거할 수 있어 유휴 타이머를 재설정하는 사용자 활동을 효과적으로 시뮬레이션합니다.

이 접근 방식이 작동하는 이유:

Colab의 관점에서 JavaScript가 트리거한 상호작용은 수동 상호작용과 구별할 수 없습니다. 시스템은 브라우저 이벤트 수준에서 마우스 이벤트, 클릭 및 키보드 입력을 추적합니다. JavaScript가 이러한 이벤트를 생성하는 것은 사람이 생성한 이벤트와 동일하게 나타납니다.

이 기술은 브라우저에서 전적으로 클라이언트 측에서 작동합니다. Google 서버에서 실행 중인 훈련 코드는 수정되지 않은 상태로 유지됩니다. 연결 유지 로직은 브라우저에 별도로 존재하여 연결을 유지합니다.

기본 연결 유지 스크립트 구현하기

Colab 노트북을 보는 동안 브라우저의 개발자 콘솔을 엽니다. Windows와 Linux에서는 F12를, Mac에서는 Cmd+Option+I를 누릅니다. 또는 Colab 페이지 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 검사를 선택한 다음 콘솔 탭을 클릭합니다.

현재 작동하는 스크립트(2025):

콘솔에 메시지를 기록하는 KeepClicking이라는 함수를 만들고 document.querySelector를 사용하여 colab-connect-button 요소를 찾습니다. shadowRoot를 통해 탐색하여 연결 버튼의 ID에 액세스하고 클릭 이벤트를 트리거합니다. 이 함수를 60000밀리초 지연으로 setInterval로 래핑하여 60초마다 반복되도록 합니다. 이 코드를 콘솔에 붙여넣고 Enter를 눌러 실행을 시작합니다.

스크립트는 브라우저 탭이 열려 있고 콘솔이 활성 상태로 유지되는 한 계속 실행됩니다. 콘솔이나 브라우저 탭을 닫으면 실행이 중지되고 유휴 타임아웃이 정상 카운트를 재개합니다.

스크립트 작동 방식:

querySelector는 페이지에서 Colab 연결 버튼 요소를 찾습니다. shadowRoot.getElementById는 Colab의 사용자 정의 요소가 숨겨진 shadow DOM을 통해 탐색합니다. click() 메서드는 버튼에서 클릭 이벤트를 트리거합니다. setInterval은 이 작업을 60초마다 무기한 반복합니다.

Colab 연결 유지 구현의 연구에 따르면, 60초마다 클릭하는 것은 Colab 시스템을 과도한 요청으로 압도하지 않으면서 충분한 활동을 제공합니다.

대체 연결 유지 스크립트 접근 방식

다양한 JavaScript 접근 방식은 안정성과 복잡성의 변형을 제공합니다. 일부 방법은 다른 것보다 Colab 인터페이스 변경에 더 탄력적인 것으로 입증됩니다.

마우스 움직임 시뮬레이션:

mousemove 유형의 새로운 MouseEvent를 생성하는 simulateMouseActivity라는 함수를 만듭니다. window로 설정된 view, true로 설정된 bubbles 및 cancelable로 이벤트를 구성합니다. 이 이벤트를 문서에 디스패치하고 시뮬레이션을 확인하는 메시지를 기록합니다. 이것을 60000밀리초 간격으로 setInterval로 래핑합니다. 이 스크립트는 마우스 움직임 이벤트를 시뮬레이션합니다. 특정 버튼 선택자에 의존하지 않기 때문에 인터페이스 변경에 더 탄력적입니다. 그러나 최근 Colab 업데이트는 때때로 시뮬레이션된 마우스 움직임을 무시하므로 버튼 클릭보다 덜 신뢰할 수 있습니다.

키보드 활동 시뮬레이션:

key 속성이 Shift로 설정된 keydown 유형의 새로운 KeyboardEvent를 생성하는 simulateKeyPress라는 함수를 만듭니다. 이 이벤트를 문서에 디스패치하고 확인 메시지를 기록합니다. setInterval을 사용하여 60000밀리초마다 반복합니다. Shift 키 누름을 시뮬레이션하면 다른 활동 신호를 제공합니다. 이 방법은 버튼 클릭이나 마우스 이동을 피하지만 Colab의 유휴 감지는 키보드 이벤트를 마우스 상호작용만큼 안정적으로 등록하지 않을 수 있습니다.

결합 접근 방식:

먼저 연결 유지 핑 메시지를 기록하는 keepAlive 함수를 만듭니다. try-catch 블록 내에서 querySelector를 사용하여 colab-connect-button을 찾고, shadowRoot에 액세스하고, ID로 connect 요소를 가져오고, 클릭을 트리거합니다. 실패하고 오류가 발생하면 catch 블록이 실패 메시지를 기록하고 대체로 mousemove 유형의 MouseEvent를 디스패치합니다. 이 함수를 setInterval을 사용하여 60000밀리초마다 실행하도록 설정합니다. 이 결합 스크립트는 버튼 클릭을 시도하고 버튼 선택자가 실패하면 마우스 움직임으로 대체합니다. try-catch 오류 처리는 스크립트를 Colab 인터페이스 변경에 대해 더 강력하게 만듭니다.

연결 유지 스크립트 실패 문제 해결

연결 유지 스크립트는 Colab 인터페이스 업데이트, 브라우저 보안 변경 또는 CAPTCHA 챌린지로 인해 때때로 실패합니다. 체계적인 문제 해결은 문제를 식별하고 해결합니다.

스크립트가 실행되지 않음:

콘솔에 스크립트를 붙여넣어도 출력이나 오류가 발생하지 않으면 올바른 콘솔 탭에 있는지 확인합니다. 일부 브라우저에는 여러 콘솔 컨텍스트가 있습니다. iframe이나 확장 콘솔이 아닌 기본 페이지 콘솔에 있는지 확인합니다.

빨간색 텍스트로 표시되는 JavaScript 오류를 확인합니다. 구문 오류는 스크립트 실행을 방지합니다. 추가 문자를 추가하거나 코드 세그먼트를 누락하지 않고 스크립트를 주의 깊게 복사합니다.

버튼 선택자를 찾을 수 없음:

콘솔에 "Cannot read property of null" 오류가 표시되면 버튼 선택자가 실패한 것입니다. Colab 인터페이스 업데이트는 요소 ID와 클래스 이름을 변경하여 스크립트를 망가뜨립니다.

브라우저 개발자 도구를 사용하여 연결 버튼 요소를 검사합니다. 연결 버튼을 마우스 오른쪽 버튼으로 클릭하고 검사를 선택하고 요소 구조를 검사합니다. 현재 요소 계층 구조와 일치하도록 querySelector 경로를 업데이트합니다.

최근 Colab 인터페이스 분석에 따르면, Google은 Colab의 UI를 주기적으로 업데이트하여 스크립트 조정이 필요합니다. 인터페이스 변경으로 기존 솔루션이 망가질 때 업데이트된 스크립트를 찾기 위해 Colab 사용자 커뮤니티에 참여합니다.

CAPTCHA 챌린지:

Google은 연결 유지 스크립트가 실행 중일 때에도 때때로 CAPTCHA 챌린지를 제시합니다. 시스템은 의심스러운 패턴을 감지하고 사람의 확인을 요구합니다.

CAPTCHA는 자동화된 스크립트가 해결할 수 없는 수동 개입입니다. 세션을 계속하려면 개인적으로 CAPTCHA를 완료해야 합니다. 연결 유지 스크립트는 이 보안 조치를 우회할 수 없습니다.

CAPTCHA 빈도를 최소화하려면 과도한 스크립트 실행을 피하고, 적당한 연결 유지 간격(5초마다가 아닌 60-90초)을 사용하고, 연결 유지 스크립트와 함께 여러 Colab 세션을 동시에 실행하지 않습니다. 책임 있는 스크립트 사용은 보안 플래그 트리거를 줄입니다.

무료 ComfyUI 워크플로우

이 글의 기술에 대한 무료 오픈소스 ComfyUI 워크플로우를 찾아보세요. 오픈소스는 강력합니다.

100% 무료 MIT 라이선스 프로덕션 준비 완료 스타 & 시도하기

강력한 체크포인트란 무엇이며 왜 필수적입니까?

연결 유지 스크립트는 유휴 타임아웃을 완화하지만 하드 런타임 제한이나 예상치 못한 충돌을 방지하지 않습니다. 체크포인트는 연결 끊김 원인과 관계없이 훈련 진행 상황을 보존하는 필수 안전망을 제공합니다.

훈련 체크포인트 이해하기

체크포인트는 특정 지점에서 재개할 수 있도록 하는 훈련 상태의 완전한 스냅샷입니다. 머신 러닝 모범 사례에 따르면, 강력한 체크포인트는 프로덕션 훈련 워크플로우에 대한 연결 유지 스크립트보다 더 중요합니다.

체크포인트에 포함되는 것:

완전한 체크포인트는 모델 가중치(현재 신경망 매개변수), 옵티마이저 상태(Adam, SGD 모멘텀 및 학습률 값), 훈련 단계 카운터(현재 에포크 및 배치 번호), 난수 생성기 상태(재현 가능한 연속성 보장), 훈련 손실 이력(연결 끊김 전반에 걸친 모니터링 활성화)을 저장합니다.

모델 가중치만 저장하는 부분 체크포인트는 훈련을 완전히 재개할 수 없습니다. 옵티마이저 상태는 Adam과 같은 옵티마이저가 학습 궤적에 영향을 미치는 모멘텀을 유지하기 때문에 중요합니다. 옵티마이저 상태 없이 재개하면 훈련은 계속되지만 최적화 모멘텀을 잃습니다.

체크포인트 빈도 절충:

더 빈번한 체크포인트는 더 나은 진행 상황 보호를 제공하지만 더 많은 시간과 스토리지를 소비합니다. 에포크마다 체크포인트하는 것은 에포크가 적은 느린 훈련에 잘 작동합니다. 100-200단계마다 체크포인트하는 것은 수천 단계가 있는 빠른 훈련에 적합합니다.

실제 테스트에 따르면, 15-30분마다 체크포인트하는 것은 Colab 훈련을 위한 최적의 균형을 제공합니다. 이것은 유휴 타임아웃(90분)으로부터 보호하면서 체크포인트 오버헤드를 훈련 시간의 5-10%로 제한합니다.

Colab에서 PyTorch 체크포인트 구현하기

PyTorch는 torch.save() 및 torch.load() 함수를 통해 간단한 체크포인트를 제공합니다. 강력한 체크포인트를 구현하려면 신중한 상태 관리와 오류 처리가 필요합니다.

기본 PyTorch 체크포인트 저장:

훈련 루프 중 체크포인트를 저장합니다:

각 에포크 또는 N단계마다, 모든 상태를 포함하는 체크포인트 딕셔너리를 생성하고, 세션 전반에 걸친 지속성을 위해 Google Drive에 저장하고, 잠재적인 I/O 오류를 우아하게 처리합니다.

체크포인트 딕셔너리는 다음을 포함해야 합니다:

모델 매개변수를 위한 model.state_dict(), 옵티마이저 상태를 위한 optimizer.state_dict(), 에포크 번호, 훈련 손실 이력, 모든 사용자 정의 훈련 변수.

재개를 위한 체크포인트 로딩:

훈련 시작 시, 체크포인트가 존재하는지 확인합니다. 발견되면 체크포인트를 로드하고, 저장된 모든 상태를 추출 및 복원하고, 저장된 지점에서 훈련을 계속합니다.

체크포인트가 존재하지 않는 경우(첫 번째 훈련 실행) 대 체크포인트가 사용 가능한 경우(훈련 재개)를 처리합니다. 코드는 수동 개입 없이 두 시나리오에서 올바르게 작동해야 합니다.

Google Drive 통합:

세션 수명을 넘어 체크포인트를 유지하려면 Google Drive를 마운트합니다. Drive 마운트 없이, 체크포인트는 연결 끊김과 함께 사라지는 임시 세션 스토리지에 저장됩니다.

훈련이 시작되기 전에 노트북 초반에 Drive를 마운트합니다. 모든 체크포인트 경로는 /content/drive/MyDrive/checkpoints/ 또는 유사한 Drive 위치에 써야 합니다.

TensorFlow/Keras 체크포인트 구현하기

TensorFlow와 Keras는 훈련 중 자동 체크포인트를 위한 ModelCheckpoint 콜백을 제공합니다. 이 고수준 인터페이스는 체크포인트 관리를 단순화합니다.

Keras ModelCheckpoint 설정:

체크포인트 파일 경로, 모니터링 메트릭(검증 손실 또는 훈련 손실), 최상만 저장 또는 모든 에포크 저장, 저장 빈도(모든 에포크 또는 N 배치마다)를 지정하는 ModelCheckpoint 콜백을 만듭니다.

훈련 중 체크포인트 저장을 자동으로 처리하는 model.fit()에 체크포인트 콜백을 전달합니다.

사용자 정의 TensorFlow 체크포인트:

사용자 정의 훈련 루프의 경우, 더 많은 제어를 위해 tf.train.Checkpoint() 및 CheckpointManager를 사용합니다. 이 접근 방식은 표준 모델 가중치 및 옵티마이저 상태를 넘어 사용자 정의 훈련 변수의 체크포인트를 가능하게 합니다.

복잡함을 건너뛰고 싶으신가요? Apatero 는 기술적 설정 없이 즉시 전문 AI 결과를 제공합니다.

설정 불필요 동일한 품질 30초 만에 시작 Apatero 무료 체험
신용카드 불필요

CheckpointManager는 가장 최근의 N개 체크포인트만 유지하는 체크포인트 로테이션을 처리합니다. 이것은 과도한 Drive 스토리지를 소비하는 무제한 체크포인트 축적을 방지합니다.

체크포인트 저장 속도 최적화

체크포인트 저장 속도는 느린 I/O가 훈련 병목을 만들기 때문에 중요합니다. 15분마다 5GB 체크포인트를 저장하는 데 3분이 걸리면 훈련 시간의 20%를 낭비합니다.

체크포인트 크기 최적화:

중복 정보보다는 필수 상태만 저장합니다. 체크포인트에 훈련 데이터나 검증 데이터를 저장하지 않습니다(소스에서 다시 로드). 체크포인트에 생성된 샘플이나 시각화 이미지를 저장하지 않습니다. 모델 매개변수, 옵티마이저 상태, 최소한의 훈련 메타데이터만 저장합니다.

효율적인 직렬화 형식을 사용합니다. PyTorch의 torch.save()는 기본적으로 pickle을 사용하며 합리적으로 효율적입니다. 매우 큰 모델의 경우, 더 빠른 로딩과 더 나은 보안 속성을 제공하는 safetensors 형식을 고려합니다.

병렬 체크포인트 저장:

훈련이 즉시 계속될 수 있도록 백그라운드 스레드에서 체크포인트를 저장합니다. Python의 threading 모듈은 병렬 I/O 작업을 가능하게 합니다.

스레드 안전성에 주의합니다. 체크포인트 딕셔너리는 백그라운드 저장이 시작되기 전에 메인 스레드에서 생성되어야 합니다. 백그라운드 저장이 작동하는 동안 상태 딕셔너리를 수정하지 않습니다.

Google Drive 쓰기 성능:

Colab에서 Google Drive 쓰기 속도는 현재 로드에 따라 10-50 MB/s입니다. 큰 체크포인트는 자연스럽게 더 오래 걸립니다.

실제 체크포인트 저장 시간을 모니터링하고 그에 따라 빈도를 조정합니다. 15분 체크포인트를 저장하는 데 5분이 걸리면, 빈도를 30분 간격으로 줄이거나 체크포인트 크기를 최적화합니다.

훈련 안정성을 위해 Colab Pro는 어떻게 비교됩니까?

Colab Pro 및 Pro+ 구독은 훈련 안정성에 영향을 미치는 개선 사항을 제공합니다. 얻는 것을 이해하면 프로젝트에 대한 구독의 가치를 평가하는 데 도움이 됩니다.

Colab Pro 기능 및 이점

Colab Pro는 월 $10이며 공식 Colab 가격에 따라 무료 티어보다 여러 개선 사항을 제공합니다.

연장된 런타임 제한:

Pro는 무료 티어의 12시간 대비 24시간 최대 런타임을 제공합니다. 이것은 강제 연결 끊김 전에 사용 가능한 훈련 시간을 두 배로 늘립니다. 15-20시간 훈련이 필요한 프로젝트의 경우, Pro는 선택 사항이 아니라 필수가 됩니다.

Pro도 여전히 90분 유휴 타임아웃을 시행합니다. 90분을 초과하는 무인 훈련 세션에는 연결 유지 스크립트가 여전히 필요합니다.

더 나은 GPU 가용성:

Pro 사용자는 우선순위 GPU 액세스를 받습니다. 무료 티어 사용자가 GPU에 액세스할 수 없는 피크 사용 시간 동안, Pro 구독자는 일반적으로 즉시 GPU 할당을 받습니다. 이것은 대기를 제거하고 용량이 우연히 사용 가능할 때가 아니라 필요할 때 훈련을 시작할 수 있게 합니다.

Pro는 더 나은 GPU 유형에 대한 액세스를 제공합니다. 무료 티어 사용자가 일반적으로 T4 GPU를 받는 반면, Pro 사용자는 2-4배 훈련 속도 향상을 제공하는 V100 또는 A100 GPU에 액세스할 수 있습니다. 더 빠른 훈련은 런타임 제한 내에서 완료가 더 가능해진다는 것을 의미합니다.

증가된 리소스 제한:

Pro는 더 많은 RAM(무료 티어 13GB 대비 최대 52GB) 및 더 많은 디스크 공간(무료 티어 78GB 대비 최대 225GB)을 제공합니다. 큰 데이터셋이나 모델로 훈련하는 경우, 이러한 증가된 제한은 무료 티어 사용자를 괴롭히는 메모리 부족 오류를 방지합니다.

Colab Pro는 가치가 있습니까?:

캐주얼 실험과 학습의 경우, 무료 티어로 충분합니다. 정기적인 훈련 세션이 필요한 진지한 프로젝트의 경우, Pro는 월 $10 비용을 정당화하는 귀중한 안정성 개선을 제공합니다. 연결 끊김으로 인한 단일 낭비된 훈련 세션이 대부분의 전문가에게 $10보다 훨씬 더 가치 있는 수 시간의 손실 시간을 나타낸다고 생각합니다.

Colab Pro+ 기능 및 이점

Colab Pro+는 월 $50이며 최대 리소스가 필요한 전문 사용자를 대상으로 합니다. 실제 사용자 보고에 따르면, 가치 제안은 일반 Pro보다 덜 명확합니다.

36시간으로 연장된 런타임:

Pro+는 이론적으로 특정 GPU 유형에 대해 36시간 런타임을 제공합니다. 그러나 사용자는 일관성 없는 시행을 보고하며 많은 세션이 여전히 24시간에 연결이 끊어집니다. 36시간 제한은 항상 명확하게 전달되지 않는 특정 조건에서만 적용되는 것으로 보입니다.

다른 115명의 수강생과 함께하세요

51개 레슨으로 초현실적인 AI 인플루언서 만들기

생생한 피부 디테일, 전문가급 셀카, 복잡한 장면으로 초현실적인 AI 인플루언서를 만드세요. 하나의 패키지로 두 개의 완전한 과정을 받으세요. 기술을 마스터하는 ComfyUI Foundation과 AI 크리에이터로 자신을 마케팅하는 방법을 배우는 Fanvue Creator Academy.

조기 할인 종료까지:
--
:
--
시간
:
--
:
--
완전한 커리큘럼
일회성 결제
평생 업데이트
$200 절약 - 가격이 영구적으로 $399로 인상
첫 번째 학생을 위한 조기 할인. 우리는 지속적으로 더 많은 가치를 추가하고 있지만, 당신은 영구적으로 $199를 확보합니다.
초보자 환영
프로덕션 준비 완료
항상 업데이트

더 나은 GPU 옵션:

Pro+는 A100 및 V100 32GB 모델 가능성을 포함한 프리미엄 GPU에 대한 액세스를 제공합니다. 이러한 GPU는 T4 및 표준 V100 옵션을 크게 능가합니다. A100은 많은 워크로드에 대해 T4보다 약 4배 빠르게 훈련합니다.

백그라운드 실행:

Pro+는 훈련이 계속되는 동안 브라우저 탭을 닫을 수 있는 백그라운드 실행을 약속합니다. 그러나 구현이 일관성이 없고 사용자는 혼합된 결과를 보고합니다. 이 기능은 현재 의존할 만큼 안정적으로 작동하지 않습니다.

Pro+는 가치가 있습니까?:

대부분의 사용자에게 Pro+는 $10 Pro에 비해 $50의 가치를 제공하지 않습니다. 주요 이점은 A100 GPU 액세스입니다. 훈련 워크로드가 A100 성능을 활용할 수 있다면, Pro+는 가치가 있습니다. V100에서 잘 실행되는 훈련의 경우, 일반 Pro가 더 나은 가치를 제공합니다.

많은 사용자는 Pro+ 비용을 정당화하는 프로젝트에 대해 Vast.ai 또는 RunPod과 같은 전용 GPU 클라우드 제공업체에서 더 나은 가치를 찾습니다. 이러한 대안은 비슷하거나 낮은 가격으로 더 예측 가능한 액세스와 성능을 제공합니다. Apatero.com과 같은 플랫폼은 연결 끊김 우려를 완전히 제거하는 관리형 인프라로 또 다른 대안을 제공합니다.

특정 훈련 프로젝트에 대한 Colab 티어 비교

다양한 훈련 프로젝트 유형은 Colab 티어 기능에서 다르게 이익을 얻습니다. 티어 선택을 프로젝트 요구 사항에 맞춥니다.

짧은 훈련(6시간 미만):

무료 티어는 연결 유지 스크립트와 체크포인트로 짧은 훈련을 잘 처리합니다. 12시간 제한은 충분한 여유를 제공합니다. GPU 가용성은 피크 시간 동안 좌절스러울 수 있지만 인내심은 일반적으로 액세스를 얻습니다.

중간 훈련(6-20시간):

Colab Pro는 이 범위에서 가치가 있습니다. 무료 티어의 12시간 제한은 훈련을 중단하여 재시작과 계속이 필요합니다. Pro의 24시간 제한은 예상치 못한 속도 저하에 대한 여유와 함께 단일 세션 완료를 허용합니다.

Pro를 통한 더 나은 GPU 액세스는 컴퓨팅 가용성을 기다리는 좌절을 크게 줄입니다. 우선순위 액세스는 용량을 바라며 반복적으로 확인하는 것이 아니라 준비가 되었을 때 훈련을 시작하는 것을 의미합니다.

긴 훈련(20시간 이상):

24시간 이상이 필요한 프로젝트는 Pro에서도 어려움에 직면합니다. Pro+는 이론적으로 도움이 되지만 신뢰할 수 없는 36시간 제한은 계획을 어렵게 만듭니다.

훈련을 여러 재개 가능한 세그먼트로 재구조화하는 것을 고려합니다. 20시간 훈련, 최종 체크포인트 저장, 새 세션 시작, 체크포인트 로드, 또 다른 20시간 계속. 이 접근 방식은 모든 Colab 티어에서 작동하지만 적절한 체크포인트 구현이 필요합니다.

또는 매우 긴 훈련 작업에 대해 전용 GPU 클라우드 제공업체를 사용합니다. Colab은 적절한 체크포인트와 함께 12-24시간 창 내에서 완료되는 훈련에 가장 잘 작동합니다.

재개 가능한 훈련 워크플로우를 어떻게 구조화합니까?

적절한 워크플로우 구조는 훈련을 취약한 단일 세션 작업에서 모든 연결 끊김에서 생존하는 강력한 다중 세션 프로젝트로 변환합니다.

자동 재개 훈련 스크립트 설계하기

자동 재개 기능은 수동 개입 없이 연결 끊김 후 훈련이 자동으로 계속되도록 합니다. 이것은 Colab 훈련에 대한 궁극적인 안정성을 제공합니다.

핵심 자동 재개 구성 요소:

훈련 시작 시 기존 체크포인트를 확인합니다. 체크포인트가 존재하면, 전체 훈련 상태를 로드하고 마지막 저장된 지점에서 계속합니다. 체크포인트가 없으면, 처음부터 새 훈련을 초기화합니다. 이 로직은 노트북이 실행될 때마다 자동으로 실행됩니다.

구현 패턴:

훈련 초기화 코드를 이 패턴을 따르도록 구조화합니다. Google Drive에 체크포인트 경로를 정의하고, 오류 처리로 체크포인트 로딩을 시도하고, 성공하면 로드된 상태를 추출하고, 체크포인트를 찾을 수 없으면 새 훈련을 초기화하고, 올바른 위치에서 훈련 루프를 시작합니다.

이 구조는 언제든지 노트북을 재시작할 수 있고 훈련이 마지막 체크포인트에서 자동으로 계속된다는 것을 의미합니다. 연결 끊김은 재앙이 아니라 불편이 됩니다.

여러 세션에서 훈련 관리하기

여러 Colab 세션에 걸친 긴 훈련 프로젝트는 연속성을 유지하기 위해 신중한 상태 관리와 로깅이 필요합니다.

영구 훈련 로그:

체크포인트와 함께 Google Drive에 훈련 로그를 저장합니다. 훈련 손실 이력, 검증 메트릭, 학습률 스케줄, 각 로그된 메트릭에 대한 생성 타임스탬프를 포함합니다.

체크포인트를 로드할 때, 훈련 이력도 로드하여 여러 세션에 걸쳐 완전한 훈련 곡선을 플롯할 수 있습니다. 이 통합된 보기는 학습 문제와 최적 중지 지점을 식별하는 데 도움이 됩니다.

총 훈련 시간 추적:

세션 전반에 걸쳐 누적 훈련 시간을 유지합니다. 각 체크포인트는 경과된 총 훈련 시간을 포함해야 합니다. 재개할 때, 로드된 누적 시간에 현재 세션 시간을 추가합니다.

이것은 실제 훈련 비용의 정확한 추적을 가능하게 하고 미래 훈련 예산 계획에 도움이 됩니다. LoRA가 3개 세션에 걸쳐 총 8시간이 필요했다는 것을 알면 유사한 미래 프로젝트를 추정하는 데 도움이 됩니다.

세션 메타데이터 기록:

세션 시작 시간, 세션 종료 시간, 사용된 GPU 유형, 로드된 초기 체크포인트, 저장된 최종 체크포인트, 완료된 훈련 단계, 발생한 오류나 문제를 포함하여 각 훈련 세션의 세부 정보를 Drive에 기록합니다.

이 메타데이터는 일관성 없는 훈련 결과를 디버깅하고 어떤 세션이 최종 모델 품질에 가장 기여했는지 이해하는 데 유용합니다.

우아한 종료 절차 구현하기

훈련 스크립트는 임박한 연결 끊김을 감지하고 업데이트 중간에 갑자기 종료되는 것이 아니라 우아하게 상태를 저장해야 합니다.

런타임 경고 감지:

Colab은 연결을 끊기 전에 때때로 경고를 표시합니다. 코드에서 이것을 안정적으로 잡을 수는 없지만, 최근 체크포인트가 항상 존재하도록 보장하는 주기적 체크포인트 확인을 구현할 수 있습니다.

에포크 경계에서만이 아니라 정기적인 간격(논의된 대로 15-30분마다)으로 체크포인트합니다. 이것은 연결 끊김이 에포크 중간에 발생하더라도 최대 진행 상황 보존을 보장합니다.

인터럽트 신호 처리:

Python 신호 핸들러는 일부 종료 이벤트를 잡아 최종 체크포인트 저장을 가능하게 할 수 있습니다:

종료 신호를 받을 때 체크포인트를 저장하는 신호 핸들러를 등록합니다. 이것은 일부 연결 끊김 시나리오 동안 마지막 기회 상태 저장을 제공합니다.

그러나 모든 Colab 연결 끊김이 잡을 수 있는 신호를 보내는 것은 아닙니다. 하드 런타임 제한 연결 끊김은 신호 핸들러가 실행되지 않고 갑자기 종료될 수 있습니다. 신호 처리와 관계없이 주기적 체크포인트는 여전히 필수적입니다.

자주 묻는 질문

코드 실행이 Google Colab의 연결 끊김을 방지합니까?

아니요, 활성 코드 실행은 유휴 타임아웃 연결 끊김을 방지하지 않습니다. Colab의 유휴 감지는 코드 실행보다는 인터페이스와의 사용자 상호작용을 모니터링합니다. 훈련 스크립트가 100% GPU 활용률로 실행될 수 있지만 수동 마우스나 키보드 상호작용 없이 90분 후에 여전히 유휴 타임아웃을 트리거합니다. 이것이 무인 훈련 세션에 사용자 활동을 시뮬레이션하는 연결 유지 스크립트가 필요한 이유입니다.

Colab이 연결 유지 스크립트를 사용하는 계정을 감지하고 차단할 수 있습니까?

Google의 서비스 약관은 무기한 백그라운드 스크립트 실행을 포함한 Colab 리소스의 "남용적 사용"을 금지합니다. 그러나 합리적인 시간 동안 합법적인 훈련 프로젝트를 위해 연결 유지 스크립트를 사용하는 것은 회색 영역에 속합니다. 대부분의 사용자는 적당한 연결 유지 사용에 문제가 없다고 보고합니다. 여러 계정에서 24/7 스크립트를 실행하거나 암호화폐 채굴과 같은 과도한 사용은 주의와 잠재적 차단을 끌어들입니다. 위험을 최소화하기 위해 실제 훈련 프로젝트를 위해 책임감 있게 연결 유지를 사용합니다.

Colab 업데이트 후 연결 유지 스크립트가 작동을 멈추는 이유는 무엇입니까?

Colab의 인터페이스 업데이트는 연결 유지 스크립트가 의존하는 HTML 요소 ID, 클래스 및 구조를 변경합니다. Google이 인터페이스를 업데이트하면, 스크립트의 querySelector 선택자가 망가져 클릭 시도가 실패합니다. 이것은 새 인터페이스 구조와 일치하도록 스크립트를 업데이트해야 합니다. 인터페이스 변경으로 기존 스크립트가 망가질 때 사용자가 업데이트된 스크립트를 공유하는 GitHub, Reddit 또는 Stack Overflow의 Colab 사용자 커뮤니티에 참여합니다.

연결 유지 스크립트를 사용하면 체크포인트가 필요합니까?

예, 작동하는 연결 유지 스크립트가 있어도 체크포인트는 여전히 필수적입니다. 연결 유지는 유휴 타임아웃을 방지하지만 하드 런타임 제한(무료 12시간, Pro 24시간), 예상치 못한 Colab 충돌 또는 유지 보수, 세션을 끊는 네트워크 연결 끊김, 연결 유지 스크립트를 죽이는 브라우저 충돌로부터 보호하지 않습니다. 강력한 체크포인트는 모든 연결 끊김 원인에 대한 보호를 제공하며 진지한 훈련 프로젝트에 대한 모범 사례로 간주됩니다.

훈련 중에 얼마나 자주 체크포인트를 저장해야 합니까?

진행 상황 보호와 훈련 효율성 사이의 최적 균형을 위해 15-30분마다 체크포인트합니다. 더 빈번한 체크포인트(5분마다)는 I/O 오버헤드에 시간을 낭비합니다. 덜 빈번한 체크포인트(2시간마다)는 예상치 못한 연결 끊김에 상당한 진행 상황을 잃을 위험이 있습니다. 체크포인트 저장 시간을 모니터링하고 그에 따라 빈도를 조정합니다. 체크포인트를 저장하는 데 3분이 걸리면, 20-30분 간격은 훈련 대비 체크포인트에 과도한 시간을 소비하는 것을 방지합니다.

Colab Pro가 모든 연결 끊김을 방지합니까?

아니요, Colab Pro는 여전히 무인 훈련을 위해 연결 유지 스크립트가 필요한 90분 유휴 타임아웃을 시행합니다. Pro는 최대 런타임을 12시간에서 24시간으로 연장하지만 연결 끊김을 완전히 제거하지 않습니다. Pro는 우선순위 GPU 액세스와 더 긴 런타임을 통해 더 나은 안정성을 제공하지만 Pro 및 Pro+를 포함한 모든 Colab 티어에서 긴 훈련 세션을 위해 연결 유지 스크립트와 체크포인트가 여전히 필요합니다.

여러 Colab 노트북을 연결 유지 스크립트와 함께 동시에 실행할 수 있습니까?

기술적으로는 가능하지만 이것은 CAPTCHA 가능성과 계정 제한 위험을 증가시킵니다. 각 노트북은 유휴 타임아웃이 노트북별로 있기 때문에 자체 연결 유지 스크립트가 필요합니다. 연결 유지 스크립트와 함께 많은 동시 노트북을 실행하는 것은 Google의 남용 감지 시스템에 의심스럽게 보입니다. 합법적인 필요의 경우, 2-3개의 노트북을 동시에 실행하는 것은 일반적으로 허용되지만 연결 유지 스크립트와 함께 10개 이상의 동시 노트북은 문제를 초대합니다. 대규모 병렬 훈련을 위해 Vast.ai 또는 RunPod과 같은 대안을 고려합니다.

훈련 체크포인트는 얼마나 많은 Google Drive 스토리지를 소비합니까?

체크포인트 크기는 모델에 따라 다릅니다. 작은 모델(SD 1.5 LoRA)은 50-200MB 체크포인트를 생성합니다. 중간 모델(SDXL LoRA)은 200-800MB 체크포인트를 생성합니다. 큰 모델(전체 SDXL 미세 조정)은 5-7GB 체크포인트를 생성합니다. 저장하는 체크포인트 수에 체크포인트 크기를 곱합니다. 가장 최근의 3-5개 체크포인트만 유지하는 체크포인트 로테이션을 구현하여 무제한 스토리지 증가를 방지합니다. 무료 Google Drive는 15GB를 제공하여 LoRA 훈련을 처리하지만 체크포인트 로테이션이 필요한 전체 모델 미세 조정에는 불충분할 수 있습니다.

연결 유지 스크립트를 사용하는 동안 브라우저가 닫히면 훈련은 어떻게 됩니까?

연결 유지 스크립트를 실행하는 브라우저 탭을 닫으면 JavaScript 실행이 중지되어 유휴 타임아웃이 정상 카운트를 재개할 수 있습니다. Colab 서버의 훈련 코드는 일시적으로 계속 실행되지만 연결 유지가 중지되면 약 90분 후에 연결이 끊어집니다. 이것이 체크포인트가 필수적인 이유입니다. 브라우저가 닫힌 것을 깨달았을 때, 즉시 노트북을 다시 열고, 연결 유지 스크립트를 재시작하고, 연결 끊김이 발생했는지 모니터링합니다. 연결이 끊어진 경우, 노트북을 재시작하면 훈련이 마지막 체크포인트에서 자동 재개됩니다.

Colab Pro+ 백그라운드 실행이 안정적으로 작동합니까?

사용자 보고는 Pro+ 백그라운드 실행이 2025년에 신뢰할 수 없다는 것을 나타냅니다. 이 기능은 훈련이 계속되는 동안 브라우저 탭을 닫을 수 있다고 약속하지만 구현이 일관성이 없습니다. 많은 사용자는 탭을 닫을 때 Pro+에서도 훈련이 여전히 연결이 끊어진다고 보고합니다. 현재 이 기능에 의존하지 마십시오. Pro+ 구독이 있어도 연결 유지 스크립트와 체크포인트를 사용합니다. Google은 향후 업데이트에서 백그라운드 실행 안정성을 개선할 수 있지만 현재는 신뢰할 수 있는 것이 아니라 실험적인 것으로 취급합니다.

Colab에서 안정적인 훈련 워크플로우 구축하기

이제 Colab 연결 끊김을 방지하고 훈련 진행 상황을 보호하기 위한 완전한 전략을 이해했습니다. 성공적인 Colab 훈련은 연결 끊김 원인에 대한 계층화된 방어에서 여러 기술을 결합합니다.

유휴 타임아웃을 완화하기 위해 연결 유지 JavaScript 스크립트를 구현합니다. 이 가이드에서 공유된 현재 작동하는 스크립트 변형을 사용하고 인터페이스 변경으로 기존 스크립트가 망가질 때 업데이트된 스크립트를 찾기 위해 Colab 사용자 커뮤니티를 모니터링합니다. CAPTCHA 트리거와 계정 제한 위험을 최소화하기 위해 합리적인 간격(60-90초)으로 책임감 있게 스크립트를 실행합니다.

모든 훈련 프로젝트에 강력한 체크포인트를 구축합니다. 모델 가중치, 옵티마이저 상태, 단계 카운터 및 훈련 로그를 포함한 완전한 훈련 상태를 15-30분마다 Google Drive에 저장합니다. 노트북을 재시작하면 수동 개입 없이 마지막 체크포인트에서 자동으로 계속되도록 자동 재개 로직을 구현합니다.

12-24시간 훈련 세션이 필요한 프로젝트에 대해 Colab Pro 구독을 고려합니다. 월 $10 비용은 진지한 프로젝트에 대한 투자를 정당화하는 연장된 런타임, 더 나은 GPU 가용성 및 증가된 리소스 제한을 제공합니다. 대부분의 사용자가 일반 Pro 또는 해당 가격대의 전용 GPU 클라우드 제공업체에서 더 나은 가치를 찾기 때문에 Pro+를 신중하게 평가합니다.

여러 연결 끊김에서 생존하는 재개 가능한 세그먼트로 훈련을 구조화합니다. 훈련 진행 상황의 통합된 보기를 제공하는 세션 전반에 걸친 영구 로그를 유지합니다. 프로젝트 계획 및 디버깅을 가능하게 하는 누적 훈련 시간과 세션 메타데이터를 추적합니다.

Colab이 귀중한 무료 및 저비용 GPU 액세스를 제공하지만 긴 무인 훈련 작업을 위해 설계되지 않았다는 것을 기억합니다. 플랫폼은 적절한 체크포인트와 함께 12-24시간 창 내에서 완료되는 대화형 개발, 실험 및 훈련에서 탁월합니다. 보장된 가동 시간과 리소스가 필요한 프로덕션 훈련의 경우, 전용 대안을 고려합니다.

Apatero.com과 같은 플랫폼이 안정적인 관리형 인프라를 통해 이러한 연결 끊김 과제를 제거하는 반면, Colab 기술을 마스터하면 귀중한 클라우드 훈련 경험과 GPU 리소스에 대한 예산을 고려한 액세스를 제공합니다. Colab의 제약 내에서 작업하면서 개발하는 기술은 클라우드 기반 훈련 환경을 이해하는 데 전달됩니다.

연결 유지 스크립트, 강력한 체크포인트, 적절한 티어 구독 및 재개 가능한 워크플로우 설계를 결합한 계층화된 접근 방식은 Colab을 좌절스러운 연결 끊김 소스에서 의도된 사용 사례 내에서 진지한 AI 프로젝트에 적합한 안정적인 훈련 플랫폼으로 변환합니다.

AI 인플루언서를 만들 준비가 되셨나요?

완전한 51레슨 과정에서 ComfyUI와 AI 인플루언서 마케팅을 마스터하는 115명의 학생들과 함께하세요.

조기 할인 종료까지:
--
:
--
시간
:
--
:
--
자리 확보하기 - $199
$200 절약 - 가격이 영구적으로 $399로 인상