์•ˆ๋…•ํ•˜์„ธ์š”! ์—์ด๋ธ” ์Šค์ฟจ ๊ธฐ์ž๋‹จ์ž…๋‹ˆ๋‹ค! 

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

1. ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

์ด๋ฒˆ ๋ฏธ๋‹ˆํ”„๋กœ์ ํŠธ 3์ฐจ์—์„œ๋Š” ํšŒ์˜ ๋‚ด์šฉ์„ ๋ถ„์„ํ•˜๊ณ , ์—…๋ฌด ์ง€์‹œ์‚ฌํ•ญ์„ ์ •๋ฆฌํ•ด์ฃผ๋Š” AI ๊ฐœ์ธ๋น„์„œ ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค.
์„œ๋น„์Šค ์ด๋ฆ„์€ ‘์—์ด๋ธ”(AIBLE)’๋กœ, ํšŒ์˜๋ก์„ ๋‹จ์ˆœํžˆ ์š”์•ฝํ•˜๋Š” ์ˆ˜์ค€์„ ๋„˜์–ด ์‚ฌ์šฉ์ž์˜ ์—…๋ฌด ํ๋ฆ„์„ ๋„์™€์ฃผ๋Š” ํšŒ์˜ ๋ถ„์„ ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ๋ชฉํ‘œ๋กœ ํ–ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฃผ์ œ๋Š” ์ž์„ธํžˆ๋Š” ๋งํ•˜์ง€ ๋ชปํ•˜์ง€๋งŒ ๊ฐ„๋‹จํ•˜๊ฒŒ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

ํšŒ์˜๋ก๊ณผ ํšŒ์˜ ๋‚ด์šฉ์„ ๋ถ„์„ํ•˜๊ณ , ์ตœ์†Œ ์š”๊ตฌ ๊ธฐ๋Šฅ+ํŒ€์ด ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” AI ๊ฐœ์ธ๋น„์„œ ๊ตฌ์ถ•

 

์‹ค์ œ ์—…๋ฌด ํ™˜๊ฒฝ์—์„œ๋Š” ํšŒ์˜ ๋‚ด์šฉ์ด ๊ธธ์–ด์งˆ์ˆ˜๋ก ์ค‘์š”ํ•œ ๊ฒฐ์ • ์‚ฌํ•ญ์ด๋‚˜ ๋‹ด๋‹น ์—…๋ฌด๋ฅผ ๋†“์น˜๊ธฐ ์‰ฝ๋‹ค. ํŠนํžˆ ํšŒ์˜์— ์ฐธ์„ํ•˜์ง€ ๋ชปํ•œ ์‚ฌ๋žŒ์ด ๋‚˜์ค‘์— ๋‚ด์šฉ์„ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, ์ „์ฒด ํšŒ์˜๋ก์„ ์ฝ๊ณ  ํ•ต์‹ฌ ์—…๋ฌด๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค.

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํšŒ์˜๋ก ๋ถ„์„, ์—…๋ฌด ์ง€์‹œ์‚ฌํ•ญ ์ถ”์ถœ, ๋ฏผ๊ฐ์ •๋ณด ๊ฐ์ง€, ํšŒ์˜ ๊ธฐ๋ฐ˜ ์งˆ์˜์‘๋‹ต, ์ด๋ฉ”์ผ ๋ฐœ์†ก, ๊ฒฐ๊ณผ ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ Streamlit ์„œ๋น„์Šค๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค.


2. ๋ฌธ์ œ ์ธ์‹

ํšŒ์˜ ์—…๋ฌด์—์„œ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” ์ •๋ณด๊ฐ€ ๋งŽ๋‹ค๋Š” ์ ์ด๋‹ค.
ํšŒ์˜๋ก์—๋Š” ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์˜ ๋ฐœ์–ธ, ๊ฒฐ์ • ์‚ฌํ•ญ, ๋…ผ์˜ ๋ฐฐ๊ฒฝ, ์ผ์ •, ๋‹ด๋‹น ์—…๋ฌด๊ฐ€ ์„ž์—ฌ ์žˆ๋‹ค. ์ด ์ค‘ ์‹ค์ œ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ์ •๋ณด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ฒซ์งธ, ํšŒ์˜์—์„œ ๋ฌด์—‡์ด ๊ฒฐ์ •๋˜์—ˆ๋Š”์ง€
๋‘˜์งธ, ๋ˆ„๊ฐ€ ์–ด๋–ค ์—…๋ฌด๋ฅผ ๋งก์•˜๋Š”์ง€
์…‹์งธ, ์—…๋ฌด ๊ธฐํ•œ๊ณผ ์šฐ์„ ์ˆœ์œ„๋Š” ๋ฌด์—‡์ธ์ง€
๋„ท์งธ, ๊ณต์œ  ์ „์— ๋ฏผ๊ฐ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€๋Š” ์•Š์€์ง€
๋‹ค์„ฏ์งธ, ํšŒ์˜์— ์ฐธ์„ํ•˜์ง€ ๋ชปํ•œ ์‚ฌ๋žŒ์ด ๋น ๋ฅด๊ฒŒ ๋‚ด์šฉ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š”์ง€

๋”ฐ๋ผ์„œ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋‹จ์ˆœ ์š”์•ฝ์ด ์•„๋‹ˆ๋ผ ์—…๋ฌด ์‹คํ–‰์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ํšŒ์˜ ๋ถ„์„ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ–ˆ๋‹ค.


3. ์„œ๋น„์Šค ๋ชฉํ‘œ

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์˜ ํ•ต์‹ฌ ๋ชฉํ‘œ๋Š” AI๊ฐ€ ํšŒ์˜ ๋‚ด์šฉ์„ ์ดํ•ดํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ”๋กœ ์—…๋ฌด์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ์ •๋ฆฌํ•ด์ฃผ๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.

๊ตฌํ˜„ ๋ชฉํ‘œ๋Š” ํฌ๊ฒŒ ๋„ค ๊ฐ€์ง€์˜€๋‹ค.

  1. ํšŒ์˜๋ก ๋ถ„์„ ๋ฐ ์š”์•ฝ
    ํšŒ์˜ ์ œ๋ชฉ, ๋ชฉ์ , ์ฃผ์š” ์•ˆ๊ฑด, ๊ฒฐ์ • ์‚ฌํ•ญ, ์ „์ฒด ์š”์•ฝ์„ ์ž๋™์œผ๋กœ ์ •๋ฆฌํ•œ๋‹ค.
  2. ๋‹ด๋‹น ์—…๋ฌด ๋ฐ ์šฐ์„ ์ˆœ์œ„ ์ถ”์ถœ
    ํšŒ์˜ ๋‚ด์šฉ์—์„œ ๋‹ด๋‹น์ž๋ณ„ ์—…๋ฌด๋ฅผ ์ถ”์ถœํ•˜๊ณ , ์—…๋ฌด์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์Œ·๋ณดํ†ต·๋‚ฎ์Œ์œผ๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค.
  3. ๋ฏผ๊ฐ์ •๋ณด ๊ฐ์ง€ ๋ฐ ๋ณด์•ˆ ๊ฒฝ๊ณ 
    ๊ฐœ์ธ์ •๋ณด, ์ „ํ™”๋ฒˆํ˜ธ, ์ฃผ๋ฏผ๋ฒˆํ˜ธ, ๊ธ‰์—ฌ·์ธ์‚ฌ ์ •๋ณด, ๋Œ€์™ธ๋น„ ํ‘œํ˜„ ๋“ฑ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
  4. ์—…๋ฌด ํ›„์† ์ฒ˜๋ฆฌ ์ง€์›
    ํšŒ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ฆฌ๋งˆ์ธ๋“œ ๋ฉ”์ผ์„ ์ž‘์„ฑํ•˜๊ณ , ํšŒ์˜ ์š”์•ฝ ๊ฒฐ๊ณผ๋ฅผ TXT ํŒŒ์ผ๋กœ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

4. ๊ตฌํ˜„ํ•œ ์„œ๋น„์Šค: Meeting AI ํšŒ์˜ ๋ถ„์„ ์–ด์‹œ์Šคํ„ดํŠธ

์ตœ์ข… ์„œ๋น„์Šค๋Š” Streamlit ๊ธฐ๋ฐ˜ ์›น ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค.
์‚ฌ์šฉ์ž๋Š” ํšŒ์˜๋ก ํ…์ŠคํŠธ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๊ฑฐ๋‚˜, ์Œ์„ฑ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๊ฑฐ๋‚˜, ์ง์ ‘ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

์„œ๋น„์Šค ํ™”๋ฉด์€ KT Enterprise์˜ ์—…๋ฌด์šฉ ์„œ๋น„์Šค ๋А๋‚Œ์„ ์‚ด๋ฆฌ๊ธฐ ์œ„ํ•ด KT ๋กœ๊ณ  ์ปฌ๋Ÿฌ์™€ ๋น„์ฆˆ๋‹ˆ์Šค์šฉ UI ์Šคํƒ€์ผ์„ ์ ์šฉํ–ˆ๋‹ค.
๋˜ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฒฐ๊ณผ ํ™”๋ฉด์„ ํƒญ ๊ตฌ์กฐ๋กœ ๋‚˜๋ˆ„์—ˆ๋‹ค.

์ตœ์ข…์ ์œผ๋กœ ๊ตฌ์„ฑํ•œ ํƒญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

ํƒญ๊ธฐ๋Šฅ
ํšŒ์˜ ์š”์•ฝ ํšŒ์˜ ์ œ๋ชฉ, ๋ชฉ์ , ๊ฒฐ์ • ์‚ฌํ•ญ, ์ฃผ์š” ์•ˆ๊ฑด, ์ „์ฒด ์š”์•ฝ ์ถœ๋ ฅ
ํ•  ์ผ & ์šฐ์„ ์ˆœ์œ„ ๋‹ด๋‹น์ž๋ณ„ ์—…๋ฌด, ๊ธฐํ•œ, ์šฐ์„ ์ˆœ์œ„ ์ •๋ฆฌ
์›๋ฌธ ๋ณด๊ธฐ ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ์™€ ํšŒ์˜ ์›๋ฌธ ํ™•์ธ
๋ฉ”์ผ ๋ฐœ์†ก ํšŒ์˜ ๊ฒฐ๊ณผ ๊ธฐ๋ฐ˜ ๋ฆฌ๋งˆ์ธ๋“œ ๋ฉ”์ผ ์ดˆ์•ˆ ์ƒ์„ฑ ๋ฐ ๋ฐœ์†ก
์งˆ์˜์‘๋‹ต ํšŒ์˜ ์›๋ฌธ์„ ๋ฐ”ํƒ•์œผ๋กœ GPT์™€ ๋ฉ€ํ‹ฐํ„ด ๋Œ€ํ™”
๋‹ค์šด๋กœ๋“œ ํšŒ์˜ ์š”์•ฝ, ํ•  ์ผ, ์›๋ฌธ์„ TXT ํŒŒ์ผ๋กœ ์ €์žฅ

5. ์ฃผ์š” ๊ธฐ๋Šฅ ์ •๋ฆฌ

5-1. ํšŒ์˜ ๋‚ด์šฉ ๋ถ„์„

ํšŒ์˜๋ก์„ ์ž…๋ ฅํ•˜๋ฉด GPT ๋ชจ๋ธ์ด ํšŒ์˜ ๋‚ด์šฉ์„ JSON ํ˜•์‹์œผ๋กœ ๋ถ„์„ํ•œ๋‹ค.
๋ถ„์„ ๊ฒฐ๊ณผ์—๋Š” ํšŒ์˜ ์ œ๋ชฉ, ๋ชฉ์ , ๊ฒฐ์ • ์‚ฌํ•ญ, ๋‹ด๋‹น ์—…๋ฌด, ์ฃผ์š” ์•ˆ๊ฑด, ์ „์ฒด ์š”์•ฝ, ํ‚ค์›Œ๋“œ๊ฐ€ ํฌํ•จ๋œ๋‹ค.

์ฝ”๋“œ์—์„œ๋Š” analyze_meeting() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ํšŒ์˜ ๋‚ด์šฉ์„ ๋ถ„์„ํ–ˆ๋‹ค.

 
def analyze_meeting(text):
    today = datetime.now().strftime("%Y๋…„ %m์›” %d์ผ")

    prompt = f"""
๋‹ค์Œ์€ ์˜ค๋Š˜({today}) ์ง„ํ–‰๋œ ํšŒ์˜ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ JSON ํ˜•์‹์œผ๋กœ ๋ถ„์„ํ•˜์„ธ์š”. ๋ฐ˜๋“œ์‹œ JSON๋งŒ ์ถœ๋ ฅํ•˜์„ธ์š”.

ํšŒ์˜ ๋‚ด์šฉ:
{text}

{{
  "meeting_title": "ํšŒ์˜ ์ œ๋ชฉ",
  "purpose": "ํšŒ์˜ ๋ชฉ์ ",
  "decisions": ["๊ฒฐ์ • ์‚ฌํ•ญ ๋ฆฌ์ŠคํŠธ"],
  "tasks": [
    {{"person":"๋‹ด๋‹น์ž","task":"์—…๋ฌด ๋‚ด์šฉ","deadline":"๊ธฐํ•œ","priority":"high|medium|low"}}
  ],
  "agenda_items": ["์•ˆ๊ฑด ๋ฆฌ์ŠคํŠธ"],
  "summary": "์ „์ฒด ์š”์•ฝ",
  "keywords": ["ํ‚ค์›Œ๋“œ1", "ํ‚ค์›Œ๋“œ2"]
}}
"""
 

์ด ๋ถ€๋ถ„์—์„œ ์ค‘์š”ํ•œ ์ ์€ ๋ชจ๋ธ์ด ์ž์œ ๋กญ๊ฒŒ ๋ฌธ์žฅ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์„œ๋น„์Šค์—์„œ ๋ฐ”๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •ํ•ด์ง„ JSON ๊ตฌ์กฐ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์„ค๊ณ„ํ–ˆ๋‹ค๋Š” ์ ์ด๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ํšŒ์˜ ์š”์•ฝ ํƒญ, ํ•  ์ผ ํƒญ, ์ด๋ฉ”์ผ ์ƒ์„ฑ, ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋Šฅ์— ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.


5-2. ๋‹ด๋‹น ์—…๋ฌด ๋ฐ ์šฐ์„ ์ˆœ์œ„ ์ถ”์ถœ

ํšŒ์˜๋ก์—์„œ ๋‹ด๋‹น์ž๋ณ„ ์—…๋ฌด๋ฅผ ์ถ”์ถœํ•˜๊ณ , ์—…๋ฌด์˜ ์ค‘์š”๋„๋ฅผ high, medium, low๋กœ ๋ถ„๋ฅ˜ํ–ˆ๋‹ค.
์‚ฌ์šฉ์ž ํ™”๋ฉด์—์„œ๋Š” ์ด๋ฅผ ๊ฐ๊ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œํ–ˆ๋‹ค.

 
PRIORITY_LABEL = {
    "high": "๐Ÿ”ด ๋†’์Œ",
    "medium": "๐ŸŸก ๋ณดํ†ต",
    "low": "๐ŸŸข ๋‚ฎ์Œ"
}
 

์ด ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” ํšŒ์˜๋ก ์ „์ฒด๋ฅผ ๋‹ค์‹œ ์ฝ์ง€ ์•Š์•„๋„ ๋ˆ„๊ฐ€ ์–ด๋–ค ์—…๋ฌด๋ฅผ ํ•ด์•ผ ํ•˜๋Š”์ง€, ์–ด๋–ค ์ผ์„ ๋จผ์ € ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š”์ง€ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŠนํžˆ ํšŒ์˜์— ์ฐธ์„ํ•˜์ง€ ๋ชปํ•œ ์‚ฌ๋žŒ๋„ ํšŒ์˜ ์ดํ›„ ์ž์‹ ์˜ ์—…๋ฌด๋ฅผ ๋ฐ”๋กœ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์‹ค๋ฌด ํ™œ์šฉ์„ฑ์ด ๋†’๋‹ค๊ณ  ๋А๊ผˆ๋‹ค.


5-3. ํšŒ์˜ ๊ฒฐ๊ณผ ๊ธฐ๋ฐ˜ ์ด๋ฉ”์ผ ์ƒ์„ฑ ๋ฐ ๋ฐœ์†ก

ํšŒ์˜๊ฐ€ ๋๋‚œ ํ›„์—๋Š” ํšŒ์˜ ๋‚ด์šฉ์„ ์ฐธ์„์ž๋‚˜ ๋ถˆ์ฐธ์ž์—๊ฒŒ ๊ณต์œ ํ•ด์•ผ ํ•œ๋‹ค.
์ด๋ฅผ ์œ„ํ•ด ํšŒ์˜ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ฆฌ๋งˆ์ธ๋“œ ์ด๋ฉ”์ผ ์ดˆ์•ˆ ์ƒ์„ฑ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค.

์ด๋ฉ”์ผ ์ƒ์„ฑ์—๋Š” gpt-4o-mini๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ , ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ํ”„๋กฌํ”„ํŠธ์— ํฌํ•จํ–ˆ๋‹ค.

  • ์ •์ค‘ํ•˜๊ณ  ์ „๋ฌธ์ ์ธ ์–ด์กฐ๋กœ ์ž‘์„ฑ
  • ์ฒซ ๋ฌธ์žฅ์€ “KT Enterprise IT๊ธฐ์ˆ ํ˜์‹ ํŒ€ DX Consulting AI ๋น„์„œ AIBLE์ž…๋‹ˆ๋‹ค.”๋กœ ์‹œ์ž‘
  • ๋งˆ์ง€๋ง‰ ์„œ๋ช…์€ “AIBLE ๋“œ๋ฆผ”์œผ๋กœ ์ข…๋ฃŒ
  • ์ง์› ๊ฐœ์ธ ์„œ๋ช…์€ ํฌํ•จํ•˜์ง€ ์•Š์Œ

๋˜ํ•œ SendGrid API๋ฅผ ํ™œ์šฉํ•ด ์‹ค์ œ ์ด๋ฉ”์ผ ๋ฐœ์†ก ๊ธฐ๋Šฅ๋„ ์—ฐ๊ฒฐํ–ˆ๋‹ค.

 
def send_email(to, subject, body):
    api_key = os.getenv("SENDGRID_API_KEY", "")
    sender = os.getenv("EMAIL_ADDRESS", "")

    resp = requests.post(
        "https://api.sendgrid.com/v3/mail/send",
        headers={
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json"
        },
        json={
            "personalizations": [
                {
                    "to": [{"email": to}],
                    "subject": subject
                }
            ],
            "from": {"email": sender},
            "content": [
                {
                    "type": "text/plain",
                    "value": body
                }
            ],
        },
    )

    return resp.status_code == 202
 

์ด ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ํšŒ์˜ ๋ถ„์„ ๊ฒฐ๊ณผ๊ฐ€ ๋‹จ์ˆœํžˆ ํ™”๋ฉด์— ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์—์„œ ๋๋‚˜์ง€ ์•Š๊ณ , ์‹ค์ œ ์—…๋ฌด ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์œผ๋กœ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค.


5-4. ํšŒ์˜ ๋‚ด์šฉ ๊ธฐ๋ฐ˜ ์งˆ์˜์‘๋‹ต

ํšŒ์˜๋ก์„ ๋ถ„์„ํ•œ ์ดํ›„์—๋„ ์‚ฌ์šฉ์ž๋Š” ์ถ”๊ฐ€๋กœ ๊ถ๊ธˆํ•œ ์ ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด “๊น€๋Œ€๋ฆฌ์˜ ์ฃผ์š” ์—…๋ฌด๊ฐ€ ๋ญ์•ผ?”, “๊ฐ€์žฅ ๊ธ‰ํ•œ ์ผ์ •์ด ๋ญ์•ผ?”, “ํšŒ์˜์—์„œ ๊ฒฐ์ •๋œ ์‚ฌํ•ญ๋งŒ ๋‹ค์‹œ ์•Œ๋ ค์ค˜”์™€ ๊ฐ™์€ ์งˆ๋ฌธ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

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

 
full_messages = [
    {
        "role": "system",
        "content": f"{sys_role_chat}\n\n[ํšŒ์˜ ์›๋ฌธ]\n{st.session_state.transcript}"
    }
]

full_messages.extend(st.session_state.messages)
 

๋˜ํ•œ st.session_state.messages๋ฅผ ํ™œ์šฉํ•ด ๋Œ€ํ™” ๊ธฐ๋ก์„ ์ €์žฅํ•˜๊ณ , ์ตœ๊ทผ 10๊ฐœ์˜ ๋Œ€ํ™”๋ฅผ ๊ธฐ์–ตํ•˜๋„๋ก ๊ตฌ์„ฑํ–ˆ๋‹ค.

์ด ๋ถ€๋ถ„์„ ํ†ตํ•ด ๋‹จ๋ฐœ์„ฑ ์งˆ์˜์‘๋‹ต์ด ์•„๋‹ˆ๋ผ ํšŒ์˜ ๊ธฐ๋ฐ˜ ๋ฉ€ํ‹ฐํ„ด ๋Œ€ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค.


5-5. TXT ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋Šฅ

ํšŒ์˜ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์‹œ ๋ณด๊ด€ํ•˜๊ฑฐ๋‚˜ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก TXT ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋Šฅ๋„ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

๋‹ค์šด๋กœ๋“œ ํŒŒ์ผ์—๋Š” ๋‹ค์Œ ๋‚ด์šฉ์ด ํฌํ•จ๋œ๋‹ค.

  • ํšŒ์˜ ์ œ๋ชฉ
  • ํšŒ์˜ ๋ชฉ์ 
  • ๊ฒฐ์ • ์‚ฌํ•ญ
  • ์ฃผ์š” ์•ˆ๊ฑด
  • ์ „์ฒด ์š”์•ฝ
  • ๋‹ด๋‹น ์—…๋ฌด ๋ฐ ์šฐ์„ ์ˆœ์œ„
  • ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ
  • ํšŒ์˜ ์›๋ฌธ

์ฒ˜์Œ์—๋Š” ํ™”๋ฉด์— ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ๋งŒ ๊ณ ๋ คํ–ˆ์ง€๋งŒ, ์‹ค์ œ ์—…๋ฌด์—์„œ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ „๋‹ฌํ•ด์•ผ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค.
๊ทธ๋ž˜์„œ st.download_button()์„ ํ™œ์šฉํ•ด ํšŒ์˜ ๊ฒฐ๊ณผ๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ์„ ํ–ˆ๋‹ค.


6. ์‚ฌ์šฉํ•œ ๊ธฐ์ˆ  ์Šคํƒ

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•œ ์ฃผ์š” ๊ธฐ์ˆ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๊ตฌ๋ถ„์‚ฌ์šฉ ๊ธฐ์ˆ 
UI ๊ตฌํ˜„ Streamlit
LLM GPT-4o, GPT-4o-mini
์Œ์„ฑ ์ธ์‹ Whisper-1
์ด๋ฉ”์ผ ๋ฐœ์†ก SendGrid API
๋ฐฐํฌ Hugging Face Spaces
์Šคํƒ€์ผ๋ง Custom CSS
์ƒํƒœ ๊ด€๋ฆฌ Streamlit session_state
๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ JSON, ์ •๊ทœํ‘œํ˜„์‹, Python

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋‹จ์ˆœํžˆ LLM์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค, LLM ๊ฒฐ๊ณผ๋ฅผ ์„œ๋น„์Šค ๊ธฐ๋Šฅ๊ณผ ์—ฐ๊ฒฐํ•˜๋Š” ํ๋ฆ„์ด ์ค‘์š”ํ–ˆ๋‹ค.
ํŠนํžˆ JSON ๊ตฌ์กฐํ™”, ์„ธ์…˜ ์ƒํƒœ ๊ด€๋ฆฌ, ํƒญ ๊ธฐ๋ฐ˜ UI ๊ตฌ์„ฑ, ๋ฉ”์ผ ๋ฐœ์†ก API ์—ฐ๋™ ๋“ฑ์ด ํ•ต์‹ฌ ๊ตฌํ˜„ ํฌ์ธํŠธ์˜€๋‹ค.


7. ํ”„๋กœ์ ํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค

๋ฐœํ‘œ์—์„œ๋Š” AB์นด๋“œ DX ์ „๋žต ์ˆ˜๋ฆฝ ๋ฏธํŒ…์„ ์˜ˆ์‹œ ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ ์‚ฌ์šฉํ–ˆ๋‹ค. (ํ•ฉ์„ฑ ์‹œ๋‚˜๋ฆฌ์˜ค ๋งŒ๋“ค๋˜ ์ธํ„ด ๊ฒฝ๋ ฅ์ด ์—ฌ๊ธฐ์„œ....)

ํšŒ์˜ ์ƒํ™ฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋‹ค.

  • ํšŒ์˜๋ช…: AB์นด๋“œ DX ์ „๋žต ์ˆ˜๋ฆฝ ๋ฏธํŒ…
  • ์ผ์‹œ: 2026๋…„ 4์›” 30์ผ ์˜ค์ „ 10์‹œ
  • ์žฅ์†Œ: ์ œ2ํšŒ์˜์‹ค
  • ์ฐธ์„์ž: ํŒ€์žฅ, ์žฅ๊ณผ์žฅ, ๋ฐ•์‚ฌ์›
  • ๊น€๋Œ€๋ฆฌ: WIS ํ˜„์žฅ ์ง€์›์œผ๋กœ ํšŒ์˜ ๋ถˆ์ฐธ
  • ์—์ด๋ธ”: ๊น€๋Œ€๋ฆฌ๋ฅผ ๋Œ€์‹ ํ•ด ํšŒ์˜ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•˜๊ณ  ์š”์•ฝ

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

์ด ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ํ†ตํ•ด ์—์ด๋ธ”์ด ๋‹จ์ˆœ ์š”์•ฝ ๋„๊ตฌ๊ฐ€ ์•„๋‹ˆ๋ผ, ํšŒ์˜์— ์ฐธ์„ํ•˜์ง€ ๋ชปํ•œ ์‚ฌ๋žŒ์„ ๋Œ€์‹ ํ•ด ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ  ํ›„์† ์—…๋ฌด๊นŒ์ง€ ๋„์™€์ฃผ๋Š” AI ๊ฐœ์ธ๋น„์„œ๋ผ๋Š” ์ ์„ ๋ณด์—ฌ์ฃผ๊ณ ์ž ํ–ˆ๋‹ค.


8. ์šฐ๋ฆฌ ์กฐ๋งŒ์˜ ์ฐจ๋ณ„์ 

๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ TXT ํŒŒ์ผ๋กœ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.
ํšŒ์˜ ์š”์•ฝ, ๋‹ด๋‹น ์—…๋ฌด, ์›๋ฌธ์„ ํŒŒ์ผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ์–ด ํšŒ์˜ ๊ฒฐ๊ณผ ๊ด€๋ฆฌ๊ฐ€ ํŽธ๋ฆฌํ•˜๋‹ค. ๋‹จ์ˆœํžˆ ํ™”๋ฉด์—์„œ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฌธ์„œํ™”์™€ ๊ณต์œ ๊นŒ์ง€ ๊ณ ๋ คํ–ˆ๋‹ค.

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


9. ๊ตฌํ˜„ํ•˜๋ฉด์„œ ์–ด๋ ค์› ๋˜ ์ 

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ€์žฅ ์‹ ๊ฒฝ ์“ด ๋ถ€๋ถ„์€ LLM ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์„œ๋น„์Šค์—์„œ ์•ˆ์ •์ ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.

LLM์€ ์ž์—ฐ์–ด ๋‹ต๋ณ€์—๋Š” ๊ฐ•ํ•˜์ง€๋งŒ, ์„œ๋น„์Šค ๋‚ด๋ถ€์—์„œ๋Š” ์ •ํ•ด์ง„ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
๋”ฐ๋ผ์„œ ํšŒ์˜ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜๋“œ์‹œ JSON์œผ๋กœ ์ถœ๋ ฅํ•˜๋„๋ก ํ”„๋กฌํ”„ํŠธ๋ฅผ ์„ค๊ณ„ํ–ˆ๊ณ , ์ดํ›„ json.loads()๋ฅผ ํ†ตํ•ด Python ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ–ˆ๋‹ค.

๋˜ ํ•˜๋‚˜์˜ ์–ด๋ ค์›€์€ Streamlit์˜ session_state ๊ด€๋ฆฌ์˜€๋‹ค.
ํšŒ์˜ ๋ถ„์„ ๊ฒฐ๊ณผ, ์›๋ฌธ, ์ฑ„ํŒ… ๊ธฐ๋ก, ๋ฉ”์ผ ์ดˆ์•ˆ์ด ๊ฐ๊ฐ ๋‹ค๋ฅธ ํƒญ์—์„œ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒํƒœ๋ฅผ ์ž˜ ๊ด€๋ฆฌํ•ด์•ผ ํ–ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ƒˆ๋กœ์šด ํšŒ์˜๋ก์„ ๋ถ„์„ํ•˜๋ฉด ์ด์ „ ์ฑ„ํŒ… ๊ธฐ๋ก๊ณผ ๋ฉ”์ผ ๋ณธ๋ฌธ์ด ๋‚จ์•„ ์žˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค.
๊ทธ๋ž˜์„œ ์ƒˆ๋กœ์šด ๋ถ„์„์ด ์‹œ์ž‘๋  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒํƒœ๋ฅผ ์ดˆ๊ธฐํ™”ํ–ˆ๋‹ค.

 
st.session_state.messages = []
st.session_state.mail_body = ""
 

์ด ๊ณผ์ •์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ๋กœ์šด ํšŒ์˜๋ก์„ ์—…๋กœ๋“œํ–ˆ์„ ๋•Œ ์ด์ „ ๊ฒฐ๊ณผ์™€ ์„ž์ด์ง€ ์•Š๋„๋ก ๊ฐœ์„ ํ–ˆ๋‹ค.


10. ๊ฐœ์„ ํ•˜๊ณ  ์‹ถ์€ ์ 

๋ฐœํ‘œ์—์„œ๋„ ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ ํ˜„์žฌ ์„œ๋น„์Šค์—๋„ ๋ช‡ ๊ฐ€์ง€ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.

์ฒซ์งธ, ์ผ์ • ์ •๋ณด๋ฅผ ํ…์ŠคํŠธ๋กœ๋งŒ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ์บ˜๋ฆฐ๋”์™€ ์—ฐ๊ฒฐ๋˜์ง€๋Š” ์•Š๋Š”๋‹ค.
ํ–ฅํ›„์—๋Š” Google Calendar API๋ฅผ ์—ฐ๋™ํ•ด ํšŒ์˜๋ก์—์„œ ์ถ”์ถœํ•œ ์ผ์ •์„ ์ž๋™์œผ๋กœ ์บ˜๋ฆฐ๋”์— ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

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

์…‹์งธ, ์Œ์„ฑ ๋ช…๋ น์€ ์ฃผ๋ณ€ ์†Œ์Œ์— ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
์ด ๋ถ€๋ถ„์€ ํŒ€์›์˜ ์•„์ด๋””์–ด์˜€๋‹ค. ๋‚˜๋Š” ์ „ํ˜€ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ•œ ๋ถ€๋ถ„์ด์—ˆ๋Š”๋ฐ ๊ฝค๋‚˜ ์ข‹์€ ์•„์ด๋””์–ด๋ผ ์ƒ๊ฐํ•ด์„œ ์ž‘์„ฑํ–ˆ๋‹ค. ์‹ค์ œ ํšŒ์˜์‹ค ํ™˜๊ฒฝ์—์„œ๋Š” ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋™์‹œ์— ๋งํ•˜๊ฑฐ๋‚˜ ๋ฐฐ๊ฒฝ ์†Œ์Œ์ด ์„ž์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๋…ธ์ด์ฆˆ ์บ”์Šฌ๋ง์ด๋‚˜ ํ™”์ž ๋ถ„๋ฆฌ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ •ํ™•๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.


11. 3์ฐจ ๋ฏธํ”„๋ฅผ ํ†ตํ•ด ๋ฐฐ์šด ์  & ๋งˆ๋ฌด๋ฆฌ 

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ๊ฐ€์žฅ ํฌ๊ฒŒ ๋ฐฐ์šด ์ ์€ AI ๊ธฐ๋Šฅ์„ ์‹ค์ œ ์—…๋ฌด ํ๋ฆ„๊ณผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค.

์ด์ „๊นŒ์ง€๋Š” LLM์„ ํ™œ์šฉํ•ด ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์š”์•ฝํ•˜๋Š” ๊ธฐ๋Šฅ์— ์ง‘์ค‘ํ–ˆ๋‹ค๋ฉด, ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์š”์•ฝ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ์ด๋ฉ”์ผ, ๋‹ค์šด๋กœ๋“œ, ์งˆ์˜์‘๋‹ต ๊ธฐ๋Šฅ๊ณผ ์—ฐ๊ฒฐํ–ˆ๋‹ค. ๋‹จ์ˆœํžˆ “AI๊ฐ€ ๋‹ต๋ณ€์„ ์ž˜ํ•˜๋Š”๊ฐ€”๊ฐ€ ์•„๋‹ˆ๋ผ, AI๊ฐ€ ์ƒ์„ฑํ•œ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ œ ์—…๋ฌด์—์„œ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€๋ฅผ ๊ณ ๋ฏผํ•œ ํ”„๋กœ์ ํŠธ์˜€๋‹ค. ์•„๋งˆ DX๋กœ ์ผํ•˜๊ฒŒ ๋˜๋ฉด ์ด๋Ÿฐ ๋ถ€๋ถ„์„ ๊ฐ€์žฅ ์ค‘์ ์ ์œผ๋กœ ์ƒ๊ฐํ•ด์•ผํ•˜์ง€ ์•Š์„๊นŒ? 

 

๋ฏธํ”„์—์„  Streamlit์„ ํ™œ์šฉํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ์˜ UI๋ฅผ ๋งŒ๋“ค๋ฉด์„œ, AI ์„œ๋น„์Šค์—์„œ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฐ„๊ฒฐํ•จ์„ ํ•™๊ต ๋‹ค๋‹๋•Œ๋ณด๋‹ค ๋” ํฌ๊ฒŒ ๋А๋ผ๊ณ  ์žˆ๋‹ค. ํ•™๊ต์—์„œ ํ”„๋กœ์ ํŠธํ•  ๋• ์ปด๊ณต๊ณผ๋‹ค ๋ณด๋‹ˆ๊นŒ ๋” ์™„์„ฑ๋„ ์žˆ๊ณ  ํƒ„ํƒ„ํ•œ ๊ธฐ๋ณธ ์›น/์•ฑ ๊ตฌ์ถ•ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์„ ๋งŽ์ด ๋“ค๋ ธ๋‹ค๋ฉด ์ด์   ๊ทธ๋ƒฅ Streamlit์„ ์กฐ๊ธˆ ๋‘๋“œ๋ฆฌ๋ฉด ๋ฐ”๋กœ ์›น์‚ฌ์ดํŠธ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋‹ˆ ์‹ ๊ธฐํ•˜๊ธฐ๋„ ํ•˜๋‹ค.  

 

๊ฐœ์ธ์ ์œผ๋กœ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด Streamlit์„ ์ ๊ทน ํ™œ์šฉํ•ด์„œ ํ…Œ์ŠคํŠธ ๊ตฌ์ถ•์„ ์œ„ํ•œ ์‹œ๊ฐ„์„ ์ค„์ด๊ณ  ๋ฌธ์ œ ์ •์˜์— ๋” ์‹œ๊ฐ„์„ ๋งŽ์ด ๋“ค์—ฌ์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋ฏธํ”„๋‚˜ ์•„์ด๋ฐ์ด์…˜ ์‹œ๊ฐ„์„ ๊ฐ€์งˆ์ˆ˜๋ก ์ค‘์š”ํ•œ๊ฑด ๋ฌธ์ œ์ •์˜์™€ ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์ธ์‹+์ž๋ฐœ์ ์ธ ๊ณต๋ถ€๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค. 

+ Recent posts