๐ญ DOT Studio & Dance of Tal (DOT)
โ๋ฉํฐ ์์ด์ ํธ๊ฐ ์ด์ ํ์ถค์ ์ถฅ๋๋คโ
์ค์ผ์คํธ๋ ์ด์ (Orchestration)์ ๋์ด, ์ฝ๋ ์ค๊ทธ๋ํผ(Choreography)๋ก โ AI ์์ด์ ํธ ํจํค์ง ๋งค๋์ ์ ๋ฑ์ฅ
๋ชฉ์ฐจ
- ๊ฐ์: ๋ฌด์์ด ๋ฌธ์ ์ธ๊ฐ?
- ์ฒ ํ์ ๋ฐฐ๊ฒฝ: ์ค์ผ์คํธ๋ ์ด์ ์์ ํ์ถค์ผ๋ก
- Dance of Tal (DOT) โ ํต์ฌ ๊ฐ๋ ์ฒด๊ณ
- DOT์ ๋ค์ฏ ๊ฐ์ง ์์ฐ ์ปดํฌ๋ํธ
- DOT Studio โ ํผ๊ทธ๋ง ์คํ์ผ์ AI ์์ด์ ํธ ํธ์ง๊ธฐ
- ์ํคํ ์ฒ ์ฌ์ธต ๋ถ์
- ๊ธฐ์ ์คํ ๋ฐ ๋ฐํ์ ๊ฒฝ๊ณ
- ์ค์ ์ฌ์ฉ ํ๋ฆ: ์ค์น๋ถํฐ ์คํ๊น์ง
- ๊ธฐ์กด ๋ฉํฐ ์์ด์ ํธ ๋๊ตฌ๋ค๊ณผ์ ๋น๊ต
- ํ๋ก์ ํธ ํํฉ ๋ฐ ์๋ฏธ
- ์ข ํฉ ํ๊ฐ ๋ฐ ์์ฌ์
1. ๊ฐ์: ๋ฌด์์ด ๋ฌธ์ ์ธ๊ฐ?
AI ์์ด์ ํธ ๊ธฐ์ ์ด ๋น ๋ฅด๊ฒ ์ฑ์ํด๊ฐ๊ณ ์๋ 2026๋ ํ์ฌ, ๋ฉํฐ ์์ด์ ํธ ์์คํ ๊ตฌ์ฑ ๋ฐฉ์์๋ ๊ทผ๋ณธ์ ์ธ ๊ตฌ์กฐ์ ํ๊ณ๊ฐ ์กด์ฌํ๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ํจํด์ ํ๋์ โ๋ฉ์ธ ์์ด์ ํธ(Main Agent)โ๊ฐ ์ฌ๋ฌ โ์๋ธ ์์ด์ ํธ(Subagent)โ๋ฅผ ํธ์ถํ๋ ๋ฐฉ์์ด๋ค. ์ด ๋ฐฉ์์ ์ฒ์์๋ ์ญํ ๋ถ๋ฆฌ์ฒ๋ผ ๋ณด์ด์ง๋ง, ์๊ฐ์ด ์ง๋ ์๋ก ์ฌ๊ฐํ ๋ฌธ์ ๋ค์ ๋ ธ์ถ์ํจ๋ค.
1.1 ๊ธฐ์กด ๋ฉํฐ ์์ด์ ํธ ๊ตฌ์กฐ์ ๋ฌธ์
graph TD
MA["๐ง Main Agent\n(์งํ์)"]
SA1["๐ค Sub Agent 1\n์ฝ๋ฉ ๋ด๋น"]
SA2["๐ค Sub Agent 2\n๊ฒ์ ๋ด๋น"]
SA3["๐ค Sub Agent 3\nํ
์คํธ ๋ด๋น"]
SA4["๐ค Sub Agent 4\n๋ฆฌ๋ทฐ ๋ด๋น"]
MA -->|"ํธ์ถ / ๋ช
๋ น"| SA1
MA -->|"ํธ์ถ / ๋ช
๋ น"| SA2
MA -->|"ํธ์ถ / ๋ช
๋ น"| SA3
MA -->|"ํธ์ถ / ๋ช
๋ น"| SA4
style MA fill:#ff6b6b,color:#fff
style SA1 fill:#adb5bd,color:#fff
style SA2 fill:#adb5bd,color:#fff
style SA3 fill:#adb5bd,color:#fff
style SA4 fill:#adb5bd,color:#fff
์ด ๊ตฌ์กฐ์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ๋ค:
์ข ์์ฑ์ ์ฌํ. ์๋ธ ์์ด์ ํธ๋ ์ด๋ฆ๋ง ์์ด์ ํธ์ผ ๋ฟ, ์ฌ์ค์ ๋ฉ์ธ ์์ด์ ํธ์ ๋ด๋ถ ๊ธฐ๋ฅ(ํจ์)์ฒ๋ผ ๊ตณ์ด๋ฒ๋ฆฐ๋ค. ๋ ๋ฆฝ์ ์ธ ํ๋จ์ ํ๋ ์ฃผ์ฒด๊ฐ ์๋๋ผ, ์์ ์์ด์ ํธ์ ์ง์๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋ถ์ํ์ผ๋ก ์ ๋ฝํ๋ค.
์ฌ์ฌ์ฉ ๋ถ๊ฐ. ํน์ ๋งฅ๋ฝ์์ ํน์ ๋ฉ์ธ ์์ด์ ํธ๋ฅผ ์ํด ์ค๊ณ๋ ์๋ธ ์์ด์ ํธ๋ ๋ค๋ฅธ ์ํฌํ๋ก์ฐ์์ ์ฌ์ฌ์ฉํ๊ธฐ ๋งค์ฐ ์ด๋ ต๋ค. ์ฝ๋ ์์ ํ๋์ฝ๋ฉ๋ ๊ด๊ณ์ ์ค์ ๋๋ฌธ์, ๋น์ทํ ์ญํ ์ ํ๋ ์์ด์ ํธ๋ฅผ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์ ์ฉํ๋ ค๋ฉด ์ฒ์๋ถํฐ ๋ค์ ๋ง๋๋ ๊ฒ์ด๋ ๋ค๋ฆ์๋ค.
์ค์ ์ ๋ถํฌ๋ช ์ฑ. ๊ฐ ์์ด์ ํธ๊ฐ ์ด๋ค MCP(Model Context Protocol) ์๋ฒ๋ฅผ ์ฌ์ฉํ๋์ง, ์ด๋ค ์์คํ ํ๋กฌํํธ๋ฅผ ๊ฐ๊ณ ์๋์ง, ์ด๋ค ๋ชจ๋ธ๊ณผ ์ฐ๊ฒฐ๋์ด ์๋์ง๊ฐ ์ฝ๋๋ ์ค์ ํ์ผ ๊น์์ด ์จ์ด๋ฒ๋ฆฐ๋ค. ์ค์ ๋ก ์์คํ ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ํ๋์ ํ์ ํ๊ธฐ๊ฐ ์ ์ ์ด๋ ค์์ง๋ค.
ํ์ฅ์ฑ์ ๋ถ๊ดด. ์์ด์ ํธ๊ฐ ๋ง์์ง์๋ก ํ์ ๊ตฌ์กฐ๊ฐ ํ๋ถํด์ง๋ ๊ฒ์ด ์๋๋ผ, ์์ ์์ด์ ํธ ์๋์ ๊ธฐ๋ฅ๋ค์ด ๊ณ์ ๋งค๋ฌ๋ฆฌ๋ ๋จ์ํ ํธ๋ฆฌ(tree) ๊ตฌ์กฐ๋ก ๊ณ ์ฐฉ๋๋ค. ์ด๊ฒ์ ์ง์ ํ โ๋ฉํฐ ์์ด์ ํธ ํ์ โ์ด๋ผ๊ธฐ๋ณด๋ค, ๋ณต์กํ ํจ์ ํธ์ถ ์คํ์ ๊ฐ๊น๋ค.
์ด ๋ฌธ์ ๋ฅผ ํ๊ตญ ์ ํต ๊ณต์ฐ ์์ ์ ๊ฐ๋ ์ ๋น๋ ค ์ฌ์ ์ํ๋ ค๋ ์๋๊ฐ ๋ฐ๋ก Dance of Tal(DOT) ์ด๊ณ , ๊ทธ ์์ ๋ง๋ค์ด์ง ์๊ฐ์ ํธ์ง ํ๊ฒฝ์ด DOT Studio์ด๋ค.
2. ์ฒ ํ์ ๋ฐฐ๊ฒฝ: ์ค์ผ์คํธ๋ ์ด์ ์์ ํ์ถค์ผ๋ก
ํ๋ก์ ํธ ์ด๋ฆ์ ๋ด๊ธด ํต์ฌ ์์ ๋ฅผ ์ดํดํ๋ ๊ฒ์ด ์ด ํ๋ก์ ํธ ์ ์ฒด๋ฅผ ํ์ ํ๋ ์ด์ ๋ค.
2.1 ์ค์ผ์คํธ๋ ์ด์ (Orchestration) ํจ๋ฌ๋ค์์ ํ๊ณ
์ค์ผ์คํธ๋ ์ด์ ์ ์งํ์(conductor)๊ฐ ๋ชจ๋ ์ฐ์ฃผ์์ ํ๋์ ์ง์ํ๋ ๋ฐฉ์์ด๋ค. ์ค์ผ์คํธ๋ผ์์ ๋ฐ์ด์ฌ๋ฆฐ ์ฃผ์๋ ์งํ์์ ์ ํธ ์์ด๋ ๋ฐ์๋ฅผ ๋ฐ๊พธ์ง ์๋๋ค. AI ์์ด์ ํธ ์์คํ ์์ ์ด๊ฒ์ โ๋ฉ์ธ ์์ด์ ํธ๊ฐ ์๋ธ ์์ด์ ํธ์๊ฒ ๋ช ๋ น์ ๋ด๋ฆฌ๋โ ๊ตฌ์กฐ๋ก ๋ํ๋๋ค.
2.2 ์ฝ๋ ์ค๊ทธ๋ํผ(Choreography)์ ํ์ถค์ ์์
๋ฐ๋ฉด ํ์ถค(Talchum)์ ๋ค๋ฅด๋ค. ํ์ถค์์ ๊ฐ ๋ฌด์ฉ์๋ ์์ ๋ง์ ํ(๊ฐ๋ฉด, ์ ์ฒด์ฑ)์ ์ฐ๊ณ , ์์ ๋ง์ ์ถค์ฌ์(๊ธฐ์ )๋ฅผ ์ง๋ ์ฑ, ๋ค๋ฅธ ๋ฌด์ฉ์๋ค๊ณผ ๊ด๊ณ๋ฅผ ๋งบ์ผ๋ฉฐ ๊ณต์ฐ์ ๋ง๋ค์ด๊ฐ๋ค. ์งํ์๊ฐ ์์ด๋ ๊ณต์ฐ์ ์งํ๋๋ค. ๊ฐ์๊ฐ ๋ ๋ฆฝ์ ์ธ ์กด์ฌ์ด๋ฉด์๋, ์๋ก์ ์์ง์์ ๋ฐ์ํ๋ฉฐ ์ ์ฒด์ ์ธ ๋งฅ๋ฝ์ ๋ง๋ค์ด๋ธ๋ค.
graph LR
subgraph "๐ญ ํ์ถค ๋ชจ๋ธ (Choreography)"
P1["๐ญ ๋ฌด์ฉ์ A\nํ + ์ถค + ๋๊ตฌ"]
P2["๐ญ ๋ฌด์ฉ์ B\nํ + ์ถค + ๋๊ตฌ"]
P3["๐ญ ๋ฌด์ฉ์ C\nํ + ์ถค + ๋๊ตฌ"]
P1 <-->|"๊ด๊ณ / ํ์
"| P2
P2 <-->|"๊ด๊ณ / ํ์
"| P3
P1 <-->|"๊ด๊ณ / ํ์
"| P3
end
subgraph "๐ผ ์ค์ผ์คํธ๋ผ ๋ชจ๋ธ (Orchestration)"
C["๐ผ ์งํ์\n๋ฉ์ธ ์์ด์ ํธ"]
M1["๐ป ์ฐ์ฃผ์ A"]
M2["๐ป ์ฐ์ฃผ์ B"]
M3["๐ป ์ฐ์ฃผ์ C"]
C -->|"๋ช
๋ น"| M1
C -->|"๋ช
๋ น"| M2
C -->|"๋ช
๋ น"| M3
end
DOT์ ์ ์์ monarchjuno๋ ์ด ์์ ๋ฅผ ํตํด ๋ฉํฐ ์์ด์ ํธ ์์คํ ์ ์๋ก์ด ๊ฐ๋ฅ์ฑ์ ์ ์ํ๋ค. ๊ฐ ์์ด์ ํธ๊ฐ ๋ ๋ฆฝ์ ์ธ ์ ์ฒด์ฑ, ๋ฅ๋ ฅ, ์ค์ ์ ๊ฐ์ถ โํผํฌ๋จธ(Performer)โ๋ก ์กด์ฌํ๊ณ , ์ด๋ค์ด ๊ด๊ณ๋ฅผ ๋งบ๊ณ ํ๋ฆ์ ๋ง๋ค์ด๊ฐ๋ ๋ฐฉ์์ด ๋ ๊ฑด๊ฐํ ๋ฉํฐ ์์ด์ ํธ ์ํคํ ์ฒ๋ผ๋ ๊ฒ์ด๋ค.
3. Dance of Tal (DOT) โ ํต์ฌ ๊ฐ๋ ์ฒด๊ณ
DOT๋ ๋ฉํฐ ์์ด์ ํธ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํ ๋ค ๊ฐ์ง ํต์ฌ ๋จ์๋ฅผ ์ ์ํ๋ค. ์ด ๋ค ๊ฐ์ง๋ ํ์ถค์ ๊ตฌ์ฑ ์์์์ ์ง์ ์ด๋ฆ์ ๋ฐ์๋ค.
graph TB
subgraph "DOT ๊ฐ๋
์ฒด๊ณ"
TAL["๐ญ Tal (ํ)\n์์ด์ ํธ์ ์ ์ฒด์ฑ๊ณผ ์ฑ๊ฒฉ\n'๋๊ตฌ์ธ๊ฐ'"]
DANCE["๐ Dance (์ถค)\n์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฅ๋ ฅ๊ณผ ์คํฌ\n'๋ฌด์์ ํ ์ ์๋๊ฐ'"]
PERFORMER["๐ช Performer (ํผํฌ๋จธ)\nTal + Dance + Model + MCP\n'์ด๋ป๊ฒ ์คํ๋๋๊ฐ'"]
ACT["๐ฌ Act (๊ณต์ฐ)\n์ฌ๋ฌ ํผํฌ๋จธ์ ํ์
ํ๋ฆ\n'ํจ๊ป ์ด๋ป๊ฒ ์์ง์ด๋๊ฐ'"]
STAGE["๐๏ธ Stage (๋ฌด๋)\n์ ์ฒด ์์
ํ๊ฒฝ\n'์ด๋ค ํ๋ซํผ์์ ์คํ๋๋๊ฐ'"]
TAL --> PERFORMER
DANCE --> PERFORMER
PERFORMER --> ACT
ACT --> STAGE
end
3.1 Tal (ํ) โ ์ ์ฒด์ฑ ๋ ์ด์ด
Tal์ ์์ด์ ํธ์ ์๊ตฌ์ ์ธ ์ ์ฒด์ฑ์ ์ ์ํ๋ค. โํญ์ ์ผ์ ธ ์๋ ๋ช ๋ น ๋ ์ด์ด(always-on instruction layer)โ๋ก์, ์์ด์ ํธ๊ฐ ์ด๋ป๊ฒ ์๊ฐํ๊ณ , ์ด๋ค ์์น์ ๊ฐ๊ณ ์์ผ๋ฉฐ, ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ป๊ฒ ํ๋ํด์ผ ํ๋์ง๋ฅผ ๊ท์ ํ๋ค. ์ํํธ์จ์ด ๊ฐ๋ฐ ๋งฅ๋ฝ์์๋ผ๋ฉด โ์๊ฒฉํ ํ์ ์์ ์ฑ์ ์ฐ์ ์ํ๋ ์๋์ด TypeScript ๊ฐ๋ฐ์โ์ฒ๋ผ ํํ๋ ์ ์๋ค.
Tal์ tal/@author/name ํ์์ URN(Uniform Resource Name)์ผ๋ก ์๋ณ๋๋ฉฐ, ๊ธ๋ก๋ฒ ๋ ์ง์คํธ๋ฆฌ์ ๊ฒ์ํ๊ณ ๋ค๋ฅธ ํ๋ก์ ํธ์์ ์ฌ์ฌ์ฉํ ์ ์๋ค. ์ด๊ฒ์ npm ํจํค์ง์ฒ๋ผ ๋ฒ์ ๊ด๋ฆฌ๋๊ณ ๊ณต์ ๋๋ AI ์ ์ฒด์ฑ ๋ชจ๋์ด๋ค.
3.2 Dance (์ถค) โ ์คํฌ ์ปจํ ์คํธ ๋ ์ด์ด
Dance๋ ์์ด์ ํธ๊ฐ ํน์ ์ํฉ์์ ํ์ฑํํ ์ ์๋ ์ ํ์ ์คํฌ ๋๋ ๋ฅ๋ ฅ ์ปจํ ์คํธ๋ค. ํ์ํ ๋๋ง ๋ก๋๋๋(loaded on demand) ๋ชจ๋์ ์ญ๋ ๋ ์ด์ด๋ค. ์๋ฅผ ๋ค์ด โ์๊ฒฉํ TDD(ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ) ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ผโ๊ฑฐ๋ โํน์ JSON ์คํค๋ง๋ฅผ ๋ฐ๋ฅด๋ ๊ตฌ์กฐ์ ์ถ๋ ฅ์ ๊ฐ์ ํ๋ผโ๋ ์์ ํฌ๋งท ์ ์ฝ์ด๋ ์ํฌํ๋ก์ฐ ๊ท์น์ ๋ด๋๋ค.
Dance ์ญ์ dance/@author/name ํ์์ URN์ผ๋ก ๊ด๋ฆฌ๋๋ฉฐ, ์๋ก ๋ค๋ฅธ Tal๊ณผ ์กฐํฉํด ์ฌ์ฌ์ฉํ ์ ์๋ค. ํ ๋ฒ ์ ๋ง๋ค์ด์ง โํ๋ก ํธ์๋ ์ ๊ทผ์ฑ ๊ฒ์ฌโ Dance๋ ์ด๋ค Tal๊ณผ๋ ๊ฒฐํฉํด ์ฌ์ฉํ ์ ์๋ค.
3.3 Performer (ํผํฌ๋จธ) โ ์คํ ๋จ์
Performer๋ Tal, Dance, ์ ํ๋ AI ๋ชจ๋ธ, ์์ด์ ํธ ์คํ ๋ชจ๋, ๊ทธ๋ฆฌ๊ณ MCP ์๋ฒ ๋ฐ์ธ๋ฉ์ด ๋ชจ๋ ๊ฒฐํฉ๋ ์ค์ ์คํ ๊ฐ๋ฅํ ์์ด์ ํธ ๋จ์๋ค. ์ด๊ฒ์ด DOT ์์คํ ์์ ์ค์ง์ ์ผ๋ก โ์์ด์ ํธโ๋ผ๊ณ ๋ถ๋ฅผ ์ ์๋ ๊ฒ์ด๋ค.
Performer๋ DOT Studio์ ์บ๋ฒ์ค ์์์ ๋ ๋ฆฝ์ ์ธ ๊ฐ์ฒด๋ก ์กด์ฌํ๋ฉฐ, ์๊ฐ์ ์ผ๋ก ๊ตฌ์ฑํ๊ณ ํธ์งํ ์ ์๋ค. ์ค์ํ ๊ฒ์ Performer๊ฐ ํน์ ์ํฌํ๋ก์ฐ(Act)์ ์ข ์๋์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์กด์ฌํ๊ธฐ ๋๋ฌธ์, ์ฌ๋ฌ Act์์ ์ฌ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ด๋ค.
3.4 Act (๊ณต์ฐ) โ ํ์ ํ๋ฆ ๊ทธ๋ํ
Act๋ ์ฌ๋ฌ Performer๊ฐ ์ฐธ์ฌํ๋ ์คํ์ ์ธ ์งํฅ์ฑ ์ํฌํ๋ก์ฐ ๊ทธ๋ํ(directed workflow graph)๋ค. ๋จ์ํ ์ ํ ์คํ ์์๊ฐ ์๋๋ผ, ์์ปค(worker) ๋ ธ๋, ์ค์ผ์คํธ๋ ์ดํฐ(orchestrator) ๋ ธ๋, ๋ณ๋ ฌ(parallel) ๋ ธ๋ ๋ฑ ๋ค์ํ ์คํ ํจํด์ ์กฐํฉํ์ฌ ๋ณต์กํ ๋ค๋จ๊ณ AI ํ์ ํ๋ฆ์ ๊ตฌ์ฑํ ์ ์๋ค.
Act๋ DAG(Directed Acyclic Graph, ๋ฐฉํฅ์ฑ ๋น์ํ ๊ทธ๋ํ) ๊ธฐ๋ฐ์ด๋ฏ๋ก, ์ด์ ๋จ๊ณ์ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฝ๋ก๋ฅผ ์ ํํ๋ ์กฐ๊ฑด๋ถ ๋ถ๊ธฐ(conditional branching)๋ ์ง์ํ๋ค. ์๋ฅผ ๋ค์ด โ๊ธด๊ธ ํซํฝ์ค ์ํฉ์์๋ ํ ์คํธ ์์ฑ ๋จ๊ณ๋ฅผ ๊ฑด๋๋ด๋คโ๋ ์์ ๋์ ์ํฌํ๋ก์ฐ ๋ณํ์ด ๊ฐ๋ฅํ๋ค.
3.5 Stage (๋ฌด๋) โ ํ๋ซํผ ๋ฐ์ธ๋ฉ
Stage๋ ์กฐ๋ฆฝ๋ ์ปจํ ์คํธ ํ์ด๋ก๋๋ฅผ ํน์ ๋ฒค๋๋ ํ๋ซํผ(Cursor, Windsurf, Claude API, Codex ๋ฑ)์์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋นํ ์ ์๋๋ก ๋ณํํด์ฃผ๋ ๋ ์ด์ด๋ค. DOT Studio ๋ฌธ๋งฅ์์ Stage๋ ํน์ ํ๋ก์ ํธ๋ฅผ ์ํด ์ ์ฅ๋ ์คํ๋์ค ์์ ๊ณต๊ฐ(workspace) ์ํ๋ฅผ ์๋ฏธํ๊ธฐ๋ ํ๋ค.
4. DOT์ ๋ค์ฏ ๊ฐ์ง ์์ฐ ์ปดํฌ๋ํธ
Dance of Tal V2 ์ํคํ ์ฒ๋ AI ์ปจํ ์คํธ๋ฅผ ๋ค์ฏ ๊ฐ์ง ์๊ฒฉํ๊ฒ ํ์ ์ด ์ง์ ๋(strictly typed) URN ๊ธฐ๋ฐ ์์ฐ ์ปดํฌ๋ํธ๋ก ๋ถํดํ๋ค.
classDiagram
class Tal {
+URN: tal/@author/name
+์ญํ : AI ์ง์ฑ ํ๋ฅด์๋
+๋ด์ฉ: ๋ถ์์ ์ฌ๊ณ ๋ฐฉ์, ์์ฌ๊ฒฐ์ ํ๋ ์์ํฌ
+์์: "๋ฉ๋ชจ๋ฆฌ ๋ฐ๋๋ฅผ ์ฐ์ ์ํ๋ Rust ์์คํ
์ํคํ
ํธ"
}
class Dance {
+URN: dance/@author/name
+์ญํ : ํฌ๋งท ์ ์ฝ ๋ ์ด์ด
+๋ด์ฉ: ๊ตฌ์กฐ์ ์ถ๋ ฅ ํ๋ ๊ฐ์
+์์: "ํ
์คํธ๋ฅผ ๋จผ์ ์์ฑํ๋ ์๊ฒฉํ TDD"
}
class Act {
+URN: act/@author/name
+์ญํ : ๋์ ์ํฌํ๋ก์ฐ ์์ง
+๋ด์ฉ: DAG ๊ธฐ๋ฐ ์กฐ๊ฑด๋ถ ์คํ
+์์: "๊ธด๊ธ ํซํฝ์ค ์ ํ
์คํธ ์ฐํ"
}
class Stage {
+URN: stage/@author/name
+์ญํ : ํ๋ซํผ ๋ฐ์ธ๋ฉ ๋ ์ด์ด
+๋ด์ฉ: ๋ฒค๋๋ณ ํ์ด๋ก๋ ๋ณํ
+์์: "Cursor ์ ์ฉ ์ค์ "
}
class Combo {
+URN: combo/@author/name
+์ญํ : ์ ๊ธ ํ์ผ (Lockfile)
+๋ด์ฉ: Tal + Dance ๋ฒ์ ๋งคํ
+์ ์ฌ์ฒด: package-lock.json
}
Tal --> Combo : ๋ฐ์ธ๋ฉ
Dance --> Combo : ๋ฐ์ธ๋ฉ
Combo --> Stage : ์ ์ฉ
Act --> Stage : ์คํ
์ด ๊ตฌ์กฐ์์ ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ๊ฒ์ Combo์ ๊ฐ๋
์ด๋ค. Combo๋ ํน์ ๋ฒ์ ์ Tal๊ณผ Dance๋ฅผ ํ๋์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ปจํ
์คํธ ํ๋กํ์ผ์ ์ ์ ์ผ๋ก ๋ฐ์ธ๋ฉํ๋ฉฐ, ์ด๋ JavaScript ์ํ๊ณ์ package-lock.json๊ณผ ๋งค์ฐ ์ ์ฌํ๋ค. ํน์ ๋ฒ์ ์ ์์กด์ฑ์ ๊ณ ์ ํจ์ผ๋ก์จ AI ์ปจํ
์คํธ์ ์ฌํ ๊ฐ๋ฅ์ฑ(reproducibility)์ ๋ณด์ฅํ๋ ๊ฒ์ด๋ค.
5. DOT Studio โ ํผ๊ทธ๋ง ์คํ์ผ์ AI ์์ด์ ํธ ํธ์ง๊ธฐ
DOT Studio๋ DOT์ ๊ฐ๋ ์ฒด๊ณ๋ฅผ ์๊ฐ์ ์ผ๋ก ์กฐ์ํ ์ ์๋ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ ์บ๋ฒ์ค ํธ์ง๊ธฐ์ด์ ๋ฐํ์์ด๋ค. ๊ณต์ ์ค๋ช ์ ๋ฐ๋ฅด๋ฉด โAI ์์ด์ ํธ ๊ตฌ์ฑ์ ์ํ ์๊ฐ์ ์์ ๊ณต๊ฐ(visual workspace for composing and orchestrating AI agents)โ์ด๋ค.
5.1 ํต์ฌ ํน์ง: ๋จ์ํ โ์์ UIโ๊ฐ ์๋๋ค
DOT Studio๋ฅผ ๋จ์ํ ์์ด์ ํธ๋ฅผ ์์๊ฒ ๊ทธ๋ ค์ฃผ๋ ์๊ฐํ ๋๊ตฌ๋ก ์คํดํ๊ธฐ ์ฝ๋ค. ๊ทธ๋ฌ๋ ์ด ๋๊ตฌ์ ๋ณธ์ง์ ๋ค๋ฅด๋ค. DOT Studio๋ ์์ด์ ํธ ํ๋์ ๊ตฌ์กฐํ๋ ์์ ๊ณต๊ฐ ์ํ(structured workspace state) ๋ก ๋ค๋ฃจ๋ฉฐ, ๋ชจ๋ ์ค์ ์ด ์จ๊ฒจ์ง ํ๋กฌํํธ๋ ๋ถํฌ๋ช ํ ์ค์ ํ์ผ ์์ ๋งค๋ชฐ๋์ง ์๊ณ ๊ฐ์์ ์ด๊ณ (visible), ํธ์ง ๊ฐ๋ฅํ๋ฉฐ(editable), ์ฌ์ฌ์ฉ ๊ฐ๋ฅ(reusable) ํ๋๋ก ์ค๊ณ๋์๋ค.
5.2 ์ฃผ์ ๊ธฐ๋ฅ
ํผํฌ๋จธ ์ปดํฌ์ (Performer Composer). ์บ๋ฒ์ค ์์์ Tal(์ ์ฒด์ฑ ๋ ์ด์ด)๊ณผ Dance(์คํฌ ์ปจํ ์คํธ) ์์ฐ์ ์ฐ๊ฒฐํ๊ณ , AI ๋ชจ๋ธ์ ์ ํํ๊ณ , MCP ์๋ฒ๋ฅผ ํ ๋นํ๋ฉฐ, ์ปดํ์ผ๋ ํ๋กฌํํธ ๋ดํฌ(prompt envelope)๋ฅผ ๋ฏธ๋ฆฌ ํ์ธํ ์ ์๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ๋๋๊ทธ ์ค ๋๋กญ ์ธํฐํ์ด์ค๋ก ์ด๋ฃจ์ด์ง๋ค.
Act ์๋ํฐ(Act Editor, ์คํ์ ๊ธฐ๋ฅ). ์์ปค(worker), ์ค์ผ์คํธ๋ ์ดํฐ(orchestrator), ๋ณ๋ ฌ(parallel) ๋ ธ๋๋ก ๊ตฌ์ฑ๋ ๋ฉํฐ ๋ ธ๋ AI ์ํฌํ๋ก์ฐ๋ฅผ ๊ทธ๋ํ ํํ๋ก ๊ตฌ์ฑํ ์ ์๋ค. ์ง์ ์ (entry point)์ ์ค์ ํ๊ณ , ํ๋ฆ ์ฃ์ง(flow edge)์ ๋ธ๋์น ์ฃ์ง(branch edge)๋ฅผ ์ฐ๊ฒฐํ์ฌ ๋ณต์กํ ์กฐ๊ฑด๋ถ ์คํ ํ๋ฆ์ ์ง๊ด์ ์ผ๋ก ๋ง๋ ๋ค.
Act ์ค๋ ๋ ๋ฌ๋(Act Thread Runner, ์คํ์ ๊ธฐ๋ฅ). ๊ตฌ์ฑํ Act๋ฅผ ์ค์ ๋ก ์คํํ๊ณ , ๊ฒฐ๊ณผ๊ฐ ๋ ธ๋ ๋จ์๋ก ์ค์๊ฐ ํผ์ณ์ง๋ ๊ฒ์ ๊ด์ฐฐํ ์ ์๋ค. ๋ฐ๋ณต์ ์ธ ์ํฌํ๋ก์ฐ๋ฅผ ์ํด ๋ ธ๋ ์ธ์ ์ ํ๋์ ์ค๋ ๋ ๋ด์์ ์ด์์๋ ์ํ(alive)๋ก ์ ์งํ๋ค.
์ด์ ๋ฐ ๊ฒ์(Draft & Publish). ์บ๋ฒ์ค์์ Tal๊ณผ Dance ์ด์์ ๋ง๋ค๊ณ , ๋ก์ปฌ์ ์ ์ฅํ ํ, DOT ๋ ์ง์คํธ๋ฆฌ๋ฅผ ํตํด ๊ฒ์ํ ์ ์๋ค. ๋ชจ๋ ์์ ์ด Studio๋ฅผ ๋ ๋์ง ์๊ณ ์ด๋ฃจ์ด์ง๋ค.
5.3 Studio Assistant
DOT Studio์๋ ๋ฐ๋ณต์ ์ธ ์์ ์ ์๋ํํ๋ ๋ด์ฅ ์ด์์คํดํธ์ธ Studio Assistant๊ฐ ํฌํจ๋์ด ์๋ค. ์ง์ ์บ๋ฒ์ค๋ฅผ ํธ์งํ ์๋ ์์ง๋ง, ๋ฐ๋ณต์ ์ด๊ณ ํจํดํ๋ ์์ ์ Studio Assistant์๊ฒ ์์ํ ์ ์๋ค.
5.4 ์คํ ์ํคํ ์ฒ
graph LR
subgraph "DOT Studio ๋ฐํ์ ๊ฒฝ๊ณ"
STUDIO["๐จ DOT Studio\n(React 19 + React Flow)\n์บ๋ฒ์ค, UX, ์ํ๊ด๋ฆฌ\nํ๋กฌํํธ ์กฐํฉ"]
DOT_PKG["๐ฆ dance-of-tal ํจํค์ง\n์์ฐ ํฌ๋งท\n๋ ์ง์คํธ๋ฆฌ ์๋งจํฑ์ค"]
OPENCODE["โก OpenCode\n๋ชจ๋ธ ์คํ ์์ง\n์ธ์
๊ด๋ฆฌ\nํด ์คํ"]
REGISTRY["๐ DOT Registry\n(Cloudflare Workers)\n๊ธ๋ก๋ฒ ์์ฐ ์ ์ฅ์"]
end
STUDIO -->|"stage ์ํ, UX, ํ๋กฌํํธ ์กฐํฉ"| DOT_PKG
STUDIO -->|"๋ชจ๋ธ ์คํ, ์ธ์
, ํด"| OPENCODE
DOT_PKG -->|"์์ฐ ํฌ๋งท, ๋ ์ง์คํธ๋ฆฌ ์๋งจํฑ์ค"| REGISTRY
style STUDIO fill:#6c63ff,color:#fff
style DOT_PKG fill:#ff6b6b,color:#fff
style OPENCODE fill:#ffd93d,color:#333
style REGISTRY fill:#6bcb77,color:#fff
์ด ์ํคํ ์ฒ์์ ํต์ฌ์ ์ญํ ๋ถ๋ฆฌ๋ค. DOT Studio๋ ์์ ๊ณต๊ฐ ๋ ์ด์ด(workspace layer)๋ก์ UX์ ์ํ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ๋ ๋ฐ๋ฉด, ์ค์ AI ๋ชจ๋ธ ์คํ์ ๊ถํ์ OpenCode๊ฐ ๊ฐ์ง๋ค. Studio๋ OpenCode๋ฅผ ๋ค์ ๊ตฌํํ๋ ค ํ์ง ์๋๋ค. ์ด๊ฒ์ ๋๊ตฌ์ ์ฑ ์ ๋ฒ์๋ฅผ ๋ช ํํ ํ๋ ์ข์ ์ํคํ ์ฒ ๊ฒฐ์ ์ด๋ค.
5.5 OpenCode์์ ํตํฉ
OpenCode๋ ํฐ๋ฏธ๋์์ ์คํ๋๋ AI ์ฝ๋ฉ ์์ด์ ํธ ๋ฐํ์์ผ๋ก, DOT Studio๋ ์ด ์์์ ๋์ํ๋ ์์ด์ ํธ ๊ตฌ์ฑ ๋ ์ด์ด๋ค. OpenCode๊ฐ http://localhost:4096์์ ์คํ๋๋ ๋์, Studio์ Hono(๊ฒฝ๋ Node.js ์น ํ๋ ์์ํฌ) ๋ฐฑ์๋๊ฐ http://localhost:3001์์, Vite ๊ฐ๋ฐ ์๋ฒ(ํด๋ผ์ด์ธํธ)๊ฐ http://localhost:5173์์ ๋์ํ๋ค.
6. ์ํคํ ์ฒ ์ฌ์ธต ๋ถ์
6.1 ๋ ํฌ์งํ ๋ฆฌ ๊ตฌ์กฐ
1
2
3
4
5
6
dot-studio/
โโโ src/ # React ์ฑ, ์บ๋ฒ์ค ์ปดํฌ๋ํธ, ์ํ ์ฌ๋ผ์ด์ค (Zustand)
โโโ server/ # Hono ๋ผ์ฐํธ, OpenCode ํตํฉ, Act ๋ฐํ์
โโโ shared/ # ํฌ๋ก์ค ๋ฐํ์ ํฌํผ, ๋ฉํ๋ฐ์ดํฐ ์ ํธ๋ฆฌํฐ
โโโ client/ # ๋น๋๋ ๋ธ๋ผ์ฐ์ ์์ฐ (์์ฑ๋จ)
โโโ cli.ts # CLI ์ง์
์ (npx dot-studio ๋ช
๋ น์ด)
6.2 ์ํ ๊ด๋ฆฌ์ ์ค์ผ์คํธ๋ ์ด์
stateDiagram-v2
[*] --> Idle: Studio ์์
Idle --> Composing: ํผํฌ๋จธ ๊ตฌ์ฑ
Composing --> Drafting: ์ด์ ์์ฑ
Drafting --> Publishing: ๋ ์ง์คํธ๋ฆฌ ๊ฒ์
Drafting --> Testing: Act ์คํ
Testing --> Running: Thread Runner ํ์ฑํ
Running --> NodeExecution: ๋
ธ๋๋ณ ์คํ
NodeExecution --> NodeExecution: ๋ค์ ๋
ธ๋
NodeExecution --> Completed: ๋ชจ๋ ๋
ธ๋ ์๋ฃ
Completed --> Idle: ๊ฒฐ๊ณผ ํ์ธ ํ
Publishing --> Idle: ๊ฒ์ ์๋ฃ
DOT Studio๋ XState๋ฅผ ์ค์ผ์คํธ๋ ์ด์ ์์ง์ผ๋ก ์ฌ์ฉํ๋ค. XState๋ ์ ํ ์ํ ๊ธฐ๊ณ(Finite State Machine) ๋ฐ ์ํ ์ฐจํธ(Statecharts) ๊ตฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ๋ณต์กํ UI ์ํ์ ๋น๋๊ธฐ ํ๋ฆ์ ์์ ํ๊ฒ ๊ด๋ฆฌํ๋ ๋ฐ ์ ํฉํ๋ค. ์์ด์ ํธ ์คํ ํ๋ฆ์ ์ํ ์ ์ด๋ฅผ ์ฝ๋๊ฐ ์๋ ์ ์ธ์ ์ํ ๊ธฐ๊ณ๋ก ํํํจ์ผ๋ก์จ ์์ธก ๊ฐ๋ฅ์ฑ๊ณผ ๋๋ฒ๊น ์ฉ์ด์ฑ์ ํ๋ณดํ๋ค.
6.3 URN ๊ธฐ๋ฐ ์์ฐ ๊ด๋ฆฌ ์์คํ
DOT์ ์์ฐ์ ๋ชจ๋ category/@author/name ํ์์ URN์ผ๋ก ์๋ณ๋๋ค:
1
2
3
4
5
tal/@monarchjuno/system-architect
dance/@react-core/strict-tdd
act/@myteam/emergency-hotfix-workflow
stage/@myteam/cursor-setup
combo/@myteam/backend-v1
์ด ๋ช
๋ช
์ฒด๊ณ๋ npm์ ์ค์ฝํ๋ ํจํค์ง(@author/package-name) ๊ฐ๋
๊ณผ ๋์ผํ๋ค. ์ ์ ๋ค์์คํ์ด์ค๊ฐ GitHub ๊ณ์ ๊ณผ ์ฐ๋๋์ด ๋ณดํธ๋๋ฏ๋ก, ๋๊ฐ ๋ง๋ ์์ฐ์ธ์ง ๋ช
ํํ ๊ตฌ๋ถ๋๋ค.
6.4 ์์กด์ฑ ์ฃผ์ (DI) ํจ๋ฌ๋ค์์ AI ์ ์ฉ
DOT์ ๊ฐ์ฅ ์ค์ํ ์์ด๋์ด ์ค ํ๋๋ ์ํํธ์จ์ด ๊ณตํ์ ์์กด์ฑ ์ฃผ์ (Dependency Injection) ์์น์ AI ์ปจํ ์คํธ ๊ด๋ฆฌ์ ์ ์ฉํ๋ค๋ ์ ์ด๋ค.
๊ธฐ์กด ๋ฐฉ์์ ์์ฒ ์ค์ง๋ฆฌ AGENTS.md ํ์ผ์ ์ฝ๋๋ฒ ์ด์ค์ ํต์งธ๋ก ๋ณต์ฌ-๋ถ์ฌ๋ฃ๊ธฐํ๋ ๊ฒ์ด์๋ค. ์ด ๋ฐฉ์์ ๋ฌธ์ ๋ ๋น์ฆ๋์ค ๋ก์ง์ด ๋ฐ๋๊ฑฐ๋ ์๋ก์ด ํจ๋ฌ๋ค์์ด ๋ฑ์ฅํ์ ๋, AI์ ์ถ๋ก ์ ๊นจ๋จ๋ฆฐ ๊ฒ์ด ์ด๋ ๋ ์ด์ด์ธ์ง ๋๋ฒ๊น
ํ๋ ๊ฒ์ด ๊ฑฐ์ ๋ถ๊ฐ๋ฅํด์ง๋ค๋ ๊ฒ์ด๋ค.
DOT๋ AI์ ์ง์ฑ(Tal), ํฌ๋งท ์ ์ฝ(Dance), ์คํ ์ํฌํ๋ก์ฐ(Act) ๋ฅผ ์๋ก ๋ถ๋ฆฌ๋ ๋ฒ์ ๊ด๋ฆฌ ๊ฐ๋ฅํ ๋ง์ดํฌ๋ก ์ปจํ ์คํธ๋ก ๋ถํดํจ์ผ๋ก์จ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
7. ๊ธฐ์ ์คํ ๋ฐ ๋ฐํ์ ๊ฒฝ๊ณ
7.1 DOT Studio ๊ธฐ์ ์คํ
| ๋ ์ด์ด | ๊ธฐ์ | ์ญํ |
|---|---|---|
| ํ๋ก ํธ์๋ | React 19, Zustand, React Flow, Vite | ์บ๋ฒ์ค UI, ์ํ ๊ด๋ฆฌ, ๋ ธ๋ ๊ทธ๋ํ ๋ ๋๋ง |
| ๋ฐฑ์๋ | Hono, tsx | ๊ฒฝ๋ API ์๋ฒ, TypeScript ์ง์ ์คํ |
| ์ค์ผ์คํธ๋ ์ด์ | XState | ์ํ ๊ธฐ๊ณ ๊ธฐ๋ฐ ์ํฌํ๋ก์ฐ ๊ด๋ฆฌ |
| AI ๋ฐํ์ | OpenCode SDK | ์ค์ ๋ชจ๋ธ ์คํ, ์ธ์ , ํด ํธ์ถ |
| ์์ฐ ์์คํ | dance-of-tal ํจํค์ง | Tal/Dance/Act ์์ฐ ํฌ๋งท ๋ฐ ๋ ์ง์คํธ๋ฆฌ |
7.2 dance-of-tal CLI ๊ธฐ์ ์คํ
| ๋ ์ด์ด | ๊ธฐ์ | ์ญํ |
|---|---|---|
| ๋ฐํ์ | Node.js โฅ 20.19.0 (๊ถ์ฅ 22.22.1) | ์คํ ํ๊ฒฝ |
| ์ธ์ด | TypeScript 98.7% | ํ์ ์์ ์ฑ |
| ๋ ์ง์คํธ๋ฆฌ | Cloudflare Workers | ๊ธ๋ก๋ฒ ์ฃ์ง ๋ฐฐํฌ |
| MCP ํตํฉ | MCP ์๋ฒ ํ๋กํ ์ฝ | IDE/์์ด์ ํธ ์ฐ๋ |
7.3 ์ง์ ํ๋ซํผ ๋ฐ ํตํฉ
DOT๋ ๋ค์ ํ๋ซํผ๋ค๊ณผ์ ํตํฉ์ ์ง์ํ๋ค:
- Cursor โ AI ์ฝ๋ ์๋ํฐ
- Windsurf โ AI ์ฝ๋ ์๋ํฐ (Codeium)
- Claude Desktop โ Anthropic Claude ๋ฐ์คํฌํฑ ํด๋ผ์ด์ธํธ
- OpenAI API โ OpenAI ๋ชจ๋ธ ์ง์ ์ฐ๋
- Codex โ OpenAI Codex
- Antigravity โ AI ์์ด์ ํธ ํ๋ซํผ
8. ์ค์ ์ฌ์ฉ ํ๋ฆ: ์ค์น๋ถํฐ ์คํ๊น์ง
8.1 ์๋ผ์ด๋ ์ค์น
1
2
3
4
5
# macOS / Linux
curl -fsSL https://danceoftal.com/install.sh | sh
# npm ์ ์ญ ์ค์น
npm install -g dance-of-tal@latest dot-studio@latest
8.2 DOT CLI๋ฅผ ํตํ ์์ด์ ํธ ์ปจํ ์คํธ ๊ด๋ฆฌ
sequenceDiagram
participant Dev as ๊ฐ๋ฐ์
participant CLI as dot CLI
participant Registry as DOT Registry
participant MCP as MCP Server
participant IDE as IDE (Cursor ๋ฑ)
Dev->>CLI: dot init
CLI-->>Dev: .dance-of-tal/ ๋๋ ํ ๋ฆฌ ์์ฑ
Dev->>CLI: dot login (GitHub ์ธ์ฆ)
CLI-->>Dev: @username ๋ค์์คํ์ด์ค ํ์ฑํ
Dev->>CLI: dot install tal/@monarchjuno/system-architect
CLI->>Registry: URN์ผ๋ก ์์ฐ ์กฐํ
Registry-->>CLI: Tal ์์ฐ ๋ค์ด๋ก๋
CLI-->>Dev: .dance-of-tal/registry/์ ์ ์ฅ
Dev->>CLI: dot install dance/@react-core/strict-tdd
CLI->>Registry: URN์ผ๋ก ์์ฐ ์กฐํ
Registry-->>CLI: Dance ์์ฐ ๋ค์ด๋ก๋
Dev->>CLI: dot lock --tal system-architect --dance strict-tdd --name my_app
CLI-->>Dev: Combo ์์ฑ (๋ฒ์ ์ ๊ธ)
Dev->>CLI: dot compile
CLI-->>Dev: ๊ตฌ์กฐ์ ํธํ์ฑ ๊ฒ์ฆ
Dev->>CLI: dot run my_app
CLI->>MCP: ์ปจํ
์คํธ ํ์ด๋ก๋ ์ฃผ์
MCP->>IDE: ์๋ ์ปจํ
์คํธ ๋ง์ดํธ
8.3 DOT Studio๋ฅผ ํตํ ์๊ฐ์ ์์ด์ ํธ ๊ตฌ์ฑ
1
2
3
4
5
6
# ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ์์ Studio ์คํ
cd my-project
npx dot-studio .
# ๋๋ ํฌํธ ์ง์
dot-studio --port 3005 .
Studio๊ฐ ์คํ๋๋ฉด ๋ธ๋ผ์ฐ์ ์์ ๋ค์ ์ธ ๊ฐ์ง ์๋น์ค๊ฐ ๋์์ ์คํ๋๋ค:
| ์๋น์ค | URL | ์ญํ |
|---|---|---|
| Vite ํด๋ผ์ด์ธํธ | http://localhost:5173 | React ์บ๋ฒ์ค UI |
| Hono API ์๋ฒ | http://localhost:3001 | ๋ฐฑ์๋ API |
| OpenCode ๋ฐํ์ | http://localhost:4096 | AI ๋ชจ๋ธ ์คํ ์์ง |
8.4 GitHub์์ ์ง์ Dance ์คํฌ ์ถ๊ฐ
1
2
3
# GitHub ๋ ํฌ์งํ ๋ฆฌ์์ Dance ์คํฌ ์ง์ ์ถ๊ฐ
dot add acme/agent-skills
# โ Added 3 Dance skill(s) from acme/agent-skills
์ด ๊ธฐ๋ฅ์ npm์์ github:user/repo ํ์์ผ๋ก ํจํค์ง๋ฅผ ์ค์นํ๋ ๊ฒ๊ณผ ์ ์ฌํ๋ค. ์ค์ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ๊ฑฐ์น์ง ์๊ณ GitHub์ ๋ชจ๋ ๊ณต๊ฐ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ Dance ์คํฌ ์์ค๋ก ํ์ฉํ ์ ์์ด, ์ํ๊ณ ํ์ฅ์ด ๋งค์ฐ ์ ์ฐํ๋ค.
9. ๊ธฐ์กด ๋ฉํฐ ์์ด์ ํธ ๋๊ตฌ๋ค๊ณผ์ ๋น๊ต
9.1 ํฌ์ง์ ๋ ๋น๊ต
quadrantChart
title ๋ฉํฐ ์์ด์ ํธ ๋๊ตฌ ํฌ์ง์
๋
x-axis "์ฝ๋ ์ค์ฌ --> ์๊ฐํ ์ค์ฌ"
y-axis "์ผํ์ฑ ์ฌ์ฉ --> ์ฌ์ฌ์ฉ/ํจํค์ง"
quadrant-1 "์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์๊ฐ์ ๋๊ตฌ"
quadrant-2 "์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋ ๋๊ตฌ"
quadrant-3 "์ฝ๋ ๊ธฐ๋ฐ ์ผํ์ฑ ๋๊ตฌ"
quadrant-4 "์๊ฐ์ ์ผํ์ฑ ๋๊ตฌ"
DOT Studio: [0.85, 0.90]
LangGraph: [0.25, 0.60]
AutoGen: [0.20, 0.45]
CrewAI: [0.30, 0.53]
n8n AI: [0.80, 0.40]
Flowise: [0.75, 0.35]
9.2 ์ฃผ์ ์ฐจ๋ณ์
| ๋น๊ต ํญ๋ชฉ | ๊ธฐ์กด ๋ฐฉ์ (LangGraph, AutoGen ๋ฑ) | DOT / DOT Studio |
|---|---|---|
| ์์ด์ ํธ ์ ์ | ์ฝ๋๋ก ์ง์ ์ ์ | URN ๊ธฐ๋ฐ ์์ฐ ํจํค์ง |
| ์ฌ์ฌ์ฉ์ฑ | ์ฝ๋ ๋ณต์ฌ ๋๋ ํด๋์ค ์์ | ๋ ์ง์คํธ๋ฆฌ์์ dot install |
| ๋ฒ์ ๊ด๋ฆฌ | Git ์ปค๋ฐ | Combo ์ ๊ธํ์ผ (npm-style) |
| ์๊ฐํ | ๋ณ๋ ๋๊ตฌ ํ์ | Studio ์บ๋ฒ์ค ๋ด์ฅ |
| MCP ํตํฉ | ๋ณ๋ ์ค์ | Studio์์ ๋ช ์์ ํ ๋น |
| ์คํ ๊ฐ์์ฑ | ๋ก๊ทธ ๊ธฐ๋ฐ | ๋ ธ๋๋ณ ์ค์๊ฐ ์คํ ๋ทฐ |
| ๋ฐฐํฌ ๋จ์ | ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ | ๊ฐ๋ณ Tal, Dance, Act |
9.3 Addy Osmani์ agent-skills์์ ๊ด๊ณ
ํฅ๋ฏธ๋กญ๊ฒ๋, DOT๋ Addy Osmani(Google Chrome ํ ์์ง๋์ด๋ง ๋๋ ํฐ)๊ฐ ๊ณต๊ฐํ agent-skills ๋ ํฌ์งํ ๋ฆฌ์ ํธํ๋๋๋ก ์ค๊ณ๋์ด ์๋ค. dot add acme/agent-skills ๋ช
๋ น์ฒ๋ผ GitHub ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์ง์ Dance ์คํฌ ์์ค๋ก ์ฌ์ฉํ ์ ์๋ค๋ ์ ์์, ์ธ๋ถ ์ปค๋ฎค๋ํฐ์ ์์ด์ ํธ ์คํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ DOT ์ํ๊ณ๋ก ํก์ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
10. ํ๋ก์ ํธ ํํฉ ๋ฐ ์๋ฏธ
10.1 ํ์ฌ ์ํ (2026๋ 4์ ๊ธฐ์ค)
- DOT Studio: GitHub Stars 23๊ฐ, Fork 3๊ฐ โ ๋งค์ฐ ์ด๊ธฐ ๋จ๊ณ์ง๋ง ์ปค๋ฎค๋ํฐ์ ๊ด์ฌ์ ๋ฐ๊ธฐ ์์ํ๋ ์ค
- dance-of-tal ๋ฉ์ธ ๋ ํฌ: Stars 0๊ฐ โ ํต์ฌ ํจํค์ง ๋ ํฌ๋ ์์ง ์ปค๋ฎค๋ํฐ ์ฃผ๋ชฉ๋๊ฐ ๋ฎ์
- npm ํจํค์ง:
dot-studio๋ฐdance-of-tal@latest๊ณต๊ฐ ๋ฐฐํฌ ์ค - ๊ณต์ ์น์ฌ์ดํธ: danceoftal.com ์ด์ ์ค
- ๋ ์ง์คํธ๋ฆฌ: Cloudflare Workers ๊ธฐ๋ฐ ๊ธ๋ก๋ฒ ๋ ์ง์คํธ๋ฆฌ ์ด์ ์ค
- ๋ผ์ด์ ์ค: MIT (์คํ์์ค)
- ์ฃผ์ ๊ธฐ์ : TypeScript 86.6% (Studio), TypeScript 98.7% (dance-of-tal)
10.2 ํ๋ก์ ํธ์ ํต์ฌ ๊ฐ์น
์ด ํ๋ก์ ํธ๊ฐ ํฅ๋ฏธ๋ก์ด ์ด์ ๋ ๋จ์ํ ์๋ก์ด ๋๊ตฌ๋ฅผ ๋ง๋ค์๊ธฐ ๋๋ฌธ์ด ์๋๋ผ, AI ์์ด์ ํธ๋ฅผ ์ํํธ์จ์ด ์์กด์ฑ์ฒ๋ผ ๋ค๋ฃจ๋ ํจ๋ฌ๋ค์์ ์ ์ํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
npm์ด JavaScript ํจํค์ง๋ฅผ ํ์คํํ๊ณ , Docker๊ฐ ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ฅผ ํ์คํํ๋ฏ์ด, DOT๋ AI ์์ด์ ํธ ์ปจํ
์คํธ๋ฅผ ํ์คํํ๋ ค ํ๋ค. ๊ฐ์ธ ๊ฐ๋ฐ์๊ฐ ๋ง๋ โ๋ฐ์ด๋ ์ฝ๋ ๋ฆฌ๋ทฐ ์์ด์ ํธ ์ ์ฒด์ฑ(Tal)โ์ ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค์ด dot install tal/@author/name ํ๋๋ก ์ฌ์ฌ์ฉํ ์ ์๋ค๋ฉด, ์ด๋ AI ์์ด์ ํธ ์ํ๊ณ์ ์๋นํ ๋ณํ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.
10.3 ํ๊ณ์ ์ฃผ์์
์คํ์ ๊ธฐ๋ฅ์ ๋ถ์์ ์ฑ. Act Editor์ Act Thread Runner๋ ํ์ฌ โExperimental(์คํ์ )โ๋ก ํ์๋์ด ์๋ค. ํต์ฌ ๊ฐ์น ์ ์ ์ค ํ๋์ธ ๋ฉํฐ ์์ด์ ํธ ํ์ ๊ทธ๋ํ ๊ธฐ๋ฅ์ด ์์ง ์์ ํ๋์ง ์์ ์ํ๋ผ๋ ์ ์ ์ฃผ์๊ฐ ํ์ํ๋ค.
OpenCode ์์กด์ฑ. DOT Studio๋ OpenCode๋ฅผ AI ์คํ ๋ฐํ์์ผ๋ก ์ฌ์ฉํ๋ค. OpenCode ์์ฒด๊ฐ ๋น๊ต์ ์๋ก์ด ์คํ์์ค ํ๋ก์ ํธ(sst/opencode)์ด๋ฏ๋ก, Studio์ ์์ ์ฑ์ OpenCode์ ์ฑ์๋์๋ ์ํฅ์ ๋ฐ๋๋ค.
์ํ๊ณ ์ด๊ธฐ ๋จ๊ณ. ์๋ฌด๋ฆฌ ์ข์ ํจํค์ง ๋งค๋์ ๋ผ๋ ์ค์นํ ์ ์๋ ํจํค์ง๊ฐ ์์ผ๋ฉด ์๋ฏธ๊ฐ ์๋ค. DOT ๋ ์ง์คํธ๋ฆฌ์ ์ผ๋ง๋ ๋ง์ ๊ณ ํ์ง Tal, Dance ์์ฐ์ด ์์ด๋๋๊ฐ ์ด ํ๋ก์ ํธ์ ์ฑํจ๋ฅผ ๊ฒฐ์ ํ ๊ฒ์ด๋ค.
11. ์ข ํฉ ํ๊ฐ ๋ฐ ์์ฌ์
11.1 ์์ด๋์ด์ ์ฐธ์ ์ฑ
DOT์ ํต์ฌ ์์ด๋์ด๋ genuinely(๋ณธ์ง์ ์ผ๋ก) ์๋กญ๋ค. AI ์์ด์ ํธ๋ฅผ โnpm ํจํค์งโ์ฒ๋ผ ๋ค๋ฃจ๋ ์ ๊ทผ์, AI ์์ด์ ํธ ์์คํ ์ด ์ ์ ๋ณต์กํด์ง๋ ํ ์์ ์์ ๋งค์ฐ ์ ์ ํ ํ์ด๋ฐ์ ๋์จ ์ ์์ด๋ค. ํนํ ๋ค์ ์ธ ๊ฐ์ง ๊ด์ ์์ ์๋ฏธ ์๋ค:
์ฒซ์งธ, ๋ชจ๋์ฑ(Modularity)์ AI ์ ์ฉ์ด๋ค. ์ํํธ์จ์ด ๊ณตํ์ด ์์ญ ๋ ์ ๊ฑธ์ณ ๋ฐ์ ์ํจ โ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ(Separation of Concerns)โ ์์น์ AI ์ปจํ ์คํธ์ ์ ์ฉํ ๊ฒ์ด๋ค. AI์ โ๋๊ตฌ์ธ๊ฐ(์ ์ฒด์ฑ)โ์ โ๋ฌด์์ ํ ์ ์๋๊ฐ(๋ฅ๋ ฅ)โ์ โ์ด๋ป๊ฒ ํ์ ํ๋๊ฐ(์ํฌํ๋ก์ฐ)โ๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ ๊ธฐ์กด AI ๋๊ตฌ๋ค์ด ๋์น๊ณ ์๋ ์ค์ํ ์ค๊ณ ์์น์ด๋ค.
๋์งธ, ์ฌํ ๊ฐ๋ฅ์ฑ(Reproducibility)์ ํ๋ณด์ด๋ค. Combo ์ ๊ธํ์ผ ๊ฐ๋ ์ ํตํด AI ์ปจํ ์คํธ์ ์ฌํ ๊ฐ๋ฅ์ฑ์ ๋ณด์ฅํ๋ ค๋ ์๋๋, AI ์์คํ ์ ๊ฒฐ์ ๋ก ์ ๋์์ ์ถ๊ตฌํ๋ ์ํฐํ๋ผ์ด์ฆ ํ๊ฒฝ์์ ํนํ ๊ฐ์น ์๋ค.
์ ์งธ, ํ์ถค์ด๋ผ๋ ์์ ์ ์ ํฉ์ฑ์ด๋ค. ๋จ์ํ ๋ง์ผํ ์ธ์ด๊ฐ ์๋๋ผ, ์์คํ ์ค๊ณ์ ๊ทผ๋ณธ ์์น์ ์ค๋ช ํ๋ ์ ํํ ๋น์ ๋ค. ํ๊ตญ ์ ํต ๊ณต์ฐ์์ ๊ฐ ๋ฌด์ฉ์๊ฐ ์์ ๋ง์ ์ ์ฒด์ฑ๊ณผ ์ญํ ์ ๊ฐ๊ณ ํ์ ํ๋ ๋ฐฉ์์, ๋ถ์ฐ๋ AI ์์ด์ ํธ ํ์ ์ ์ค๋ช ํ๋ ๋ฐ ๋๋๋๋ก ์ ํฉํ๋ค.
11.2 ์ค์ฉ์ ๊ด์ ์์์ ์กฐ์ธ
์ด ํ๋ก์ ํธ๋ฅผ ์ค์ ์ ๋ฌด์ ๋์ ํ๋ ค๋ ๋ถ๋ค์ ์ํ ์กฐ์ธ์ด๋ค:
ํ์ฌ ์์ (2026๋ 4์)์์๋ POC(Proof of Concept) ๋๋ ์ฌ์ด๋ ํ๋ก์ ํธ ๋ ๋ฒจ์ ํ์์ด ์ ํฉํ๋ค. ํต์ฌ ๊ฐ๋ ์ ํํํ๊ณ ๋ฐฉํฅ์ฑ์ด ์ฌ๋ฐ๋ฅด์ง๋ง, ์์ง ํ๋ก๋์ ํ๊ฒฝ์์ ์ฌ์ฉํ๊ธฐ์๋ ์ํ๊ณ์ ์ฑ์๋๊ฐ ๋ถ์กฑํ๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ธ AI ์์ด์ ํธ ์ํฌํ๋ก์ฐ ๊ตฌ์ฑ์ด๋ Claude Code์ ๊ฐ์ AI ์ฝ๋ฉ ์์ด์ ํธ๋ฅผ ์ฒด๊ณํํ๋ ์ฉ๋๋ก๋ ์ถฉ๋ถํ ์ค์ฉ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
ํนํ Claude Code + DOT CLI + MCP ์กฐํฉ์ ์ฃผ๋ชฉํ ๋งํ๋ค. DOT๋ฅผ MCP ์๋ฒ๋ก ์คํํ์ฌ Claude Desktop์ด๋ Claude Code์ ์ฐ๋ํ๋ฉด, ํ๋ก์ ํธ๋ณ๋ก ๋ค๋ฅธ ์์ด์ ํธ ์ปจํ ์คํธ๋ฅผ ์๋์ผ๋ก ๋ก๋ํ๋ ์ํฌํ๋ก์ฐ๋ฅผ ๊ตฌ์ฑํ ์ ์๋ค.
1
2
3
4
5
6
7
8
9
// Claude Desktop ๋๋ Claude Code์ MCP ์ค์
{
"mcpServers": {
"dance-of-tal": {
"command": "npx",
"args": ["-y", "dance-of-tal@latest"]
}
}
}
11.3 ํฅํ ๋ฐ์ ๋ฐฉํฅ ์์ธก
์ด ํ๋ก์ ํธ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ฐ์ ํ๋ค๋ฉด, AI ์์ด์ ํธ ์์คํ
์ ๊ตฌ์ฑ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉํฅ์ผ๋ก ์งํํ ๊ฒ์ผ๋ก ์์๋๋ค: ๊ณต๊ฐ ๋ ์ง์คํธ๋ฆฌ์ ์ปค๋ฎค๋ํฐ๊ฐ ๋ง๋ ๋ค์ํ Tal, Dance ์์ฐ์ด ์ถ์ ๋๊ณ , ๊ธฐ์
๋ค์ ๋ด๋ถ ํ๋ผ์ด๋น ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ด์ํ์ฌ ์กฐ์ง ํ์ค ์์ด์ ํธ ์ปจํ
์คํธ๋ฅผ ๊ณต์ ํ๋ฉฐ, AI ์์ด์ ํธ์ โpackage.jsonโ์ ํด๋นํ๋ .dance-of-tal/ ์ค์ ์ด ํ๋ก์ ํธ์ ํ์ค ๊ตฌ์ฑ ์์๊ฐ ๋๋ ์ธ์์ด๋ค.
๋ฉํฐ ์์ด์ ํธ ์์คํ ์ด ๋จ์ํ ์ค์ผ์คํธ๋ ์ด์ ์ ๋์ด ์ง์ ํ ์ฝ๋ ์ค๊ทธ๋ํผ๋ก ๋ฐ์ ํ๋ ์ฌ์ ์ ์ฒซ ๊ฑธ์์ผ๋ก์, DOT๋ ์๋ฏธ ์๋ ์๋๋ค.
๊ด๋ จ ๋งํฌ
- DOT Studio GitHub: https://github.com/dance-of-tal/dot-studio
- dance-of-tal GitHub: https://github.com/dance-of-tal/dance-of-tal
- ๊ณต์ ์น์ฌ์ดํธ: https://danceoftal.com
- DOT Registry: https://danceoftal.com/registry
- ๋ฌธ์: https://danceoftal.com/docs/studio
- GeekNews ์๊ฐ ๊ธ: https://news.hada.io/topic?id=28629
๐ ์์ฑ ์ผ์: 2026-04-17
์ด ๋ฌธ์๋ GitHub ๋ ํฌ์งํ ๋ฆฌ, ๊ณต์ ์น์ฌ์ดํธ, GeekNews ์๊ฐ ๊ธ์ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค.