허원철의 개발 블로그

Spring Boot - Cache 본문

web

Spring Boot - Cache

허원철 2016. 12. 5. 08:25



이번 글은 Cache 에 대한 글 입니다.


What..?
- 캐시(cache, 문화어: 캐쉬, 고속완충기, 고속완충기억기)는 컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킵니다.(Wiki 참고)
- 위 내용과 같이 캐시라는 것을 spring boot 에서 사용할 수 있습니다. 예를 들면, DB 데이터를 반환하고자할 때 한번에 DB 커넥션으로 캐시에 쌓았다가 두번째 부터 캐시에 보관된 데이터를  반환하는 것 입니다.


When..?
- 일반적으로는 사용자가 등록하는 데이터가 아닌, 주로 관리자에 의해 반복적으로 제공되는 데이터를 사용자에게 보여주고 할 때, 사용된다고 합니다.



How..!
 1. Gradle 설정
 2. Application 설정
 3. Model & Component 설정
 4. Controller 설정
 5. Test & Result



1. Gradle 설정
 - Cache 사용을 위해 라이브리를 추가해줍니다. (오늘부터는.. Test 를 이용합니다...)
dependencies {
	compile('org.springframework.boot:spring-boot-starter-web')
	compile('org.springframework.boot:spring-boot-starter-cache')
	testCompile('org.springframework.boot:spring-boot-starter-test')
}

2. Application 설정



3. Model & Component 설정
- Model 과 Component를 추가해줍니다. 자세한 내용은 spring 공식 홈페이지를 참고하시기 바랍니다.


- 우리는 Controller에서 getByIsbn 와 refresh를 호출할 것 입니다. 

@Cacheable
- getByIsbn을 호출 하면 약 3초간 딜레이가 걸리고 Book 객체를 반환합니다.
- value는 캐시를 저장하고자 하는 이름입니다.
- key는 인자값으로 캐시에 키를 잡아 키를 통해 데이터를 가져올 것 입니다.

@CacheEvict
- refresh를 호출하면 value에 해당하는 캐시에 담아 있던 key값을 지웁니다.

4. Controller 설정
 - localhost:8080/ 와 localhost:8080/clear 를 이용해 테스트를 진행합니다.



5. Test & Result
- 시간 체크를 위해 @Before 와 @After 를 추가 해줍니다.



- 결과를 보고 말을 하자면
① isbn = a 인 값이 처음 호출 됩니다.( 캐시에 저장 )
② isbn = a 를 다시 호출 하게 되면, 캐시에 저장된 데이터를 가져 옵니다.
③ isbn = b 인 값이 처음 호출 됩니다.( 캐시에 저장 )
④ isbn = a 를 다시 호출 하게 되면, 캐시에 저장된 데이터를 가져 옵니다.
⑤ isbn = a 인 값을 캐시에서 삭제 합니다 ( 캐시에서 삭제 )
⑥ isbn = a 인 값을 다시 호출 됩니다.( 캐시에 저장 )



'web' 카테고리의 다른 글

Spring Boot - Swagger  (411) 2016.12.05
Spring Boot - Custom Jackson Converter  (415) 2016.12.05
Spring Boot - Test  (406) 2016.12.05
Spring Boot - AOP  (424) 2016.12.04
Spring Boot - Interceptor  (410) 2016.12.04
Comments