From 2b8736e82cf5edb2ecc72f478738b26a64be8229 Mon Sep 17 00:00:00 2001 From: birdieHyun Date: Tue, 26 Sep 2023 17:56:13 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EB=82=B4=EC=9A=A9=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/2023-09-25-db-cache.md | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/_posts/2023-09-25-db-cache.md b/_posts/2023-09-25-db-cache.md index 9759272c2eb..1e8700e3de1 100644 --- a/_posts/2023-09-25-db-cache.md +++ b/_posts/2023-09-25-db-cache.md @@ -122,7 +122,33 @@ vUser 50을 기준으로 평균 TPS는 117.1이었습니다. TPS를 비교해보면, 117 TPS -> 2386 TPS로 1943.59%의 성능 향상이 이루어졌습니다. -## 6. 마무리 +## 6. Sequence Diagram 비교 + +어떻게 API 흐름이 변경되었는지 Sequence Diagram을 통해 알아보도록 하겠습니다. + +**Cache 적용 이전** +스크린샷 2023-09-26 오후 5 55 54 + +서버에서 조회가 일어날 때마다 같은 데이터를 반환할 수 있음에도 불구하고, 매번 DB에 접근하며 부하를 일으키게 됩니다. + +**Cache 적용 이후(Cache Hit)** +스크린샷 2023-09-26 오후 5 55 33 + + +이렇게 Cache에 저장된 데이터가 있다면, DB에 접근하지 않고도 훨씬 빠른 속도로 데이터를 응답할 수 있게 됩니다. + +만약 캐싱된 데이터가 없다면 어떻게 될까요? + +**Cache Miss** + +스크린샷 2023-09-26 오후 5 55 03 + +이처럼 캐시가 없을 경우 DB를 조회한 후 다시 캐싱해주는 과정을 거치게 됩니다. + +Cache Miss가 발생할 경우 이처럼 Sequence가 복잡해질 수 있고, 자주 사용되지 않는 데이터를 캐싱할 경우 리소스 낭비가 될 수 있기 때문에, 데이터 변경이 자주 일어나지 않고, 조회를 많이 하는 데이터만 캐싱하는 것이 성능상 유리합니다. + + +## 7. 마무리 이번 포스팅을 통해 DB에 캐시를 적용하는 방법을 알아보았습니다.