상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 스프링에서 캐시(Cache) 기능을 설정하고 사용하는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
스프링 프레임워크에서 캐시(Cache) 기능을 설정하고 사용하는 방법에 대해 설명하겠습니다. 캐시는 데이터베이스 조회나 복잡한 계산 결과를 메모리에 저장하여 성능을 향상시키는 데 유용합니다. 스프링은 다양한 캐시 구현체를 지원하며, 이를 쉽게 설정하고 사용할 수 있습니다. 1. 의존성 추가스프링 부트 <a href='https://sangseek.com/sangseeks/프로젝트/ko'>프로젝트</a>를 사용하고 있다면, `spring-boot-starter-cache` 의존성을 `pom.xml`에 추가합니다.```xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId></dependency>``` 2. 캐시 설정캐시를 사용하기 위해서는 먼저 캐시를 활성화해야 합니다. `@Enable<a href='https://sangseek.com/sangseeks/Caching/ko'>Caching</a>` 애너테이션을 사용하여 캐시 기능을 활성화합니다. 일반적으로 `@SpringBootApplication`이 있는 메인 클래스에 추가합니다.```javaimport org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cache.annotation.EnableCaching;@SpringBootApplication@EnableCachingpublic class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); }}``` 3. 캐시 구현체 선택스프링은 여러 캐시 구현체를 지원합니다. 기본적으로는 ConcurrentHashMap을 사용하지만, Ehcache, Caffeine, Redis 등 다양한 캐시 구현체를 사용할 수 있습니다. 이 예제에서는 Caffeine을 사용해 보겠습니다.Caffeine을 사용하기 위해서는 다음 의존성을 추가합니다.```xml<dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId></dependency>``` 4. 캐시 설정Caffeine 캐시를 설정하기 위해 `CacheManager`를 빈으로 등록합니다. 아래는 Caffeine 캐시 설정의 예입니다.```javaimport com.github.benmanes.caffeine.cache.Caffeine;import org.springframework.cache.CacheManager;import org.springframework.cache.annotation.EnableCaching;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import java.util.concurrent.TimeUnit;@Configuration@EnableCachingpublic class CacheConfig { @Bean public CacheManager cacheManager() { return new CaffeineCacheManager("items"); }}``` 5. 캐시 사용이제 캐시를 사용할 수 있습니다. 메서드에 `@Cacheable`, `@CachePut`, `@CacheEvict` 애너테이션을 사용하여 캐시를 적용할 수 있습니다.- `@Cacheable`: 메서드 결과를 캐시에 저장합니다.- `@CachePut`: 메서드 실행 결과를 캐시에 저장합니다. 항상 메서드를 실행합니다.- `@CacheEvict`: 캐시에서 데이터를 제거합니다.아래는 `@Cacheable`을 사용하는 예제입니다.```javaimport org.springframework.cache.annotation.Cacheable;import org.springframework.stereotype.Service;@Servicepublic class ItemService { @Cacheable("items") public Item getItemById(Long id) { // 데이터베이스에서 아이템을 조회하는 로직 return fetchItemFromDatabase(id); } private Item fetchItemFromDatabase(Long id) { // 실제 데이터베이스 조회 로직 return new Item(id, "Item Name"); }}``` 6. 캐시 무효화캐시를 무효화하려면 `@CacheEvict`를 사용합니다. 예를 들어, 아이템을 삭제하는 메서드에서 캐시를 무효화할 수 있습니다.```javaimport org.springframework.cache.annotation.CacheEvict;import org.springframework.stereotype.Service;@Servicepublic class ItemService { @CacheEvict(value = "items", key = "#id") public void deleteItem(Long id) { // 데이터베이스에서 아이템 삭제 로직 }}``` 7. 캐시 설정 확인캐시가 잘 작동하는지 확인하기 위해 로그를 추가하거나, 메서드 호출 시 캐시가 사용되는지 확인할 수 있습니다. 결론스프링에서 캐시 기능을 설정하고 사용하는 방법에 대해 알아보았습니다. 캐시를 적절히 활용하면 애플리케이션의 성능을 크게 향상시킬 수 있습니다. 다양한 캐시 구현체와 설정 옵션을 활용하여 최적의 성능을 이끌어내세요.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기