Skip to main content

Command Palette

Search for a command to run...

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

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

Nice to meet u :) Im Backend Developer

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

๋‚ ์”จ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์˜ท์ฐจ๋ฆผ์„ ์ถ”์ฒœํ•ด์ฃผ๋Š” ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด 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 ์‚ฌ์šฉ ์„ค์ •๋œ ํ”„๋กœ์ ํŠธ ์„ ํƒ

  • ๊ฒฐ๊ณผ

์ถœ์ฒ˜

PROJECT

Part 1 of 4
Up next

[Project] ๋‚ ์”จ์— ๋งž๋Š” ์˜ท ์ถ”์ฒœ ํ”„๋กœ์ ํŠธ: Selenium์€ ์ •๋ง ํ•„์š”ํ•œ ์„ ํƒ์ด์—ˆ์„๊นŒ? - ํฌ๋กค๋ง ์‚ฝ์งˆ ๊ธฐ๋ก

โœ๏ธ ์ž‘์„ฑํ•˜๊ฒŒ ๋œ ์ด์œ  ๋‚ ์”จ์— ๋”ฐ๋ผ ์˜ท์„ ์ถ”์ฒœํ•ด์ฃผ๋Š” ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๋ฉด์„œ, ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ตฌ๋งค ๋งํฌ์—์„œ ์˜ท ์ •๋ณด( ๋Œ€ํ‘œ์ด๋ฏธ์ง€, ์ƒํ’ˆ๋ช… )๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ–ˆ๋‹ค. ์ฒ˜์Œ์— ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ๋™์  ํŽ˜์ด์ง€๋กœ ํŒ๋‹จํ–ˆ๊ณ , ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ Selenium์„ ๋„์ž…ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ฒฐ์ •์ด ๊ณผ์—ฐ ์ตœ์„ ์ด์—ˆ๋Š”์ง€๋Š” ์ˆ˜๋งŽ์€ ์‹œํ–‰์ฐฉ์˜ค ๋์—์•ผ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๐Ÿ•ธ๏ธ Selenium์„ ์„ ํƒํ•œ ์ด์œ  ๋™์  ํŽ˜์ด์ง€๋Š” Jsoup์œผ๋กœ ํฌ๋กค๋ง์ด ์–ด๋ ต๋‹ค๋Š” ์ธ์‹์œผ๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ Selenium์„ ...

More from this blog

[Spring] N+1๋ฌธ์ œ ๋ฐœ์ƒ๊ณผ ๋ถ„์„

โœ๏ธ ์ž‘์„ฑํ•˜๊ฒŒ ๋œ ์ด์œ  ์˜ท์„ ๊ด€๋ฆฌํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ Cloth ์—”ํ‹ฐํ‹ฐ์™€ ๊ทธ์— ์—ฐ๊ด€๋œ ClothWithAttributes, Attribute ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ์กฐํšŒํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ–ˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ ์—ฐ๊ด€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ๋งˆ๋‹ค ์ฟผ๋ฆฌ๊ฐ€ ํญ๋ฐœ์ ์œผ๋กœ ์ฆ๊ฐ€(N+1 ๋ฌธ์ œ) ํ•˜๋ฉฐ, ์„ฑ๋Šฅ์ด ๊ธ‰๊ฒฉํžˆ ์ €ํ•˜๋˜๋Š” ์ƒํ™ฉ์„ ๋งˆ์ฃผํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. Spring JPA์˜ ๋Œ€ํ‘œ์ ์ธ ๋ฌธ์ œ๋กœ N+1์ž„์„ ์•Œ๊ณ ์žˆ์—ˆ์ง€๋งŒ, ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ Fetch Join๋ฐ–์— ๋ชฐ๋ž๋‹ค. ์ง€์—ฐ๋กœ๋”ฉ๋˜๋Š” ํ•„๋“œ๋ฅผ ์—”ํ‹ฐ...

Sep 17, 20256 min read
[Spring] N+1๋ฌธ์ œ ๋ฐœ์ƒ๊ณผ ๋ถ„์„

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋ณธ ๊ฐœ๋… ์ •๋ฆฌ

1๏ธโƒฃ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DB) & DBMS DB (Database): ์ผ์ •ํ•œ ๊ทœ์น™(์Šคํ‚ค๋งˆ)์— ๋”ฐ๋ผ ๊ตฌ์กฐํ™”๋˜์–ด ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ. DBMS (Database Management System): DB๋ฅผ ์ œ์–ด/๊ด€๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด. ํŠน์ง•: ์‹ค์‹œ๊ฐ„ ์ ‘๊ทผ ๊ฐ€๋Šฅ, ๋™์‹œ ๊ณต์œ  ๊ฐ€๋Šฅ. ๊ตฌ์กฐ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค โ†’ DBMS โ†’ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ โ†’ ์‚ฌ์šฉ์ž 2๏ธโƒฃ ์—”ํ‹ฐํ‹ฐ(Entity) & ๋ฆด๋ ˆ์ด์…˜(Relation) ์—”ํ‹ฐํ‹ฐ: ์—ฌ๋Ÿฌ ์†์„ฑ์„ ๊ฐ€์ง„ "๊ฐœ์ฒด"...

Aug 5, 20252 min read
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋ณธ ๊ฐœ๋… ์ •๋ฆฌ

[Project] ๋‚ ์”จ์— ๋งž๋Š” ์˜ท ์ถ”์ฒœ ์„œ๋น„์Šค : ์ง€๊ทธ์žฌ๊ทธ ํฌ๋กค๋ง ์—ฌ์ • ๊ธฐ๋ก (1) ChromeDriver๋ฅผ EC2์— ์„ค์น˜ํ•˜๊ธฐ

โœ๏ธ ์ž‘์„ฑํ•˜๊ฒŒ ๋œ ์ด์œ  ๋ฌด์‹ ์‚ฌ, 29cm๋Š” Jsoup์œผ๋กœ ์ถฉ๋ถ„ํžˆ ํฌ๋กค๋ง์ด ๊ฐ€๋Šฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ZigZag๋„ ๋‹น์—ฐํžˆ Jsoup์œผ๋กœ ์ฒ˜๋ฆฌ๋  ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ–ˆ๋‹ค. ๋ฌด์‹ ์‚ฌ, 29cm์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ <script> ํƒœ๊ทธ ์•ˆ์— ๋“ค์–ด์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒโ€ฆ ์˜ˆ์ƒ์€ ๋ณด๊ธฐ ์ข‹๊ฒŒ ๋น—๋‚˜๊ฐ”๋‹ค. ๐Ÿงช ํ˜„์ƒ โœ… ๋กœ์ปฌ ํฌ๋กค๋ง โ†’ ์ •์ƒ ์ž‘๋™ Jsoup์œผ๋กœ script ํƒœ๊ทธ ๋‚ด์—์„œ ๋Œ€ํ‘œ ์ด๋ฏธ์ง€์™€ ์ƒํ’ˆ๋ช…์„ ์ž˜ ์ถ”์ถœ ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ๋Š” ์•„๋ฌด ๋ฌธ์ œ ์—†์ด ์ž‘๋™ โŒ A...

Jul 30, 20253 min read
[Project] ๋‚ ์”จ์— ๋งž๋Š” ์˜ท ์ถ”์ฒœ ์„œ๋น„์Šค : ์ง€๊ทธ์žฌ๊ทธ ํฌ๋กค๋ง ์—ฌ์ • ๊ธฐ๋ก (1) ChromeDriver๋ฅผ EC2์— ์„ค์น˜ํ•˜๊ธฐ

[Project] ๋‚ ์”จ์— ๋งž๋Š” ์˜ท ์ถ”์ฒœ ํ”„๋กœ์ ํŠธ: Selenium์€ ์ •๋ง ํ•„์š”ํ•œ ์„ ํƒ์ด์—ˆ์„๊นŒ? - ํฌ๋กค๋ง ์‚ฝ์งˆ ๊ธฐ๋ก

โœ๏ธ ์ž‘์„ฑํ•˜๊ฒŒ ๋œ ์ด์œ  ๋‚ ์”จ์— ๋”ฐ๋ผ ์˜ท์„ ์ถ”์ฒœํ•ด์ฃผ๋Š” ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๋ฉด์„œ, ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ตฌ๋งค ๋งํฌ์—์„œ ์˜ท ์ •๋ณด( ๋Œ€ํ‘œ์ด๋ฏธ์ง€, ์ƒํ’ˆ๋ช… )๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ–ˆ๋‹ค. ์ฒ˜์Œ์— ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ๋™์  ํŽ˜์ด์ง€๋กœ ํŒ๋‹จํ–ˆ๊ณ , ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ Selenium์„ ๋„์ž…ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ฒฐ์ •์ด ๊ณผ์—ฐ ์ตœ์„ ์ด์—ˆ๋Š”์ง€๋Š” ์ˆ˜๋งŽ์€ ์‹œํ–‰์ฐฉ์˜ค ๋์—์•ผ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๐Ÿ•ธ๏ธ Selenium์„ ์„ ํƒํ•œ ์ด์œ  ๋™์  ํŽ˜์ด์ง€๋Š” Jsoup์œผ๋กœ ํฌ๋กค๋ง์ด ์–ด๋ ต๋‹ค๋Š” ์ธ์‹์œผ๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ Selenium์„ ...

Jul 28, 20254 min read
[Project] ๋‚ ์”จ์— ๋งž๋Š” ์˜ท ์ถ”์ฒœ ํ”„๋กœ์ ํŠธ: Selenium์€ ์ •๋ง ํ•„์š”ํ•œ ์„ ํƒ์ด์—ˆ์„๊นŒ? - ํฌ๋กค๋ง ์‚ฝ์งˆ ๊ธฐ๋ก

[Spring] @Cacheable, @CachePut, @CacheEvict

์บ์‹œ๋Š” ์„œ๋ฒ„์˜ ๋ถ€๋‹ด์„ ์ค„์ด๊ณ  ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ๋ฐ˜๋ณต์ ์œผ๋กœ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ ์šฉ์ดํ•˜๋‹ค. โœ… ์„ค์ • @EnableCaching @Configuration public class CacheConfig { ... } โœ… ์บ์‹œ ๋งค๋‹ˆ์ € ๋นˆ ์ถ”๊ฐ€ ์บ์‹œ๋ฅผ ๊ด€๋ฆฌํ•ด ์ค„ CacheManager๋ฅผ ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•œ๋‹ค. ConcurrentMapCacheManager : Java์˜ ConcurrentHashMap์„ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ ...

Jul 19, 20252 min read
[Spring] @Cacheable, @CachePut, @CacheEvict

Soyulia's Blog

49 posts