[Project] ๐ŸŒค๏ธ ๋‚ ์”จ์— ๋งž๋Š” ์˜ท ์ถ”์ฒœ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ Gemini API ๋„์ž…๊ธฐ(with.Spring)

SoyuliaSoyulia
2 min read

๐Ÿ‘‹ ๊ธ€์„ ์“ฐ๊ฒŒ ๋œ ์ด์œ 

๋‚ ์”จ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์˜ท์ฐจ๋ฆผ์„ ์ถ”์ฒœํ•ด์ฃผ๋Š” ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด Google์˜ Gemini API๋ฅผ ๋„์ž…ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ API ํ‚ค๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๋Š” ์ดˆ๊ธฐ ๋‹จ๊ณ„๋ถ€ํ„ฐ ๊ธฐ์กด๊ณผ ๋‹ค๋ฅธ UI๋‚˜ ๋ฌธ์„œ ๊ตฌ์กฐ๋กœ ์ธํ•ด ํ˜ผ๋ž€์„ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ๊ธ€๋ง์œผ๋กœ ์ฐพ์€ ์ •๋ณด๋“ค์ด ํ˜„์žฌ์™€ ๋งž์ง€ ์•Š๊ฑฐ๋‚˜ ์ƒ๋žต๋œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„, "2025๋…„ ๊ธฐ์ค€์œผ๋กœ Gemini API๋ฅผ Spring ํ”„๋กœ์ ํŠธ์— ์—ฐ๋™"ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“ ์˜ˆ์ „์—” ์ด๋ ‡๊ฒŒ ๋ณด์˜€๋‹ค?

๋งŽ์€ ๋ธ”๋กœ๊ทธ๋‚˜ ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” Create API key in new project ์˜ต์…˜์„ ํด๋ฆญํ•ด์„œ ํ‚ค๋ฅผ ์‰ฝ๊ฒŒ ๋ฐœ๊ธ‰๋ฐ›๋Š” ๋ชจ์Šต์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ตœ๊ทผ์—๋Š” ์ด UI๊ฐ€ ๋ฐ”๋€Œ์—ˆ๊ฑฐ๋‚˜, ํ‚ค ๋ฐœ๊ธ‰ ์ ˆ์ฐจ ์ž์ฒด๊ฐ€ ํ†ตํ•ฉ ๋˜๋Š” ๋ณ€๊ฒฝ๋œ ๊ฒƒ์œผ๋กœ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.


๐Ÿ” API Key ๋ฐœ๊ธ‰ & ์‚ฝ์งˆ๊ธฐ

๐Ÿ“Œ 1๋‹จ๊ณ„: ํ”„๋กœ์ ํŠธ ์„ ํƒ

์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์˜ˆ์ „์—๋Š” "Create API key in new project" ๋ฒ„ํŠผ ํ•˜๋‚˜๋ฉด ์‰ฝ๊ฒŒ ๋๋‚ฌ๋˜ ๊ณผ์ •์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ 2025๋…„ ๊ธฐ์ค€์œผ๋กœ๋Š” ๋” ์ด์ƒ ๊ทธ๋Ÿฐ ์„ ํƒ์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋“œ์‹œ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜, ์ง์ ‘ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ์ง„ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ› ๏ธ 2๋‹จ๊ณ„: ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ & API ์‚ฌ์šฉ ์„ค์ •

  1. Google Cloud Console์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

  2. ์ƒ๋‹จ ๋ฉ”๋‰ด์—์„œ ํ”„๋กœ์ ํŠธ ์„ ํƒ โ†’ ์ƒˆ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    (์ €๋Š” ์กฐ์ง์„ ๋”ฐ๋กœ ์„ ํƒํ•˜์ง€ ์•Š๊ณ  ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.)

  3. ์ƒˆ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด, ๊ฒ€์ƒ‰์ฐฝ์— Gemini API๋ฅผ ์ž…๋ ฅํ•˜์—ฌ API๋ฅผ ์ฐพ์•„์ค๋‹ˆ๋‹ค.

  4. Gemini API ํŽ˜์ด์ง€์—์„œ โ€˜์‚ฌ์šฉโ€™ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ๋ช‡ ๋ถ„ ๊ธฐ๋‹ค๋ฆฌ๋ฉด ์‚ฌ์šฉ ์„ค์ •์ด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ”‘ 3๋‹จ๊ณ„: API ํ‚ค ๋ฐœ๊ธ‰

  1. ์™ผ์ชฝ ๋ฉ”๋‰ด์—์„œ API ๋ฐ ์„œ๋น„์Šค โ†’ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด(Credentials)๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. ์ƒ๋‹จ์˜ **โ€˜+ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋งŒ๋“ค๊ธฐโ€™ โ†’ โ€˜API ํ‚คโ€™**๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฐ”๋กœ ํ‚ค๊ฐ€ ๋ฐœ๊ธ‰๋ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Gemini API๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค๋ฅผ ์†์— ๋„ฃ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

โš ๏ธ ์‚ฝ์งˆ๋กœ๊ทธ: 403 Forbidden ์˜ค๋ฅ˜ ๋ฐœ์ƒ

์ฒ˜์Œ์— ๋ฐœ๊ธ‰๋ฐ›์€ API ํ‚ค๋ฅผ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

403 Forbidden: "Method doesn't allow unregistered callers (callers without established identity). Please use API Key or other form of API consumer identity to call this API."

์ฒ˜์Œ์—” ์š”์ฒญ ๋ฐฉ์‹์ด ์ž˜๋ชป๋œ ์ค„ ์•Œ๊ณ  ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ˆ˜์ •ํ–ˆ์ง€๋งŒ, ์›์ธ์€ **"์ž˜๋ชป๋œ API ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋˜ ๊ฒƒ"**์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ ์›์ธ์„ ํ•ด์„ํ•ด๋ณด๋ฉด Gemini API ์š”์ฒญ์— API Key๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜, ์ž˜๋ชป๋œ ๋ฐฉ์‹์œผ๋กœ ํฌํ•จ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

โ— ์‹ค์ œ ์›์ธ

  • ์ €๋Š” ์ด๋ฏธ VertexAI๋„ ๊ฐ™์€ ๊ณ„์ •์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ,

  • ๋ฌด์‹ฌ์ฝ” VertexAI์šฉ API ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด๋ฒ„๋ฆฐ ๊ฒƒ์ด ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

์ฆ‰, Gemini API ํ˜ธ์ถœ์—๋Š” Gemini API๋ฅผ ํ™œ์„ฑํ™”ํ•œ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐœ๊ธ‰๋ฐ›์€ API ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โœ… ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„

์ด์ œ ์•„๊นŒ Key ๋ฐœ๊ธ‰ ๋ฐ›๋Š” ์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€์„œ ํ”„๋กœ์ ํŠธ ์„ ํƒ ํ›„ ํ‚ค๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์œผ๋ฉด ๋์ด๋‹ค.

Gemini API ์‚ฌ์šฉ ์„ค์ •๋œ ํ”„๋กœ์ ํŠธ ์„ ํƒ

  • ๊ฒฐ๊ณผ

์ถœ์ฒ˜

0
Subscribe to my newsletter

Read articles from Soyulia directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Soyulia
Soyulia

Nice to meet u :) Im Backend Developer