Spring/Spring Boot

[Spring] Spring Cache

sebarii 2024. 11. 2. 15:20

์Šคํ”„๋ง ์บ์‹œ(Spring Cache)

์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜์—ฌ ๋น ๋ฅธ ๊ฒ€์ƒ‰์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ

 

  • build.gradle
implementation 'org.springframework.boot:spring-boot-starter-cache

 

 

Spring Boot Cache ์–ด๋…ธํ…Œ์ด์…˜

@EnableCaching Spring Boot Cache๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ‘์บ์‹œ ํ™œ์„ฑํ™”’๋ฅผ ์œ„ํ•œ ์–ด๋…ธํ…Œ์ด์…˜์„ ์˜๋ฏธํ•œ๋‹ค
@CacheConfig ์บ์‹œ์ •๋ณด๋ฅผ ‘ํด๋ž˜์Šค ๋‹จ์œ„’๋กœ ์‚ฌ์šฉํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์–ด๋…ธํ…Œ์ด์…˜์„ ์˜๋ฏธํ•œ๋‹ค
@Cacheable ์บ์‹œ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ‘์ €์žฅ’ํ•˜๊ฑฐ๋‚˜ ‘์กฐํšŒ’ํ•ด์˜ค๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด๋‹ค
@CachePut ์บ์‹œ ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ‘์ €์žฅ’ํ•˜๋ฉฐ ์กด์žฌ ์‹œ ๊ฐฑ์‹ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด๋‹ค
@CacheEvict ์บ์‹œ ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ‘์‚ญ์ œ’ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด๋‹ค
@Caching ์—ฌ๋Ÿฌ ๊ฐœ์˜ ‘์บ์‹œ ์–ด๋…ธํ…Œ์ด์…˜’์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด๋‹ค

 

 

@Cacheable

  • ์บ์‹œ ์กฐํšŒ ๋ฐ ์ €์žฅ ๊ธฐ๋Šฅ: ํŠน์ • ๋ฉ”์„œ๋“œ์˜ ๊ฒฐ๊ณผ๋ฅผ ์บ์‹œ์— ์ €์žฅํ•˜๊ณ , ๋™์ผํ•œ ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๋•Œ ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์บ์‹œ์—์„œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์บ์‹œ ์กด์žฌ ์‹œ: ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  ์บ์‹œ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์บ์‹œ ๋ฏธ ์กด์žฌ ์‹œ: ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์บ์‹œ์— ์ €์žฅํ•œ ๋’ค ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.