Cloud Debugger는 클라우드에서 실행되는 라이브 애플리케이션을 중지하거나 속도를 늦추지 않고 이러한 앱의 호출 스택 및 로컬 변수를 캡처하고 검사할 수 있습니다. Debugger는 App Engine, Compute Engine, GKE, Cloud Run을 포함한 Google Cloud 제품을 지원합니다.
Debugger는 IDE의 표준 디버거와 상당히 비슷하게 작동하며 동일한 사용자 인터페이스를 제공하지만, 다음과 같은 중요한 차이가 있습니다.
- Debugger는 실행 중인 애플리케이션의 실행을 일시중지하지 않습니다.
- Debugger에서는 애플리케이션을 단계별로 실행할 수 없습니다.
Debugger가 지원하는 플랫폼에 대한 자세한 내용은 Debugger 설정을 참조하세요.
요구사항
Debugger를 실행하려면 다음이 필요합니다.
- Cloud Code
- 자바 7 또는 8
- Git
- App Engine 앱을 배포할 수 있는 Google 계정
디버거 사용
Debugger를 사용하려면 다음 안내를 따르세요.
- IntelliJ 내에서 프로젝트를 엽니다.
- 실행 > 구성 편집을 클릭합니다.
- 왼쪽 상단에서 + Add New Configuration(새 구성 추가)를 클릭한 후 드롭다운 목록에서 Google Cloud Debugger를 선택합니다.
- Name(이름) 필드에 구성의 이름을 입력합니다.
- Project(프로젝트) 필드에서 프로젝트가 선택되었는지 확인합니다.
- OK(확인)를 클릭합니다.
- 디버거를 시작하려면 툴바에서 Debug(디버그)를 클릭합니다.
- Attach to an Application(애플리케이션에 연결) 대화상자에서 디버그하려는 백엔드 모듈을 선택한 후 Attach(연결)를 클릭합니다.
스냅샷 위치 설정
스냅샷은 소스 코드의 지정한 위치에서 로컬 변수와 호출 스택을 캡처합니다. 스냅샷 위치는 애플리케이션에서 실행 중인 모든 인스턴스에 적용됩니다.
스냅샷 위치를 설정하려면 다음 안내를 따르세요.
- Debugger를 실행 중인 애플리케이션에 연결한 후 감시하려는 소스 코드가 포함된 파일로 이동합니다.
- 일반 IDEA 디버거를 사용하여 로컬 애플리케이션의 줄 중단점을 설정할 때와 마찬가지로 왼쪽 여백 영역에서 스냅샷을 생성할 실행 가능한 줄을 클릭합니다.
- Set Breakpoint(중단점 설정) 대화상자가 나타나면 Cloud Snapshot Location(Cloud 스냅샷 위치)을 선택합니다. 여백에 파란색 원이 나타나 스냅샷 위치를 표시하고, Debugger 스냅샷 창에는 대기 중인 스냅샷이 표시됩니다.
- 스냅샷 위치를 사용 중지하려면 파란색 원을 마우스 오른쪽 버튼으로 클릭하고 Enabled(사용 설정됨) 체크박스를 선택 해제합니다.
- 스냅샷 위치를 삭제하려면 파란색 원을 클릭합니다.
스냅샷 생성
설정한 스냅샷 위치에서 어떤 인스턴스든 처음으로 코드를 실행하면 디버거가 스냅샷을 생성하여 사용자가 볼 수 있게 제공합니다. 그러면 사용자가 스냅샷을 검사하고 해당 데이터를 사용하여 애플리케이션을 디버깅할 수 있습니다.
Debugger Snapshots(Debugger 스냅샷) 창에서 스냅샷의 라벨이 Pending(대기 중)에서 Debugger가 스냅샷을 캡처한 시간으로 변경됩니다.
고급 개념
스냅샷 조건 설정
스냅샷 조건은 이 값이 true일 때만 스냅샷을 생성하도록 디버거에 지시하는 부울 식입니다. 예를 들면 x !=0
입니다. 조건은 논리 및 숫자 연산자(예: score < 0 || score > 500
)를 포함할 수 있는 완전한 부울 표현식입니다.
스냅샷 조건을 설정하려면 다음 안내를 따르세요.
- 여백에서 Cloud 스냅샷 위치(파란색 원)를 마우스 오른쪽 버튼으로 클릭합니다.
- Condition(조건) 필드에 조건을 입력합니다.
표현식 확인
일부 경우에는 문제 디버깅에 필요한 정보가 애플리케이션의 로컬 변수 및 필드에 명확하게 드러나지 않을 수 있습니다. 특히 App Engine에서 실행할 때 보안 관리자는 java.util.Hashmap
와 같은 시스템 클래스의 비공개 멤버에 너무 깊이 들어가지 못하게 합니다. 이러한 경우 조사식이 추가 정보를 노출하는 효과적인 임시 로컬 변수 역할을 합니다. 조사식은 스냅샷을 만들 때 복잡한 표현식을 평가하고 객체 계층 구조를 순회할 수 있습니다.
스냅샷 위치를 설정한 후에 조사식을 지정할 수 있습니다. 조사식은 스냅샷 조건 설정 섹션에 설명된 스냅샷 조건과 동일한 언어 기능을 지원합니다.
지원 받기
IntelliJ IDE에서 의견을 제출하거나 문제를 신고하려면 도구 > Cloud Code > 도움말 / 정보 > 의견 제출 또는 문제 신고로 이동하여 GitHub에 문제를 신고하거나 Stack Overflow에서 질문합니다.Google Cloud Slack 커뮤니티에 속한 #cloud-code
채널에도 가입할 수 있습니다.