캐싱
OpenRiroClient는 cache4k를 사용한 캐싱을 제공하며, 기본적으로 설정되어 있습니다.
설정
CacheConfig는 도메인별 캐시 정책을 관리합니다. 기본값이 설정되어 있으므로, 별도의 설정 없이 사용할 수 있습니다.
도메인 | 설명 | 기본 프리셋 |
|---|---|---|
| 게시판(공지사항 등) |
|
| 가정통신문 |
|
| 포트폴리오(과제 카테고리) |
|
| 포트폴리오 제출 목록 |
|
| 테이블(개인별 공지) |
|
| 수업(방과후학교 등) |
|
| 메뉴 목록 |
|
CachePolicy
CachePolicy는 캐시 정책을 정의하는 불변 데이터 클래스입니다. 세 가지 값을 갖습니다.
- softLimit
이 시간이 경과하면, 캐시를 다시 검증합니다.
- hardLimit
이 시간이 경과하면 무조건 캐시를 무효화합니다.
- maxEntries
캐시에 저장할 수 있는 최대 항목 수입니다.
0이면 제한이 없습니다. 기본값은0입니다.
CachePresets
CachePresets는 미리 정의된 캐시 정책입니다.
프리셋 | softLimit | hardLimit | 설명 |
|---|---|---|---|
| 0 | 0 | 캐시를 사용하지 않습니다. 매번 서버에서 데이터를 가져옵니다. |
| 무한 | 무한 | 캐시를 무효화하지 않습니다. |
| 1시간 | 24시간 | 일반 목록의 기본 정책입니다. |
| 30분 | 12시간 | 자주 갱신되는 목록의 기본 정책입니다. |
| 10분 | 무한 | 메뉴 캐시의 기본 정책입니다. |
list() 호출 시 프리셋을 직접 전달할 수도 있습니다.
런타임 설정 변경
CacheConfig의 각 도메인은 MutableCachePolicy로 되어 있어, 런타임에 캐시 정책을 변경할 수 있습니다.
변경된 정책은 이후 호출부터 적용됩니다.
캐시의 검증
캐시가 soft limit을 지났다면, 재검증을 수행합니다. 재검증은 다음과 같이 이루어집니다.
먼저 첫 페이지를 다시 요청합니다.
totalCount와 첫 페이지의 항목들을 얻습니다.totalCount가 캐시된totalCount와 다르거나, 첫 페이지의 항목들 중 하나라도 캐시된 항목과 다르다면, 캐시를 무효화합니다. 그렇지 않다면, 캐시된 데이터를 반환합니다.
hard limit을 지났다면, 무조건 캐시를 무효화합니다.
캐시 무효화
수동으로 캐시를 무효화할 수 있습니다.