๐Ÿ” AI ์—์ด์ „ํŠธ ์›น ๊ฒ€์ƒ‰ ํ† ํฐ ๋น„์šฉ์„ 100๋ถ„์˜ 1๋กœ ์ค„์ธ ์ˆจ๊ฒจ์ง„ ๋„๊ตฌ, Actionbook

์†”์งํžˆ ๋ฐ˜์‹ ๋ฐ˜์˜ ํ–ˆ์Šต๋‹ˆ๋‹ค. 

์—์ด์ „ํŠธ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ง• ์ž๋™ํ™”๋ฅผ ๋Œ๋ฆด ๋•Œ๋งˆ๋‹ค ์ผ๋‹จ ์˜ค๋žœ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๊ณ , ํ† ํฐ์ด ๋…น์•„๋‚ด๋ฆฌ๋Š” ๊ฑธ ๋ณด๋ฉด์„œ "์›๋ž˜ ์ด๋Ÿฐ ๊ฑด๊ฐ€" ์‹ถ์—ˆ๊ฑฐ๋“ ์š”. ๊ทธ๋ƒฅ ์ œ๊ฐ€ ํ• ๊นŒ ์‹ถ์€ ์ƒ๊ฐ์ด ๋“œ๋Š” ๊ฒƒ๋„ ํ•œ ๋‘ ๋ฒˆ์ด ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค

ํ•˜์ง€๋งŒ ๊ทผ๋ž˜โ€ฆ | Jeongmin Lee
Blog

๐Ÿ” AI ์—์ด์ „ํŠธ ์›น ๊ฒ€์ƒ‰ ํ† ํฐ ๋น„์šฉ์„ 100๋ถ„์˜ 1๋กœ ์ค„์ธ ์ˆจ๊ฒจ์ง„ ๋„๊ตฌ, Actionbook ์†”์งํžˆ ๋ฐ˜์‹ ๋ฐ˜์˜ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ง• ์ž๋™ํ™”๋ฅผ ๋Œ๋ฆด ๋•Œ๋งˆ๋‹ค ์ผ๋‹จ ์˜ค๋žœ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๊ณ , ํ† ํฐ์ด ๋…น์•„๋‚ด๋ฆฌ๋Š” ๊ฑธ ๋ณด๋ฉด์„œ "์›๋ž˜ ์ด๋Ÿฐ ๊ฑด๊ฐ€" ์‹ถ์—ˆ๊ฑฐ๋“ ์š”. ๊ทธ๋ƒฅ ์ œ๊ฐ€ ํ• ๊นŒ ์‹ถ์€ ์ƒ๊ฐ์ด ๋“œ๋Š” ๊ฒƒ๋„ ํ•œ ๋‘ ๋ฒˆ์ด ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค ํ•˜์ง€๋งŒ ๊ทผ๋ž˜โ€ฆ | Jeongmin Lee

Jeongmin Lee
2026.02.11
ยทLinkedInยทby ๊ถŒ์ค€ํ˜ธ
#Actionbook#AI Agent#Automation#LLM#Web Scraping

ํ•ต์‹ฌ ํฌ์ธํŠธ

  • 1๊ธฐ์กด ๋ธŒ๋ผ์šฐ์ € ์—์ด์ „ํŠธ๋“ค์€ ์ „์ฒด HTML DOM์„ LLM์— ์ „๋‹ฌํ•˜์—ฌ ๋ง‰๋Œ€ํ•œ ํ† ํฐ์„ ์†Œ๋ชจํ•˜๊ณ  ์†๋„๊ฐ€ ๋А๋ฆฌ๋ฉฐ, ์‚ฌ์ดํŠธ UI ๋ณ€๊ฒฝ ์‹œ ์ž๋™ํ™” ๋กœ์ง์ด ์‰ฝ๊ฒŒ ๊นจ์ง€๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • 2Actionbook์€ ์›น์‚ฌ์ดํŠธ๋ณ„๋กœ ๋ฏธ๋ฆฌ ์ •๋ฆฌ๋œ ํ–‰๋™ ๋งค๋‰ด์–ผ๊ณผ DOM ์…€๋ ‰ํ„ฐ๋ฅผ ์••์ถ•๋œ JSON ํ˜•ํƒœ๋กœ LLM์— ์ œ๊ณตํ•˜์—ฌ, ํ† ํฐ ์‚ฌ์šฉ๋Ÿ‰์„ 100๋ถ„์˜ 1๋กœ ์ค„์ด๊ณ  ์›น ์ž๋™ํ™” ์†๋„๋ฅผ 10๋ฐฐ ๊ฐ€๋Ÿ‰ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  • 3ํŠนํžˆ Rust ๊ธฐ๋ฐ˜์˜ `actionbook-rs`๋Š” 7.8MB์˜ ์ž‘์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ๊ธฐ์™€ 5ms์˜ ๋น ๋ฅธ ์‹œ์ž‘ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•˜๋ฉฐ, ๋Ÿฐํƒ€์ž„ ์˜์กด์„ฑ ์—†์ด CI/CD ํŒŒ์ดํ”„๋ผ์ธ์— ๋ฐ”๋กœ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๋†’์€ ํšจ์œจ์„ฑ๊ณผ ์•ˆ์ •์„ฑ์„ ์ž๋ž‘ํ•ฉ๋‹ˆ๋‹ค.

Jeongmin Lee๋Š” AI ์—์ด์ „ํŠธ์˜ ์›น ๋ธŒ๋ผ์šฐ์ง• ๋น„ํšจ์œจ์„ฑ ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๋ฉฐ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” Actionbook์ด๋ผ๋Š” ๋„๊ตฌ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด ๋ฌธ์ œ์  (Problem Statement):
๊ธฐ์กด AI ์—์ด์ „ํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์›น ํŽ˜์ด์ง€ ์ „์ฒด์˜ DOM(Document Object Model)์„ LLM(Large Language Model)์— ์ „๋‹ฌํ•˜์—ฌ ์›น ๋ธŒ๋ผ์šฐ์ง•์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  1. ๋†’์€ ํ† ํฐ ์†Œ๋น„: Airbnb ๊ฒ€์ƒ‰๊ณผ ๊ฐ™์€ ์ž‘์—… ์‹œ, DOM ํŠธ๋ฆฌ๊ฐ€ ์ˆ˜๋งŒ ๊ฐœ์˜ ํ† ํฐ์„ ์†Œ๋น„ํ•˜๋ฉฐ, ๋‹จ์ผ ํŽ˜์ด์ง€ ํŒŒ์‹ฑ์— GPT-5 ๊ธฐ์ค€ LLM ์ปจํ…์ŠคํŠธ์˜ 60% ์ด์ƒ์„ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋А๋ฆฐ ์†๋„: LLM์ด ๋ฐฉ๋Œ€ํ•œ DOM ๋‚ด์—์„œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.
  3. ๋‚ฎ์€ ์•ˆ์ •์„ฑ: ์›น์‚ฌ์ดํŠธ UI๊ฐ€ ๋ณ€๊ฒฝ๋  ๊ฒฝ์šฐ, ๊ธฐ์กด CSS selector๊ฐ€ ๊นจ์ ธ ์—์ด์ „ํŠธ ๋กœ์ง์„ ์ „๋ฉด์ ์œผ๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ณต์žกํ•œ DOM ์•ž์—์„œ LLM์ด hallucination(๊ฑฐ์ง“ ์ƒ์„ฑ)์„ ์ผ์œผ์ผœ ์ž˜๋ชป๋œ ๋™์ž‘์„ ์ถ”์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Actionbook์˜ ํ•ด๊ฒฐ์ฑ… ๋ฐ ํ•ต์‹ฌ ๋ฐฉ๋ฒ•๋ก  (Core Methodology):
Actionbook์€ Vercel์˜ agent-browser๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์ง€๋งŒ, ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
Actionbook์€ ์›น์‚ฌ์ดํŠธ๋ณ„๋กœ ๋ฏธ๋ฆฌ ์ •๋ฆฌ๋œ ํ–‰๋™ ๋งค๋‰ด์–ผ(action manual)์„ ์ƒ์„ฑํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๋งค๋‰ด์–ผ์€ ์›น์‚ฌ์ดํŠธ์˜ DOM selector์™€ ํ•„์š”ํ•œ ๋™์ž‘์„ JSON ํ˜•ํƒœ๋กœ ์••์ถ•ํ•˜์—ฌ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ์••์ถ•๋œ JSON ์ •๋ณด๊ฐ€ LLM์˜ ์ปจํ…์ŠคํŠธ์— ์ง์ ‘ ์ฃผ์ž…๋˜๋ฏ€๋กœ, ์—์ด์ „ํŠธ๋Š” ์›น ํŽ˜์ด์ง€๋ฅผ ํƒ์ƒ‰ํ•  ํ•„์š” ์—†์ด ๋งค๋‰ด์–ผ์— ๋”ฐ๋ผ ์ฆ‰์‹œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Actionbook์˜ ์ฃผ์š” ์ด์  (Key Benefits):

  1. ํ† ํฐ ์‚ฌ์šฉ๋Ÿ‰ ๋Œ€ํญ ๊ฐ์†Œ: ์ „์ฒด HTML ๋Œ€์‹  ์••์ถ•๋œ JSON์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ, ํ† ํฐ ์‚ฌ์šฉ๋Ÿ‰์ด 1/100 ์ˆ˜์ค€์œผ๋กœ ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.
  2. ์†๋„ ํ–ฅ์ƒ: ์—์ด์ „ํŠธ๊ฐ€ ํƒ์ƒ‰ ์—†์ด ๋ฐ”๋กœ ๋™์ž‘ํ•˜๋ฏ€๋กœ ์ฒด๊ฐ ์†๋„๊ฐ€ 10๋ฐฐ ๊ฐ€๊นŒ์ด ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค.
  3. ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด์„ฑ: ์›น์‚ฌ์ดํŠธ ๋ณ€๊ฒฝ ์‹œ, ์—์ด์ „ํŠธ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ํ•„์š” ์—†์ด ๋งค๋‰ด์–ผ๋งŒ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  4. ๋†’์€ ํ˜ธํ™˜์„ฑ: GPT-5.3-Codex, Claude Opus 4.6, Gemini 3 Pro ๋“ฑ ๋‹ค์–‘ํ•œ LLM๊ณผ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.
  5. ์•ˆ์ •์„ฑ ํ–ฅ์ƒ: ๋งค๋‰ด์–ผ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ์ž๋™ํ™”๊ฐ€ ๊นจ์ง€๋Š” ๋นˆ๋„๊ฐ€ ํ˜„์ €ํžˆ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

actionbook-rs์˜ ์ด์  (Advantages of actionbook-rs):
Actionbook์€ TypeScript ๋ฒ„์ „๊ณผ Rust ๊ธฐ๋ฐ˜์˜ actionbook-rs ๋ฒ„์ „์ด ์žˆ์œผ๋ฉฐ, ์‹ค๋ฌด์—์„œ๋Š” actionbook-rs๊ฐ€ ๋” ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

  1. ๊ฒฝ๋Ÿ‰์„ฑ: ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ๊ธฐ๊ฐ€ 7.8MB๋กœ, TypeScript ๋ฒ„์ „์˜ 150MB์— ๋น„ํ•ด ํ›จ์”ฌ ์ž‘์Šต๋‹ˆ๋‹ค.
  2. ๋น ๋ฅธ ์‹œ์ž‘ ์‹œ๊ฐ„: ์‹œ์ž‘ ์‹œ๊ฐ„์ด 5ms๋กœ, Node.js ๊ธฐ๋ฐ˜์˜ 500~800ms์— ๋น„ํ•ด ๋งค์šฐ ๋น ๋ฆ…๋‹ˆ๋‹ค.
  3. ์ œ๋กœ ๋Ÿฐํƒ€์ž„ ์˜์กด์„ฑ: CI/CD(Continuous Integration/Continuous Delivery) ํŒŒ์ดํ”„๋ผ์ธ์— ๋ฐ”๋กœ ํˆฌ์ž… ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  4. ํŽธ์˜์„ฑ: ๋ณ„๋„์˜ ๋ธŒ๋ผ์šฐ์ € ์„ค์น˜ ์—†์ด ๊ธฐ์กด์— ์„ค์น˜๋œ Chrome์ด๋‚˜ Brave๋ฅผ ํ™œ์šฉํ•˜๋ฉฐ, stealth mode์™€ cookie management๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํ‚ฌ ํŒŒ์ผ ํ†ตํ•ฉ (Skill File Integration):
Actionbook์„ Claude Code์™€ ๊ฐ™์€ ์ฝ”๋”ฉ ์—์ด์ „ํŠธ์˜ skill๋กœ ๋“ฑ๋กํ•˜๋ฉด, ์›น ์ž‘์—…์˜ ํ’ˆ์งˆ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ณต์ ์ธ ํ…Œ์ŠคํŠธ์—์„œ skill ๋“ฑ๋ก ํ›„ ์ž‘์—… ์„ฑ๊ณต๋ฅ ์ด ๊ฝค ๋†’์•„์กŒ์œผ๋ฉฐ, ์ด๋Š” headless ํ™˜๊ฒฝ์ด ์•„๋‹Œ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ ๋”์šฑ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ๋งค๋‰ด์–ผ ๊ธฐ๋ฐ˜์˜ ์ž๋™ํ™” ๋ฐฉ์‹์€ ํƒ์ƒ‰ ๊ธฐ๋ฐ˜๋ณด๋‹ค ๋ฐ˜๋ณต ์ž‘์—…์—์„œ ํ›จ์”ฌ ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๋ก  (Conclusion):
Actionbook์€ LLM ์—์ด์ „ํŠธ๊ฐ€ ์›น์„ "๋ณด๋Š”" ๋ฐฉ์‹์„ ํ˜์‹ ํ•˜์—ฌ ์ž๋™ํ™” ํ’ˆ์งˆ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์ž‘์ • DOM ์ „์ฒด๋ฅผ LLM์— ์ „๋‹ฌํ•˜๋Š” ์‹œ๋Œ€๋Š” ๋๋‚ฌ์Œ์„ ์‹œ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” OpenClaw์™€ ๊ฐ™์€ ์›น ๋ธŒ๋ผ์šฐ์ง• ์ž๋™ํ™”์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ, ๊ฐœ๋ฐœ ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ๋Š” ๊ธฐ์กด์˜ Playwright, Chrome Dev, agent-browser ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.