SECS/GEM 시뮬레이터 GUI
PDComm SECS/GEM Simulator(pdcomm-simulator)는 호스트(Host)나 장비(Equipment) 한쪽 역할을 맡는 Qt 데스크톱 프로그램입니다. 실제 장비 없이 내 프로그램의 상대가 되거나, 시뮬레이터 두 개를 서로 연결해 메시지 흐름을 관찰할 때 사용합니다. 화면의 모든 이름은 영어로 표시됩니다. 이 문서도 화면에 보이는 이름을 그대로 굵게 적습니다.
시작하기 전에 다음 내용을 알고 있으면 좋습니다.
시뮬레이터 실행
섹션 제목: “시뮬레이터 실행”SDK 묶음의 simulator/ 폴더에 실행 파일, Qt 라이브러리, 플러그인, 라이선스 고지가 함께 들어 있습니다. 폴더 구조를 바꾸지 말고 그대로 실행합니다.
& "$Root\simulator\pdcomm-simulator.exe""$PDCOMM_ROOT/simulator/pdcomm-simulator"simulator/pdcomm-simulator는 같은 폴더의 lib/와 plugins/를 지정한 뒤 bin/pdcomm-simulator를 실행하는 실행 스크립트입니다. 데스크톱 세션이 없는 서버에서는 GUI를 띄울 수 없습니다. 이때는 헤드리스 시뮬레이터를 사용합니다.
open "$PDCOMM_ROOT/simulator/pdcomm-simulator.app"명령줄 옵션을 넘기려면 앱 묶음 안의 실행 파일을 직접 실행합니다.
"$PDCOMM_ROOT/simulator/pdcomm-simulator.app/Contents/MacOS/pdcomm-simulator"창 제목은 PDComm SECS/GEM Simulator — Untitled처럼 표시됩니다. 저장하지 않은 변경이 있으면 제목 앞에 *가 붙습니다.
화면 구성
섹션 제목: “화면 구성”+-------------------+---------------------------------------------------------------+| PDComm | Session toolbar: Host / Active connection || SIMULATION | [Start session] [Stop] [Select HSMS] [Establish communication]|| WORKSPACE +---------------------------------------------------------------+| | || Overview | selected workspace || Status & Data | || Reports & Events | || ... (12 items) +---------------------------------------------------------------+| | Diagnostics dock (Application activity) |+-------------------+---------------------------------------------------------------+| status bar: Running | TCP Selected | GEM Communicating HSMS-SS |+-----------------------------------------------------------------------------------+- 왼쪽 탐색 목록(navigation): 12개 작업공간(workspace)을 고릅니다. Overview, Status & Data, Reports & Events, Alarms, Remote Commands, Process Programs, Spooling, Scenarios & Profiles, Message Trace & Diagnostics, Equipment Constants, SECS-I, GEM300 순서입니다.
- Session 도구 모음(toolbar): 왼쪽에
Host / Active connection처럼 현재 역할과 연결 방식을 보여 줍니다. 오른쪽 버튼은 다음과 같습니다.- Start session(F5): 설정한 역할, 주소, 세션 ID로 끝점(endpoint)을 시작합니다.
- Stop(Shift+F5): 끝점을 멈추고 종료 이벤트를 비웁니다. 멈춘 세션이 남아 있으면 이름이 End session으로 바뀝니다. End session은 남은 세션을 지우고 주소와 다음 시작 설정을 다시 편집할 수 있게 합니다.
- Select HSMS: TCP는 연결됐지만 Select가 되지 않은 상태(
NotSelected)에서 Select를 요청합니다. - Establish communication: 호스트 역할에서만 쓸 수 있습니다. HSMS가 Selected이고 GEM이
NotCommunicating일 때 S1F13을 보냅니다.
- 상태 표시줄(status bar): 처음에는
Ready | No active session을 보여 줍니다. 세션이 시작되면Running | TCP Selected | GEM Communicating처럼 세 상태를 보여 줍니다. 오른쪽 끝에는HSMS-SS가 고정 표시됩니다. - Diagnostics 독(dock): 창 아래쪽의 Application activity 표입니다. 최근 1,000개 항목을 Sequence, Time, Category, Message 열로 보여 줍니다. Filter activity로 거르고, Follow latest로 최신 항목을 따라가고, Clear view로 화면을 비웁니다. 닫은 독은 View > Diagnostics로 다시 엽니다.


메뉴 막대는 운영체제와 관계없이 창 안에 그려집니다.
| 메뉴 | 항목 |
|---|---|
| File | Open Project…, Save Project, Save Project As…, Open Trace…, Close Offline Trace, Export Trace…, Quit |
| Session | Start session(F5), Stop session(Shift+F5, 멈춘 세션이 있으면 End session), Select HSMS, Establish communication |
| View | Session overview, Status & Data, Diagnostics, Appearance > Light / Dark |
| Help | About PDComm Simulator, Third-party notices |
About PDComm Simulator는 버전과 함께 secs-gem, gem300 라이선스 상태와 호스트 ID를 보여 줍니다. 시뮬레이터는 내장된 도구용 라이선스를 쓰므로 따로 설치할 라이선스가 없습니다(라이선스 설치와 확인).
기본 테마는 Light입니다. View > Appearance에서 Dark로 바꿀 수 있습니다.
초안, 다음 시작 예약, 실제 세션 카탈로그
섹션 제목: “초안, 다음 시작 예약, 실제 세션 카탈로그”시뮬레이터에서 가장 헷갈리기 쉬운 부분입니다. 장비 쪽 카탈로그(catalog)는 세 단계로 나뉩니다.
workspace draft table project definitions running Equipment session (edit rows, Load example) --> (Use on next start) --> (actual session catalog) * appears in the title saved by File > Save Project shown in the "Actual ..." tables nothing is sent yet applied at the next what the Host actually sees Equipment Start session (Refresh / Refresh actual)- 초안(draft): 작업공간의 편집 가능한 표입니다. 행을 고치거나 Load example을 누르면 초안만 바뀝니다. 세션에는 아무 영향이 없습니다.
- 다음 시작 예약(next-start reservation): Use on next start를 누르면 초안을 검사한 뒤 프로젝트 정의에 예약합니다. 상수 작업공간에서는 버튼 이름이 Reserve for next start, 정적 디렉터리는 Reserve directory입니다. 예약은 다음에 장비 세션을 시작할 때 적용됩니다. Clear reservation은 예약을 지웁니다.
- 실제 세션 카탈로그(actual session catalog): 지금 실행 중이거나 멈춘 채 남아 있는 세션이 실제로 가진 값입니다. Actual session catalog, Actual session alarm catalog, Actual session store 같은 읽기 전용 표에 나타납니다. Refresh 또는 Refresh actual로 다시 읽습니다.
예약은 장비 역할이고 세션이 없거나 멈춘 상태일 때만 편집할 수 있습니다. 실행 중인 세션의 카탈로그를 바꾸려면 Stop, End session 순서로 세션을 끝내고 예약을 바꾼 뒤 Start session으로 다시 시작합니다.
시뮬레이터 두 개 연결하기
섹션 제목: “시뮬레이터 두 개 연결하기”시뮬레이터를 두 번 실행해 한쪽은 장비, 다른 쪽은 호스트로 연결합니다. 이 절차가 모든 기능 실습의 출발점입니다.
- 첫 번째 시뮬레이터의 Overview에서 GEM role을 Equipment, TCP mode를 Passive - listen으로 고릅니다. Address는
127.0.0.1:5000, Session ID는7로 정합니다. - Start session을 누릅니다. TCP TRANSPORT 카드가
Listening이 되고 LOCAL ADDRESS에127.0.0.1:5000이 표시됩니다. - 두 번째 시뮬레이터의 Overview에서 GEM role을 Host, TCP mode를 Active - connect로 고릅니다. Address는
127.0.0.1:5000, Session ID는7로 장비와 같게 정합니다. - Start session을 누릅니다. 호스트가 TCP 연결 뒤 Select를 자동으로 보냅니다. 양쪽 HSMS SELECTION 카드가
Selected가 됩니다. - 호스트에서 Establish communication을 누릅니다. 양쪽 GEM COMMUNICATION 카드가
Communicating이 됩니다. - 호스트에서 Status & Data를 열고 Status IDs에
1001, 1002를 입력합니다. Discover names를 누른 뒤 Read values를 누릅니다.
장비 시뮬레이터에는 기본 상태 변수 두 개가 들어 있습니다. 호스트 표에 1001 EquipmentState(ASCII IDLE)와 1002 WaferCount(U4 0)가 Received로 나타나면 성공입니다. 같은 요청을 SDK 튜토리얼 호스트로 보내면 S1F4 본문 01 02 41 04 49 44 4c 45 b1 04 00 00 00 00을 받습니다. 장비 시뮬레이터의 S1F2 응답은 MDLN PDComm Simulator, SOFTREV 1입니다.


문제가 생기면 연결과 타임아웃 문제 해결을 참고합니다.
작업공간별 사용법
섹션 제목: “작업공간별 사용법”Overview
섹션 제목: “Overview”페이지 제목은 Session overview입니다. 끝점 설정과 실시간 상태를 보여 줍니다.
- 상태 카드: SESSION(
Idle,Running,Stopped등), TCP TRANSPORT(Stopped,Connecting,Listening,NotSelected,Selected,RetryWait), HSMS SELECTION, GEM COMMUNICATION(Disconnected,NotCommunicating,WaitingAck,Communicating). - Endpoint configuration 그룹: GEM role(Host/Equipment), TCP mode(Active - connect/Passive - listen), Address(기본값
127.0.0.1:5000), Session ID(0–65535, 기본값 0), Transport fault(Normal/Write backpressure). 세션이 있는 동안에는 잠깁니다. - Connection workspace 그룹: LOCAL ADDRESS에 실제로 바인드된 주소를 보여 줍니다. Passive에서 포트
0을 쓰면 운영체제가 고른 포트가 여기에 나타납니다. Open Status & Data는 변수 작업공간으로 이동합니다.
Write backpressure는 쓰기 정체를 일부러 만드는 시험용 프로필입니다. 정체를 걸고 푸는 방법은 아래 Message Trace & Diagnostics 절을 참고합니다.


Start session이 실패하면 SESSION 카드가 Faulted가 되고, 원인이 Diagnostics 독과 상태 표시줄에 나타납니다. 예를 들어 다른 프로그램이 이미 같은 주소와 포트를 쓰고 있으면 start failed [CORE_FAILURE]: core operation failed with status 12 (IO_ERROR); check that the address is free and reachable이 표시됩니다. 다른 포트를 쓰거나 포트를 쓰는 프로그램을 끝낸 뒤 다시 시작합니다.


Status & Data
섹션 제목: “Status & Data”상태 변수(SV)와 데이터 변수(DV)를 봅니다. 장비에서는 내 값, 호스트에서는 상대에게서 받은 값을 보여 줍니다.
- 호스트: Status IDs(비우면 전체)에 ID를 넣고 Discover names, Read values 순서로 누릅니다. 이름을 먼저 조회해야 Read values가 켜집니다. Data directory IDs와 Read data directory로 데이터 변수 디렉터리(S1F21)를 조회합니다.
- 장비: 표에서 변수를 고르고 Value에 같은 SECS 형식의 값을 넣은 뒤 Apply value를 누릅니다. 데이터 변수는 Clear data cache로 캐시를 비웁니다.
- 탭은 Status variables와 Data variables입니다. Availability 열은
Received,Not read,Cached,No cache,Local중 하나입니다.
기본 장비 변수는 다음과 같습니다. 프로필을 적용하면 바뀝니다.
| ID | 종류 | 이름 | 형식 | 값 |
|---|---|---|---|---|
| 1001 | Status | EquipmentState |
ASCII | IDLE |
| 1002 | Status | WaferCount |
U4 | 0 |
| 2001 | Data | LotId |
ASCII | LOT-001 |
| 2002 | Data | GoodCount |
U4 | 0 |
Data variables 탭의 Data catalog and cache 그룹에서 데이터 변수 카탈로그를 예약합니다. Load example은 2001 WaferCount(U4(10)), 2002 RecipeName(ASCII(DEMO)), 2003 Flags(BINARY(01 02))를 초안에 넣습니다. Use on next start로 예약하고 Refresh actual로 실제 값을 확인합니다.




관련 실습: 데이터 수집
Reports & Events
섹션 제목: “Reports & Events”보고서(report)와 수집 이벤트(collection event)를 다룹니다. 탭은 Catalog, Remote configuration, Traffic입니다.
- Catalog(장비): Next-start catalog draft의 내부 탭 Reports, Events, Bindings, Static directory를 편집합니다. Load example은 RPTID
1(VID 1, 2), RPTID2(VID 3), CEID10(RPTID 1, 2, Enabled)과 VID 바인딩1→Status 1001,2→Status 1002,3→Data 2001을 넣습니다. Load directory example은 CEID10ProcessStarted를 넣습니다. 각각 Use on next start, Reserve directory로 예약합니다. - Remote configuration(호스트): DATAID를 넣고 Define reports(S2F33), Link reports(S2F35), Apply event state(S2F37)로 장비 보고서를 원격 설정합니다.
- Traffic: 내부 탭 Events, Directories, Queries가 있습니다. 장비는 DATAID와 CEID를 넣고 Emit으로 S6F11을 보냅니다. 호스트는 Host received events에서 받은 이벤트를 고르고 ACKC6를 정한 뒤 Acknowledge를 누릅니다. Read event directory와 Submit query도 여기에 있습니다.
Emit은 장비가 통신 중이고 세션에 카탈로그가 구성됐을 때만 켜집니다.




관련 실습: 보고서와 이벤트
Alarms
섹션 제목: “Alarms”탭은 Catalog와 Traffic입니다.
- Catalog(장비): Next-start alarm draft에서 ALID, Category(1–63), Text(ASCII 120바이트 이하), Set CEID, Clear CEID를 편집합니다. Load example은 ALID
1(category 1,Example alarm, Set CEID 10, Clear CEID 11)과 ALID2(category 2,Process alarm)를 넣습니다. - Traffic: 장비는 Observe ALID로 로컬 알람 상태만 바꾸고(Set active/Clear active, 송신 없음), Publish ALID로 현재 상태를 S5F1로 보냅니다(W0/W1). 호스트는 Enable ALID와 Enable/Disable(S5F3), Request list(S5F5), Request enabled list(S5F7)를 씁니다. 받은 W1 알람은 ACKC5를 고르고 Acknowledge로 응답합니다.
Observe만으로는 메시지가 나가지 않습니다. Publish는 호스트가 해당 알람 보고를 먼저 켜야 동작합니다.




관련 실습: 알람
Remote Commands
섹션 제목: “Remote Commands”탭은 Catalog와 Traffic입니다.
- Catalog(장비): 기본(Basic, S2F41)과 확장(Enhanced, S2F49) 명령과 각 명령의 매개변수 스키마를 정의합니다. Load example은 Basic
START(매개변수LOT, ASCII 1~32자)와 EnhancedPORT-1/MOVE(매개변수TARGET, LIST)를 넣습니다. - Traffic: 호스트는 Host submissions에서 Submit basic 또는 Submit enhanced로 명령을 보냅니다. 장비는 받은 요청을 고르고 Decision 0–Decision 6 중 하나를 정한 뒤 Respond로 HCACK를 보냅니다. 호스트는 결과를 고르고 Acknowledge selected result로 소비합니다.






관련 실습: 원격 명령
Process Programs
섹션 제목: “Process Programs”탭은 Catalog, Traffic, Formatted transfer, Formatted verification, Verification negotiation, Formatted query, Selection, Dry run, Execution, Capabilities입니다.
- Catalog(장비): Equipment program draft에 PPID와 PPBODY를 넣습니다. Load example은
DEMO-PP(ASCII 본문DEMO)를 넣습니다. Grant policy는 Optional 또는 Required입니다. Actual session store는 실제 저장소이며, 멈춘 세션에서 Apply selected draft entry, Delete ordered IDs, Delete all로 로컬 저장소를 바꿉니다. - Traffic: Kind(Grant, Send, Request, Delete, Directory)를 고르고 Submit으로 비정형 공정 프로그램 거래(S7F1–S7F6, S7F17, S7F19)를 보냅니다. Delete와 Directory는 호스트만 보냅니다. 받은 요청은 결정 코드와 저장 모드(Create/Replace/Upsert)를 고르고 Respond로 응답합니다. 같은 탭 아래쪽에서 S7F27 검증 보고(Submit S7F27)와 S7F28 응답을 다룹니다.
- 정형 프로그램 탭: Formatted transfer(S7F23/F24), Formatted verification(S7F31/F32), Verification negotiation(S7F29/F30), Formatted query(S7F25/F26), Capabilities(S7F21/F22)에서 정형(formatted) 프로그램 거래를 다룹니다. Selection, Dry run, Execution은 장비 쪽 로컬 기능입니다. 실제 장비를 움직이지 않고 선택, 구조 분석, 실행 핸드셰이크를 시험합니다.




관련 실습: 공정 프로그램
Spooling
섹션 제목: “Spooling”통신이 끊긴 동안 장비가 보내지 못한 메시지를 메모리에 쌓아 두는 스풀링(spooling)을 시험합니다. 탭은 Configuration, Queue, Controls & Delivery입니다.
- Configuration(장비): Catalog와 Selections에서 스풀 대상 스트림과 펑션을 정합니다. Load example은 S5F1과 S6F11을 넣고 Enable local spooling을 켭니다. Use on next start로 예약합니다.
- Queue(장비): Capture event와 Capture alarm으로 이벤트나 알람을 스풀 큐에 넣습니다.
- Controls & Delivery: 호스트는 Submit configure(S2F43), Submit query, Submit data control(S6F23 Transmit/Purge)을 보냅니다. 장비는 Respond to selected control로 응답하고 Send next로 다음 항목을 보냅니다. W1 전송은 Accept W1/Reject W1, W0 전송은 Complete W0로 끝냅니다.
스풀 큐는 메모리에만 있습니다. 시뮬레이터를 끝내면 사라집니다.


관련 실습: 스풀링
Scenarios & Profiles
섹션 제목: “Scenarios & Profiles”장비 데이터 정의(프로필)와 그 위에서 실행할 순서 있는 변경(시나리오)을 관리합니다. 탭은 Profiles, Scenarios, Runs입니다.
- Profiles: New profile을 누르고 Profile ID와 Description을 넣습니다. Add variable로 변수(Kind Status/Data, Format ASCII/U4)를 추가하고 Save profile로 저장합니다. Use on next start로 다음 장비 시작에 쓸 프로필 리비전(revision)을 예약합니다.
- Scenarios: New scenario를 누르고 Profile revision을 고릅니다. Add step으로 Set 또는 Clear 단계를 추가하고 Save scenario로 저장합니다.
- Runs: Run scenario로 시작한 실행의 상태(
Running,Passed,Failed,Cancelled)와 단계별 결과를 보여 줍니다. Cancel active run으로 취소합니다.
Run scenario는 실행 중인 장비 세션에 적용된 프로필 ID와 리비전이 시나리오의 프로필과 정확히 같을 때만 켜집니다. 저장한 프로젝트의 시나리오는 헤드리스 시뮬레이터에서 --project와 --scenario로도 실행할 수 있습니다.




Message Trace & Diagnostics
섹션 제목: “Message Trace & Diagnostics”세션의 거래 기록(trace)을 봅니다. 메시지 본문은 기록하지 않고 헤더와 결과 메타데이터만 보여 줍니다. 최대 256개 기록을 보관합니다.
- 카드: RETAINED, REVISIONS, NEXT SEQUENCE, DROPPED / OVERWRITTEN, CORE PROGRESS, LAST ERROR.
- 필터: 텍스트 필터, 범주(All categories, Activity, Received, Error), 출처(All sources, Service, TCP, GEM), Follow latest.
- 버튼: Open trace, Close offline, Refresh, Export trace, Clear trace.
- 표의 열은 Sequence, Category, Source, Event, Result, Code, Trace revision, Session revision입니다. 행을 고르면 아래에 TCP와 GEM 메타데이터가 나타납니다.
Export trace는 현재 기록을 *.pdcomm-trace.json 파일로 저장합니다. Open trace로 저장한 파일을 열면 모드 표시가 OFFLINE TRACE · READ ONLY로 바뀝니다. 오프라인 기록은 새 수신으로 바뀌지 않습니다. Close offline으로 실시간 화면에 돌아갑니다. 기록은 용량이 제한된 관찰 자료입니다. 표에 없다는 이유만으로 메시지가 오가지 않았다고 판단하지 않습니다.
Transport fault profile 그룹에서는 Overview의 Transport fault를 Write backpressure로 시작한 세션에 쓰기 정체를 걸고(Arm), 풀 수 있습니다(Release). Arm은 세션이 실행 중이고 Selected와 Communicating 상태일 때 켜집니다.


관련 실습: 시뮬레이터 자동화와 오류 재현, 진단 로그
Equipment Constants
섹션 제목: “Equipment Constants”장비 상수(EC)를 다룹니다. 탭은 Configuration, Host Requests, Equipment Traffic입니다. Host Requests는 역할이 호스트일 때, Equipment Traffic은 장비일 때 켜집니다.
- Configuration(장비): 상수 카탈로그를 편집합니다. Load example은 ID
U1(1)CycleLimit(단위count, 초깃값과 기본값U4(10), 범위U4(1)–U4(100))을 넣습니다. Reserve for next start로 예약합니다. - Host Requests: Values 또는 Metadata를 고르고 Query로 S2F13 또는 S2F29를 보냅니다. Send change로
ID=value형식의 변경(S2F15)을 보냅니다. - Equipment Traffic: 받은 변경 요청을 고르고 Apply (0), Cannot perform (2), Out of range (3), Reject (4) 중 하나로 Respond합니다.




관련 실습: 데이터 수집
SECS-I
섹션 제목: “SECS-I”패널 제목은 SECS-I Virtual Pair입니다. 시뮬레이터 안의 메모리 가상 쌍(virtual pair)으로 SECS-I 블록 전송을 시험합니다. Overview의 역할이나 세션과 독립적으로 동작합니다. 자세한 사용법은 SECS-I 가상 쌍을 참고합니다.


GEM300
섹션 제목: “GEM300”페이지 제목은 GEM300 Capability Profiles입니다. 장비 구성의 GEM300 기능을 프로필별로 선언하는 카탈로그를 편집합니다.
- Profiles: Add profile, Remove profile로 프로필(최대 16개)을 관리합니다.
- Selected profile capabilities: 프로필마다 축(axis)당 하나씩 최대 4개 기능을 둡니다. Axis는 Process Job, Carrier, Substrate, Control Job, Status는 Planned, Model only, Experimental입니다.
- Replace catalog는 공유 카탈로그를 즉시 바꿉니다. Clear catalog는 비우고, Refresh는 다시 읽습니다.
이 카탈로그는 프로세스 안에만 있고 프로젝트 파일에 저장되지 않습니다. 배경은 GEM300을 참고합니다.


프로젝트 저장과 열기
섹션 제목: “프로젝트 저장과 열기”프로젝트 파일(*.pdcomm.json)에는 장비의 다음 시작 예약과 프로필, 시나리오가 들어갑니다.
| 저장됨 | 저장되지 않음 |
|---|---|
| 상수, 보고서와 이벤트, 알람, 명령, 공정 프로그램, 스풀링, 데이터 변수, 정적 디렉터리 예약, 프로필, 시나리오 | GEM300 카탈로그, SECS-I 가상 쌍, 거래 기록, 다음 시작 프로필 예약, 실행 중인 소켓과 요청 |
- 각 작업공간에서 초안을 예약하거나 지웁니다. 저장하지 않은 초안이 있으면 저장이 거부됩니다.
- Stop과 End session으로 세션을 끝냅니다. 프로젝트를 열고 저장하려면 세션이 없어야 합니다.
- File > **Save Project As…**를 누르고 내 폴더에 저장합니다. 파일 선택 창 제목은 Save Simulator Project입니다.
- 나중에 File > **Open Project…**로 엽니다. 저장하지 않은 변경이 있으면 Discard unsaved changes? 대화상자가 나타납니다.
프로젝트 파일은 1 MiB까지 열 수 있습니다. 같은 파일을 헤드리스 시뮬레이터의 --project 옵션에 그대로 넘길 수 있습니다.
명령줄 옵션
섹션 제목: “명령줄 옵션”GUI는 MCP(Model Context Protocol) 서버로도 동작합니다.
| 옵션 | 동작 |
|---|---|
--mcp-stdio |
표준 입출력으로 MCP 요청을 받아 이 GUI의 세션과 화면을 제어합니다. |
--mcp-local <descriptor-path> |
인증된 로컬 MCP 수신기를 열고 접속 정보 파일을 씁니다. pdcomm-simulator-mcp-attach로 붙습니다. |
두 옵션은 함께 쓸 수 없습니다. 자세한 내용은 시뮬레이터 MCP 서버를 참고합니다.
다음 단계
섹션 제목: “다음 단계”- 첫 통신에서 내 SDK 프로그램을 시뮬레이터에 연결합니다.
- 헤드리스 시뮬레이터로 같은 시나리오를 화면 없이 실행합니다.
- 기능별 API는 API 레퍼런스에서 찾습니다.