Skip to content

Commit ea3e479

Browse files
committed
docs: update sandboxing presentation details
1 parent 6934671 commit ea3e479

1 file changed

Lines changed: 88 additions & 82 deletions

File tree

ai-agent-sandboxing.md

Lines changed: 88 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -650,6 +650,27 @@ section.closing::before {
650650
top: 330px;
651651
}
652652

653+
.closing-links {
654+
display: grid;
655+
font-size: 26px;
656+
gap: 8px;
657+
left: 0;
658+
position: absolute;
659+
right: 0;
660+
text-align: center;
661+
top: 470px;
662+
}
663+
664+
.closing-links a {
665+
color: #ffffff;
666+
text-decoration: none;
667+
}
668+
669+
.closing-links strong {
670+
display: inline-block;
671+
margin-right: 8px;
672+
}
673+
653674
.closing-speaker {
654675
align-items: center;
655676
bottom: 92px;
@@ -1162,10 +1183,15 @@ AI 에이전트는 <em>내 권한으로</em>,<br>
11621183

11631184
<!-- ## 데모 #1: Docker 샌드박스에서 Java 앱 현대화하기 -->
11641185
## 데모 #1: Docker 샌드박스에서 .NET 앱 현대화하기
1165-
```bash
1186+
<!-- ```bash
11661187
sbx secret set github --command 'gh auth token'
11671188
sbx run --clone --name java-appmod copilot .
11681189
sbx exec -it java-appmod bash
1190+
``` -->
1191+
```bash
1192+
sbx secret set github --command 'gh auth token'
1193+
sbx run --clone --name dotnet-appmod copilot .
1194+
sbx exec -it dotnet-appmod bash
11691195
```
11701196

11711197
<div class="flow">
@@ -1196,10 +1222,9 @@ sbx exec -it java-appmod bash
11961222
<!--
11971223
발표자 노트 · 11:10–12:10 · 1분
11981224
1199-
앞 페이지의 sbx run 명령으로 진입한 GitHub Copilot CLI 화면에서 플러그인 설치를 진행합니다.
1200-
첫 번째 슬래시 명령으로 Microsoft의 GitHub Copilot modernization 마켓플레이스를 추가하고, 두 번째 슬래시 명령으로 플러그인을 설치합니다.
1201-
설치 후 Copilot CLI에서 /plugin list를 실행하면 github-copilot-modernization 플러그인을 확인할 수 있습니다.
1202-
플러그인 설치 과정의 네트워크 요청이 샌드박스 정책을 통과하는지도 함께 확인합니다.
1225+
- 플러그인 설치
1226+
- 플러그인 설치 중 관련 MCP 서버도 함께 설치
1227+
- MCP 실행 실패는 샌드박스의 환경 설정 때문인 것 보여줌
12031228
-->
12041229

12051230
---
@@ -1226,12 +1251,9 @@ sbx exec -it java-appmod bash
12261251
<!--
12271252
발표자 노트 · 12:10–13:40 · 1분 30초
12281253
1229-
샌드박스 셸에서 copilot 명령으로 GitHub Copilot CLI를 실행합니다.
1230-
Copilot CLI 안에서 /agent를 실행하고 github-copilot-modernization:modernize 에이전트를 선택합니다.
1231-
이 에이전트는 요청을 Assessment, Planning, Execution의 세 단계로 오케스트레이션합니다.
1232-
Assessment 단계에서는 Java 버전, 프레임워크, 의존성과 위험을 분석하고 .github/modernize/assessment에 결과를 저장합니다.
1233-
Planning 단계에서는 plan.md와 tasks.json을 생성하며, Execution 단계에서는 전문 실행 에이전트가 작업을 수행하고 작업별 커밋을 남깁니다.
1234-
이 구조 덕분에 관객은 단일 프롬프트 뒤에서 어떤 단계와 산출물이 만들어지는지 확인할 수 있습니다.
1254+
- /agent 실행 후 github-copilot-modernization:modernize 선택
1255+
- 현대화 에이전트는 알아서 Assessment, Planning, Execution 단계를 진행함
1256+
- 이미 GHCP는 --allow-all 옵션을 자동으로 적용시켜 놨기 때문에 맨 마지막에 진행할까요? 정도만 남겨두고 알아서 진행함
12351257
-->
12361258

12371259
---
@@ -1244,12 +1266,11 @@ Planning 단계에서는 plan.md와 tasks.json을 생성하며, Execution 단계
12441266
<!--
12451267
발표자 노트 · 13:40–17:00 · 3분 20초
12461268
1247-
modernize 에이전트를 선택한 뒤 자연어로 구체적인 목표를 전달합니다.
1248-
광범위하게 '이 애플리케이션을 현대화해 줘'라고 요청하면 진단부터 전체 파이프라인을 실행합니다.
1249-
여기서는 Java 21과 Spring Boot 4.1 업그레이드라는 구체적인 작업을 요청해 계획과 실행에 집중합니다.
1250-
자율 실행이 필요하면 Copilot CLI를 --allow-all 옵션으로 시작할 수 있지만, 샌드박스의 네트워크와 파일 경계는 외부에서 계속 적용됩니다.
1251-
완료되면 변경된 코드, 빌드 결과, 취약점 검사, 작업별 커밋과 Git hooks를 검토합니다.
1252-
시간이 지연되면 미리 녹화한 결과 화면으로 즉시 전환합니다.
1269+
- 프롬프트 실행
1270+
- 화면처럼 얘기할 수도 있고, 아예 "해줘!" 라고 해도 됨
1271+
- 여기서는 .NET 10으로 현대화 해달라고 했음
1272+
- 여기서는 Java 21과 Spring Boot 4.1로 현대화 해달라고 했음
1273+
- 시간이 오래 걸리므로 우선 여기까지 진행하는 것 보여주고 다음으로 넘어감
12531274
-->
12541275

12551276
---
@@ -1268,10 +1289,10 @@ modernize 에이전트를 선택한 뒤 자연어로 구체적인 목표를 전
12681289
<!--
12691290
발표자 노트 · 17:00–17:30 · 30초
12701291
1271-
Docker 샌드박스는 개발자 로컬 워크플로에 매우 잘 맞습니다.
1272-
하지만 제품 기능으로 에이전트를 제공하거나 팀 단위로 많은 작업을 동시에 실행하려면 노트북을 운영 기반으로 사용할 수 없습니다.
1273-
이때 필요한 것은 원격 격리, 자동화 가능한 수명주기, 대규모 동시 실행입니다.
1274-
ACA 샌드박스는 Docker 샌드박스의 단순한 클라우드 복사판이 아니라 이 운영 문제를 다루는 별도의 모델입니다.
1292+
- 지금까지 도커 샌드박스 안에서 GHCP CLI로 앱 현대화 하는 과정을 보여줬음
1293+
- 이번에는 팀 단위로 많은 작업을 동시에 실행시켜야 한다면? 그땐 개발자 개인 PC에 의존할 수 없음
1294+
- 이때부터는 클라우드에 올라간 샌드박스를 고려해야 함
1295+
- ACA 샌드박스가 이 문제를 해결할 수 있음
12751296
-->
12761297

12771298
---
@@ -1285,7 +1306,7 @@ ACA 샌드박스는 Docker 샌드박스의 단순한 클라우드 복사판이
12851306
<!--
12861307
발표자 노트 · 17:30–17:40 · 10초
12871308
1288-
이제 로컬 개발 환경의 격리를 넘어 팀과 서비스 규모에서 샌드박스를 운영하는 방법을 살펴봅니다.
1309+
- 로컬 개발환경 격리를 넘어, 클라우드 규모에서 샌드박스를 운영해 보쟈
12891310
-->
12901311

12911312
---
@@ -1306,11 +1327,11 @@ ACA 샌드박스는 Docker 샌드박스의 단순한 클라우드 복사판이
13061327
<!--
13071328
발표자 노트 · 17:40–19:00 · 1분 20초
13081329
1309-
ACA 샌드박스는 샌드박스 그룹 아래에 생성하는 일급 Azure 리소스입니다.
1310-
Portal, CLI, SDK, Bicep, Skills를 통해 샌드박스를 생성하고 관리할 수 있으며, 이 발표의 데모는 ACA CLI를 사용합니다.
1311-
각 샌드박스는 격리된 실행 환경이며 OCI 이미지를 루트 파일시스템으로 사용할 수 있습니다.
1312-
중요한 차이는 상태를 메모리와 디스크 스냅샷으로 보존한 채 suspend하고, 이후 resume할 수 있다는 점입니다.
1313-
현재 미리 보기 기능이므로 CLI와 SDK의 호환성 변경 가능성도 발표에서 분명히 밝힙니다.
1330+
- ACA 샌드박스는 컨테이너 앱 기반의 리소스임. 현재 프리뷰 상태
1331+
- 포탈, CLI, 파이썬 SDK, Skills 등으로 샌드박스를 생성하고 관리할 수 있음
1332+
- 오늘은 ACA CLI를 사용할 거임
1333+
- 각각의 샌드박스는 격리된 실행환경이고 도커에서 제공하는 컨테이너 이미지를 루트 파일 시스템으로 사용함
1334+
- 샌드박스마다 스냅샷을 제공해서 사용하지 않을 경우에는 컨테이너를 멈추고 필요한 경우 다시 실행시킬 수 있음
13141335
-->
13151336

13161337
---
@@ -1327,11 +1348,10 @@ Portal, CLI, SDK, Bicep, Skills를 통해 샌드박스를 생성하고 관리할
13271348
<!--
13281349
발표자 노트 · 19:00–20:20 · 1분 20초
13291350
1330-
ACA가 더하는 가치는 여섯 가지입니다.
1331-
빠른 시작, 수천 단위 확장, suspend와 resume, Azure 거버넌스, 네트워크 통제, 사용자 OCI 이미지입니다.
1332-
이 기능들은 단일 개발자 경험보다 서비스 운영과 멀티테넌트 실행에 초점이 있습니다.
1333-
중지 상태에서는 CPU와 메모리 비용이 발생하지 않지만, 저장된 상태나 관련 리소스 비용은 별도로 확인해야 합니다.
1334-
또한 샌드박스를 생성·관리하는 사용자에게는 Container Apps SandboxGroup Data Owner 역할이 필요합니다.
1351+
- 로컬에서 돌아가는 도커 샌드박스에 더해 이런 장점이 있음
1352+
- 빠른 시작, 스케일링, 스냅샷, 클라우드 거버넌스, 네트워크 통제, 커스텀 OCI 이미지
1353+
- 중지상태에서는 스냅샷 저장 공간을 제외한 나머지 비용이 발생하지 않음
1354+
- 샌드박스 사용자는 별도의 RBAC 권한이 필요함
13351355
-->
13361356

13371357
---
@@ -1345,7 +1365,7 @@ ACA가 더하는 가치는 여섯 가지입니다.
13451365
<!--
13461366
발표자 노트 · 20:20–20:30 · 10초
13471367
1348-
두 번째 데모에서는 ACA 샌드박스를 생성하고 원격에서 Copilot CLI를 실행한 뒤 Suspend와 Resume까지 확인합니다.
1368+
- 쟈 그러면 두번째 데모를 한 번 볼까?
13491369
-->
13501370

13511371
---
@@ -1378,12 +1398,10 @@ ACA가 더하는 가치는 여섯 가지입니다.
13781398
<!--
13791399
발표자 노트 · 20:30–21:30 · 1분
13801400
1381-
먼저 aca sandboxgroup create 명령으로 샌드박스 그룹을 만들고 --set-config 옵션으로 이후 명령에 사용할 기본 구성을 저장합니다.
1382-
샌드박스 그룹을 생성하거나 수정하려면 Container Apps SandboxGroup Contributor 역할이 필요합니다.
1383-
이어서 aca sandbox create 명령으로 GitHub Copilot CLI가 포함된 공개 copilot 디스크 이미지를 사용하는 샌드박스를 생성합니다.
1384-
사전에 만든 GitHub Copilot 자격 증명 ID를 --credential 옵션으로 연결해 Copilot CLI가 인증된 상태로 시작되도록 합니다.
1385-
그룹 내부의 샌드박스와 이미지 같은 데이터 영역 작업에는 Container Apps SandboxGroup Data Owner 역할이 필요합니다.
1386-
반환된 샌드박스 ID와 Running 상태를 확인한 뒤 다음 단계에서 Copilot CLI를 실행합니다.
1401+
- aca sandboxgroup create 명령으로 샌드박스 그룹 생성 - 모든 샌드박스가 여기서 돌아감
1402+
- aca sandbox create 명령으로 샌드박스 생성
1403+
- 샌드박스 안으로 들어가서 로그인해도 되지만, 그 전에 GitHub PAT 활용해서 사전에 로그인할 수 있음
1404+
- 이후 샌드박스 안으로 들어가면 됨
13871405
-->
13881406

13891407
---
@@ -1394,9 +1412,9 @@ ACA가 더하는 가치는 여섯 가지입니다.
13941412

13951413
<pre><code><span class="shell-prompt">$</span> <span class="shell-command">aca sandbox shell</span> <span class="shell-value">-l name=ghcp-demo</span>
13961414

1397-
<span class="shell-prompt">ghcp-demo$</span> <span class="shell-command">git clone</span> <span class="shell-url">https://github.com/devkimchi/battle-school-lunch.git</span>
1398-
<span class="shell-prompt">ghcp-demo$</span> <span class="shell-command">cd</span> <span class="shell-value">battle-school-lunch</span>
1399-
<span class="shell-prompt">ghcp-demo$</span> <span class="shell-command">copilot</span></code></pre>
1415+
<span class="shell-prompt">workspaces$</span> <span class="shell-command">git clone</span> <span class="shell-url">https://github.com/devkimchi/battle-school-lunch.git</span>
1416+
<span class="shell-prompt">workspaces$</span> <span class="shell-command">cd</span> <span class="shell-value">battle-school-lunch</span>
1417+
<span class="shell-prompt">workspaces$</span> <span class="shell-command">copilot</span></code></pre>
14001418

14011419
<div class="creation-result">
14021420
<b>Clone</b><span class="arrow">→</span>
@@ -1407,10 +1425,8 @@ ACA가 더하는 가치는 여섯 가지입니다.
14071425
<!--
14081426
발표자 노트 · 21:30–22:30 · 1분
14091427
1410-
aca sandbox shell 명령으로 생성한 샌드박스의 대화형 셸에 접속합니다.
1411-
샌드박스 안에서 GitHub 저장소를 복제하고 작업 디렉터리로 이동한 뒤 Copilot CLI를 실행합니다.
1412-
비공개 저장소는 Contents 읽기 권한이 있는 별도 GitHub 자격 증명이 필요하며, github.com에 대한 egress 정책도 허용해야 합니다.
1413-
데모에서는 인증과 네트워크 정책을 미리 구성해 명령 흐름에 집중합니다.
1428+
- aca sandbox shell 명령어로 샌드박스에 접속
1429+
- 깃헙 리포 클론, GHCP CLI 실행
14141430
-->
14151431

14161432
---
@@ -1422,9 +1438,7 @@ aca sandbox shell 명령으로 생성한 샌드박스의 대화형 셸에 접속
14221438
<!--
14231439
발표자 노트 · 22:30–23:30 · 1분
14241440
1425-
Copilot CLI가 시작되면 실제 코드 수정 대신 변경 계획만 작성하도록 요청합니다.
1426-
프롬프트는 Web UI를 Brutal Design 스타일로 바꾸는 계획을 design-update.md 파일에 저장하도록 지시합니다.
1427-
생성된 파일은 다음 슬라이드에서 Suspend와 Resume 이후에도 작업 상태가 유지되는지 확인하는 기준으로 사용합니다.
1441+
- 프롬프트 실행
14281442
-->
14291443

14301444
---
@@ -1453,13 +1467,9 @@ Copilot CLI가 시작되면 실제 코드 수정 대신 변경 계획만 작성
14531467
<!--
14541468
발표자 노트 · 23:30–24:30 · 1분
14551469
1456-
ACA CLI에서는 aca sandbox stop 명령으로 샌드박스를 중지합니다.
1457-
중지할 때 설정된 Suspend Mode에 따라 디스크 또는 메모리와 디스크 상태를 스냅샷으로 보존합니다.
1458-
이 상태에서는 CPU와 메모리 컴퓨팅 비용이 발생하지 않으며, 필요할 때 빠르게 Resume할 수 있습니다.
1459-
aca sandbox resume 명령으로 같은 샌드박스를 다시 실행합니다.
1460-
재개한 뒤 동일한 샌드박스 ID와 작업 디렉터리를 확인하고, 앞에서 만든 design-update.md 파일이 유지되는지 검증합니다.
1461-
Suspend는 단순한 프로세스 종료가 아니라 실행 컨텍스트를 보존하는 수명주기 기능입니다.
1462-
이 기능은 긴 에이전트 작업의 대기 시간과 사용자 세션 사이의 유휴 비용을 줄이는 핵심 운영 가치입니다.
1470+
- aca sandbox stop 명령어로 샌드박스 중단
1471+
- aca sandbox resume 명령어로 다시 샌드박스 실행
1472+
- design-update.md 파일 보이는지 확인
14631473
-->
14641474

14651475
---
@@ -1473,7 +1483,7 @@ Suspend는 단순한 프로세스 종료가 아니라 실행 컨텍스트를 보
14731483
<!--
14741484
발표자 노트 · 24:30–24:40 · 10초
14751485
1476-
마지막으로 Docker 샌드박스와 ACA 샌드박스의 선택 기준을 비교하고 샌드박스를 사용해도 남는 위험을 정리합니다.
1486+
- 하지만 과연 샌드박스가 보안 관점에서 만능칼일까? 여전히 조심해야 할 부분이 있음
14771487
-->
14781488

14791489
---
@@ -1491,11 +1501,8 @@ Suspend는 단순한 프로세스 종료가 아니라 실행 컨텍스트를 보
14911501
<!--
14921502
발표자 노트 · 24:40–25:40 · 1분
14931503
1494-
두 제품을 우열로 비교하지 않고 선택 기준으로 정리합니다.
1495-
로컬에서 개발자가 에이전트를 안전하게 사용하려면 Docker 샌드박스가 자연스럽습니다.
1496-
서비스에서 사용자별 또는 작업별 실행 환경을 동적으로 제공하려면 ACA 샌드박스가 맞습니다.
1497-
Docker에도 조직 정책 기능이 있으므로 '중앙 거버넌스가 없습니다'라고 단정하지 않습니다.
1498-
핵심 차이는 실행 위치와 자동화 가능한 수명주기, 그리고 동시성의 규모입니다.
1504+
- 로컬에서 개발자가 에이전트를 안전하게 사용하려면 Docker 샌드박스가 자연스러움
1505+
- 원격에서 동적으로 샌드박스 기능을 여러개 동시다발적으로 돌리려면 ACA 샌드박스가 자연스러움
14991506
-->
15001507

15011508
---
@@ -1511,10 +1518,10 @@ Docker에도 조직 정책 기능이 있으므로 '중앙 거버넌스가 없습
15111518
<!--
15121519
발표자 노트 · 25:40–26:40 · 1분
15131520
1514-
두 제품 모두 샌드박스 경계 밖으로 연결되는 통로가 있으므로 공통 위험이 남습니다.
1515-
허용된 네트워크와 자격 증명은 정보 유출과 권한 오용의 경로가 될 수 있습니다.
1516-
패키지와 이미지의 공급망, 에이전트가 만든 코드와 설정, 외부 MCP 서버와 Skills도 별도로 신뢰하고 검토해야 합니다.
1517-
샌드박스는 이 위험을 없애기보다 영향을 받을 수 있는 범위를 제한합니다.
1521+
- 여전히 위험요소는 남아있음
1522+
- 네트워크, 토큰 등은 정보 유출 및 권한 오남용의 경로가 될 수 있음
1523+
- 서플라이 체인 어택, 플러그인, 설치 스크립트 등 별도로 검토해야
1524+
- 샌드박스는 이런 영향을 받을 수 있는 범위를 제한함
15181525
-->
15191526

15201527
---
@@ -1536,9 +1543,9 @@ Docker에도 조직 정책 기능이 있으므로 '중앙 거버넌스가 없습
15361543
<!--
15371544
발표자 노트 · 26:40–27:40 · 1분
15381545
1539-
Docker 샌드박스에서는 Direct 모드의 호스트 파일 변경과 microVM 밖에서 실행되는 로컬 MCP, 공유 Skills를 주의해야 합니다.
1540-
ACA 샌드박스에서는 Contributor와 Data Owner의 RBAC 범위, 멀티테넌트 사용자와 샌드박스 매핑을 정확히 통제해야 합니다.
1541-
또한 Snapshot과 Volume은 작업 상태를 보존하는 장점이 있지만 민감한 데이터의 잔존 경로가 될 수 있으므로 수명주기와 삭제 정책이 필요합니다.
1546+
- 도커 샌드박스에서는 Direct 모드 사용시 조심할 것, 샌드 박스 밖에서 실행되는 로컬 MCP, 공유 스킬 등을 조심해야 함
1547+
- ACA 샌드박스에서는 RBAC 권한 등을 정확하게 통제해야
1548+
- 스냅샷은 작업 상태를 보존해 준다는 장점도 있지만, 결국 데이터가 남아있으니 라이프사이클 관리에 조심해야 함
15421549
-->
15431550

15441551
---
@@ -1555,8 +1562,8 @@ GitHub Copilot과 같은 <strong>AI 코딩 에이전트</strong>의<br>
15551562
<!--
15561563
발표자 노트 · 27:40–28:00 · 20초
15571564
1558-
따라서 샌드박스는 GitHub Copilot과 같은 AI 코딩 에이전트를 무조건 안전하게 만들어 주거나 신뢰와 검토를 대체하는 장치가 아닙니다.
1559-
에이전트가 실패하거나 공격받았을 때 영향을 받을 수 있는 범위를 최소화하는 방어 계층에 가깝습니다.
1565+
- 따라서, 샌드박스는 GHCP 같은 AI 코딩 에이전트를 무조건 안전하게 만들어주거나 하는 장치가 아님
1566+
- 오히려 무슨 문제가 생겼을 경우 피해를 최소하 시켜주는 방어 계층임
15601567
-->
15611568

15621569
---
@@ -1569,11 +1576,10 @@ GitHub Copilot과 같은 <strong>AI 코딩 에이전트</strong>의<br>
15691576
<!--
15701577
발표자 노트 · 28:00–29:00 · 1분
15711578
1572-
오늘의 결론은 세 문장입니다.
1573-
첫째, 에이전트에게 일할 권한은 주되 실행 경계는 외부 정책으로 강제합니다.
1574-
둘째, GitHub Copilot CLI를 개발자 PC에서 대화형으로 실행할 때는 Docker 샌드박스, 원격에서 자동화하거나 여러 작업을 동시에 실행할 때는 ACA 샌드박스를 선택합니다.
1575-
셋째, 샌드박스는 에이전트를 완전히 신뢰하게 만드는 것이 아니라 실패의 피해 범위를 작고 관찰 가능하고 폐기 가능하게 만듭니다.
1576-
감사합니다.
1579+
- 오늘 세션 내용은 요렇게 세가지로 정리 가능함
1580+
- 1. 에이전트에게 일할 권한은 주되 실행 경계는 외부 정책으로 강제
1581+
- 2. GHCP CLI를 개발자 PC에서 대화형으로 실행할 때는 Docker 샌드박스, 원격에서 자동화하거나 여러 작업을 동시에 실행할 때는 ACA 샌드박스
1582+
- 3. 샌드박스는 에이전트를 완전히 믿고 실행하는 대신 문제 발생시 피해 범위를 작고 관찰 가능하고 폐기 가능하게 만들어줌
15771583
-->
15781584

15791585
---
@@ -1597,9 +1603,7 @@ GitHub Copilot과 같은 <strong>AI 코딩 에이전트</strong>의<br>
15971603
<!--
15981604
발표자 노트 · 29:00–29:20 · 20초
15991605
1600-
질문을 받을 때 사용할 공식 문서 링크입니다.
1601-
Docker 명령은 최신 sbx CLI를 기준으로 작성했습니다.
1602-
ACA 샌드박스는 미리 보기 상태이므로 실제 발표 직전에 공식 문서와 CLI/SDK 예제를 다시 확인합니다.
1606+
- 샌드박스와 관련해서 더욱 궁금하다면? 링크 찾아봐라
16031607
-->
16041608

16051609
---
@@ -1613,6 +1617,10 @@ ACA 샌드박스는 미리 보기 상태이므로 실제 발표 직전에 공식
16131617
우분투에서 AI 에이전트 샌드박싱하기
16141618
</div>
16151619

1620+
<div class="closing-links">
1621+
<a href="https://devkimchi.com/github-copilot-sandbox">devkimchi.com/github-copilot-sandbox</a>
1622+
</div>
1623+
16161624
<div class="closing-speaker">
16171625
<span>유저스틴</span><span>|</span>
16181626
<span>수석 디벨로퍼 아드보캇</span><span>|</span>
@@ -1625,7 +1633,5 @@ ACA 샌드박스는 미리 보기 상태이므로 실제 발표 직전에 공식
16251633
<!--
16261634
발표자 노트 · 29:20–30:00 · 40초
16271635
1628-
경청해 주셔서 감사합니다.
1629-
질문이 있으시면 편하게 말씀해 주세요.
1630-
발표 자료와 추가 정보는 GitHub와 LinkedIn의 @justinyoo 계정에서 확인할 수 있습니다.
1636+
- 땡큐베리감사!
16311637
-->

0 commit comments

Comments
 (0)