티스토리 뷰

네트워크/HTTP

10. 캐시(1편)

Teus 2022. 6. 1. 13:14
728x90
반응형

2022 우아한스터디 "HTTP 완벽가이드"를 진행하면서

'HTTP 완벽 가이드' 책을 읽고, 글쓴이의 생각을 정리하는 글 입니다.

https://book.naver.com/bookdb/book_detail.nhn?bid=8509980 

 

HTTP 완벽 가이드

성공적인 웹 트랜잭션 뒤의 숨은 핵심, HTTP의 모든 것『HTTP 완벽 가이드』는 HTTP 규약이 어떻게 작동하고 웹 기반 애플리케이션을 개발하는 데 어떻게 사용하는지 설명하고, HTTP가 효율적으로 동

book.naver.com

 

1. Cache($)?

캐시는 컴퓨터과학에서 많은 분야에서 활용되는 단어 입니다.

 

CPU, DRAM, SSD 같은 H/W에서 Data I/O로 발생하는 병목을 해소하기 위해서 SRAM으로 구현된 고속 메모리를 사용됩니다.

 

이름부터 Cache인 이유는, 비싸기 때문이죠. H/W에서 사용되는 Cache는 비싸기 때문에, 많으면 좋음에도 불구하고 적은양만으로 최대의 효율을 추구합니다.

(최근에 AMD의 5800X3D같은 제품을 보면 Cache의 증가가 얼마나 성능을 향상시킬 수 있는지 알 수 있죠)

퀘이사존 AMD 라이젠 7 5800X3D 벤치마크 > 벤치마크 | 퀘이사존 (quasarzone.com)

 

퀘이사존 AMD 라이젠 7 5800X3D 벤치마크

3D V-Cache, 그게 얼마나 대단한 건데?AMD 라이젠 7 5800X3D 벤치마크    지난 2020년…

quasarzone.com

 

네트워크에서도 Cache가 존재합니다. 대신, H/W의 Cache와는 다르게 네트워크 I/O를 최소화 하기 위한 목적으로 사용된다고 할 수 있습니다.

 

2. 어떻게 쓰인는가?

Client의 Requests의 요청이 {A,B,C,D,E}의 Data를 요청한다고 가정해 봅니다.

 

Cache가 없다면 Requests요청이 올 때 마다 {A,B,C,D,E} 를 모두 네트워크로 전송해야 합니다.

 

네트워크 전송이 아무리 빠르다 하더라도, 빛의 속도로 인한 지연 + 인터넷 대역폭으로 인한 지연 + 먼 거리로 인한 지연등으로 네트워크 I/O는 느릭 속도의 원인이 됩니다.

 

하지만 A, B, D는 변하지 않는 데이터라면, {A, B, D}는 Client 기기 or Server보다 Client에 가까운 어딘가에 꼼쳐놓고, C와 E만 보내도 됩니다.

 

위처럼 특정 Data를 저장해 Server가 아니라, Client가 가까운 위치에 저장하는 방식을 네트워크 Cache라고 합니다.

 

3. Cache의 특징

3_1. Cache Hit / Miss

Client의 요청에 Cache된 Data가 있으면 Hit, 없으면 Miss라고 합니다.

 

Hit되면 좋겠지만, 모든 Data를 Cache할 수 없기 때문에 Cache Miss는 필연적으로 발생하고, 이때 Client쪽에서는 갑작스런 지연을 느끼게 됩니다.

 

3_2. 재검사

네트워크 Cache는 서버의 Data를 가까운 곳에 저장한다고 했습니다.

 

위에 {A, B, D}가 변하지 않는다고 이야기 했지만, 이후 Server의 패치 등으로 {A', B', D'}로 변할 수도 있는겁니다.

 

때문에, Cache의 LifeCycle을 설정하여 일정 주기가 지나면 해당 Cache가 Server의 그것과 같은지 재검사가 이뤄집니다.

 

이대 재검사가 이뤄지는 과정에서 서버와의 통신이 요구되기 때문에 지연이 발생하게 됩니다.

(재검사에서 실패하면 Cache를 갈아끼워야겠죠)

 

4. Cache는 그럼 어디있는가?

4_1. 개인컴퓨터 : 개인컴퓨터에 인터넷 브라우저, 스마트폰의 어플리캐이션 마다 임시파일 형태로 존재합니다.

(그래서 스마트폰의 카카오톡 을 보면 어플 용량보다 Cache의 크기가 어마어마하게 큰 것을 확일하실 수 있을겁니다)

 

이 경우에 기기 내부의 I/O를 통해서 Data가 전송되기 때문에 매우 빠르게 처리됩니다.

 

4_2. Proxy Cache : 지난장에서 다룬 Proxy의 일종으로, Server의 Data를 캐시하여 Client의 사용 지연 & Server의 트래픽을 최소화 하는 방법을로 사용됩니다. 

("현 시간부로 Proxy 중대장이 일괄 통제한다" 라고 이해하면 쉽습니다)

 

Proxy Cache의 경우 Cpu와 유사하게 계층적으로 L1, L2, L3 Cache와 같은 형태로 구축이 가능합니다.

 

대신, CPU의 경우 L1 -> L3으로 갈수록 용량이 커진 반면

 

Proxy Cache의 경우 L1 -> Local 네트워크, L2 -> Local 네트워크의 모임, L3 -> 광역통신망 처럼 점진적으로 외부 인터넷과 가까워지는 방식으로 계층을 구성합니다.

728x90
반응형

'네트워크 > HTTP' 카테고리의 다른 글

12. 게이트웨이  (0) 2022.06.05
11. 캐시(2편)  (0) 2022.06.01
9. Proxy(2편)  (0) 2022.05.31
8. Proxy(1편)  (0) 2022.05.27
7. Web Server  (0) 2022.05.26
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함