๐Ÿ“ˆ ์—‘์…€ + GPT-4o = ์—…๋ฌด ์ž๋™ํ™” ๋ํŒ์™•!

์—ฌ๊ถŒ, ์˜์ˆ˜์ฆ, ์‚ฌ์—…์ž๋“ฑ๋ก์ฆ๊นŒ์ง€ ์ž๋™ ์ธ์‹ํ•˜๋Š” ์—‘์…€ ์ž๋™ํ™” ๊ฐ€์ด๋“œ


๐Ÿง  GPT-4o๋ž€?

OpenAI์˜ ์ตœ์‹  ๋ชจ๋ธ GPT-4o๋Š” ์ด๋ฏธ์ง€ ์ธ์‹ ๋Šฅ๋ ฅ์ด ๊ฐ•ํ™”๋˜์–ด, ํ•œ๊ตญ์–ด ์†๊ธ€์”จ๋„ ๋›ฐ์–ด๋‚œ ์ •ํ™•๋„๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ถŒ, ์˜์ˆ˜์ฆ, ์‚ฌ์—…์ž๋“ฑ๋ก์ฆ ๊ฐ™์€ ์ด๋ฏธ์ง€ ๋ฌธ์„œ์—์„œ๋„ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์–ด, ์—‘์…€๊ณผ์˜ ์—ฐ๋™์œผ๋กœ ์—…๋ฌด ์ž๋™ํ™”๊ฐ€ ํ•œ์ธต ๋” ๋ฐœ์ „ํ•˜๊ฒŒ ๋˜์—ˆ์ฃ .


๐Ÿ’ก ์—‘์…€๊ณผ GPT-4o๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด ๊ฐ€๋Šฅํ•œ ์ผ๋“ค

  • ๐Ÿ“„ ์ด๋ฏธ์ง€ ๋ฌธ์„œ์—์„œ ํ…์ŠคํŠธ ์ž๋™ ์ถ”์ถœ
  • โœ๏ธ ์†๊ธ€์”จ ์ธ์‹๋„ ๊ฐ€๋Šฅํ•˜์—ฌ ์ƒํ™œ๊ธฐ๋ก๋ถ€๋‚˜ ์ˆ˜๊ธฐ ๋ฉ”๋ชจ ์ฒ˜๋ฆฌ์— ํƒ์›”
  • ๐Ÿ“ง ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋งž์ถคํ˜• ์ด๋ฉ”์ผ ์ž๋™ ์ž‘์„ฑ
  • ๐Ÿ“Š ์—‘์…€์— ์ž๋™ ์ž…๋ ฅ ํ›„ ๋น ๋ฅธ ์ •๋ฆฌ ๋ฐ ๋ถ„์„

๐Ÿ” ์ค€๋น„๋ฌผ

  1. OpenAI API ํ‚ค
    ๐Ÿ‘‰ https://platform.openai.com/signup
    ๊ณ„์ • ์ƒ์„ฑ ํ›„ ๊ฒฐ์ œ ์ˆ˜๋‹จ ๋“ฑ๋กํ•˜๋ฉด $5 ์ถฉ์ „๋งŒ์œผ๋กœ ์ˆ˜์ฒœ ๊ฑด ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
    ๋ฐœ๊ธ‰๋œ API ํ‚ค๋Š” ์—‘์…€ ๋งคํฌ๋กœ์— ์ง์ ‘ ์‚ฝ์ž…ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  2. ์—‘์…€์šฉ GPT ๋งคํฌ๋กœ ํŒŒ์ผ (.xlam)

๐Ÿ› ๏ธ .xlam ํŒŒ์ผ ๋งŒ๋“œ๋Š” ๋ฒ• (์ง์ ‘ ๋งŒ๋“ค๊ธฐ)

GPT-4o์™€ ์—‘์…€์„ ์—ฐ๋™ํ•˜๋ ค๋ฉด, ์—‘์…€ ๋งคํฌ๋กœ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ํŒŒ์ผ์ธ .xlam์„ ์ง์ ‘ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โœ… 1๋‹จ๊ณ„: ๋งคํฌ๋กœ ํŽธ์ง‘๊ธฐ ์—ด๊ธฐ

  • ์—‘์…€ ์—ด๊ธฐ โ†’ Alt + F11๋กœ VBA ํŽธ์ง‘๊ธฐ ์ง„์ž…
  • ๋ฉ”๋‰ด์—์„œ [์‚ฝ์ž…] > [๋ชจ๋“ˆ] ์„ ํƒ

โœ… 2๋‹จ๊ณ„: ์•„๋ž˜ ์ฝ”๋“œ ๋ถ™์—ฌ๋„ฃ๊ธฐ (์˜ˆ์‹œ)

vba
Function GetGPTResponse(prompt As String) As String
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")

Dim apiKey As String
apiKey = "YOUR_API_KEY" ' ์—ฌ๊ธฐ์— ๋ฐœ๊ธ‰๋ฐ›์€ API ํ‚ค ์ž…๋ ฅ

Dim url As String
url = "https://api.openai.com/v1/chat/completions"

Dim data As String
data = "{""model"":""gpt-4o"",""messages"":[{""role"":""user"",""content"":""" & prompt & """}]}"

With http
.Open "POST", url, False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "Authorization", "Bearer " & apiKey
.send data
GetGPTResponse = .responseText
End With
End Function

๐Ÿ“Œ API Key๋Š” ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•˜์„ธ์š”!

โœ… 3๋‹จ๊ณ„: ํŒŒ์ผ ์ €์žฅํ•˜๊ธฐ

  • [ํŒŒ์ผ] > [๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ €์žฅ] > ํŒŒ์ผ ํ˜•์‹: Excel ์ถ”๊ฐ€ ๊ธฐ๋Šฅ (*.xlam)
  • ์˜ˆ: GPT4o_Addin.xlam

โœ… 4๋‹จ๊ณ„: ์—‘์…€์— ๋“ฑ๋กํ•˜๊ธฐ

  • ์—‘์…€ > [ํŒŒ์ผ] > [์˜ต์…˜] > [์ถ”๊ฐ€ ๊ธฐ๋Šฅ] > ์•„๋ž˜ โ€˜Excel ์ถ”๊ฐ€ ๊ธฐ๋Šฅโ€™์—์„œ โ€˜์ด๋™โ€™ ํด๋ฆญ
  • ์ง์ ‘ ๋งŒ๋“  .xlam ํŒŒ์ผ ์ถ”๊ฐ€ ํ›„ ์ฒดํฌ

๐ŸŽฏ ์‹ค์ „ ์˜ˆ์‹œ

๐Ÿงพ ์˜์ˆ˜์ฆ ๋‚ด์—ญ ๋ถ„์„ ์ž๋™ํ™” ๋ฐฉ๋ฒ•

GPT-4o + ์—‘์…€ = ์˜์ˆ˜์ฆ ์ •๋ฆฌ์˜ ์‹ ์„ธ๊ณ„!


๐Ÿ“ธ 1๋‹จ๊ณ„: ์˜์ˆ˜์ฆ ์ด๋ฏธ์ง€ ์ค€๋น„

  • ์Šค๋งˆํŠธํฐ ์นด๋ฉ”๋ผ๋กœ ์ฐ๊ฑฐ๋‚˜ ์Šค์บ”ํ•œ ์˜์ˆ˜์ฆ ํŒŒ์ผ ์ค€๋น„
  • JPEG, PNG, PDF ๋ชจ๋‘ ๊ฐ€๋Šฅ (๋‹จ, PDF๋Š” ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ ํ•„์š”)
  • ๊ธ€์ž๊ฐ€ ๋šœ๋ ทํ•˜๊ณ  ๋ฐฐ๊ฒฝ์ด ๊นจ๋—ํ•œ ์ด๋ฏธ์ง€๊ฐ€ ์ธ์‹๋ฅ ์ด ๋†’์Šต๋‹ˆ๋‹ค

โœ… Tip: ์—ฌ๋Ÿฌ ์žฅ์˜ ์˜์ˆ˜์ฆ๋„ ๋ฐ˜๋ณต ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ โ€” ์ผ๊ด„ ์ž๋™ํ™” ๊ฐ€๋Šฅํ•ด์š”!


๐Ÿง  2๋‹จ๊ณ„: GPT-4o์— ๋ถ„์„ ์š”์ฒญํ•˜๊ธฐ

๐Ÿ“ฅ ์˜ˆ์‹œ ํ”„๋กฌํ”„ํŠธ (์˜๋ฌธ/ํ•œ๊ธ€ ํ˜ผ์šฉ ๊ฐ€๋Šฅ)
plaintext
์ด ์˜์ˆ˜์ฆ์—์„œ ๋‚ ์งœ, ํ•ญ๋ชฉ, ๊ธˆ์•ก, ์ดํ•ฉ๊ณ„๋ฅผ ํ‘œ ํ˜•์‹์œผ๋กœ ์ •๋ฆฌํ•ด์ค˜.
๐Ÿงพ GPT-4o์—๊ฒŒ ๋ณด๋‚ผ ์š”์ฒญ ๊ตฌ์กฐ (JSON ์˜ˆ์‹œ)
json
{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "์ด ์˜์ˆ˜์ฆ์—์„œ ๋‚ ์งœ, ํ•ญ๋ชฉ, ๊ธˆ์•ก์„ ์ถ”์ถœํ•ด์„œ ํ‘œ๋กœ ์ •๋ฆฌํ•ด์ค˜."
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,[์ด๋ฏธ์ง€ base64 ์ธ์ฝ”๋”ฉ]"
}
}
]
}
]
}

GPT-4o๋Š” ํ•ด๋‹น ์ด๋ฏธ์ง€์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ์‘๋‹ตํ•ด์ค๋‹ˆ๋‹ค:

plaintext
๋‚ ์งœ: 2025-03-29
ํ•ญ๋ชฉ | ๊ธˆ์•ก
----------------
์ฝœ๋ผ | 2,000์›
์ƒŒ๋“œ์œ„์น˜ | 3,500์›
์ดํ•ฉ๊ณ„: 5,500์›

๐Ÿ“Š 3๋‹จ๊ณ„: ์—‘์…€์— ์ž๋™ ์ •๋ฆฌ

GPT์˜ ์‘๋‹ต์„ ๊ฐ€๊ณตํ•ด์„œ ์—‘์…€์— ์•„๋ž˜์ฒ˜๋Ÿผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค:

๋‚ ์งœํ•ญ๋ชฉ๊ธˆ์•ก
2025-03-29์ฝœ๋ผ2000
2025-03-29์ƒŒ๋“œ์œ„์น˜3500

๊ทธ๋ฆฌ๊ณ  ์ดํ•ฉ๊ณ„๋Š” ์ž๋™ ์ˆ˜์‹์œผ๋กœ ๊ณ„์‚ฐ ๊ฐ€๋Šฅ:

excel
=SUM(C2:C100)

๐Ÿ” ๋ฐ˜๋ณต ์ž๋™ํ™” ํŒ

์—ฌ๋Ÿฌ ์žฅ์˜ ์˜์ˆ˜์ฆ์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด:

  1. ๐Ÿ“ ์ด๋ฏธ์ง€ ํŒŒ์ผ๋ช…์„ ๋ฆฌ์ŠคํŠธ๋กœ ์ƒ์„ฑ
  2. ๐Ÿ” For Each ๋ฃจํ”„๋กœ ํ•˜๋‚˜์”ฉ GPT-4o์— ๋ณด๋ƒ„
  3. ๐Ÿ“‹ ์—‘์…€์— ๊ฒฐ๊ณผ๋ฅผ ํ•œ ์ค„์”ฉ ์ถ”๊ฐ€

โœ… VBA ๋ฃจํ”„ ์˜ˆ์‹œ (๊ฐœ๋… ์ฝ”๋“œ)

vba
Sub ProcessReceipts()
Dim files As Variant
files = Array("receipt1.jpg", "receipt2.jpg", "receipt3.jpg")

Dim i As Integer
For i = 0 To UBound(files)
Dim result As String
result = GetGPTResponseFromImage(files(i), "์˜์ˆ˜์ฆ ํ•ญ๋ชฉ, ๊ธˆ์•ก, ๋‚ ์งœ๋ฅผ ํ‘œ๋กœ ์ •๋ฆฌํ•ด์ค˜.")
' ๊ฒฐ๊ณผ๋ฅผ ๋ถ„์„ํ•ด์„œ ์—‘์…€์— ํ•œ ์ค„์”ฉ ๋ถ™์—ฌ๋„ฃ๊ธฐ (ํŒŒ์‹ฑ ๋กœ์ง ํ•„์š”)
Next i
End Sub

๐Ÿง  GPT๊ฐ€ ์ž˜ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ?

  • ์ด๋ฏธ์ง€๊ฐ€ ํ๋ฆฟํ•˜๊ฑฐ๋‚˜ ๊ตฌ๊ฒจ์ง„ ๊ฒฝ์šฐ โ†’ ์žฌ์ดฌ์˜
  • ์†๊ธ€์”จ ์˜์ˆ˜์ฆ โ†’ ์ธ์‹๋ฅ  ๋‚ฎ์Œ (์ธ์‡„๋œ ์˜์ˆ˜์ฆ ์šฐ์„ )
  • ์ˆ˜์ž‘์—… ๋ณด์ • ํ•„์š” ์‹œ, ํ…์ŠคํŠธ ์ธ์‹ ๊ฒฐ๊ณผ๋งŒ ๋ฐ›์•„์„œ ์ˆ˜๋™ ์ •๋ฆฌ๋„ OK

๐Ÿ“‰ ์‚ฌ์šฉ ๋น„์šฉ์€?

  • 1,000ํ† ํฐ = ์•ฝ 6.7์›
  • ์ผ๋ฐ˜์ ์ธ ๋ฌธ์„œ ๋ถ„์„ ํ•˜๋‚˜๋‹น ์ˆ˜์‹ญ ์› ๋ฏธ๋งŒ์˜ ๋น„์šฉ
  • ์„ค์ •์—์„œ ํ† ํฐ ์‚ฌ์šฉ๋Ÿ‰ ๋ฐ ๋น„์šฉ๋„ ์‹ค์‹œ๊ฐ„ ํ™•์ธ ๊ฐ€๋Šฅ

๐Ÿ“ ๋งˆ๋ฌด๋ฆฌ

GPT-4o์™€ ์—‘์…€์˜ ๊ฒฐํ•ฉ์€ ๋‹จ์ˆœํ•œ ์ž๋™ํ™”๋ฅผ ๋„˜์–ด, ๋ฌธ์„œ ์ฒ˜๋ฆฌ์™€ ๋ฐ์ดํ„ฐ ๋ถ„์„์˜ AI ํ˜์‹ ์„ ๊ฐ€๋Šฅ์ผ€ ํ•ฉ๋‹ˆ๋‹ค.
๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” .xlam ํŒŒ์ผ๋งŒ ์žˆ์œผ๋ฉด, ๋ณต์žกํ•œ ์ฝ”๋”ฉ ์—†์ด๋„ ์—‘์…€์—์„œ ๋ฐ”๋กœ GPT๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”.

๋Œ“๊ธ€ ๋‚จ๊ธฐ๊ธฐ