๐Ÿ† AI์Šคํ„ฐ๋”” 19๊ธฐ 3์ฃผ์ฐจ ๋ฒ ์ŠคํŠธ ์‚ฌ๋ก€ ํ๋ ˆ์ด์…˜ - ๊ฐœ๋ฐœ&์ž๋™ํ™”

๐Ÿ“š 19๊ธฐ ํšŒ๊ณ ๋ฆฌํฌํŠธ

โœ๏ธ Activepieces๋กœ ํ™œ๋™ ๋กœ๊น… ์ž๋™ํ™” flow ๋งŒ๋“ค๊ณ , ์ž์ฃผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ!

๋ง์ง€๋‡ฝ

ํ•˜๋ ค๋˜ ๊ฒƒ ๐Ÿ“

  • ๊ตฌ๊ธ€ ์บ˜๋ฆฐ๋” ๊ธฐ๋ฐ˜ ์ž๋™ ๋ฐ์ผ๋ฆฌ ๋กœ๊ทธ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•œ ์‚ฌ๋ก€

  • ๋งค์ผ ์ผ์ƒ๊ณผ ์—…๋ฌด ๋‚ด์šฉ, ๊ฐ์ • ๋ณ€ํ™”๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๊ธฐ๋กํ•˜๊ณ ์ž ํ•จ

  • ๋งค์‹œ๊ฐ„ ๋””์Šค์ฝ”๋“œ๋กœ ๊ธฐ๋ก ์•Œ๋ฆผ์„ ๋ณด๋‚ด๊ณ  ์ž‘์„ฑ ๋‚ด์šฉ์„ ์ž๋™ ์š”์•ฝํ•˜์—ฌ ์•ˆ๋‚ดํ•จ

  • ์–ด์ œ ๋Œ€๋น„ ์˜ค๋Š˜ ์ž‘์„ฑ ํšŸ์ˆ˜๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ธฐ๋ก ๋…๋ ค ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ณตํ•จ

  • ํ•˜๋ฃจ 2๋ฒˆ(์•„์นจ 8์‹œ, ์ €๋… 22์‹œ) ๋‚ ์”จ ์ •๋ณด์™€ ์˜์ƒ ์ถ”์ฒœ์„ ์ž๋™์œผ๋กœ ์•ˆ๋‚ดํ•จ

ํ™œ์šฉํ•œ ํˆด โš’๏ธ

  • Activepieces: ์ž๋™ํ™” Flow ๊ตฌ์„ฑ, ์‹œ๊ฐ„๋ณ„ ์•Œ๋ฆผ ๋ฐœ์†ก, ๊ตฌ๊ธ€ ์บ˜๋ฆฐ๋” ์—ฐ๋™

  • wttr.in ๋‚ ์”จ API: ์šฉ์‚ฐ๊ตฌ ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ๋‚ ์”จ ์ •๋ณด ์ˆ˜์ง‘

  • Discord Webhook: ๊ธฐ๋ก ์•Œ๋ฆผ ๋ฐ ์š”์•ฝ ๋ฉ”์‹œ์ง€ ๋ฐœ์†ก

  • Google Calendar API: ์ผ์ • ์ƒ์„ฑ ๋ฐ ์ž‘์„ฑ ํšŸ์ˆ˜ ์กฐํšŒ

  • GPT: API ๊ตฌ์กฐ ๋ถ„์„ ๋ฐ ์ฝ”๋“œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

์ง„ํ–‰ ์„ธ๋ถ€ ๋‚ด์šฉ ๐Ÿ”

1๏ธโƒฃ ์‹œ๊ฐ„๋ณ„ ํ™œ๋™ ๋กœ๊น… ์•Œ๋ฆผ Flow ๊ตฌ์ถ•

  • 8์‹œ๋ถ€ํ„ฐ 22์‹œ๊นŒ์ง€ 1์‹œ๊ฐ„๋งˆ๋‹ค ํ™œ๋™ ๊ธฐ๋ก ์•Œ๋ฆผ์„ ๋””์Šค์ฝ”๋“œ๋กœ ๋ฐœ์†กํ•˜๋„๋ก Cron ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์„ค์ •ํ•จ

  • ์•„์นจ 8์‹œ์™€ ๋ฐค 22์‹œ์—๋Š” ๋‚ ์”จ ์•ˆ๋‚ด๋ฅผ ํฌํ•จํ•œ ํŠน๋ณ„ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœ์†กํ•˜๋„๋ก ๋ถ„๊ธฐ ์ฒ˜๋ฆฌํ•จ

  • ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๋ก์„ ์ž‘์„ฑํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋‹ค์Œ ๋‹จ๊ณ„ Flow๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ์—ฐ๊ฒฐํ•จ

2๏ธโƒฃ ๊ธฐ๋ก ์š”์•ฝ ์•ˆ๋‚ด Flow ๊ตฌ์„ฑ

  • ์‚ฌ์šฉ์ž๊ฐ€ ์‘๋‹ต์„ ์™„๋ฃŒํ•˜๋ฉด ์ž‘์„ฑํ•œ ๋‚ด์šฉ์„ ๊ตฌ๊ธ€ ์บ˜๋ฆฐ๋”์— ์ž๋™์œผ๋กœ ์ด๋ฒคํŠธ ์ƒ์„ฑํ•จ

  • 1์‹œ๊ฐ„ ๋™์•ˆ์˜ ํ™œ๋™ ๋‚ด์šฉ์„ ์š”์•ฝํ•˜์—ฌ ๋””์Šค์ฝ”๋“œ๋กœ ์•ˆ๋‚ดํ•จ

  • ์–ด์ œ์™€ ์˜ค๋Š˜์˜ ์ž‘์„ฑ ํšŸ์ˆ˜๋ฅผ ๋น„๊ตํ•˜์—ฌ '์–ด์ œ๋ณด๋‹ค ๋” ๋งŽ์ด ์ž‘์„ฑํ–ˆ์–ด์š”!' ๊ฐ™์€ ๋…๋ ค ๋ฉ”์‹œ์ง€๋ฅผ ์ถ”๊ฐ€ํ•จ

  • Get all Events๋กœ ๋‹น์ผ๊ณผ ์ „์ผ ์บ˜๋ฆฐ๋” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  Code๋กœ ํšŸ์ˆ˜๋ฅผ ์นด์šดํŠธํ•จ

3๏ธโƒฃ ๋‚ ์”จ ์ •๋ณด ์ž๋™ ์•ˆ๋‚ด ์‹œ์Šคํ…œ ๊ตฌ์ถ•

  • wttr.in API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์šฉ์‚ฐ๊ตฌ ๊ธฐ๋ฐ˜ ๋‚ ์”จ ์ •๋ณด๋ฅผ JSON ํ˜•์‹์œผ๋กœ ์ˆ˜์ง‘ํ•จ

  • ํ˜„์žฌ ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” Code๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ•œ๊ตญ ์‹œ๊ฐ„(UTC+9)์œผ๋กœ ๋ณ€ํ™˜ํ•จ

  • Router๋ฅผ ํ™œ์šฉํ•ด 8์‹œ๋ฉด ์˜ค๋Š˜ ๋‚ ์”จ, 22์‹œ๋ฉด ๋‚ด์ผ ๋‚ ์”จ๋ฅผ ์•ˆ๋‚ดํ•˜๋„๋ก ๋ถ„๊ธฐ ์ฒ˜๋ฆฌํ•จ

  • weather[1,2]์™€ hourly(1~8) ๊ตฌ์กฐ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ํ•„์š”ํ•œ ๋‚ ์”จ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•จ

4๏ธโƒฃ ๊ธฐ์˜จ๋ณ„ ์˜์ƒ ์ถ”์ฒœ ๋กœ์ง ๊ตฌํ˜„

  • ์ถ”์ถœํ•œ ๊ธฐ์˜จ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ ์ ˆํ•œ ์˜์ƒ์„ ์ถ”์ฒœํ•˜๋Š” Code๋ฅผ ์ƒ์„ฑํ•จ

  • ์•„์นจ ์•Œ๋ฆผ์—๋Š” '์˜ค๋Š˜์˜ ๋‚ ์”จ'์™€ ํ•จ๊ป˜ ์˜์ƒ ์ถ”์ฒœ์„ ํฌํ•จํ•จ

  • ์ €๋… 22์‹œ ์•Œ๋ฆผ์—๋Š” '๋‚ด์ผ์˜ ๋‚ ์”จ'๋ฅผ ๋ฏธ๋ฆฌ ์•ˆ๋‚ดํ•˜์—ฌ ๋‹ค์Œ๋‚  ์ค€๋น„๋ฅผ ๋•๋„๋ก ์„ค๊ณ„ํ•จ

  • ์‚ฌ์šฉ์ž๊ฐ€ ์•Œ๋ฆผ์„ ๋” ์ž์ฃผ ํ™•์ธํ•˜๋„๋ก ์‹ค์šฉ์ ์ธ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•จ

๐Ÿ“š 19๊ธฐ ์ฑ—GPT์•ฑ

โœ๏ธ ์ฑ—์ง€ํ”ผํ‹ฐ ์•ฑ ๋งŒ๋“ค๊ธฐ ๋‘๋ฒˆ์งธ ์‚ฌ๋ก€ feat ์‰ฝ์ง€์•Š๋‹ค... ๐Ÿ˜ญ

Monhee

ํ•˜๋ ค๋˜ ๊ฒƒ ๐Ÿ“

  • ChatGPT ๋‚ด๋ถ€ ์•ฑ์œผ๋กœ ์ž์‹ ์ด ๋””์ž์ธํ•œ UI๋ฅผ ๊ตฌํ˜„ํ•œ ์‚ฌ๋ก€

  • ๊นƒํ—ˆ๋ธŒ์˜ ์˜ˆ์ œ ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปค์Šคํ…€ ์•ฑ์„ ๊ฐœ๋ฐœํ•จ

  • ํฌ๋กฌ ํ™˜๊ฒฝ์—์„œ ์•ฑ์„ ์‹คํ–‰ํ•˜๊ณ  ChatGPT์™€ ์—ฐ๋™ํ•จ

  • MCP ์„œ๋ฒ„์™€ ngrok์„ ํ™œ์šฉํ•ด ChatGPT ์ปค๋„ฅํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•จ

ํ™œ์šฉํ•œ ํˆด โš’๏ธ

  • ChatGPT : ์ดˆ๊ธฐ ๊ฐœ๋ฐœ ๋ฐฉํ–ฅ ์„ค์ • ๋ฐ ๊ตฌ์กฐ ์กฐ์–ธ

  • Claude(Cursor) : ์‹ค์ œ ๊ฐœ๋ฐœ ์ž‘์—…, ์ฝ”๋“œ ์ˆ˜์ •, ์—๋Ÿฌ ํ•ด๊ฒฐ

  • Figma : UI ๋””์ž์ธ

  • ngrok : ๋กœ์ปฌ ์„œ๋ฒ„ ์™ธ๋ถ€ ์ ‘๊ทผ ์„ค์ •

  • GitHub : ๊ณต์‹ ์˜ˆ์ œ ์ฝ”๋“œ(pizza ์•ฑ) ๋‹ค์šด๋กœ๋“œ

์ง„ํ–‰ ์„ธ๋ถ€ ๋‚ด์šฉ ๐Ÿ”

1๏ธโƒฃ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •

  • ํฌ๋กฌ disable ์„ค์ •์„ ์ ์šฉํ•จ

  • ๊นƒํ—ˆ๋ธŒ์—์„œ ์˜ˆ์ œ ํด๋”๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค ํ–ˆ์œผ๋‚˜ solar ํด๋”๋งŒ ๋ถ„๋ฆฌ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ•จ

  • ChatGPT์— ์ปค์Šคํ…€ ์ฝ”๋“œ๋กœ๋งŒ ์•ฑ ์ œ์ž‘ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ์งˆ๋ฌธํ•จ

  • ChatGPT ๋‚ด๋ถ€ ์•ฑ์€ ๋ฐ˜๋“œ์‹œ '์„œ๋ฒ„ + manifest' ๊ตฌ์กฐ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๋‹ต๋ณ€์„ ๋ฐ›์Œ

  • ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ธฐ์กด pizza ์•ฑ ์˜ˆ์ œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•จ

2๏ธโƒฃ ํด๋” ๊ตฌ์กฐ ๊ตฌ์„ฑ ๋ฐ ์ดˆ๊ธฐ ๊ตฌํ˜„

  • ChatGPT๊ฐ€ ์ œ์•ˆํ•œ ํด๋” ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ผ ์„ค์ •ํ•จ

  • Cursor์˜ Claude Code๋ฅผ ํ™œ์šฉํ•ด ๊ฐœ๋ฐœ ์ž‘์—…์„ ์ง„ํ–‰ํ•จ

  • Claude Code๊ฐ€ ์ž๋™์œผ๋กœ ๊ฐœ๋ฐœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•จ

  • ํฌ๋กฌ์—์„œ ์•ฑ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋จ

3๏ธโƒฃ ๋””์ž์ธ ๋ณ€์ƒ‰ ์ด์Šˆ ๋ฐœ์ƒ

  • Figma์—์„œ ๋””์ž์ธํ•œ ์ปฌ๋Ÿฌ๊ฐ€ ํฌ๋ฏธํ•œ ํ™”์ดํŠธ๋กœ ๋ณ€์ƒ‰๋˜์–ด ํ‘œ์‹œ๋จ

  • Figma์˜ ํŠน์ • ํšจ๊ณผ๋ฅผ Claude Code๊ฐ€ ๋ฐ˜์˜ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถ”์ •ํ•จ

  • ๋‹น์žฅ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ChatGPT ์—ฐ๋™ ํ…Œ์ŠคํŠธ๋ฅผ ์šฐ์„  ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•จ

4๏ธโƒฃ ChatGPT ์—ฐ๋™ ์‹œ๋„

  • ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ์—์„œ MCP ์„œ๋ฒ„ ์„ค์ •์„ ์ง„ํ–‰ํ•จ

  • ngrok ์„ค์น˜๋Š” ์™„๋ฃŒํ–ˆ์œผ๋‚˜ `brew install ngrok` ํ˜ธ์ถœ ์‹œ found ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•จ

  • Claude Code์— ๋ฌธ์ œ๋ฅผ ์งˆ๋ฌธํ•˜์—ฌ ์ฆ‰์‹œ ํ•ด๊ฒฐํ•จ

5๏ธโƒฃ ์ปค๋„ฅํ„ฐ ๋งŒ๋“ค๊ธฐ ๋ฐ˜๋ณต ์‹คํŒจ

  • ๋งŒ๋“ค๊ธฐ ๋ฒ„ํŠผ์ด ๊ณ„์† ๋กœ๋”ฉ๋˜๋‹ค๊ฐ€ ํƒ€์ž„์•„์›ƒ์œผ๋กœ ์‹คํŒจํ•จ

  • Claude Code์—์„œ MCP ์„œ๋ฒ„ ๋ฌธ์ œ๋กœ ํŒ๋‹จํ•˜๊ณ  ์ˆ˜์ •ํ–ˆ์œผ๋‚˜ 2์ฐจ ์‹œ๋„๋„ ์‹คํŒจํ•จ

  • 3์ฐจ ์‹œ๋„์—์„œ SSE๋ฅผ MCP๋กœ ๋ณ€๊ฒฝํ–ˆ์œผ๋‚˜ 'unhandled errors in a TaskGroup' ์—๋Ÿฌ ๋ฐœ์ƒํ•จ

  • 4์ฐจ ์‹œ๋„์—์„œ ๊ธฐ์กด ํ”ผ์ž์•ฑ๊ณผ ๊ฐ™์€ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด ์›์ธ์œผ๋กœ ์ถ”์ •ํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์œผ๋‚˜ ์‹คํŒจํ•จ

  • 5์ฐจ ์‹œ๋„๋„ ์‹คํŒจํ•จ

  • 6์ฐจ ์‹œ๋„์—์„œ ๊ธฐ์กด ํ”ผ์ž์•ฑ๊ณผ์˜ ์—ฐ๊ฒฐ์„ ๋Š๊ณ  ์‹œ๋„ํ•˜์—ฌ ์ตœ์ข… ์„ฑ๊ณตํ•จ

6๏ธโƒฃ UI ํ‘œ์‹œ ๋ฌธ์ œ ํ•ด๊ฒฐ

  • ์ปค๋„ฅํ„ฐ ํ˜ธ์ถœ์€ ๋˜์ง€๋งŒ ์•ฑ UI๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ๋ฐœ์ƒํ•จ

  • ํ…์ŠคํŠธ๋กœ๋งŒ ๋‹ต๋ณ€ํ•˜๊ณ  UI๋Š” ๋ณด์ด์ง€ ์•Š์Œ

  • ์•ฝ ํ•œ ์‹œ๊ฐ„์˜ ์‹œํ–‰์ฐฉ์˜ค ๋์— UI๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ‘œ์‹œ๋˜๋„๋ก ํ•ด๊ฒฐํ•จ

๐Ÿ“š 19๊ธฐ N๋Œ€๋ฆฌ๋น„์„œ๋ด‡

โœ๏ธ ๋งˆ์ผ€ํ„ฐ ์ฃผ๋ชฉโ— ๊ฒฝ์Ÿ์‚ฌ ๊ด‘๊ณ  ์†Œ์žฌ ํฌ๋กค๋ง ์ž๋™ํ™”ํ•˜๊ธฐ | n8n + Apify

๋ฐ•์ง€ํ˜ธ

ํ•˜๋ ค๋˜ ๊ฒƒ ๐Ÿ“

  • ๋ฉ”ํƒ€ ๊ด‘๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๊ฒฝ์Ÿ์‚ฌ ๊ด‘๊ณ ๋ฅผ ์ž๋™ ํŠธ๋ž˜ํ‚นํ•˜๋Š” ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•œ ์‚ฌ๋ก€

  • ๊ฒฝ์Ÿ์‚ฌ์˜ ๊ด‘๊ณ  ์ „๋žต๊ณผ ์ง‘์ค‘ ์ƒํ’ˆ, ๊ณ ๊ฐ๊ตฐ์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ๊ด‘๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•จ

  • ๋งˆ์ผ€ํ„ฐ๊ฐ€ ์ˆ˜๋™์œผ๋กœ ๊ฒฝ์Ÿ์‚ฌ ๊ด‘๊ณ ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์กฐํšŒํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์šด ์—…๋ฌด๋ฅผ ์ž๋™ํ™”ํ•จ

  • ํ˜„์žฌ ๊ฒŒ์žฌ ์ค‘์ธ ๊ด‘๊ณ ์™€ ์ข…๋ฃŒ๋œ ๊ด‘๊ณ ๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•จ

ํ™œ์šฉํ•œ ํˆด โš’๏ธ

  • n8n: ์›Œํฌํ”Œ๋กœ์šฐ ์ž๋™ํ™” ๊ตฌ์ถ• ๋ฐ ์Šค์ผ€์ค„๋ง

  • Apify์˜ 'Meta (Facebook) Ad Library Scraper - Fast & Reliable' Actor: ๋ฉ”ํƒ€ ๊ด‘๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ์ดํ„ฐ ์Šคํฌ๋ž˜ํ•‘

  • Google Sheets: ๊ด‘๊ณ  ๋ฐ์ดํ„ฐ ๊ธฐ๋ก ๋ฐ ๊ด€๋ฆฌ

์ง„ํ–‰ ์„ธ๋ถ€ ๋‚ด์šฉ ๐Ÿ”

1๏ธโƒฃ ์›Œํฌํ”Œ๋กœ์šฐ ๊ตฌ์กฐ ์„ค๊ณ„

  • n8n์˜ Schedule Trigger๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋งค์ผ ์˜ค์ „ 9์‹œ์— ์ž๋™ ์‹คํ–‰๋˜๋„๋ก ์„ค์ •ํ•จ

  • Apify ์Šคํฌ๋ž˜ํ•‘, ๊ตฌ๊ธ€ ์‹œํŠธ ๋ฐ์ดํ„ฐ ๋น„๊ต, ๋ฐ์ดํ„ฐ ๊ธฐ๋ก์˜ 3๋‹จ๊ณ„ ํ”„๋กœ์„ธ์Šค๋กœ ๊ตฌ์„ฑํ•จ

  • ๊ด‘๊ณ  ์ƒํƒœ๋ฅผ '๊ฒŒ์žฌ ์ค‘'๊ณผ '์ข…๋ฃŒ'๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ๋กœ์ง์„ ์„ค๊ณ„ํ•จ

2๏ธโƒฃ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ๋น„๊ต

  • ๋ฉ”ํƒ€ ๊ด‘๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ํŠน์ • ์„œ๋น„์Šค(์˜ˆ: '์‚ฌ์ฃผ์ฒœ๊ถ')์˜ ๊ด‘๊ณ  ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ ๋งํฌ๋ฅผ Apify Actor์— ์ž…๋ ฅํ•จ

  • ๊ตฌ๊ธ€ ์‹œํŠธ์—์„œ ๊ธฐ์กด์— ๊ธฐ๋ก๋œ ๊ด‘๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋™์‹œ์— ๋ถˆ๋Ÿฌ์˜ด

  • ์Šคํฌ๋ž˜ํ•‘ํ•œ ์‹ ๊ทœ ๋ฐ์ดํ„ฐ์™€ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์‹ ๊ทœ ๊ด‘๊ณ ์™€ ์ข…๋ฃŒ๋œ ๊ด‘๊ณ ๋ฅผ ์‹๋ณ„ํ•จ

3๏ธโƒฃ ๋ฐ์ดํ„ฐ ๋ถ„๋ฅ˜ ๋ฐ ๊ธฐ๋ก

  • ์‹ ๊ทœ ๊ด‘๊ณ ๋Š” [๊ฒŒ์žฌ ์ค‘] ์‹œํŠธ์— ์ถ”๊ฐ€ ๊ธฐ๋กํ•จ

  • ์ข…๋ฃŒ๋œ ๊ด‘๊ณ ๋Š” [๊ฒŒ์žฌ ์ค‘] ์‹œํŠธ์—์„œ [์ข…๋ฃŒ] ์‹œํŠธ๋กœ ํ•ด๋‹น row๋ฅผ ์ด๋™์‹œํ‚ด

  • ์ด๋™ ํ›„ [๊ฒŒ์žฌ ์ค‘] ์‹œํŠธ์—์„œ ํ•ด๋‹น ๊ด‘๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜์—ฌ ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•จ

  • ๊ด‘๊ณ  ์†Œ์žฌ ๋งํฌ, ์บก์…˜ ํ…์ŠคํŠธ, ๋žœ๋”ฉํŽ˜์ด์ง€ ๋งํฌ ๋“ฑ ์ƒ์„ธ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ๊ธฐ๋กํ•จ

๐Ÿ“š 19๊ธฐ ์นดํ†ก๋ด‡

โœ๏ธ ์นดํ†ก๋ด‡ ์‹ค์Šต ์‚ฝ์งˆ๊ธฐ: ์‹ ๋ฒ„์ „ apk ์„ค์น˜๋ถ€ํ„ฐ FastAPI ์—ฐ๋™์œผ๋กœ ์นดํ†ก๋ด‡ ๋Œ€ํ™”๋ชฉ๋ก ๋Œ€์‰ฌ๋ณด๋“œ ๊ตฌํ˜„ํ•˜๊ธฐ

๊ฐ•์ง„๊ทœ

ํ•˜๋ ค๋˜ ๊ฒƒ ๐Ÿ“

  • ์นดํ†ก๋ด‡ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐœ์ธ ์ธํ”„๋ผ๋กœ ์ „ํ™˜ํ•˜์—ฌ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๊ตฌ์ถ•ํ•œ ์‚ฌ๋ก€

  • ์ตœ์‹  ๋ฒ„์ „ ์นดํ†ก๋ด‡ apk๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹ค์ œ ์„œ๋ธŒํฐ์—์„œ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•จ

  • FastAPI ์„œ๋ฒ„๋ฅผ GCP VM์— ๋ฐฐํฌํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ์นดํ†ก ๋Œ€ํ™” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ €์žฅํ•จ

  • SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ™œ์šฉํ•ด ์ฑ„ํŒ…๋ฐฉ, ์‚ฌ์šฉ์ž, ๋Œ€ํ™” ๋‚ด์—ญ์„ ๊ด€๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•จ

  • ๋Œ€์‹œ๋ณด๋“œ UI๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ํ†ต๊ณ„ ํ™•์ธ ๋ฐ ๋“œ๋ฆด๋‹ค์šด ํƒ์ƒ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ

ํ™œ์šฉํ•œ ํˆด โš’๏ธ

  • Claude : API ์„ค๊ณ„ ๋ฐ ๋ฐฐํฌ ์กฐ์–ธ, ์ฝ”๋“œ ์ž‘์„ฑ ์ง€์›

  • Codex : API ์„ค๊ณ„ ๋ฐ ๋ฐฐํฌ ์กฐ์–ธ

  • FastAPI : ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ตฌ์ถ•

  • SQLite3 : ๋Œ€ํ™” ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๊ด€๋ฆฌ

  • GCP VM : ์„œ๋ฒ„ ๋ฐฐํฌ ํ™˜๊ฒฝ

  • MessengerBot (apk) : ์นด์นด์˜คํ†ก ๋ด‡ ๊ตฌํ˜„ ๋ฐ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘

  • adb : ๋ฉ”์‹ ์ €๋ด‡ ์ฝ”๋“œ ๋ฐฐํฌ ๋ฐ ํ…Œ์ŠคํŠธ

์ง„ํ–‰ ์„ธ๋ถ€ ๋‚ด์šฉ ๐Ÿ”

1๏ธโƒฃ ์ตœ์‹  ๋ฒ„์ „ apk ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ ๊ตฌ์„ฑ

  • Google Play ์Šคํ† ์–ด์˜ ๊ตฌ๋ฒ„์ „์ด ์•„๋‹Œ MessengerBotTeam Releases์—์„œ ์ตœ์‹  ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•จ

  • messengerbot-0.7.39a-20250627-5ffba652-release.apk ๋ฒ„์ „์„ ์‹ค์ œ ์„œ๋ธŒํฐ์— ์„ค์น˜ํ•จ

  • PC์˜ adb ํ…Œ์ŠคํŠธ๋งŒ์œผ๋กœ๋Š” ๋ถˆ์ถฉ๋ถ„ํ•˜์—ฌ ์‹ค์ œ ํœด๋Œ€ํฐ์—์„œ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•จ

  • ์นด์นด์˜คํ†ก์— ๋ด‡ ๊ณ„์ •์„ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๊ณ  ๊ธฐ์กด ์ฑ„ํŒ…๋ฐฉ์— ์ดˆ๋Œ€ํ•˜์—ฌ ์—ฐ๋™ํ•จ

2๏ธโƒฃ FastAPI ์„œ๋ฒ„ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์ถ•

  • GCP VM ์„œ๋ฒ„์— FastAPI๋ฅผ ๋ฐฐํฌํ•˜๊ณ  35.216.21.181:9000 ํฌํŠธ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์„ค์ •ํ•จ

  • SQLite3 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(katokbot.db)๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ๋Œ€ํ™” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•จ

  • ์‹ค์ œํฐ์˜ ๋ฉ”์‹ ์ €๋ด‡์—์„œ HTTP POST๋กœ ๋Œ€ํ™” ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„ ์ „์†กํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•จ

  • ๋กœ์ปฌ PC ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋Œ€์‹œ๋ณด๋“œ UI๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ•จ

3๏ธโƒฃ API ์—”๋“œํฌ์ธํŠธ ๊ฐœ๋ฐœ

  • POST /api/chat/message๋ฅผ ํ†ตํ•ด ๋ฉ”์‹ ์ €๋ด‡์—์„œ ๋Œ€ํ™” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•จ

  • GET /api/dashboard/stats/overview๋กœ ์‹ค์‹œ๊ฐ„ ํ†ต๊ณ„๋ฅผ ์ œ๊ณตํ•จ

  • GET /api/dashboard/rooms์™€ GET /api/dashboard/rooms/{room}/users๋กœ ๋“œ๋ฆด๋‹ค์šด ํƒ์ƒ‰์„ ๊ตฌํ˜„ํ•จ

  • POST /api/chat/history์™€ DELETE /api/chat/session/{room}/{user}๋กœ ๋Œ€ํ™” ์ด๋ ฅ ์กฐํšŒ ๋ฐ ์„ธ์…˜ ์ดˆ๊ธฐํ™” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•จ

4๏ธโƒฃ ๋ฉ”์‹ ์ €๋ด‡ ์ฝ”๋“œ ์ˆ˜์ • ๋ฐ ๋ฐฐํฌ

  • CatBot\_Multiturn.js ํŒŒ์ผ์„ ์ง์ ‘ ์ˆ˜์ •ํ•˜์—ฌ FastAPI ์„œ๋ฒ„์™€ ์—ฐ๋™ํ•จ

  • adb push ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์ •๋œ ์ฝ”๋“œ๋ฅผ ์‹ค์ œ ๋””๋ฐ”์ด์Šค์— ๋ฐฐํฌํ•จ

  • ๋ด‡ ์ปดํŒŒ์ผ ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ ์—†์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•จ

  • ๋ฐฑ์—”๋“œ ์—ฐ๋™ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ์ •์ƒ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋Š”์ง€ ๊ฒ€์ฆํ•จ

๐Ÿ“š 19๊ธฐ Cursor

โœ๏ธ 2์ฃผ์ฐจ Cursor ์Šคํ„ฐ๋”” - ๋„ค์ด๋ฒ„๋ถ€๋™์‚ฐ ์„œ์šธ์‹œ 25๊ฐœ๊ตฌ ์•„ํŒŒํŠธ ์ „์ฒด ๋‹จ์ง€๋ชฉ๋ก ์ถ”์ถœํ•˜๊ธฐ

์ž์ด์ฝ”

ํ•˜๋ ค๋˜ ๊ฒƒ ๐Ÿ“

  • ๋„ค์ด๋ฒ„ ๋ถ€๋™์‚ฐ์—์„œ ์„œ์šธ์‹œ 25๊ฐœ๊ตฌ ์•„ํŒŒํŠธ ์ „์ฒด ๋‹จ์ง€๋ชฉ๋ก์„ ํฌ๋กค๋งํ•œ ์‚ฌ๋ก€

  • 2์ฃผ์ฐจ Cursor ์Šคํ„ฐ๋””์—์„œ ๋‰ด์Šค ํฌ๋กค๋ง์„ ํ•™์Šตํ•œ ํ›„, ์ด๋ฅผ ์‘์šฉํ•˜์—ฌ ๋„ค์ด๋ฒ„ ๋ถ€๋™์‚ฐ ์•„ํŒŒํŠธ ๋‹จ์ง€ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•จ

  • ์„œ์šธ์‹œ 25๊ฐœ๊ตฌ์˜ ๋ฒ•์ •๋™๋ณ„ ์•„ํŒŒํŠธ ๋‹จ์ง€ ๋ชฉ๋ก์„ ์ž๋™์œผ๋กœ ์ˆ˜์ง‘ํ•˜๋Š” GUI ํฌ๋กค๋Ÿฌ๋ฅผ ๊ฐœ๋ฐœํ•จ

  • ๋„ค์ด๋ฒ„ ๋ถ€๋™์‚ฐ API ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐฉ๋ฒ•์„ ๊ตฌํ˜„ํ•จ

ํ™œ์šฉํ•œ ํˆด โš’๏ธ

  • Cursor: ํฌ๋กค๋ง ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐ ์ˆ˜์ •, GUI ๊ฐœ๋ฐœ

  • ChatGPT: ํฌ๋กค๋ง ํ”Œ๋กœ์šฐ ์„ค๊ณ„ ๋ฐฉํ–ฅ ์กฐ์–ธ

  • Selenium: ์ดˆ๊ธฐ ํฌ๋กค๋ง ์‹œ๋„ (์ดํ›„ API ํ˜ธ์ถœ ๋ฐฉ์‹์œผ๋กœ ์ „ํ™˜)

  • Chrome ๊ฐœ๋ฐœ์ž ๋„๊ตฌ: Network ํŒจ๋„์„ ํ†ตํ•œ API ๊ตฌ์กฐ ๋ถ„์„

์ง„ํ–‰ ์„ธ๋ถ€ ๋‚ด์šฉ ๐Ÿ”

1๏ธโƒฃ ๋„ค์ด๋ฒ„ ๋ถ€๋™์‚ฐ ๊ตฌ์กฐ ํŒŒ์•…

  • ์„œ์šธ์‹œ ๋ฒ•์ •๋™ ๋ชฉ๋ก ์ž๋ฃŒ๋ฅผ ์ฐพ์•„ ์ค€๋น„ํ•จ

  • ๋„ค์ด๋ฒ„ ๋ถ€๋™์‚ฐ ๋ชจ๋ฐ”์ผ ํŽ˜์ด์ง€์—์„œ ์„ฑ๋™๊ตฌ๋ฅผ ์„ ํƒํ•ด ๋‹จ์ง€ ๋ชฉ๋ก ํ™”๋ฉด์„ ํ™•์ธํ•จ

  • ์„ฑ๋™๊ตฌ์— ์ด 199๊ฐœ์˜ ๋‹จ์ง€๊ฐ€ ์žˆ์Œ์„ ํ™•์ธํ•จ

  • ๋‹จ์ง€ ๋ชฉ๋ก ํ™”๋ฉด์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ํ‘œ์‹œ๋˜๋Š”์ง€ ๋ถ„์„ํ•จ

2๏ธโƒฃ API ๊ตฌ์กฐ ๋ถ„์„

  • Chrome ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ Network ํƒญ์„ ์—ด์–ด ๋‹จ์ง€ ๋ชฉ๋ก ์Šคํฌ๋กค ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์š”์ฒญ์„ ๊ด€์ฐฐํ•จ

  • Request URL์„ ๋ณต์‚ฌํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง์ ‘ ์—ด์–ด JSON ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ•จ

  • ์Šคํฌ๋กค ์‹œ URL์— `&page=1`, `&page=2` ํ˜•์‹์œผ๋กœ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™๋Š” ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•จ

  • ํ•œ ํŽ˜์ด์ง€๋‹น 20๊ฐœ์˜ ๋‹จ์ง€ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ์Œ์„ ํ™•์ธํ•จ

3๏ธโƒฃ ๋ฒ•์ •๋™ ์ฝ”๋“œ ๋งคํ•‘

  • ChatGPT์—๊ฒŒ ํฌ๋กค๋ง ํ”Œ๋กœ์šฐ ์„ค๊ณ„ ๋ฐฉํ–ฅ์„ ๋ฌธ์˜ํ•จ

  • ChatGPT๊ฐ€ ์ œ์•ˆํ•œ ๊ตญํ† ๊ตํ†ต๋ถ€ ๊ณต๋™์ฃผํƒ ์ •๋ณด๋ฅผ ๋‹ค์šด๋กœ๋“œํ•จ

  • ๋„ค์ด๋ฒ„ ๋ถ€๋™์‚ฐ์˜ ๋ฒ•์ •๋™ ์ฝ”๋“œ๊ฐ€ ๊ตญํ† ๋ถ€ ์ž๋ฃŒ์˜ ์ฝ”๋“œ์™€ ์ผ์น˜ํ•จ์„ ํ™•์ธํ•จ

  • ๋ฒ•์ •๋™ ์ •๋ณด๋ฅผ ์—‘์…€ ํŒŒ์ผ๋กœ ์ •๋ฆฌํ•˜๊ณ  ์ด๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ตฌ์กฐ๋กœ ์„ค๊ณ„ํ•จ

4๏ธโƒฃ ํฌ๋กค๋ง ๋ฐฉ์‹ ์ „ํ™˜

  • ์ดˆ๊ธฐ์—๋Š” Selenium์œผ๋กœ ํ™”๋ฉด์„ ์ง์ ‘ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‹œ๋„ํ•จ

  • ํšจ์œจ์ด ๋–จ์–ด์ง€๊ณ  ์—๋Ÿฌ๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๊ฒช์Œ

  • API Request URL์„ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ•จ

  • ์œ ํŠœ๋ธŒ ์ฐธ๊ณ  ์˜์ƒ(https://www.youtube.com/watch?v=Kaa\_W0HRB-M&t=696s)์„ ํ†ตํ•ด ๋„ค์ด๋ฒ„ ๋ถ€๋™์‚ฐ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•จ

  • ์„œ์ดˆ๊ตฌ๋ฅผ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ์‚ผ์•„ ์ตœ๋Œ€ page=20(์•ฝ 400๋‹จ์ง€)๊นŒ์ง€ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•จ

5๏ธโƒฃ ์ฐจ๋‹จ ์ด์Šˆ ํ•ด๊ฒฐ

  • ๊ตฌ ๋‹จ์œ„๋กœ ํ•œ ๋ฒˆ์— ์š”์ฒญํ•˜์ž ๋‹จ์ง€ ์ˆ˜๊ฐ€ ๋งŽ์€ ๊ตฌ๋ฅผ ์—ฐ์† 3๊ฐœ ์ •๋„ ์š”์ฒญ ์‹œ ๋„ค์ด๋ฒ„์—์„œ ์ฐจ๋‹จํ•˜๋Š” ํ˜„์ƒ์„ ๋ฐœ๊ฒฌํ•จ

  • ์š”์ฒญ ๋‹จ์œ„๋ฅผ ๊ตฌ ๋‹จ์œ„์—์„œ ๋ฒ•์ •๋™ ๋‹จ์œ„๋กœ ๋ณ€๊ฒฝํ•จ

  • ๋ฒ•์ •๋™๋ณ„๋กœ ๋‹จ์ง€ ๋ชฉ๋ก์„ ์ˆ˜์ง‘ํ•œ ํ›„ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ„ฐ๋งํ•จ

6๏ธโƒฃ GUI ํฌ๋กค๋Ÿฌ ์™„์„ฑ

  • ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๊ตฌ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” GUI ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐœ๋ฐœํ•จ

  • ๊ธ‰์ง€๋ณ„(1~5๊ธ‰์ง€) ๋ผ๋””์˜ค ๋ฒ„ํŠผ, ๋กœ๊ทธ์ฐฝ, ์ง„ํ–‰๋ฐ”๋ฅผ ํฌํ•จํ•œ ์œ„์ ฏ ๊ตฌ์„ฑํ•จ

  • ์„ ํƒํ•œ ๊ตฌ์˜ ๋‹จ์ง€ ๋ชฉ๋ก์„ ํ•œ ๋ฒˆ์— ์—‘์…€๋กœ ๋‚ด๋ ค๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•จ

7๏ธโƒฃ ์ฝ”๋“œ ๊ตฌ์กฐ ์ •๋ฆฌ

  • ๋ฐ์ดํ„ฐ ์ •์˜(20~525์ค„): ์„œ์šธ 25๊ฐœ ๊ตฌ๋ฅผ 1~5๊ธ‰์ง€๋กœ ๋ถ„๋ฅ˜, ๋ฒ•์ •๋™ ์ฝ”๋“œ ๋”•์…”๋„ˆ๋ฆฌ ํ•˜๋“œ์ฝ”๋”ฉ

  • ํฌ๋กค๋ง ํ•ต์‹ฌ ํ•จ์ˆ˜(528~636์ค„): ๊ตฌ ์ด๋ฆ„์œผ๋กœ ๋™ ๋ชฉ๋ก ์กฐํšŒ, ๋™๋ณ„ ํฌ๋กค๋ง(์ตœ๋Œ€ 20ํŽ˜์ด์ง€), ๊ตฌ ์ „์ฒด ํฌ๋กค๋ง

  • ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ•จ์ˆ˜(533~694์ค„): HTML ํƒœ๊ทธ ์ œ๊ฑฐ, API ์‘๋‹ต์„ DataFrame์šฉ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜, ์—‘์…€ ์ €์žฅ

  • GUI ํด๋ž˜์Šค(697~910์ค„): ์œ„์ ฏ ์ƒ์„ฑ, ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋ณ„๋„ ์Šค๋ ˆ๋“œ๋กœ ์‹คํ–‰, ์‹ค์ œ ํฌ๋กค๋ง ๋กœ์ง, ์ง„ํ–‰ ์ƒํ™ฉ ๋กœ๊ทธ ์ถœ๋ ฅ

๐Ÿ“š 19๊ธฐ 1์ธํ’€์Šคํƒ

โœ๏ธ ๋ฐค์ƒˆ PostgreSQL ์„ค์น˜ ์‹คํŒจ... Claude๊ฐ€ 20๋ถ„ ๋งŒ์— Rails ์‹œ์Šคํ…œ ์™„์„ฑ์‹œํ‚จ ๋น„๊ฒฐ

ํ•œ๋ฐ”๋‘‘

ํ•˜๋ ค๋˜ ๊ฒƒ ๐Ÿ“

  • 10๋…„๊ฐ„ ์ถ•์ ํ•œ ํ•œ๊ตญ ์ „ํ†ต ๋ช…๋ฆฌํ•™ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” Rails ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•œ ์‚ฌ๋ก€

  • PostgreSQL ๊ธฐ๋ฐ˜ ์ •๊ทœํ™”๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•จ

  • ๋ช…๋ฆฌํ•™ ๋ฐ์ดํ„ฐ์˜ ๋ณต์žกํ•œ ๊ด€๊ณ„(์›๊ตญ-๋Œ€์šด-์„ธ์šด)๋ฅผ ์ฒด๊ณ„ํ™”ํ•จ

  • ํ–ฅํ›„ Dify AI ์—ฐ๋™์„ ์œ„ํ•œ RESTful API๋ฅผ ์ค€๋น„ํ•จ

  • UNESCO ๋””์ง€ํ„ธ ๋ฌธํ™”์œ ์‚ฐ ๋“ฑ์žฌ๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ํˆฌ๋ช…์„ฑ์„ ํ™•๋ณดํ•จ

ํ™œ์šฉํ•œ ํˆด โš’๏ธ

  • Claude Sonnet 4.5: ์ „์ฒด ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„, ๋ชจ๋ธ ๊ตฌ์กฐ ์„ค๊ณ„, Rake task ์ž‘์„ฑ, ๋””๋ฒ„๊น…, ํ”„๋กœ์ ํŠธ ๋ชจ๋“œ๋กœ ์ง€์†์ ์ธ ์ปจํ…์ŠคํŠธ ์œ ์ง€

  • GitHub Codespaces: PostgreSQL ์‚ฌ์ „ ์„ค์น˜๋œ ํด๋ผ์šฐ๋“œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ œ๊ณต

  • Ruby on Rails 8.1.1: ์›น ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ

  • SQLite 3: ๊ฐœ๋ฐœ ๋‹จ๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

์ง„ํ–‰ ์„ธ๋ถ€ ๋‚ด์šฉ ๐Ÿ”

1๏ธโƒฃ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋ฌธ์ œ ์ง„๋‹จ ๋ฐ ํ•ด๊ฒฐ

  • PostgreSQL ๋กœ์ปฌ ์„ค์น˜๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹œ๋„ํ–ˆ์œผ๋‚˜ ๊ถŒํ•œ ๋ฌธ์ œ์™€ ์„ค์ • ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•จ

  • Claude์—๊ฒŒ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ „์ฒด๋ฅผ ๊ณต์œ ํ•˜๋ฉฐ ๋Œ€์•ˆ์„ ์š”์ฒญํ•จ

  • Claude๊ฐ€ GitHub Codespaces๋ฅผ ์ œ์•ˆํ–ˆ๊ณ , PostgreSQL์ด ์‚ฌ์ „ ์„ค์น˜๋œ ํ™˜๊ฒฝ์„ 5๋ถ„ ๋งŒ์— ํ™•๋ณดํ•จ

  • ๋กœ์ปฌ ์„ค์น˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋Œ€์‹  ์šฐํšŒํ•˜๋Š” ์ฐฝ์˜์  ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์Œ

2๏ธโƒฃ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ ์„ค๊ณ„

  • ๋ช…๋ฆฌํ•™ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(Profile 310๊ฑด, Wonkuk, Daeun, Sewun)๋ฅผ Claude์—๊ฒŒ ์ƒ์„ธํžˆ ์„ค๋ช…ํ•จ

  • JSON ๋ฐ์ดํ„ฐ์˜ ๊ด€๊ณ„๋ฅผ ์ •๊ทœํ™”๋œ Rails ๋ชจ๋ธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์š”์ฒญํ•จ

  • Claude๊ฐ€ 5๊ฐœ ๋ชจ๋ธ(Profile, Wonkuk, Daeun, Sewun, DaeunGroup)๊ณผ ๊ด€๊ณ„ ์„ค์ •์„ ์™„๋ฒฝํ•˜๊ฒŒ ์„ค๊ณ„ํ•จ

  • Profile์„ ์ค‘์‹ฌ์œผ๋กœ Wonkuk์€ 1:1, Daeun๊ณผ Sewun์€ 1:N ๊ด€๊ณ„๋กœ ๊ตฌ์กฐํ™”ํ•จ

3๏ธโƒฃ Rails ๋ชจ๋ธ ๋ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ƒ์„ฑ

  • Rails ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  5๊ฐœ ๋ชจ๋ธ์„ generate ๋ช…๋ น์œผ๋กœ ์ƒ์„ฑํ•จ

  • Profile ๋ชจ๋ธ์— name, birth_date, birth_time, gender, solar\_calendar, timezone ํ•„๋“œ๋ฅผ ์ •์˜ํ•จ

  • Wonkuk ๋ชจ๋ธ์— ์‚ฌ์ฃผ(๋…„์ฃผ, ์›”์ฃผ, ์ผ์ฃผ, ์‹œ์ฃผ)์™€ ํ•ด์„ ํ•„๋“œ๋ฅผ ์ •์˜ํ•จ

  • Daeun๊ณผ Sewun ๋ชจ๋ธ์— ์šด์„ธ ๊ด€๋ จ ์ƒ์„ธ ํ•„๋“œ๋ฅผ ์ •์˜ํ•จ

  • 8๊ฐœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•จ

4๏ธโƒฃ ๋ฐ์ดํ„ฐ Import ๋กœ์ง ๊ตฌํ˜„

  • JSON ํŒŒ์ผ์˜ UUID๋ฅผ Rails ID๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋งคํ•‘ ์ „๋žต์„ Claude์™€ ๋…ผ์˜ํ•จ

  • UUID โ†’ record\_number ๋งคํ•‘ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜์—ฌ ๊ด€๊ณ„๋ฅผ ์œ ์ง€ํ•จ

  • Rake task๋กœ Profile๊ณผ Wonkuk import ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•จ

  • 50๊ฐœ๋งˆ๋‹ค ์ง„ํ–‰ ์ƒํ™ฉ์„ ์‹œ๊ฐํ™”ํ•˜๋Š” ํ”ผ๋“œ๋ฐฑ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•จ

  • ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด `create!`์™€ `begin-rescue` ๊ตฌ๋ฌธ์„ ํ™œ์šฉํ•จ

5๏ธโƒฃ ๋ฐ์ดํ„ฐ Import ์‹คํ–‰

  • `rails data:import_profiles` ๋ช…๋ น์œผ๋กœ 310๊ฐœ Profile ๋ ˆ์ฝ”๋“œ๋ฅผ importํ•จ

  • 100% ์„ฑ๊ณต๋ฅ (์‹คํŒจ 0๊ฑด)๋กœ 8์ดˆ ๋งŒ์— ์™„๋ฃŒํ•จ

  • `rails data:import_wonkuk` ๋ช…๋ น์œผ๋กœ 310๊ฐœ Wonkuk ๋ ˆ์ฝ”๋“œ๋ฅผ importํ•จ

  • ์ด 620๊ฐœ ๋ ˆ์ฝ”๋“œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์ •๊ทœํ™”๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ด๊ด€ํ•จ

  • ํ–ฅํ›„ 3,500๊ฐœ ๋ ˆ์ฝ”๋“œ(Daeun, Sewun) ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•จ

6๏ธโƒฃ ํ†ตํ•ฉ ๋ฌธ์„œํ™”

  • ์ „์ฒด ์ง„ํ–‰ ํ˜„ํ™ฉ์„ ์‹œ๊ฐํ™”ํ•œ HTML ๋„ํ•ด ์ž๋ฃŒ๋ฅผ ์ž‘์„ฑํ•จ

  • 9๋‹จ๊ณ„ ์ž‘์—… ํƒ€์ž„๋ผ์ธ, 5๊ฐœ ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ๋ฆ„์„ ํฌํ•จํ•จ

  • ํ˜„์žฌ 40% ์™„์„ฑ๋ฅ ๊ณผ ๋‹ค์Œ ๋‹จ๊ณ„ ๊ฐ€์ด๋“œ๋ฅผ ๋ช…์‹œํ•จ

๐Ÿ“š 19๊ธฐ ์—์ด์ „ํŠธ๋นŒ๋”

โœ๏ธ [Agent builder ์นœ๊ตฌ๋จน๊ธฐ 2ํƒ„] Triple Counselor ๋งŒ๋“ค๊ธฐ (feat. ์•„ํ•˜, ์ด๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฑฐ๊ตฌ๋‚˜. ๊ทธ๋Ÿฌ๋ฉด ์ข€ ๋” ๊ณ ๋„ํ™” ํ•ด ๋ด์•ผ์ง€ ^^)

Develiper

ํ•˜๋ ค๋˜ ๊ฒƒ ๐Ÿ“

  • 3๋ช…์˜ ์ƒ๋‹ด๊ฐ€ Agent๋ฅผ ํ†ตํ•ด ๋งž์ถคํ˜• ์ƒ๋‹ด์„ ์ œ๊ณตํ•˜๋Š” AI ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•œ ์‚ฌ๋ก€

  • ์ดํ˜ธ์„  ๊ต์ˆ˜, ์˜ค์€์˜ ๋ฐ•์‚ฌ, ๊น€์ฐฝ์˜ฅ ๊ต์ˆ˜ ์Šคํƒ€์ผ์˜ ์ƒ๋‹ด๊ฐ€ Agent๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ์ž๋™ ๋ฐฐ์ •๋ฐ›์•„ ์ƒ๋‹ด์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•จ

  • ์œ„๊ธฐ ์ƒํ™ฉ(Crisis)์„ ๋ถ„๋ฅ˜ํ•˜์—ฌ ์•ˆ์ „ํ•˜๊ฒŒ ์ „๋ฌธ ๊ธฐ๊ด€์œผ๋กœ ์œ ๋„ํ•˜๋Š” ์•ˆ์ „ํŒ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•จ

  • Workflow ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ๋‹ด๊ฐ€ ์„ ํƒ, ์ƒ๋‹ด ์ง„ํ–‰, ์ƒ๋‹ด ๋งˆ๋ฌด๋ฆฌ๊นŒ์ง€์˜ ์ „์ฒด ํ๋ฆ„์„ ์ž๋™ํ™”ํ•จ

ํ™œ์šฉํ•œ ํˆด โš’๏ธ

  • ChatGPT: Agent ์•„์ด๋””์–ด ๊ธฐํš ๊ตฌ์ฒดํ™”, Workflow ์„ค๊ณ„, ๋…ธ๋“œ ๊ตฌ์ถ• ๊ฐ€์ด๋“œ, CEL ๋ฌธ๋ฒ• ํ•™์Šต

  • n8n (๋˜๋Š” ์œ ์‚ฌ Workflow ๋„๊ตฌ): Agent ๊ตฌ์กฐ ์„ค๊ณ„, ๋…ธ๋“œ ์—ฐ๊ฒฐ, ์กฐ๊ฑด ๋ถ„๊ธฐ ์„ค์ •

์ง„ํ–‰ ์„ธ๋ถ€ ๋‚ด์šฉ ๐Ÿ”

1๏ธโƒฃ Agent ์•„์ด๋””์–ด ๊ธฐํš ๋ฐ Workflow ์„ค๊ณ„

  • ChatGPT์™€ ๋Œ€ํ™”ํ•˜๋ฉฐ Agent ์•„์ด๋””์–ด๋ฅผ ๊ตฌ์ฒดํ™”ํ•จ

  • ์ „์ฒด Workflow ๊ตฌ์กฐ๋ฅผ ChatGPT์˜ ๋„์›€์„ ๋ฐ›์•„ ์„ค๊ณ„ํ•จ

  • ChatGPT๊ฐ€ ์ œ์•ˆํ•œ ๊ตฌ์กฐ๊ฐ€ 100% ์™„๋ฒฝํ•˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ ๊ธฐ๋ณธ ํ‹€์„ ๋น ๋ฅด๊ฒŒ ์žก์„ ์ˆ˜ ์žˆ์—ˆ์Œ

  • ChatGPT๊ฐ€ ๋ฏธ์ฒ˜ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ๋˜ ์•ˆ์ „ ์žฅ์น˜์™€ ์˜ˆ์™ธ ์ƒํ™ฉ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„๊นŒ์ง€ ์ œ์•ˆํ•ด์ฃผ์–ด ์„ค๊ณ„์— ๋ฐ˜์˜ํ•จ

2๏ธโƒฃ Classify ๋…ธ๋“œ๋ฅผ ํ†ตํ•œ ์œ„๊ธฐ ์ƒํ™ฉ ๋ถ„๋ฅ˜

  • ์ฒซ ๋‹จ๊ณ„์—์„œ Crisis ์ƒํ™ฉ์„ ์‹๋ณ„ํ•˜๋Š” Classify ๋…ธ๋“œ๋ฅผ ๊ตฌ์ถ•ํ•จ

  • ์œ„๊ธฐ ์ƒํ™ฉ ๋ฐœ์ƒ ์‹œ ์ƒ๋‹ด์„ ์ง„ํ–‰ํ•˜์ง€ ์•Š๊ณ  ์ „๋ฌธ ๊ธฐ๊ด€์œผ๋กœ ์œ ๋„ํ•˜๋„๋ก ์„ค์ •ํ•จ

  • ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ƒ๋‹ด๊ฐ€๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•จ

  • ์ƒ๋‹ด๊ฐ€๋ฅผ ์„ ํƒํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์˜ ์ƒ๋‹ด ๋‚ด์šฉ์— ๋”ฐ๋ผ 3๋ช…์˜ ์ƒ๋‹ด๊ฐ€ ์ค‘ ์ ํ•ฉํ•œ ์ƒ๋‹ด๊ฐ€๋ฅผ ์ž๋™ ๋ฐฐ์ •ํ•˜๋„๋ก ์„ค์ •ํ•จ

3๏ธโƒฃ CEL(Common Expression Language) ํ•™์Šต ๋ฐ ์ ์šฉ

  • If ๋…ธ๋“œ์—์„œ ์กฐ๊ฑด ๋ถ„๊ธฐ๋ฅผ ์œ„ํ•ด CEL ๋ฌธ๋ฒ•์„ ์ฒ˜์Œ ์ ‘ํ•˜๋ฉฐ ๋‹นํ™ฉํ•จ

  • ChatGPT์—๊ฒŒ ์งˆ๋ฌธํ•˜๋ฉฐ `input.category == 'crisis'` ํ˜•์‹์˜ ์กฐ๊ฑด๋ฌธ์„ ์ดํ•ดํ•จ

  • `input`์€ ์ด์ „ ๋…ธ๋“œ์˜ ์ถœ๋ ฅ ์ „์ฒด, `input.category`๋Š” Classify ๋…ธ๋“œ๊ฐ€ ๋ถ„๋ฅ˜ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฌธ์ž์—ด์ž„์„ ํŒŒ์•…ํ•จ

  • CEL ๋ฌธ๋ฒ•์„ ์ดํ•ดํ•œ ํ›„ input ๋ณ€์ˆ˜ ์„ค์ •๊ณผ ์กฐ๊ฑด ๋ถ„๊ธฐ ์„ค์ •์ด ํ›จ์”ฌ ์‰ฌ์›Œ์ง

4๏ธโƒฃ Crisis ๋Œ€์‘ Agent ๊ตฌ์ถ•

  • Crisis๋กœ ๋ถ„๋ฅ˜๋œ ์ƒ๋‹ด์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ณ„๋„์˜ Agent๋ฅผ ์ƒ์„ฑํ•จ

  • ๊ตฌ์ฒด์ ์ธ ์น˜๋ฃŒ๋ฒ•์ด๋‚˜ ๋ฐฉ๋ฒ•์„ ์ ˆ๋Œ€ ์ œ์‹œํ•˜์ง€ ์•Š๋„๋ก Instruction์„ ์„ค์ •ํ•จ

  • ์•ˆ์ „ํŒ ์—ญํ• ๋กœ์„œ ์ „๋ฌธ ๊ธฐ๊ด€ ์—ฐ๊ณ„๋งŒ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ œํ•œํ•จ

5๏ธโƒฃ 3๋ช…์˜ ์ƒ๋‹ด๊ฐ€ Agent ์„ค์ •

  • ์ดํ˜ธ์„  ๊ต์ˆ˜, ์˜ค์€์˜ ๋ฐ•์‚ฌ, ๊น€์ฐฝ์˜ฅ ๊ต์ˆ˜ ์Šคํƒ€์ผ์˜ ์ƒ๋‹ด๊ฐ€ Agent๋ฅผ ๊ฐ๊ฐ ๊ตฌ์ถ•ํ•จ

  • ์ดํ˜ธ์„  ๊ต์ˆ˜ ์Šคํƒ€์ผ ์ƒ๋‹ด๊ฐ€ Instruction ์˜ˆ์‹œ:

  • ์ง์„ค์ ์ด์ง€๋งŒ ๋”ฐ๋œปํ•˜๊ฒŒ ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์„ ์งš์–ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋‹ต๋ณ€

  • ๋จผ์ € ๊ฐ์ • ๊ณต๊ฐ ํ›„ ํ˜„์‹ค์  ๋Œ€์•ˆ๊ณผ ํ–‰๋™ ๊ณ„ํš ์ œ์‹œ

  • ์ •์‹ ๊ณผ ์ง„๋‹จ, ์•ฝ ์ฒ˜๋ฐฉ, ์‘๊ธ‰ ์ƒํ™ฉ ์ง€์‹œ๋Š” ํ•˜์ง€ ์•Š์Œ

  • ์ƒ๋‹ด ๋งˆ๋ฌด๋ฆฌ ์š”์ฒญ ์‹œ ํ•ต์‹ฌ ๋‚ด์šฉ ์š”์•ฝ(3~5๊ฐœ bullet point), ํ˜„์žฌ ๊ฐ์ • ์ƒํƒœ ์ •๋ฆฌ, 1์ฃผ์ผ ์‹ค์ฒœ ํ–‰๋™ 3๊ฐ€์ง€, ์‘์› ๋ฉ”์‹œ์ง€ ํ˜•์‹์œผ๋กœ ๋‹ต๋ณ€

  • ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ƒ๋‹ด๊ฐ€๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์„ ์ถ”๊ฐ€ ๊ตฌํ˜„ํ•จ

6๏ธโƒฃ ํ…Œ์ŠคํŠธ ๋ฐ ์ž‘๋™ ํ™•์ธ

  • ๊ตฌ์ถ•ํ•œ Agent ์‹œ์Šคํ…œ์˜ ์‹ค์ œ ์ž‘๋™์„ ํ…Œ์ŠคํŠธํ•จ

  • ์ƒ๋‹ด๊ฐ€ ์„ ํƒ, ์ƒ๋‹ด ์ง„ํ–‰, ์‘๋‹ต ํ’ˆ์งˆ์„ ํ™•์ธํ•จ

  • ์ „๋ฐ˜์ ์œผ๋กœ ์˜๋„ํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•จ์„ ํ™•์ธํ•จ