์ฝ˜ํ…์ธ ๋กœ ์ด๋™

Agent Development Kit (ADK)

์—์ด์ „ํŠธ์˜ ๊ตฌ์ถ•, ํ‰๊ฐ€, ๋ฐฐํฌ๋ฅผ ์›ํ™œํ•˜๊ฒŒ!

ADK๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ AI ๊ธฐ๋ฐ˜ ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ์ถ•, ๊ด€๋ฆฌ, ํ‰๊ฐ€ ๋ฐ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ADK๋Š” ๋ณต์žกํ•œ ์ž‘์—…๊ณผ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ™”ํ˜• ๋ฐ ๋น„๋Œ€ํ™”ํ˜• ์—์ด์ „ํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๊ฒฌ๊ณ ํ•˜๊ณ  ์œ ์—ฐํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

intro_components.png

ํ•ต์‹ฌ ๊ฐœ๋…

ADK๋Š” ๊ฐ•๋ ฅํ•˜๊ณ  ์œ ์—ฐํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ํ•ต์‹ฌ ์š”์†Œ์™€ ๊ฐœ๋…์„ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ์—์ด์ „ํŠธ(Agent): ํŠน์ • ์ž‘์—…์„ ์œ„ํ•ด ์„ค๊ณ„๋œ ๊ธฐ๋ณธ์ ์ธ ์ž‘์—… ๋‹จ์œ„(worker unit)์ž…๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋Š” ๋ณต์žกํ•œ ์ถ”๋ก ์„ ์œ„ํ•ด ์–ธ์–ด ๋ชจ๋ธ(LlmAgent)์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ์‹คํ–‰์„ ๊ฒฐ์ •๋ก ์ ์œผ๋กœ ์ œ์–ดํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ํ•˜๋Š” ์›Œํฌํ”Œ๋กœ์šฐ ์—์ด์ „ํŠธ (SequentialAgent, ParallelAgent, LoopAgent)๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํˆด(Tool): ์—์ด์ „ํŠธ์—๊ฒŒ ๋Œ€ํ™”๋ฅผ ๋„˜์–ด์„  ๋Šฅ๋ ฅ์„ ๋ถ€์—ฌํ•˜์—ฌ ์™ธ๋ถ€ API์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ฑฐ๋‚˜, ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜, ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฝœ๋ฐฑ(Callbacks): ์—์ด์ „ํŠธ ํ”„๋กœ์„ธ์Šค์˜ ํŠน์ • ์ง€์ ์—์„œ ์‹คํ–‰๋˜๋„๋ก ์ œ๊ณตํ•˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์ฝ”๋“œ ์กฐ๊ฐ์œผ๋กœ, ํ™•์ธ, ๋กœ๊น… ๋˜๋Š” ๋™์ž‘ ์ˆ˜์ •์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • ์„ธ์…˜ ๊ด€๋ฆฌ(Session & State): ๋‹จ์ผ ๋Œ€ํ™”์˜ ์ปจํ…์ŠคํŠธ(Session)๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ์—ฌ๊ธฐ์—๋Š” ๋Œ€ํ™” ๊ธฐ๋ก(Events)๊ณผ ํ•ด๋‹น ๋Œ€ํ™”์— ๋Œ€ํ•œ ์—์ด์ „ํŠธ์˜ ์ž‘์—… ๋ฉ”๋ชจ๋ฆฌ(State)๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ(Memory): ์—์ด์ „ํŠธ๊ฐ€ ์—ฌ๋Ÿฌ ์„ธ์…˜์— ๊ฑธ์ณ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ ์žฅ๊ธฐ์ ์ธ ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค (๋‹จ๊ธฐ์ ์ธ ์„ธ์…˜ State์™€๋Š” ๊ตฌ๋ณ„๋จ).
  • ์•„ํ‹ฐํŒฉํŠธ ๊ด€๋ฆฌ(Artifact): ์—์ด์ „ํŠธ๊ฐ€ ์„ธ์…˜ ๋˜๋Š” ์‚ฌ์šฉ์ž์™€ ๊ด€๋ จ๋œ ํŒŒ์ผ์ด๋‚˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ(์ด๋ฏธ์ง€, PDF ๋“ฑ)๋ฅผ ์ €์žฅ, ๋กœ๋“œ ๋ฐ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ ์‹คํ–‰(Code Execution): ์—์ด์ „ํŠธ๊ฐ€ (์ฃผ๋กœ ํˆด์„ ํ†ตํ•ด) ๋ณต์žกํ•œ ๊ณ„์‚ฐ์ด๋‚˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
  • ๊ณ„ํš(Planning): ์—์ด์ „ํŠธ๊ฐ€ ๋ณต์žกํ•œ ๋ชฉํ‘œ๋ฅผ ๋” ์ž‘์€ ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ„๊ณ  ReAct ํ”Œ๋ž˜๋„ˆ์ฒ˜๋Ÿผ ๋ชฉํ‘œ ๋‹ฌ์„ฑ ๋ฐฉ๋ฒ•์„ ๊ณ„ํšํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
  • ๋ชจ๋ธ(Models): LlmAgent๋ฅผ ๊ตฌ๋™ํ•˜๋Š” ๊ธฐ๋ฐ˜ LLM์œผ๋กœ, ์—์ด์ „ํŠธ์˜ ์ถ”๋ก  ๋ฐ ์–ธ์–ด ์ดํ•ด ๋Šฅ๋ ฅ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฒคํŠธ(Event): ์„ธ์…˜ ์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ์ผ(์‚ฌ์šฉ์ž ๋ฉ”์‹œ์ง€, ์—์ด์ „ํŠธ ์‘๋‹ต, ํˆด ์‚ฌ์šฉ ๋“ฑ)์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐ๋ณธ์ ์ธ ํ†ต์‹  ๋‹จ์œ„๋กœ, ๋Œ€ํ™” ๊ธฐ๋ก์„ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๋Ÿฌ๋„ˆ(Runner): ์‹คํ–‰ ํ๋ฆ„์„ ๊ด€๋ฆฌํ•˜๊ณ , ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์—์ด์ „ํŠธ ์ƒํ˜ธ์ž‘์šฉ์„ ์กฐ์œจํ•˜๋ฉฐ, ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์™€ ํ˜‘๋ ฅํ•˜๋Š” ์—”์ง„์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ : ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์ŠคํŠธ๋ฆฌ๋ฐ, ํ‰๊ฐ€, ๋ฐฐํฌ, ๋””๋ฒ„๊น…, ์ถ”์ ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ๋“ค๋„ ๋” ๋„“์€ ADK ์ƒํƒœ๊ณ„์˜ ์ผ๋ถ€์ด๋ฉฐ, ์‹ค์‹œ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ๊ณผ ๊ฐœ๋ฐœ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ

ADK๋Š” ์—์ด์ „ํŠธ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  1. ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์‹œ์Šคํ…œ ์„ค๊ณ„: ๊ณ„์ธต์ ์œผ๋กœ ๋ฐฐ์—ด๋œ ์—ฌ๋Ÿฌ ์ „๋ฌธํ™”๋œ ์—์ด์ „ํŠธ๋กœ ๊ตฌ์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋Š” ๋ณต์žกํ•œ ์ž‘์—…์„ ์กฐ์œจํ•˜๊ณ , LLM ๊ธฐ๋ฐ˜์˜ ์ „๋‹ฌ ๋˜๋Š” ๋ช…์‹œ์ ์ธ AgentTool ํ˜ธ์ถœ์„ ํ†ตํ•ด ํ•˜์œ„ ์ž‘์—…์„ ์œ„์ž„ํ•˜์—ฌ ๋ชจ๋“ˆ์‹์˜ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ํ’๋ถ€ํ•œ ํˆด ์ƒํƒœ๊ณ„: ์—์ด์ „ํŠธ์—๊ฒŒ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ADK๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜(FunctionTool) ํ†ตํ•ฉ, ๋‹ค๋ฅธ ์—์ด์ „ํŠธ๋ฅผ ํˆด๋กœ ์‚ฌ์šฉ(AgentTool), ์ฝ”๋“œ ์‹คํ–‰๊ณผ ๊ฐ™์€ ๋‚ด์žฅ ๊ธฐ๋Šฅ ํ™œ์šฉ, ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์†Œ์Šค ๋ฐ API(์˜ˆ: ๊ฒ€์ƒ‰, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์žฅ๊ธฐ ์‹คํ–‰ ํˆด์„ ์ง€์›ํ•˜์—ฌ ๋น„๋™๊ธฐ ์ž‘์—…์„ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์œ ์—ฐํ•œ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜: ๋‚ด์žฅ๋œ ์›Œํฌํ”Œ๋กœ์šฐ ์—์ด์ „ํŠธ(SequentialAgent, ParallelAgent, LoopAgent)์™€ LLM ๊ธฐ๋ฐ˜์˜ ๋™์  ๋ผ์šฐํŒ…์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์žกํ•œ ์—์ด์ „ํŠธ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ์ ์‘ํ˜• ์—์ด์ „ํŠธ ๋™์ž‘์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ํ†ตํ•ฉ๋œ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ: ์‰ฝ๊ฒŒ ๋กœ์ปฌ์—์„œ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐ˜๋ณต ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ADK๋Š” ์—์ด์ „ํŠธ ์‹คํ–‰, ์‹คํ–‰ ๋‹จ๊ณ„(์ด๋ฒคํŠธ, ์ƒํƒœ ๋ณ€๊ฒฝ) ๊ฒ€์‚ฌ, ์ƒํ˜ธ์ž‘์šฉ ๋””๋ฒ„๊น…, ์—์ด์ „ํŠธ ์ •์˜ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค(CLI) ๋ฐ ๊ฐœ๋ฐœ์ž UI์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  5. ๋„ค์ดํ‹ฐ๋ธŒ ์ŠคํŠธ๋ฆฌ๋ฐ ์ง€์›: ์–‘๋ฐฉํ–ฅ ์ŠคํŠธ๋ฆฌ๋ฐ(ํ…์ŠคํŠธ ๋ฐ ์˜ค๋””์˜ค)์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” ๋ผ์ด๋ธŒ ๋ฐ ์Œ์„ฑ ์—์ด์ „ํŠธ๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ๋Œ€ํ™”ํ˜• ๊ฒฝํ—˜์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Gemini Developer API์šฉ Gemini Live API ๋ฐ Vertex AI์šฉ Live API์™€ ๊ฐ™์€ ๊ธฐ๋ฐ˜ ๊ธฐ๋Šฅ๊ณผ ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜๋ฉฐ, ๋Œ€๊ฐœ ๊ฐ„๋‹จํ•œ ๊ตฌ์„ฑ ๋ณ€๊ฒฝ๋งŒ์œผ๋กœ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  6. ๋‚ด์žฅ๋œ ์—์ด์ „ํŠธ ํ‰๊ฐ€: ์—์ด์ „ํŠธ ์„ฑ๋Šฅ์„ ์ฒด๊ณ„์ ์œผ๋กœ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋ฉ€ํ‹ฐํ„ด(multi-turn) ํ‰๊ฐ€ ๋ฐ์ดํ„ฐ์…‹์„ ์ƒ์„ฑํ•˜๊ณ , ํ’ˆ์งˆ ์ธก์ • ๋ฐ ๊ฐœ์„  ๋ฐฉํ–ฅ์„ ์•ˆ๋‚ดํ•˜๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ์—์„œ(CLI ๋˜๋Š” ๊ฐœ๋ฐœ UI๋ฅผ ํ†ตํ•ด) ํ‰๊ฐ€๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋„๊ตฌ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  7. ๊ด‘๋ฒ”์œ„ํ•œ LLM ์ง€์›: Google์˜ Gemini ๋ชจ๋ธ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์ง€๋งŒ, ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์œ ์—ฐ์„ฑ์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์–ด BaseLlm ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ LLM(์˜คํ”ˆ ์†Œ์Šค ๋˜๋Š” ํŒŒ์ธํŠœ๋‹๋œ ๋ชจ๋ธ ํฌํ•จ)๊ณผ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  8. ์•„ํ‹ฐํŒฉํŠธ ๊ด€๋ฆฌ: ์—์ด์ „ํŠธ๊ฐ€ ํŒŒ์ผ๊ณผ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์—์ด์ „ํŠธ๊ฐ€ ์‹คํ–‰ ์ค‘์— ์ด๋ฏธ์ง€, ๋ฌธ์„œ ๋˜๋Š” ์ƒ์„ฑ๋œ ๋ณด๊ณ ์„œ์™€ ๊ฐ™์€ ๋ฒ„์ „ ๊ด€๋ฆฌ๋œ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ €์žฅ, ๋กœ๋“œ ๋ฐ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜(ArtifactService, ์ปจํ…์ŠคํŠธ ๋ฉ”์„œ๋“œ)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  9. ํ™•์žฅ์„ฑ ๋ฐ ์ƒํ˜ธ ์šด์šฉ์„ฑ: ADK๋Š” ๊ฐœ๋ฐฉํ˜• ์ƒํƒœ๊ณ„๋ฅผ ์ง€ํ–ฅํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉด์„œ๋„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์„œ๋“œํŒŒํ‹ฐ ํˆด๊ณผ ๋ฐ์ดํ„ฐ ์ปค๋„ฅํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•˜๊ณ  ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  10. ์ƒํƒœ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ: SessionService์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋Š” ๋‹จ๊ธฐ์ ์ธ ๋Œ€ํ™” ๋ฉ”๋ชจ๋ฆฌ(Session ๋‚ด์˜ State)๋ฅผ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์žฅ๊ธฐ์ ์ธ Memory ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ํ†ตํ•ฉ ์ง€์ ์„ ์ œ๊ณตํ•˜์—ฌ ์—์ด์ „ํŠธ๊ฐ€ ์—ฌ๋Ÿฌ ์„ธ์…˜์— ๊ฑธ์ณ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

intro_components.png

์‹œ์ž‘ํ•˜๊ธฐ

  • ์ฒซ ๋ฒˆ์งธ ์—์ด์ „ํŠธ๋ฅผ ๋งŒ๋“ค ์ค€๋น„๊ฐ€ ๋˜์…จ๋‚˜์š”? ์‹œ์ž‘ํ•˜๊ธฐ๋ฅผ ํ™•์ธํ•ด ๋ณด์„ธ์š”!