4. Cache - Browser Cache
Browser
(Client)
브라우저 캐시
● Resource에 대한 Cache
개발할 때 생각해야할 것
● 이 자원이 얼마나 자주 바뀌는가
○ Parameter 설정
○ Cache를 안하도록 설정
● 이 자원이 언제 바뀌는가
○ Hash 값
6. Cache - Web Server Cache
Browser
(Client)
Web Server(httpd, nginx, tomcat) 캐시
- 응답에 대한 Cache
Web Server
사례 : http://jojoldu.tistory.com/60
7. Cache - Web Server Cache
Browser
(Client)
Web Server(httpd, nginx, tomcat) 캐시
- 응답에 대한 Cache
개발할 때 생각해야할 것
● 응답 값이 얼마나 자주 바뀌는가
● 응답 값이 언제 바뀌는가
● 어플리케이션에 해당 응답 값을 반환하는데 얼마나 많은 비용이 들어
● 브라우저 캐시는 어떻게 되고 있는가
Web Server
8. Cache - Web Server Cache
Browser
(Client)
Web Server Application
Browser
(Client)
X
Cache
9. Cache - Application Cache
Browser
(Client)
Application 캐시
- 데이터에 대한 캐시
개발할 때 생각해야 하는 것
● 데이터가 얼마나 자주 바뀌는가
● 데이터가 언제 바뀌는가
● 데이터를 가져오는데 어느정도의 비용이 드는가
● 사용자 체감 속도
Web ServerApplication
10. Cache - Application Cache
Browser
(Client)
Web Server Application
Browser
(Client)
Cache
DB
API
X
X
11. Cache - Application Cache
Browser
(Client)
1. Application Memory Cache
- 객체나 필드를 저장
Web ServerApplication
12. Cache - Application Cache
Browser
(Client)
2. Ehcache
● XML, Annotation 기반(프로그래밍 기반으로도 작성은 가
능)
Web ServerApplication
13. Cache - Application Cache
Browser
(Client)
2. Ehcache
● Cache Size 지정 가능
● Cache 만료 시간 지정 가능
● Cache Module 지정 가능
● Cache 방식 지정 가능
○ LRU(default)
■ Size가 꽉 찼을 때 사용한지 가장 오래된 캐시
를 버린다.
○ LFU
■ Size가 꽉 찼을 때 저장된지 제일 오래된 캐시
를 버린다.
Web ServerApplication
14. Cache - Application Cache
Browser
(Client)
2. Ehcache
● 분산 캐시를 지원
Web Server
Applicati
onCach
e
Applicati
onCach
e
Applicati
onCach
e
Applicati
onCach
e
동기화
Application
15. Cache - Application Cache
Browser
(Client)
3. LoadingCache(Guava, Java8)
● 대부분 기능은 Ehcache 유사
● 프로그래밍 기반
Web ServerApplication
16. Cache - Application Cache - 갱신방식
1. Schedule Push
● 일정 시간을 주기로 데이터를 보낸다
Application API
일정 시간마다 전
송
17. Cache - Application Cache - 갱신방식
2. Schedule Polling
● 일정 시간을 주기로 데이터를 가져온다
Application API
일정 시간마다 요
청
18. Cache - Application Cache - 갱신방식
3. Event Push
● 특정 이벤트가 발생하면 데이터를 보낸다
Application API Event
Admin or private API
Message Queue
(RabbitMQ, Kafka 등)
19. Cache - Application Cache - 갱신방식
4. Event Polling
● 특정 이벤트가 발생하면 데이터를 가져온다
Application APIEvent
Admin or private API
Message Queue
(RabbitMQ, Kafka 등)
20. Cache - Application Cache - 갱신방식
Event Queue 사용 장점
● 메시지 전송 이벤트에 대한 신뢰성 보장
● 메시지 이벤트 순서에 대한 보장
API Push 방식에 대한 단점
● API는 데이터를 요청하면 보내주는 일에만 집중해야 함.
● 데이터를 받아야하는 서버가 늘어나면 추가 작업 해줘야 함.
● Event Queue 사용 장점을 활용할 수 없다.(PUSH에 대한 신뢰성과 순서가 보장 안되
므로)
21. Cache - NoSql
Browser
(Client)
● 데이터를 가공하여, NoSql에 저장해놓고 Cache 용도로 사용
하기도 함.
● 데이터를 읽고 쓰는 속도가 RDBMS에 비해 빠름.
● 보통 실시간 데이터를 사용
○ ex) 좋아요 Count, 조회수Web ServerApplication