커뮤니티토픽게시판

모든 종류의 캐시는 사실 하드웨어나 시스템의 한계를 트릭으로 성능을 향상시키는 것입니다.

 

트릭이라는게 모든 대상에게 성능향상을 주지는 못합니다. 캐시의 원리가 그렇죠. 정적페이지 라면 캐시 개념 자체가 대입될 필요도 없겠죠.

 

캐시라는 게 동적인 페이지를 어느 한순간의 상황을 일정 기간동안 동일하게 제공하므로서 새로운 정보를 확인하는 시간과 자원을 절약하므로서 빠른 성능으로 응답해 주는 것 입니다.

 

이런 캐시의 원천적 한계 때문에 제공하는 대상도 제한적이고 페이지의 요소에서도 제한적으로 적용이 되어야 합니다.

일부 캐시 기술에서는 페이지 내에서 캐시할 곳 아닐 곳 구분해서 운용하는 기술이 사용되고는 있지만 저희 RXE에서 모듈형태로 사용할 수 있는 것은 없습니다.

 

이렇다 보니 전체화면을 캐시할때 고려할 상황이 무척 많아집니다. 누군가에게는 안보여줘야 하는데 캐시가 되어 보여지게 되니 그것을 예외처리하고 하다 보면 캐시의 효율은 조금씩 떨어지기 마련입니다. 이건 캐시를 구현한 기술의 문제라기 보다는 캐시 자체의 구조적 한계인거죠.

 

PC,모바일,웹,앱,크롤러,쿠키 등 다양한 상황을 고려해서 사용하지 않으면 낭패를 볼 수 있는게 캐시된 화면을 보여주는 것입니다. 캐시되었다는건 이미 다른 누군가가 본 화면을 찰칵하고 찍어 놓은 것인데 이게 내가 볼 화면과 정확히 일치 하지 않으면 문제의 발생이 될 수도 있다는 것 입니다.

 

물론 캐시가 만료되기 전까지 많은 대상에게 빠르게 화면을 제공할 수 있는 큰 장점이 있습니다. 그래서 저희도 오늘까지 계속 사용을 했는데요.  오늘 부로 여러가지 고려사항을 고려하지 않고 그냥 실시간 화면(위젯에의한 캐시 제외)을 제공하는 것으로 결정했습니다. 결정하게 된 이유는 전체화면 캐시를 제공하지 않더라도 충분히 빠르게 출력을 제공할 수 있기 때문입니다. 

 

사실 슈퍼캐시라는 모듈의 개발 취지나 사용을 권장하는 부분은 전체화면캐시 가 아니란 것 알고 계신가요? @기진곰님 께서도 자주 밝히셨지만 게시판 캐시만 잘 써도 서버 자원소모를 엄청 줄이고 속도를 많이 개선할 수 있다고 하셨습니다. 

 

전체화면캐시는 그냥 서비스적인 것이라고 생각하시는게 어쩌면 더 옳은? 판단 일 수 있다고 생각합니다. 서버 자체가 워낙 느린 경우 전체회면 캐시로 캐시된 이후 속도차가 극적으로 나다보니 오히려 전체화면캐시 기능에 더 체감적으로 만족감을 느낄 수 있다고 생각되구요.

 

저희는 뭐 전체화면캐시 제공하지 않아도 충분하다고(로긴해서 사용하는 회원들은 어차피 늘 전체화면 캐시 없이 이용중이니..) 판단 이제 전체화면 캐시는 종료합니다.

 

타운도 전체화면 캐시는 사용 안하지는 제법? 되었네요.

글쓴이 웹지기

profile
XE와 라이믹스를 운영하며 알게된 노하우를 공유합니다.
https://rxtip.kr/ 라이믹스 꿀팁
  • profile
    완전 대형 사이트가 아닌이상은..

    전체화면 캐싱에 효과가 있을지는 미비하죠 ㅎㅎ

    특히 회원제가 주된 목적이면요 ㅎㅎ
  • profile profile
    네. 회원제 이다보니 비회원에게만 제공하는 전체화면 캐싱 효과는 매력이 좀 덜해지네요. 그리고 사실 본문에도 언급했지만 세세한 부분 고려 안하면 이상해 지는 경우도 많아요.
  • profile

    "페이지 내에서 캐시할 곳 아닐 곳 구분해서 운용하는 기술"

     

    원래 위젯 캐시가 이런 용도로 사용되었어야 하지요. 메인화면이나 사이드바에 들어가는 최근글, 인기글 목록뿐 아니라 게시물 하단에 추가되는 작성자 프로필, 관련글, 댓글폼, 하단 목록 등 페이지상의 모든 구성요소를 위젯이라고 생각한다면 얼마든지 독립적으로 캐싱할 수 있을 것입니다. XE에서는 이런 것들이 대부분 스킨에 박혀 있거나 애드온으로 구현되어서 캐시 적용이 어렵다는 것이 안타까울 뿐입니다. 예를 들면 로그인 정보 표시하는 부분도 원래 위젯이었는데 언젠가부터 그냥 레이아웃에 박아 버리더군요. (한편, 워드프레스는 위젯 개념이 상당히 잘 잡혀 있음에도 불구하고 위젯 캐시가 없고 오직 전체화면 캐시에만 의존합니다 ㅠㅠ)

     

    아무튼 전체화면캐시는 0.01초라는 벤치마크를 달성하기 위한 기믹에 가까우니ㅋㅋㅋ 실질적으로 도움이 되는 게시판 캐시와 위젯 캐시를 잘 활용하고 계시다면 전체화면 캐시는 없어도 됩니다.

  • profile profile
    네. 위젯캐시는 각 위젯별로 캐시 시간을 각각 줄 수 있으니 페이지 내에서 원하는 위젯만 캐시할 수는 있죠. 그건 과거부터 지금까지도 잘 쓰고 있구요. 풀페이지 캐시의 경우 캐시영역을 제외하거나 하는 캐시서버 기술이 있어서 흥미롭긴 했습니다. 물론 그것도 예외처리 중의 하나라 복잡해지긴 매 한가지이긴 하죠.

    캐시 안될때 캐시될때 속도가 다른데 캐시될때 빠른 속도체크를 하고 만족하는건 자기위안이 아닌가 하는 생각이 사용하는 내내 들긴 했습니다.

    위젯캐시,게시판캐시로 훌륭한 것 같습니다. 그동안 전체화면캐시 못버렸던거 워낙 서버가 그지 같았었던지라 ㅋ
  • profile profile
    저희는 PC의 경우 로그인정보의 경우 위젯으로 사용하긴 하나 그 정보가 사실 개인의 정보를 쿼리하는거라 큰 부담이 없어서 오히려 캐시 시간을 일부러 안주고 있어요. 그냥 포인트가 되었던 뭐가 되었던 실시간으로 바뀌는 것을 즐기게 캐시시간 없이 제공합니다.