보니까 CDN에서 불러오는 웹폰트는 memory cache로 들어가고, 제 사이트에 직접 업로드해서 불러오도록 한 웹폰트는 disk cache를 사용하는 거 같네요

 

구글링해 봤는데 일반적인 설명만 나오고 이런 경우에 관련된 건 안 나오는거 같은데요

 

특히 memory cache인 경우는 로딩속도가 0으로 나오는데, disk cache인 경우는 약간의 로딩속도가 발생하네요

 

무엇 때문에 이런 차이가 생기고 이 둘의 차이점이 뭔지 아시는 분 계신가요?

  • profile

    용량 차이 아닐까요? CDN에서 제공하는 영어 웹폰트는 대개 수십KB밖에 안 되지만, 직접 업로드하는 한글 웹폰트는 몇MB씩 되는 경우를 종종 봅니다. 메모리에 적재해 두기에는 부담스러운 용량이지요.

  • profile ?
    아, 둘다 똑같은 폰트파일들인데 하나는 CDN에서 불러오고 하나는 웹서버에 직접 올려서 실험해봤더니 저렇게 되네요. 전자는 수십kb 정도의 영문폰트와 2메가 정도의 한글폰트 모두 메모리 캐시로 표시되는데, 후자는 둘 다 디스크 캐시로 나오네요.

    디스크 캐시로 들어갈 경우 페이지 로딩시에 글자가 한 박자씩 느리게 떠서 못쓰겠더군요.
  • ? profile

    CDN에서 불러올 때 캐시 관련 헤더들이 어떻게 나오는지 확인해 보시고, 서버에서 직접 가져올 때도 최대한 비슷한 헤더가 출력되도록 해보세요.

    그래도 안된다면 그냥 크롬 맘입니다. 전지전능하신 구글님이 어떤 건 메모리에 캐싱하고 어떤 건 디스크에 캐싱하시겠다는데 우리가 감히 반항할 수 있을까요 ㅋㅋ

  • profile
    disk(하드디스크)와 memory(램)는 결국 저장장치를 뜻합니다.

    하지만, 이 저장장치의 작동방식이 disk보다는 memory가 훨신 빠릅니다.

    이 둘의 차이는 disk의 경우 우리가 흔히 보는 영상 파일 CSS파일 등등의 파일형태의 데이터를 저장하고 그 데이터를 읽어온다고 생각하면 memory에는 그냥 말그대로의 데이터들의 저장공간으로 인식하시면 될것 같네요. (파일이 아닌형태의??? 뭔가 이론상으로는 안맞지만 대부분 저장되었다 지워졌다 반복하게 됩니다..램은..)

    아무튼 이 실행에서 memory에 cache으로 저장한다는건 해당 파일을 memory(램)에 파일을 저장시켜 disk에 저장된 데이터 대신에 램을 사용하여 캐시를 불러오게 되죠.

    앞서 말씀드린것처럼 disk보단 memory가 일반적으로 훨신 빠른대신 가용용량이 적으니 램용량이 부족하게 되면 오히려 램에서 처리해야할 데이터가 처리할 수 없어서 오히려 부하가 생기니 disk으로 cache를 넘기기도 해요..

    뭐 부연설명으로 이해쉽게 설명할려고 보니 이렇게..됬네요 :)
  • profile ?
    혹시 메모리 캐시는 브라우저를 끄거나 컴퓨터를 끄면 전부 삭제되나요? 그렇다면 사이트 접속시마다 웹폰트를 다시 다운받는건지..
  • ? profile
    메모리는 컴퓨터에서 실행된 프로그램에서 빠르게 주고받을 데이터를 메모리에 저장합니다.

    그래서 용량이 늘어날수도 줄어들 수도 있는데 이는 보통 항상 브라우저를 끄게되면 메모리도 더이상 필요가 없으니 데이터를 메모리에 가용할 필요가 없어서 지워지죠.

    보통 작업관리자 열어서 프로세서 실행항목 보면 얼마나의 메모리가 잇고 프로그램을 끌때마다 어떻게 되는지 볼 수 있을 것 같아요.
  • profile ?
    아 물론 그건 알고 있지만, 궁금한게 브라우저에서 메모리 캐시를 자동으로 디스크에도 저장해놓고 나중에 불러오는건지, 아님 그때 다운받아서 램에 상주시켜놓기만 했다가 (따로 저장하지 않고) 브라우저 종료시 지워버리는지 궁금하네요

    후자라면 결국 브라우저 껐다가 다시 켜거나 PC 재부팅할 때마다 웹폰트를 계속 새로 다운받아야 한다는거라..
  • ? profile
    그건 개발사마다 다 틀릴듯 해요.

    저도 그거까진 어떻게 설계되어있는지는 몰라요..ㅠㅠ
  • profile
    제 생각에 amp 에 정의된 곳은 메모리캐쉬 하는 것 같습니다.