10 클라우드 환경은 [클라우드 세션](/docs/ko/claude-code-on-the-web)에 적용되며, 이는 Pro, Max, Team 플랜에서 사용 가능하고, [프리미엄 시트 또는 Chat + Claude Code 시트](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan)가 있는 Enterprise 사용자를 위한 것입니다.10 클라우드 환경은 [클라우드 세션](/docs/ko/claude-code-on-the-web)에 적용되며, 이는 Pro, Max, Team 플랜에서 사용 가능하고, [프리미엄 시트 또는 Chat + Claude Code 시트](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan)가 있는 Enterprise 사용자를 위한 것입니다.
11</Note>11</Note>
12 12
13각 [클라우드 세션](/docs/ko/claude-code-on-the-web)은 클라우드 환경에서 실행됩니다. 환경을 구성하여 [네트워크 액세스](#access-levels)를 허용하거나 거부하고, 세션에 대한 [환경 변수](#set-environment-variables)를 설정하며, Pro 및 Max 플랜에서 세션이 사용하는 [API 자격 증명](#add-api-credentials)을 저장하고, Claude가 작업을 시작하기 전에 [설정 스크립트](#setup-scripts)를 실행할 수 있습니다.13각 [클라우드 세션](/docs/ko/claude-code-on-the-web)은 클라우드 환경에서 실행됩니다. 환경을 구성하여 [네트워크 액세스](#access-levels)를 허용하거나 거부하고, 세션에 대한 [환경 변수](#set-environment-variables)를 설정하며, Pro 및 Max 플랜에서 세션이 값을 직접 보지 않고도 사용할 수 있는 [네트워크 시크릿](#add-api-credentials)을 저장하고, Claude가 작업을 시작하기 전에 [설정 스크립트](#setup-scripts)를 실행할 수 있습니다.
14 14
15동일한 환경이 클라우드 세션을 시작하는 모든 곳에 적용됩니다: [Desktop 앱](/docs/ko/desktop), [Claude 모바일 앱](/docs/ko/mobile), [claude.ai/code](https://claude.ai/code)의 브라우저, [`claude --cloud`](/docs/ko/claude-code-on-the-web#from-terminal-to-cloud)를 사용한 터미널, [루틴](/docs/ko/routines), 그리고 [Claude Tag](https://claude.com/docs/claude-tag/overview). 이러한 각 표면은 [자체 호스팅 환경](/docs/ko/self-hosted-environments)으로도 라우팅할 수 있습니다. [가용성 및 제한 사항](/docs/ko/self-hosted-environments#availability-and-limitations)은 Claude Tag 세션이 하나에서 실행될 때 Claude가 아직 사용할 수 없는 항목을 다룹니다.15동일한 환경이 클라우드 세션을 시작하는 모든 곳에 적용됩니다: [Desktop 앱](/docs/ko/desktop), [Claude 모바일 앱](/docs/ko/mobile), [claude.ai/code](https://claude.ai/code)의 브라우저, [`claude --cloud`](/docs/ko/claude-code-on-the-web#from-terminal-to-cloud)를 사용한 터미널, [루틴](/docs/ko/routines), 그리고 [Claude Tag](https://claude.com/docs/claude-tag/overview). 이러한 각 표면은 [자체 호스팅 환경](/docs/ko/self-hosted-environments)으로도 라우팅할 수 있습니다. [가용성 및 제한 사항](/docs/ko/self-hosted-environments#availability-and-limitations)은 Claude Tag 세션이 하나에서 실행될 때 Claude가 아직 사용할 수 없는 항목을 다룹니다.
16 16
58 <Step title="환경 추가 또는 편집">58 <Step title="환경 추가 또는 편집">
59 **Cloud**를 선택하여 환경을 나열합니다. 그런 다음 **Add cloud environment**를 선택하거나, 기존 환경 위에 마우스를 올리고 오른쪽에 나타나는 설정 아이콘을 선택합니다.59 **Cloud**를 선택하여 환경을 나열합니다. 그런 다음 **Add cloud environment**를 선택하거나, 기존 환경 위에 마우스를 올리고 오른쪽에 나타나는 설정 아이콘을 선택합니다.
60 60
61 대화 상자에는 이름, 네트워크 액세스 수준, 환경 변수 및 설정 스크립트가 포함됩니다. Pro 또는 Max 플랜에서 기존 클라우드 환경을 편집할 때 대화 상자에는 [API 자격 증명](#add-api-credentials)도 포함됩니다.61 대화 상자에는 이름, 네트워크 액세스 수준, 환경 변수 및 설정 스크립트가 포함됩니다. Pro 또는 Max 플랜에서 기존 클라우드 환경을 편집할 때 대화 상자에는 [네트워크 시크릿](#add-api-credentials)도 포함됩니다.
62 62
63 <Frame>63 <Frame>
64 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-dialog.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=30d4478b31d1f879f7ee287ddab32505" alt="New cloud environment 대화 상자입니다. 기본값 자리 표시자가 있는 Name 필드, Trusted로 설정된 Network access 선택기(네트워크 정책 및 액세스 수준에 대한 링크 포함), .env 형식 자리 표시자 텍스트가 있는 Environment variables 상자(환경을 사용하는 모든 사람이 값을 볼 수 있다는 참고 사항 포함), Claude Code가 시작되기 전에 새 세션이 시작될 때 실행되는 Bash 스크립트로 설명된 Setup script 상자, 그리고 Cancel 및 Create environment 버튼이 있습니다." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />64 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-dialog.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=30d4478b31d1f879f7ee287ddab32505" alt="New cloud environment 대화 상자입니다. 기본값 자리 표시자가 있는 Name 필드, Trusted로 설정된 Network access 선택기(네트워크 정책 및 액세스 수준에 대한 링크 포함), .env 형식 자리 표시자 텍스트가 있는 Environment variables 상자(환경을 사용하는 모든 사람이 값을 볼 수 있다는 참고 사항 포함), Claude Code가 시작되기 전에 새 세션이 시작될 때 실행되는 Bash 스크립트로 설명된 Setup script 상자, 그리고 Cancel 및 Create environment 버튼이 있습니다." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />
91 91
92클라우드 세션은 시작할 때 자체적으로 일부 변수도 설정합니다. [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/ko/claude-code-on-the-web#manage-context)의 경우, 세션이 설정하는 값이 여기에 추가한 값을 재정의하므로 여기에 해당 키를 추가해도 효과가 없습니다.92클라우드 세션은 시작할 때 자체적으로 일부 변수도 설정합니다. [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/ko/claude-code-on-the-web#manage-context)의 경우, 세션이 설정하는 값이 여기에 추가한 값을 재정의하므로 여기에 해당 키를 추가해도 효과가 없습니다.
93 93
94환경을 사용하는 모든 사람이 값을 읽을 수 있습니다. Pro 및 Max 플랜에서는 에이전트 프록시가 요청에 첨부할 수 있는 키에 대해 [API 자격 증명](#add-api-credentials)을 대신 사용합니다. [자격 증명을 받지 않는 요청](#requests-that-never-get-the-credential)이 나열되어 있습니다.94환경을 사용하는 모든 사람이 값을 읽을 수 있습니다. Pro 및 Max 플랜에서는 에이전트 프록시가 요청에 첨부할 수 있는 키에 대해 [네트워크 시크릿](#add-api-credentials)을 대신 사용하십시오. [시크릿을 받지 않는 요청](#requests-that-never-get-the-credential)은 해당 섹션에 나열되어 있습니다.
95 95
96<h3 id="add-api-credentials">96<h3 id="add-api-credentials">
97 API 자격 증명 추가97 네트워크 시크릿 추가
98</h3>98</h3>
99 99
100API 자격 증명은 클라우드 환경에 저장하는 API 키 또는 토큰으로, Claude가 키를 보지 않고도 환경의 모든 세션에서 해당 API를 호출할 수 있습니다. Anthropic의 에이전트 프록시는 각 요청이 세션의 VM을 떠난 후 나열한 호스트에 대한 요청에 키를 추가합니다. 키는 Claude, 실행하는 명령 또는 세션의 환경 변수에 도달하지 않습니다.100네트워크 시크릿은 클라우드 환경에 저장하는 API 키 또는 토큰으로, Claude가 키를 보지 않고도 환경의 모든 세션에서 해당 API를 호출할 수 있게 합니다. Anthropic의 에이전트 프록시는 각 요청이 세션의 VM을 떠난 후 나열한 호스트에 대한 요청에 키를 추가합니다. 키는 Claude, 실행하는 명령 또는 세션의 환경 변수에 도달하지 않습니다.
101 101
102API 자격 증명은 Pro 및 Max 플랜에서 사용 가능합니다. Team 또는 Enterprise 플랜에서는 아직 사용할 수 없으므로 **API credentials** 섹션이 해당 플랜의 환경 대화 상자에 나타나지 않습니다.102네트워크 시크릿은 Pro 및 Max 플랜에서 사용 가능합니다. Team 또는 Enterprise 플랜에서는 아직 사용할 수 없으므로 **Network secrets** 섹션이 해당 플랜의 환경 대화 상자에 나타나지 않습니다.
103 103
104<h4 id="requirements">104<h4 id="requirements">
105 요구 사항105 요구 사항
106</h4>106</h4>
107 107
108이 중 두 개는 자격 증명을 추가할 수 있는지 여부를 결정하고, 두 개는 추가된 후 에이전트 프록시가 사용할 수 있는지 여부를 결정합니다.108이 중 두 개는 시크릿을 추가할 수 있는지 여부를 결정하고, 두 개는 추가된 후 에이전트 프록시가 사용할 수 있는지 여부를 결정합니다.
109 109
110* **Role**: claude.ai 조직의 조직 관리자 역할110* **Role**: claude.ai 조직의 조직 관리자 역할
111 * Team 및 Enterprise에서는 Owner가 보유하고 Admin은 보유하지 않습니다.111 * Team 및 Enterprise에서는 Owner가 보유하고 Admin은 보유하지 않습니다.
112 * Pro 및 Max에서는 자신의 조직에서 보유합니다.112 * Pro 및 Max에서는 자신의 조직에서 보유합니다.
113* **Environment type**: 이미 존재하는 Anthropic 호스팅 클라우드 환경입니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments)에는 API 자격 증명이 없습니다.113* **Environment type**: 이미 존재하는 Anthropic 호스팅 클라우드 환경입니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments)에는 네트워크 시크릿이 없습니다.
114* **API reachability**: API가 인터넷에서의 연결을 수락합니다. 요청이 Anthropic의 네트워크에서 나가기 때문입니다.114* **API reachability**: API가 인터넷에서의 연결을 수락합니다. 요청이 Anthropic의 네트워크에서 나가기 때문입니다.
115* **Encryption keys**: 조직이 고객 관리 암호화 키를 사용하는 경우 자격 증명을 저장할 수 없습니다.115* **Encryption keys**: 조직이 고객 관리 암호화 키를 사용하는 경우 네트워크 시크릿을 저장할 수 없습니다.
116 116
117<h4 id="add-a-credential">117<h4 id="add-a-credential">
118 자격 증명 추가118 시크릿 추가
119</h4>119</h4>
120 120
121자격 증명은 한 번에 하나씩 추가하며, 추가한 후에는 편집할 수 없습니다. 자격 증명의 호스트 또는 값을 변경하려면 삭제하고 다시 추가합니다.121시크릿은 한 번에 하나씩 추가하며, 추가한 후에는 편집할 수 없습니다. 시크릿의 호스트 또는 값을 변경하려면 삭제하고 다시 추가합니다.
122 122
123<Steps>123<Steps>
124 <Step title="환경의 API 자격 증명 열기">124 <Step title="환경의 네트워크 시크릿 열기">
125 [claude.ai/code](https://claude.ai/code)에서 [편집할 환경을 엽니다](#configure-your-environment). **Edit environment** 대화 상자에서 **API credentials** 섹션을 찾습니다. 환경에 이미 있는 자격 증명이 각각 적용되는 호스트와 함께 표시됩니다.125 [claude.ai/code](https://claude.ai/code)에서 [편집할 환경을 엽니다](#configure-your-environment). **Edit environment** 대화 상자에서 **Network secrets** 섹션을 찾습니다. 환경에 이미 있는 시크릿이 각각 적용되는 호스트와 함께 표시됩니다.
126 </Step>126 </Step>
127 127
128 <Step title="자격 증명 추가">128 <Step title="시크릿 추가">
129 **Add credential**을 선택하고 양식을 작성합니다. 요청 헤더에서 이동하는 API 키에 대해 기본 **Credential type**, **Bearer**를 유지하고 다음 필드를 작성합니다.129 **Add secret**을 선택하고 양식을 작성합니다. 요청 헤더에서 전달되는 API 키에 대해 기본 **Credential type**인 **Bearer**를 유지하고 다음 필드를 작성합니다.
130 130
131 * **Name**: `Internal billing API`와 같은 자격 증명의 레이블131 * **Name**: `Internal billing API`와 같은 시크릿의 레이블
132 * **Allowed websites**: `api.example.com`과 같은 API의 호스트입니다. 선행 `*.`은 모든 하위 도메인과 일치합니다.132 * **Allowed websites**: `api.example.com`과 같은 API의 호스트입니다. 선행 `*.`은 모든 하위 도메인과 일치합니다.
133 * **Custom headers**: 키를 전달하는 헤더에 대한 한 행입니다. 행은 헤더의 **Name**으로 `Authorization`으로 시작하고 **Prefix**로 `Bearer`로 시작합니다. 키 자체를 **Value**로 붙여넣습니다. `X-Api-Key`와 같이 기본 값을 사용하는 헤더의 경우 이름을 변경하고 접두사를 지웁니다.133 * **Custom headers**: 키를 전달하는 헤더에 대한 한 행입니다. 행은 헤더의 **Name**으로 `Authorization`, **Prefix**로 `Bearer`가 입력된 상태로 시작합니다. 키 자체를 **Value**로 붙여넣습니다. `X-Api-Key`와 같이 접두사 없는 값을 사용하는 헤더의 경우 이름을 변경하고 접두사를 지웁니다.
134 134
135 다른 방식으로 인증하는 API의 경우 다른 **Credential type**을 선택합니다. 목록은 Team 및 Enterprise 플랜의 Slack 통합인 [Claude Tag](https://claude.com/docs/claude-tag/overview)가 [연결](https://claude.com/docs/claude-tag/admins/add-connections)에 제공하는 것과 동일합니다.135 다른 방식으로 인증하는 API의 경우 다른 **Credential type**을 선택합니다. 목록은 Team 및 Enterprise 플랜의 Slack 통합인 [Claude Tag](https://claude.com/docs/claude-tag/overview)가 [연결](https://claude.com/docs/claude-tag/admins/add-connections)에 제공하는 것과 동일합니다.
136 </Step>136 </Step>
137 137
138 <Step title="자격 증명 저장">138 <Step title="시크릿 저장">
139 **Connect**를 선택합니다. 자격 증명이 호스트와 함께 목록에 나타나며, 대화 상자의 **Save changes** 버튼 없이 저장됩니다. 저장 후 값을 다시 볼 수 없습니다.139 **Connect**를 선택합니다. 시크릿이 호스트와 함께 목록에 나타나며, 대화 상자의 **Save changes** 버튼 없이 저장됩니다. 저장 후 값을 다시 볼 수 없습니다.
140 </Step>140 </Step>
141</Steps>141</Steps>
142 142
143자격 증명이 작동하는지 확인하려면 환경에서 세션을 시작하고 Claude에게 `curl`과 같은 API를 호출하도록 요청합니다. API는 키가 요청에 있는 것처럼 응답하며, 키는 세션의 환경 변수나 파일에 나타나지 않습니다. 목록이 자격 증명을 **Not sent**로 표시하는 경우, 아래의 참고 사항에 이유와 수행할 작업이 설명되어 있습니다. 호스트가 정확히 일치하지 않고 겹치는 두 자격 증명은 마커를 받지 않으며, 에이전트 프록시는 그 중 하나만 보냅니다.143시크릿이 작동하는지 확인하려면 환경에서 세션을 시작하고 Claude에게 `curl` 등으로 API를 호출하도록 요청합니다. API는 키가 요청에 있는 것처럼 응답하며, 키는 세션의 환경 변수나 파일에 나타나지 않습니다. 목록이 시크릿을 **Not sent**로 표시하는 경우, 아래의 참고 사항에 이유와 수행할 작업이 설명되어 있습니다. 호스트가 정확히 일치하지 않고 겹치는 두 시크릿은 마커를 받지 않으며, 에이전트 프록시는 그 중 하나만 보냅니다.
144 144
145<h4 id="which-requests-get-the-credential">145<h4 id="which-requests-get-the-credential">
146 자격 증명을 받는 요청146 시크릿을 받는 요청
147</h4>147</h4>
148 148
149에이전트 프록시는 요청의 호스트가 해당 자격 증명에 나열한 호스트 중 하나와 일치할 때 자격 증명을 요청에 첨부합니다. 세션은 환경의 [네트워크 액세스 수준](#access-levels)이 그렇지 않으면 허용하지 않을 때에도 해당 호스트에 도달할 수 있습니다. 단, [자격 증명을 받지 않는 호스트](#requests-that-never-get-the-credential)는 제외됩니다. 자격 증명은 삭제할 때까지 환경에서 실행되는 모든 세션에 적용되며, 누가 시작했는지는 상관없습니다.149에이전트 프록시는 요청의 호스트가 해당 시크릿에 나열한 호스트 중 하나와 일치할 때 시크릿을 요청에 첨부합니다. 세션은 환경의 [네트워크 액세스 수준](#access-levels)이 그렇지 않으면 허용하지 않을 때에도 해당 호스트에 도달할 수 있습니다. 단, [시크릿을 받지 않는 호스트](#requests-that-never-get-the-credential)는 제외됩니다. 시크릿은 삭제할 때까지 환경에서 실행되는 모든 세션에 적용되며, 누가 시작했는지는 상관없습니다.
150 150
151<h4 id="requests-that-never-get-the-credential">151<h4 id="requests-that-never-get-the-credential">
152 자격 증명을 받지 않는 요청152 시크릿을 받지 않는 요청
153</h4>153</h4>
154 154
155에이전트 프록시는 다음 요청에 추가한 자격 증명을 첨부하지 않습니다.155에이전트 프록시는 다음 요청에 추가한 시크릿을 첨부하지 않습니다.
156 156
157* **GitHub**: [GitHub 프록시](#github-proxy)가 대신 GitHub에 대한 요청을 인증하므로 GitHub에 대한 API 자격 증명이 필요하지 않습니다.157* **GitHub**: [GitHub 프록시](#github-proxy)가 대신 GitHub에 대한 요청을 인증하므로 GitHub에 대한 네트워크 시크릿이 필요하지 않습니다.
158* **Anthropic API 및 공개 패키지 레지스트리**: `api.anthropic.com`, `registry.npmjs.org`, `jsr.io`, `npm.jsr.io`, `pypi.org`, `files.pythonhosted.org`, `index.crates.io`, 및 `proxy.golang.org`158* **Anthropic API 및 공개 패키지 레지스트리**: `api.anthropic.com`, `registry.npmjs.org`, `jsr.io`, `npm.jsr.io`, `pypi.org`, `files.pythonhosted.org`, `index.crates.io`, 및 `proxy.golang.org`
159* **Setup script 요청**: Claude Code는 [설정 스크립트](#setup-scripts)가 실행된 후 시작할 때 에이전트 프록시에 연결합니다.159* **Setup script 요청**: Claude Code는 [설정 스크립트](#setup-scripts)가 실행된 후 시작할 때 에이전트 프록시에 연결합니다.
160* **Claude Code의 텔레메트리 내보내기**: Claude Code는 자신의 [텔레메트리 내보내기](/docs/ko/monitoring-usage#telemetry-from-cloud-sessions-and-claude-tag)를 실행하는 명령이 아닌 자체적으로 보내며, 해당 요청은 에이전트 프록시를 통과하지 않습니다.160* **Claude Code의 텔레메트리 내보내기**: Claude Code는 자신의 [텔레메트리 내보내기](/docs/ko/monitoring-usage#telemetry-from-cloud-sessions-and-claude-tag)를 실행하는 명령이 아닌 자체적으로 보내며, 해당 요청은 에이전트 프록시를 통과하지 않습니다.
179 179
180* 환경에서 이미 실행 중인 세션은 계속 작동합니다.180* 환경에서 이미 실행 중인 세션은 계속 작동합니다.
181* 환경이 선택기 및 `/remote-env`에서 사라지므로 새 세션에 대해 선택할 수 없습니다.181* 환경이 선택기 및 `/remote-env`에서 사라지므로 새 세션에 대해 선택할 수 없습니다.
182* 환경의 API 자격 증명은 실행 중인 세션에 첨부된 상태로 유지됩니다. 보관하기 전에 더 이상 원하지 않는 항목을 삭제합니다.182* 환경의 네트워크 시크릿은 실행 중인 세션에 첨부된 상태로 유지됩니다. 보관하기 전에 더 이상 원하지 않는 항목을 삭제합니다.
183* 보관된 환경에서는 어떤 표면에서도 새 세션을 시작할 수 없습니다. 환경이 저장된 [CLI 기본값](#select-an-environment-from-the-cli)이었다면, 목록에 Anthropic 호스팅 환경이 있을 때 Claude Code는 CLI 클라우드 세션을 해당 환경에서 시작하고, 그렇지 않으면 [Remote Control 브리지 환경](#the-default-environment)이 아닌 목록의 첫 번째 환경에서 시작합니다. [루틴](/docs/ko/routines#environments-and-network-access)과 같이 환경으로 명시적으로 구성된 모든 항목은 새 세션을 시작할 수 없습니다. 다른 환경을 가리키도록 합니다.183* 보관된 환경에서는 어떤 표면에서도 새 세션을 시작할 수 없습니다. 환경이 저장된 [CLI 기본값](#select-an-environment-from-the-cli)이었다면, 목록에 Anthropic 호스팅 환경이 있을 때 Claude Code는 CLI 클라우드 세션을 해당 환경에서 시작하고, 그렇지 않으면 [Remote Control 브리지 환경](#the-default-environment)이 아닌 목록의 첫 번째 환경에서 시작합니다. [루틴](/docs/ko/routines#environments-and-network-access)과 같이 환경으로 명시적으로 구성된 모든 항목은 새 세션을 시작할 수 없습니다. 다른 환경을 가리키도록 합니다.
184 184
185<h3 id="organization-shared-environments">185<h3 id="organization-shared-environments">
197 197
198Owner는 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)에서 조직의 [기본 환경](#the-default-environment)을 별도로 선택합니다.198Owner는 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)에서 조직의 [기본 환경](#the-default-environment)을 별도로 선택합니다.
199 199
200모든 구성원의 공유 환경의 세션은 해당 변수를 읽으므로 비밀을 포함하지 마십시오. [자격 증명을 읽을 수 없는 세션을 제공하는 API 자격 증명](#add-api-credentials)은 Team 또는 Enterprise 플랜에서 아직 사용할 수 없습니다.200모든 구성원의 공유 환경 세션은 해당 변수를 읽으므로 비밀 정보를 포함하지 마십시오. 세션에 읽을 수 없는 키를 제공하는 [네트워크 시크릿](#add-api-credentials)은 Team 또는 Enterprise 플랜에서 아직 사용할 수 없습니다.
201 201
202<h3 id="set-the-environment-a-claude-tag-channel-uses">202<h3 id="set-the-environment-a-claude-tag-channel-uses">
203 Claude Tag 채널이 사용하는 환경 설정203 Claude Tag 채널이 사용하는 환경 설정
239 239
240* GitHub([별도의 프록시](#github-proxy)를 통해)240* GitHub([별도의 프록시](#github-proxy)를 통해)
241* 활성화한 [MCP 커넥터](#network-access)(트래픽이 Anthropic의 서버를 통해 이동)241* 활성화한 [MCP 커넥터](#network-access)(트래픽이 Anthropic의 서버를 통해 이동)
242* 환경의 [API 자격 증명](#add-api-credentials)에 나열한 호스트([에이전트 프록시가 건너뛰는 호스트](#requests-that-never-get-the-credential) 제외)242* 환경의 [네트워크 시크릿](#add-api-credentials)에 나열한 호스트([시크릿을 받지 않는 호스트](#requests-that-never-get-the-credential) 제외)
243* Anthropic API(Claude Code의 자체 요청의 경우, [보안 및 격리](/docs/ko/claude-code-on-the-web#security-and-isolation) 아래에 언급된 대로 **None**에서도)243* Anthropic API(Claude Code의 자체 요청의 경우, [보안 및 격리](/docs/ko/claude-code-on-the-web#security-and-isolation) 아래에 언급된 대로 **None**에서도)
244 244
245<h3 id="allow-specific-domains">245<h3 id="allow-specific-domains">
254registry.example.com254registry.example.com
255```255```
256 256
257이 환경의 세션은 이제 `api.example.com`, `internal.example.com`의 모든 하위 도메인 및 `registry.example.com`에 도달할 수 있으며 세션의 네트워크를 통해 다른 도메인에는 도달할 수 없습니다. [GitHub 트래픽](#github-proxy), [MCP 커넥터 트래픽](#network-access) 및 환경의 [API 자격 증명](#add-api-credentials)의 호스트에 대한 요청([에이전트 프록시가 건너뛰는 호스트](#requests-that-never-get-the-credential) 제외)은 이 허용 목록을 통과하지 않습니다. 선행 `*.`은 모든 하위 도메인과 일치합니다. [Trusted 도메인](#default-allowed-domains)도 유지하려면 **Also include default list of common package managers**를 확인합니다. 나열한 것만 허용하려면 선택 해제합니다.257이 환경의 세션은 이제 `api.example.com`, `internal.example.com`의 모든 하위 도메인 및 `registry.example.com`에 도달할 수 있으며 세션의 네트워크를 통해 다른 도메인에는 도달할 수 없습니다. [GitHub 트래픽](#github-proxy), [MCP 커넥터 트래픽](#network-access) 및 환경의 [네트워크 시크릿](#add-api-credentials)의 호스트에 대한 요청([시크릿을 받지 않는 호스트](#requests-that-never-get-the-credential) 제외)은 이 허용 목록을 통과하지 않습니다. 선행 `*.`은 모든 하위 도메인과 일치합니다. [Trusted 도메인](#default-allowed-domains)도 유지하려면 **Also include default list of common package managers**를 확인합니다. 나열한 것만 허용하려면 선택 해제합니다.
258 258
259조직이 [아티팩트](/docs/ko/artifacts#availability)를 사용하는 경우 세션이 이를 읽기 위해 목록에 `*.frame.claudeusercontent.com`이 필요하지 않습니다. 목록이 해당 호스트를 생략하면 Claude Code는 세션의 Anthropic 연결을 통해 아티팩트 콘텐츠를 읽습니다. 두 가지 상황에서 호스트를 허용 목록에 유지합니다:259조직이 [아티팩트](/docs/ko/artifacts#availability)를 사용하는 경우 세션이 이를 읽기 위해 목록에 `*.frame.claudeusercontent.com`이 필요하지 않습니다. 목록이 해당 호스트를 생략하면 Claude Code는 세션의 Anthropic 연결을 통해 아티팩트 콘텐츠를 읽습니다. 두 가지 상황에서 호스트를 허용 목록에 유지합니다:
260 260
292 클라우드 세션에서 사용 가능한 항목292 클라우드 세션에서 사용 가능한 항목
293</h2>293</h2>
294 294
295Anthropic 호스팅 환경에서 각 세션은 자신의 운영 체제와 CPU 아키텍처에 관계없이 x86\_64에서 Ubuntu 24.04를 실행하는 새로운 가상 머신(VM)을 받으며, 리포지토리가 복제되고 일반적인 도구 체인이 사전 설치됩니다. 종속성이 사전 컴파일된 바이너리를 제공할 때(예: 네이티브 확장이 있는 Ruby gem 또는 사전 빌드된 Python 휠) x86\_64 Linux 빌드를 사용하여 VM과 일치합니다. 이 섹션은 Anthropic 호스팅 기본값, 기본 제공 GitHub 도구, [테스트 및 서비스 실행](#run-tests-start-services-and-add-packages) 방법, [리소스 제한](#resource-limits) 각 VM이 받는 항목, 그리고 [시간 제한](#time-limits) 장기 실행 작업에 대한 항목을 다룹니다.295Anthropic 호스팅 환경에서 각 세션은 자신의 운영 체제와 CPU 아키텍처에 관계없이 x86\_64에서 Ubuntu 24.04를 실행하는 새로운 가상 머신(VM)을 받으며, 저장소가 복제되고 일반적인 도구 체인이 사전 설치됩니다. 의존성이 사전 컴파일된 바이너리를 제공할 때(예: 네이티브 확장이 있는 Ruby gem 또는 사전 빌드된 Python 휠) VM과 일치하도록 x86\_64 Linux 빌드를 사용합니다. 이 섹션에서는 Anthropic 호스팅 기본값, 기본 제공 GitHub 도구, [테스트 및 서비스 실행](#run-tests-start-services-and-add-packages) 방법, 각 VM이 받는 [리소스 제한](#resource-limits), 그리고 장기 실행 작업에 대한 [시간 제한](#time-limits)을 다룹니다.
296 296
297<Note>297<Note>
298 조직이 [자체 호스팅 환경](/docs/ko/self-hosted-environments)으로 라우팅하는 세션은 자신의 러너에서 실행되며 러너 이미지가 제공하는 도구를 사용합니다.298 조직이 [자체 호스팅 환경](/docs/ko/self-hosted-environments)으로 라우팅하는 세션은 자신의 러너에서 실행되며 러너 이미지가 제공하는 도구를 사용합니다.
302 설정에서 전달되는 항목302 설정에서 전달되는 항목
303</h3>303</h3>
304 304
305클라우드 세션은 리포지토리의 새로운 복제본에서 시작됩니다. 리포지토리에 커밋한 모든 항목을 사용할 수 있습니다. 자신의 머신에만 설치하거나 구성한 항목은 세션에서 사용할 수 없습니다. 조직의 정책은 [서버 관리 설정](/docs/ko/server-managed-settings)을 통해 별도로 도착합니다.305클라우드 세션은 저장소의 새로운 복제본에서 시작됩니다. 저장소에 커밋한 모든 항목을 사용할 수 있습니다. 자신의 머신에만 설치하거나 구성한 항목은 세션에서 사용할 수 없습니다. 조직의 정책은 [서버 관리형 설정](/docs/ko/server-managed-settings)을 통해 별도로 도착합니다.
306 306
307| | 클라우드 세션에서 사용 가능 | 이유 |307| | 클라우드 세션에서 사용 가능 | 이유 |
308| :- | :- | :- |308| :- | :- | :- |
309| 리포지토리의 `CLAUDE.md` | 예 | 복제본의 일부 |309| 저장소의 `CLAUDE.md` | 예 | 복제본의 일부 |
310| 리포지토리의 `.claude/settings.json` 훅 및 권한 규칙 | 예, 하나의 리포지토리가 있는 세션에서 | 복제본의 일부입니다. 여러 리포지토리가 있는 세션([프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories) 스레드 포함)은 복제본 위에서 시작되며 이를 읽지 않습니다 |310| 저장소의 `.claude/settings.json` 훅 및 권한 규칙 | 예, 하나의 저장소가 있는 세션에서 | 복제본의 일부입니다. 여러 저장소가 있는 세션([프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories) 스레드 포함)은 복제본 위에서 시작되며 이를 읽지 않습니다 |
311| 리포지토리의 `.mcp.json` MCP 서버 | 예, 하나의 리포지토리가 있는 세션에서 | 복제본의 일부이며 세션의 작업 디렉토리에서 찾습니다 |311| 저장소의 `.mcp.json` MCP 서버 | 예, 하나의 저장소가 있는 세션에서 | 복제본의 일부이며 세션의 작업 디렉터리에서 찾습니다 |
312| 리포지토리의 `.claude/rules/` | 예 | 복제본의 일부 |312| 저장소의 `.claude/rules/` | 예 | 복제본의 일부 |
313| 리포지토리의 `.claude/skills/`, `.claude/agents/`, `.claude/commands/` | 예 | 복제본의 일부 |313| 저장소의 `.claude/skills/`, `.claude/agents/`, `.claude/commands/` | 예 | 복제본의 일부 |
314| 리포지토리의 `.claude/settings.json`에 선언된 플러그인 및 마켓플레이스 | 아니오 | 클라우드 세션은 리포지토리가 [`enabledPlugins`](/docs/ko/settings-reference#enabledplugins) 아래에서 켜는 플러그인을 설치하지 않으며, [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces) 아래에 나열하는 마켓플레이스의 플러그인도 포함됩니다 |314| 저장소의 `.claude/settings.json`에 선언된 플러그인 및 마켓플레이스 | 아니오 | 클라우드 세션은 저장소가 [`enabledPlugins`](/docs/ko/settings-reference#enabledplugins) 아래에서 켜는 플러그인을 설치하지 않으며, [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces) 아래에 나열하는 마켓플레이스의 플러그인도 포함됩니다 |
315| 조직의 [서버 관리 설정](/docs/ko/server-managed-settings) | 예, [Claude Tag](https://claude.com/docs/claude-tag/overview) 세션 제외 | 세션이 시작될 때 Anthropic의 서버에서 가져옵니다. 클라우드 세션에서 `availableModels`이 적용되는 방식은 [표면 범위](/docs/ko/model-config#surface-coverage)를 참조하세요. MDM 또는 관리 설정 파일을 통해 장치에 배포된 설정은 세션이 Anthropic 관리 VM에서 실행되기 때문에 적용되지 않습니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments)에서 세션은 [Claude Code가 관리 소스를 결합하는 방식](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)에 따라 러너 이미지의 관리 설정 파일도 읽습니다 |315| 조직의 [서버 관리형 설정](/docs/ko/server-managed-settings) | 예, [Claude Tag](https://claude.com/docs/claude-tag/overview) 세션 제외 | 세션이 시작될 때 Anthropic의 서버에서 가져옵니다. 클라우드 세션에서 `availableModels`이 적용되는 방식은 [사용 환경 범위](/docs/ko/model-config#surface-coverage)를 참조하세요. MDM 또는 관리형 설정 파일을 통해 장치에 배포된 설정은 세션이 Anthropic 관리 VM에서 실행되기 때문에 적용되지 않습니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments)에서 세션은 [Claude Code가 관리형 소스를 결합하는 방식](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)에 따라 러너 이미지의 관리형 설정 파일도 읽습니다 |
316| 사용자 `~/.claude/CLAUDE.md` | 아니오 | 리포지토리가 아닌 머신에 있습니다 |316| 사용자 `~/.claude/CLAUDE.md` | 아니오 | 저장소가 아닌 머신에 있습니다. [저장소에 커밋하지 않고 개인 기본 설정 추가](#add-personal-preferences-without-committing-to-the-repo)를 참조하세요 |
317| 사용자 `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` | 아니오 | 리포지토리가 아닌 머신에 있습니다. 대신 리포지토리의 `.claude/` 디렉토리에 커밋합니다. 클라우드 세션은 claude.ai에서 활성화한 기술을 자동으로 로드합니다 |317| 사용자 `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` | 아니오 | 저장소가 아닌 머신에 있습니다. 대신 저장소의 `.claude/` 디렉터리에 커밋합니다. 클라우드 세션은 claude.ai에서 활성화한 스킬을 자동으로 로드합니다 |
318| 사용자 설정에서만 활성화된 플러그인 | 아니오 | 사용자 범위 `enabledPlugins`은 머신의 `~/.claude/settings.json`에 있습니다 |318| 사용자 설정에서만 활성화된 플러그인 | 아니오 | 사용자 범위 `enabledPlugins`은 머신의 `~/.claude/settings.json`에 있습니다 |
319| `claude mcp add`로 기본 로컬 범위 또는 사용자 범위에서 추가한 MCP 서버 | 아니오 | 이는 리포지토리가 아닌 머신의 `~/.claude.json`에 씁니다. `claude mcp add --scope project`로 서버를 추가합니다. 이는 리포지토리의 [`.mcp.json`](/docs/ko/mcp#project-scope)에 쓰고 해당 파일을 커밋합니다. 하나의 리포지토리가 있는 세션이 이를 로드합니다 |319| `claude mcp add`로 기본 로컬 범위 또는 사용자 범위에서 추가한 MCP 서버 | 아니오 | 이는 저장소가 아닌 머신의 `~/.claude.json`에 씁니다. 저장소의 [`.mcp.json`](/docs/ko/mcp#project-scope)에 쓰는 `claude mcp add --scope project`로 서버를 추가하고 해당 파일을 커밋합니다. 하나의 저장소가 있는 세션이 이를 로드합니다 |
320| 리포지토리의 `.claude/settings.json` `env` 블록의 전송 변수(예: `NODE_EXTRA_CA_CERTS` 및 [mTLS 클라이언트 인증서 변수](/docs/ko/network-config#mtls-authentication)) | 아니오 | 호스팅 환경이 세션의 API 연결을 관리하므로 Claude Code는 이러한 키를 무시하고 각 무시된 키를 세션의 디버그 로그에 기록합니다 |320| 저장소의 `.claude/settings.json` `env` 블록의 전송 변수(예: `NODE_EXTRA_CA_CERTS` 및 [mTLS 클라이언트 인증서 변수](/docs/ko/network-config#mtls-authentication)) | 아니오 | 호스팅 환경이 세션의 API 연결을 관리하므로 Claude Code는 이러한 키를 무시하고 각 무시된 키를 세션의 디버그 로그에 기록합니다 |
321| Claude가 호출하는 서비스의 API 키 및 토큰 | Pro 및 Max 플랜에서 [API 자격 증명](#add-api-credentials)으로 | 환경에 키를 한 번 추가하고 에이전트 프록시가 나열한 호스트에 대한 요청에 첨부합니다. 에이전트 프록시가 [첨부할 수 없는](#requests-that-never-get-the-credential) 키 또는 Team 또는 Enterprise 플랜의 모든 키는 환경 변수에 남아 있습니다 |321| Claude가 호출하는 서비스의 API 키 및 토큰 | Pro 및 Max 플랜에서 [네트워크 시크릿](#add-api-credentials)으로 | 환경에 키를 한 번 추가하면 에이전트 프록시가 나열한 호스트에 대한 요청에 이를 첨부합니다. 에이전트 프록시가 [첨부할 수 없는](#requests-that-never-get-the-credential) 키 또는 Team 또는 Enterprise 플랜의 모든 키는 환경 변수에 남아 있습니다 |
322| AWS SSO와 같은 대화형 인증 | 아니오 | 지원되지 않습니다. SSO는 클라우드 세션에서 실행할 수 없는 브라우저 기반 로그인이 필요합니다 |322| AWS SSO와 같은 대화형 인증 | 아니오 | 지원되지 않습니다. SSO는 클라우드 세션에서 실행할 수 없는 브라우저 기반 로그인이 필요합니다 |
323 323
324자신의 구성을 클라우드 세션에서 사용 가능하게 하려면 리포지토리에 커밋합니다.324자신의 구성을 클라우드 세션에서 사용 가능하게 하려면 저장소에 커밋합니다.
325 325
326환경을 사용하는 모든 사람이 환경 변수 및 설정 스크립트를 읽을 수 있습니다. 대화 상자의 **Environment variables** 아래의 참고 사항이 이를 말하고 비밀을 추가하지 않도록 경고합니다. Pro 및 Max 플랜에서 에이전트 프록시가 첨부할 수 있는 키에 대해 [API 자격 증명](#add-api-credentials)을 대신 사용합니다.326환경을 사용하는 모든 사람이 환경 변수 및 설정 스크립트를 읽을 수 있습니다. 대화 상자의 **Environment variables** 아래의 참고 사항이 이를 안내하고 비밀을 추가하지 않도록 경고합니다. Pro 및 Max 플랜에서는 에이전트 프록시가 첨부할 수 있는 키를 대신 [네트워크 시크릿](#add-api-credentials)으로 저장합니다.
327
328<h4 id="add-personal-preferences-without-committing-to-the-repo">
329 저장소에 커밋하지 않고 개인 기본 설정 추가
330</h4>
331
332Anthropic 호스팅 환경에서는 공유 저장소에 넣고 싶지 않은 기본 설정을 위해 `~/.claude/CLAUDE.md`를 작성하는 [설정 스크립트](#setup-scripts)를 추가합니다. Claude Code는 세션에서 해당 파일을 [사용자 지침](/docs/ko/memory#choose-where-to-put-claude-md-files)으로 로드합니다. 다음 예시는 커밋 메시지 기본 설정을 지정합니다:
333
334```bash theme={null}
335#!/bin/bash
336mkdir -p ~/.claude
337cat > ~/.claude/CLAUDE.md <<'EOF'
338Use conventional commit messages.
339EOF
340```
341
342스크립트는 [공유 환경](#organization-shared-environments)이 아닌 자신의 환경 중 하나에 추가합니다.
343
344다음 클라우드 세션에서 `/context`를 실행하고 **Memory files** 아래에 `/root/.claude/CLAUDE.md`가 표시되는지 확인합니다.
327 345
328<h3 id="installed-tools">346<h3 id="installed-tools">
329 설치된 도구347 설치된 도구
347 365
348¹ Bun이 설치되어 있지만 패키지 페칭에 대해 알려진 [프록시 호환성 문제](#install-dependencies-with-a-sessionstart-hook)가 있습니다.366¹ Bun이 설치되어 있지만 패키지 페칭에 대해 알려진 [프록시 호환성 문제](#install-dependencies-with-a-sessionstart-hook)가 있습니다.
349 367
350이 표의 대부분의 도구 버전을 얻으려면 Claude에게 클라우드 세션에서 `check-tools`를 실행하도록 요청합니다. 이는 슬래시 명령이 아닌 세션 VM에 설치된 셸 명령입니다. [Claude가 모든 VM 명령을 실행](#run-tests-start-services-and-add-packages)하기 때문에 요청합니다. 이를 보고하지 않는 도구(예: Ruby, PHP, bun, PostgreSQL 또는 Redis)의 경우 Claude에게 도구의 자체 버전 명령을 실행하도록 요청합니다(예: `psql --version`).368이 표의 대부분의 도구 버전을 얻으려면 Claude에게 클라우드 세션에서 `check-tools`를 실행하도록 요청합니다. 이는 `/`로 입력하는 명령이 아니라 세션 VM에 설치된 셸 명령입니다. [Claude가 모든 VM 명령을 실행](#run-tests-start-services-and-add-packages)하기 때문에 Claude에게 요청합니다. 이를 보고하지 않는 도구(예: Ruby, PHP, bun, PostgreSQL 또는 Redis)의 경우 Claude에게 도구의 자체 버전 명령을 실행하도록 요청합니다(예: `psql --version`).
351 369
352Node.js 버전은 `/opt/node20`, `/opt/node21` 및 `/opt/node22`에 설치되며, 기본적으로 22가 `PATH`에 있습니다. 다른 버전으로 작업하려면 Claude에게 해당 버전의 `bin` 디렉토리(예: `/opt/node20/bin`)를 `PATH`에 앞에 추가하도록 요청합니다.370Node.js 버전은 `/opt/node20`, `/opt/node21` 및 `/opt/node22`에 설치되며, 기본적으로 22가 `PATH`에 있습니다. 다른 버전으로 작업하려면 Claude에게 해당 버전의 `bin` 디렉터리(예: `/opt/node20/bin`)를 `PATH` 앞에 추가하도록 요청합니다.
353 371
354.NET SDK와 같은 이 목록 외의 도구 체인은 패키지 레지스트리가 [기본 허용 목록](#default-allowed-domains)에 있더라도 사전 설치되지 않습니다. [설정 스크립트](#setup-scripts)로 설치합니다.372.NET SDK와 같은 이 목록 외의 도구 체인은 패키지 레지스트리가 [기본 허용 목록](#default-allowed-domains)에 있더라도 사전 설치되지 않습니다. [설정 스크립트](#setup-scripts)로 설치합니다.
355 373
356<h3 id="work-with-github-issues-and-pull-requests">374<h3 id="work-with-github-issues-and-pull-requests">
357 GitHub 이슈 및 풀 요청 작업375 GitHub 이슈 및 풀 리퀘스트 작업
358</h3>376</h3>
359 377
360클라우드 세션에는 Claude가 이슈를 읽고, 풀 요청을 나열하고, 차이를 가져오고, 설정 없이 댓글을 게시할 수 있는 기본 제공 GitHub 도구가 포함됩니다. 이러한 도구는 [GitHub 프록시](#github-proxy)를 통해 인증하며, [GitHub 인증 옵션](/docs/ko/claude-code-on-the-web#github-authentication-options) 아래에서 구성한 방법을 사용하므로 토큰이 컨테이너에 들어가지 않습니다.378클라우드 세션에는 Claude가 별도 설정 없이 이슈를 읽고, 풀 리퀘스트를 나열하고, diff를 가져오고, 댓글을 게시할 수 있는 기본 제공 GitHub 도구가 포함됩니다. 이러한 도구는 [GitHub 프록시](#github-proxy)를 통해 인증하며, [GitHub 인증 옵션](/docs/ko/claude-code-on-the-web#github-authentication-options) 아래에서 구성한 방법을 사용하므로 토큰이 컨테이너에 들어가지 않습니다.
361 379
362[환경 설정](#set-environment-variables)에서 `GH_TOKEN` 또는 `GITHUB_TOKEN`을 직접 설정하거나 둘 다 설정하지 않고 [GitHub 프록시](#github-proxy)가 인증을 처리하도록 할 수 있습니다:380[환경 설정](#set-environment-variables)에서 `GH_TOKEN` 또는 `GITHUB_TOKEN`을 직접 설정하거나 둘 다 설정하지 않고 [GitHub 프록시](#github-proxy)가 인증을 처리하도록 할 수 있습니다:
363 381
364* 토큰을 설정하면 컨테이너에 변경되지 않고 전달되므로 스크립트 및 GitHub의 [`gh` CLI](https://cli.github.com)가 직접 사용합니다.382* 토큰을 설정하면 컨테이너에 변경되지 않고 전달되므로 스크립트 및 GitHub의 [`gh` CLI](https://cli.github.com)가 직접 사용합니다.
365* 둘 다 설정하지 않고 [GitHub 프록시](#github-proxy)가 세션에 대한 인증을 처리하는 경우 두 변수 모두 Claude가 실행하는 명령에서 자리 표시자 문자열 `proxy-injected`로 읽으며, 프록시는 아웃바운드 GitHub 요청에서 실제 자격 증명을 대체합니다. `gh`는 자신의 토큰 없이 작동하지만 `GITHUB_TOKEN`을 직접 읽는 스크립트는 사용 가능한 토큰이 아닌 자리 표시자를 받습니다.383* 둘 다 설정하지 않고 [GitHub 프록시](#github-proxy)가 세션에 대한 인증을 처리하는 경우 두 변수 모두 Claude가 실행하는 명령에서 자리 표시자 문자열 `proxy-injected`로 읽히며, 프록시는 아웃바운드 GitHub 요청에서 실제 자격 증명으로 대체합니다. `gh`는 자신의 토큰 없이 작동하지만 `GITHUB_TOKEN`을 직접 읽는 스크립트는 사용 가능한 토큰이 아닌 자리 표시자를 받습니다.
366 384
367설정한 토큰은 일반 환경 변수이므로 환경을 사용하는 모든 사람이 읽을 수 있습니다. 프록시 경로는 자격 증명을 환경 구성 및 세션 VM 외부에 유지합니다.385설정한 토큰은 일반 환경 변수이므로 환경을 사용하는 모든 사람이 읽을 수 있습니다. 프록시 경로는 자격 증명을 환경 구성 및 세션 VM 외부에 유지합니다.
368 386
388 테스트 실행, 서비스 시작 및 패키지 추가406 테스트 실행, 서비스 시작 및 패키지 추가
389</h3>407</h3>
390 408
391세션 VM에 셸이 없습니다. Claude가 모든 명령을 실행하므로 이 섹션의 작업을 프롬프트의 요청으로 표현합니다.409세션 VM에 셸로 접속할 수 없습니다. Claude가 모든 명령을 실행하므로 이 섹션의 작업을 프롬프트의 요청으로 표현합니다.
392 410
393<h4 id="run-tests">411<h4 id="run-tests">
394 테스트 실행412 테스트 실행
395</h4>413</h4>
396 414
397Claude는 작업을 수행하는 과정에서 테스트를 실행합니다. 프롬프트에서 "fix the failing tests in `tests/`" 또는 "run pytest after each change"와 같이 요청합니다. pytest 및 cargo test와 같은 [사전 설치된 도구 체인](#installed-tools)과 함께 제공되는 테스트 러너는 추가 설정 없이 작동합니다. jest와 같이 프로젝트가 종속성으로 선언하는 러너는 종속성과 함께 설치됩니다.415Claude는 작업을 수행하는 과정에서 테스트를 실행합니다. 프롬프트에서 "fix the failing tests in `tests/`" 또는 "run pytest after each change"와 같이 요청합니다. pytest 및 cargo test와 같은 [사전 설치된 도구 체인](#installed-tools)과 함께 제공되는 테스트 러너는 추가 설정 없이 작동합니다. jest와 같이 프로젝트가 의존성으로 선언하는 러너는 의존성과 함께 설치됩니다.
398 416
399<h4 id="start-services">417<h4 id="start-services">
400 서비스 시작418 서비스 시작
401</h4>419</h4>
402 420
403PostgreSQL 및 Redis는 사전 설치되어 있지만 기본적으로 실행되지 않습니다. 필요한 것을 시작하도록 Claude에게 요청합니다. 실행하는 명령은:421PostgreSQL 및 Redis는 사전 설치되어 있지만 기본적으로 실행되지 않습니다. 필요한 것을 시작하도록 Claude에게 요청합니다. 실행하는 명령은 다음과 같습니다:
404 422
405```bash theme={null}423```bash theme={null}
406service postgresql start424service postgresql start
430* 16GB의 RAM448* 16GB의 RAM
431* 30GB의 디스크449* 30GB의 디스크
432 450
433VM은 대규모 빌드 작업 또는 메모리 집약적인 테스트와 같이 훨씬 더 많은 메모리가 필요한 작업을 중지할 수 있습니다. 이러한 제한을 초과하는 워크로드의 경우 [Remote Control](/docs/ko/remote-control)을 사용하여 자신의 하드웨어에서 Claude Code를 실행하거나 조직이 운영하는 컴퓨팅에서 [자체 호스팅 환경](/docs/ko/self-hosted-environments)에서 클라우드 세션을 실행합니다.451VM은 대규모 빌드 작업 또는 메모리 집약적인 테스트와 같이 훨씬 더 많은 메모리가 필요한 작업을 중지할 수 있습니다. 이러한 제한을 초과하는 워크로드의 경우 [Remote Control](/docs/ko/remote-control)을 사용하여 자신의 하드웨어에서 Claude Code를 실행하거나 조직이 운영하는 컴퓨팅의 [자체 호스팅 환경](/docs/ko/self-hosted-environments)에서 클라우드 세션을 실행합니다.
434 452
435<h3 id="time-limits">453<h3 id="time-limits">
436 시간 제한454 시간 제한
438 456
439Anthropic 호스팅 환경에서 이러한 시간 제한은 빌드, 설치 또는 테스트 실행과 같은 클라우드 세션의 장기 실행 작업에 적용됩니다. 각 항목은 제한을 정의하는 섹션으로 연결됩니다.457Anthropic 호스팅 환경에서 이러한 시간 제한은 빌드, 설치 또는 테스트 실행과 같은 클라우드 세션의 장기 실행 작업에 적용됩니다. 각 항목은 제한을 정의하는 섹션으로 연결됩니다.
440 458
441* **Claude가 실행하는 명령**: 클라우드 환경은 자신의 명령 타임아웃을 설정하지 않으므로 Bash 도구의 기본값이 적용됩니다. Claude는 기본적으로 명령을 2분 동안 기다리며 최대 10분까지 요청할 수 있습니다.459* **Claude가 실행하는 명령**: 클라우드 환경은 자체 명령 타임아웃을 설정하지 않으므로 Bash 도구의 기본값이 적용됩니다. Claude는 기본적으로 포그라운드 명령을 2분 동안 기다리며 최대 10분까지 요청할 수 있습니다.
442 460
443 명령이 [타임아웃](/docs/ko/tools-reference#timeout-and-output-limits)에 도달하면 Claude Code는 명령이 `sleep`으로 시작하지 않는 한 명령을 중지하는 대신 [백그라운드로 이동](/docs/ko/tools-reference#foreground-commands-that-move-to-the-background)합니다. 이런 방식으로 이동된 명령은 Claude Code가 [백그라운드 시간 제한](/docs/ko/tools-reference#time-limit-for-background-commands)에서 중지하기 전에 최대 30분 더 실행될 수 있습니다. `BASH_DEFAULT_TIMEOUT_MS`를 `1800000` 밀리초 이상으로 설정하면 해당 제한과 포그라운드 기본값이 모두 길어집니다.461 명령이 [타임아웃](/docs/ko/tools-reference#timeout-and-output-limits)에 도달하면 Claude Code는 명령이 `sleep`으로 시작하지 않는 한 명령을 중지하는 대신 [백그라운드로 이동](/docs/ko/tools-reference#foreground-commands-that-move-to-the-background)합니다. 이런 방식으로 이동된 명령은 Claude Code가 [백그라운드 시간 제한](/docs/ko/tools-reference#time-limit-for-background-commands)에서 중지하기 전에 최대 30분 더 실행될 수 있습니다. `BASH_DEFAULT_TIMEOUT_MS`를 `1800000` 밀리초 이상으로 설정하면 해당 제한과 포그라운드 기본값이 모두 길어집니다.
444* **SessionStart 훅**: Claude Code는 [`timeout`](/docs/ko/hooks#common-fields)을 초 단위로 설정하지 않으면 600초 후 `command` 훅을 취소합니다. Claude Code는 [`async: true`](/docs/ko/hooks#run-hooks-in-the-background)로 실행하는 훅에 타임아웃을 적용하지 않습니다.462* **SessionStart 훅**: Claude Code는 훅 항목에 [`timeout`](/docs/ko/hooks#common-fields)을 초 단위로 설정하지 않으면 600초 후 `command` 훅을 취소합니다. Claude Code는 [`async: true`](/docs/ko/hooks#run-hooks-in-the-background)로 실행하는 훅에 타임아웃을 적용하지 않습니다.
445* **설정 스크립트**: 대략 5분 이상 걸리는 스크립트는 캐시되지 않습니다. [스크립트 요구 사항](#script-requirements)은 그 이하로 유지하는 방법을 다룹니다.463* **설정 스크립트**: 대략 5분 이상 걸리는 스크립트는 캐시되지 않습니다. [스크립트 요구 사항](#script-requirements)은 그 이하로 유지하는 방법을 다룹니다.
446* **유휴 세션**: 몇 분 동안 활동이 없으면 세션의 VM이 파일이 저장된 상태로 일시 중지되고, 일시 중지된 VM은 나중에 회수될 수 있습니다. [환경 변수 설정](#set-environment-variables)은 각 경우에 세션이 선택하는 항목을 설명하고, [Environment expired](/docs/ko/claude-code-on-the-web#environment-expired)는 VM이 회수된 세션을 다시 여는 방법을 다룹니다.464* **유휴 세션**: 몇 분 동안 활동이 없으면 세션의 VM이 파일이 저장된 상태로 일시 중지되고, 일시 중지된 VM은 나중에 회수될 수 있습니다. [환경 변수 설정](#set-environment-variables)은 각 경우에 세션이 반영하는 항목을 설명하고, [Environment expired](/docs/ko/claude-code-on-the-web#environment-expired)는 VM이 회수된 세션을 다시 여는 방법을 다룹니다.
447 465
448환경의 세션에 대한 명령 타임아웃을 높이려면 [`BASH_DEFAULT_TIMEOUT_MS` 및 `BASH_MAX_TIMEOUT_MS`](/docs/ko/env-vars#variables)를 [환경 변수](#set-environment-variables)에 추가합니다. 둘 다 밀리초를 사용합니다. 예를 들어 `BASH_DEFAULT_TIMEOUT_MS=600000`은 10분을 기본값으로 만듭니다.466환경의 세션에 대한 명령 타임아웃을 높이려면 [`BASH_DEFAULT_TIMEOUT_MS` 및 `BASH_MAX_TIMEOUT_MS`](/docs/ko/env-vars#variables)를 해당 환경의 [환경 변수](#set-environment-variables)에 추가합니다. 둘 다 밀리초 단위입니다. 예를 들어 `BASH_DEFAULT_TIMEOUT_MS=600000`은 10분을 기본값으로 만듭니다.
449 467
450<h2 id="setup-scripts">468<h2 id="setup-scripts">
451 설정 스크립트469 설정 스크립트