• Intellij IDE : JetBrains์—์„œ ๊ฐœ๋ฐœํ•œ ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์œผ๋กœ, ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•œ ์ž์›๊ณผ ํ’๋ถ€ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋„๊ตฌ์ด๋‹ค. ์ฃผ๋กœ Java๋ฅผ ์ด์šฉํ•œ ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ๋œ๋‹ค. ํ•„์ž๋Š” Ultimate ๋ฒ„์ „์„ ์ด๋ฏธ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด ํ•„์š”ํ•œ ์‚ฌ๋žŒ์€ Community ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋ฉด ๋˜๊ฒ ๋‹ค.

  • MySQL DB : ์˜คํ”ˆ ์†Œ์Šค ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์ธ๊ธฐ ์žˆ๋Š” ์‹œ์Šคํ…œ์ด๋‹ค. ์ฃผ๋กœ ์‹ ๋ขฐ์„ฑ, ์„ฑ๋Šฅ, ์œ ์—ฐ์„ฑ ๋ฐ ์‚ฌ์šฉ์ด ๊ฐ„ํŽธํ•ด ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค.

  • Java : ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ฒ˜์Œ์—๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ ์–ธ์–ด์˜€์œผ๋‚˜ ์ตœ๊ทผ์—๋Š” ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ๋ฒ”์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.

  • Spring : ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ด๋Š” ๊ตฌ์กฐ๋ฅผ ๋‹จ์ˆ˜ํ™”ํ•˜๊ณ  ๊ฐœ๋ฐœ์„ ์šฉ์ดํ•˜๊ฒŒ ๋งŒ๋“ค๋ฉฐ, ๋ชจ๋“ˆ, ์œ ์—ฐ์„ฑ, ํ™•์žฅ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

Redis

Redis๋Š” Remote Dictionary Server์˜ ์•ฝ์ž๋กœ, ์ธ๋ฉ”๋ชจ๋ฆฌ(In-memory) ๊ธฐ๋ฐ˜์˜ ๊ณ ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ €์žฅ์†Œ์ด๋‹ค. ์ฃผ๋กœ ์บ์‹ฑ, ์„ธ์…˜ ๊ด€๋ฆฌ, ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ๋“ฑ ๋‹ค์–‘ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ๋ฐ˜์˜ ๋น„๊ด€๊ณ„ํ˜•(NoSQL) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(DBMS)์ด๋‹ค.

๊ธฐ๋ณธ์ ์ธ flow

  1. Redis ์—ฐ๊ฒฐ ์ •๋ณด ์ฝ์Œ

  2. RedisTemplate์„ ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•˜์—ฌ Redis์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

  3. Spring Boot ์„œ๋น„์Šค์— RedisTemplate์„ ์ฃผ์ž…ํ•˜์—ฌ Redis๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

@Cacheable ๋ฉ”์„œ๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์บ์‹œ์— ์ €์žฅํ•˜์—ฌ, ๋™์ผ ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•œ๋‹ค.๏ปฟ

  • ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๊ธฐ ์ „์— ์บ์‹œ๋ฅผ ๋จผ์ € ํ™•์ธํ•œ๋‹ค.
  • ์บ์‹œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ์บ์‹œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•œ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ์บ์‹œ์— ์ €์žฅํ•œ๋‹ค.

@CacheEvict

๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์‹œ ํŠน์ • ํ‚ค๋‚˜ ์ „์ฒด ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.

  • ๋ฉ”์„œ๋“œ ์‹คํ–‰ ์ „ ๋˜๋Š” ํ›„์— ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ ๋“ฑ์˜ ์ž‘์—… ํ›„ ๊ธฐ์กด์˜ ์ž˜๋ชป๋œ ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.