guest.PNG

 

비로그인 : 풀페이지 캐시

 

 

 

 

 

 

member2.PNG

 

로그인 : 위젯캐시들의 슈퍼캐시 적용

 

 

 

로그인 상태에서도 메인페이지 뭐 훌륭합니다. 좋은 서버 쓰시는 분들은 아마 더 빠를겁니다.

이번 업데이트의 핵심은 위젯캐시 기능이겠죠.

 

추후 글쓰기,삭제 등에서 관련 위젯들을 바로 갱신하는 기능도 추가될 수 있다고 하니 그때 또한번 뭔가 캐시의 혁명이 또 있을지 모르겠습니다 ㅋㅋ

 

참고로 저희는 메인페이지가 거의 위젯들로 만들어져 있는 페이지라 캐시의 도움이 많이 필요한 구성입니다.

Atachment
첨부
  • Lv37

    페이지 자체의 로딩 시간은 큰 차이가 없고, 요청 수도 비슷한데 Finish 시간이 10배나 차이나네요 ㄷㄷㄷ

  • Lv37 Lv30
    finish는 살짝 무시해주세요 ㅋㅋ 저때 아마 구글아날리틱스나 뭐 외부로딩이 잠깐 문제가 있었을 수 있어요 ㅋㅋ
  • Lv37 Lv30
    다시 캡쳐해서 교체했습니다 ㅋㅋㅋ
  • Lv24
    후후후 나도 슬슬 써볼가...(는 어케사용하는 것일까.. 방법을알려주세연!~?)
  • Lv24 Lv30
    다운로드 그리고 업로드 사용! ㅋㅋㅋㅋㅋㅋㅋㅋ
  • 슈퍼캐시가 좋군요!?!
    언젠가 한번 사용해 봐야 겠습니다.
  • Lv30
    커뮤니티에는 빛과 같은 자료라고나 할까요 ㅋㅋ
  • ?
    전체화면 캐시 어떻게 사용하시는지 모르겠는데 비로그인 이용자에게는 새 글이나 댓글이 바로바로 안 보여질 수도 있지 않나요? 일단 그래서 로봇만 적용되도록 설정해놨는데...
  • ? Lv30

    새글과 댓글이 굉장히 리젠이 빠르다고 한다면 문제가? 될 수도 있지만 캐시시간도 설정이 가능하기때문에 문제가 되지 않습니다. 걱정이 되신다면 1분으로 짧게 설정해보세요. 1분정도 새글이 늦게 올라온다해서 사이트에 굉장한 문제가 되거나 하지 않습니다.

    저희는 5분으로 설정해 놓았구요. 대신 메인페이지만 새글,새댓글이 작성되면 갱신이 되도록 슈퍼캐시에서 제공하는 옵션을 사용해서 5분이 도달 하지 않더라도 말씀하신 우려는 발생하지 않습니다.

     

    5분 동안 소강상태에 있었다면 슈퍼캐시 덕분에 모든 방문자가 굉장히 빠른 페이지접속을 하게 되는 것 입니다. 소강상태가 해제 되었다면(리젠이발생) 갱신을 시켜주니 어차피 5분이 무력화 되구요.

     

    아참, 저희는 비회원에게 빠른 댓글 리젠까지는 제공할 필요 없다고 판단해서 댓글이 신규로 작성되어도 메인페이지는 갱신하지 않는것으로 해서 운영방향을 정했습니다.

  • Lv30 ?
    전체화면 캐시 기간을 300초로 설정해 두고, "문서 작성시 자동 갱신" 이랑 "댓글 작성시 자동 갱신" 을 설정해 두면 새 글이나 댓글이 올라오면 300초 이내에도 자동으로 갱신돼서 비 로그인 이용자에게도 바로바로 보여지는 시스템인가요?

    근데 "해당 문서 페이지" 랑 "해당 게시판"이 어떻게 다른건지.. 전자는 각 문서를 열람했을 때 세부 페이지고 후자는 게시판 목록을 말하는건가요? 그럼 게시물을 열람했을 때 하단으로 스크롤하면 보여지는 게시판 목록은 전자인지 후자인지 헷갈리네요

    글구 웹지기님은 문서/댓글 작성시 자동 갱신 대상을 어떤 것들로 설정해 놓으셨나요? "사이트 메인 화면" 이것만 해놓으신 건가요? 그럼 게시판 세부 목록으로 들어가보면 새로 올라온 글이 안 보이지는 않나요?
  • ? Lv30

    비로그인의 전체화면 캐시와 위젯캐시는 다릅니다.
    비로그인은 전체화면 캐시로 접근하셔야 하구요. 여기에 설정한 시간이 300초라면 300초 동안 캐싱된게 비로그인 방문자에게 제공 됩니다.
    다만 전체화면 캐시 기능중 새글,새댓글 작성이 되면 메인페이지를 갱신할지 옵션이 있습니다. 이걸 활용하시면 됩니다.

    게시판은 목록일거구요. 문서페이지는 해당 문서일 겁니다. 문서 자체가 전체화면캐시로 제공되기 때문에 수정이 되면 갱신을 할지 옵션이 필요한거구요.

    저희는 사이트메인과 문서페이지,목록 정도만 갱신하도록 해놓았습니다.

     

    댓글 작성시에는 해당문서만 갱신하도록 해놓았구요.

  • Lv30 ?
    사이트 메인+문서페이지+목록 갱신하려고 하면 세가지 모두(해당 문서 페이지, 해당 게시판, 사이트 메인 화면) 체크해야 하지 않나요?

    이거 되게 헷갈리는데... 만약에 제가 어떤 글을 읽고 있는데 누군가가 새 글을 작성했다면

    "문서 작성시 자동 갱신" 대상을 "해당 문서 페이지"만으로 설정해놨으면 게시판 목록에는 반영이 안 되므로 캐시기간이 만료되기 전까지는 해당 글이 보이지 않는건가요?

    그리고 "전체화면 캐시 대상"을 "각 게시판(모듈)의 목록 화면" 만 설정하고 "개별 문서 페이지"는 설정하지 않는다면, 문서/댓글 작성시 자동 갱신 대상에 "해당 문서 페이지"를 설정할 필요는 없게 되는 건가요? 개별 문서 페이지는 캐싱되지 않았으니..

    (자꾸 질문드리는 것 같아 죄송합니다;;)
  • ? Lv30

    글 작성시 갱신은 그렇게 해 놓았습니다. 새글이 올라오면 메인페이지,목록,해당문서 세가지가 갱신됩니다.

    댓글은 그럴 필요성을 못느껴 문서만 갱신되도록 해 놓았구요.

     

    사실 캐시효율은 이렇게 갱신하는 것이 아닌 그냥 무조건 캐시된 것을 계속 보여주는게 제일 좋습니다. 다만 아쉬움을 해소하는 타협점에서 갱신 기능을 사용하는 것 뿐이죠.

     

    비로그인 대상자들에게 약간 수분 정도 늦게 정보가 제공된다고 크게 사이트가 평가가 나빠지거나 하지 않는다고 보는 입장이에요.

    익명을 추구하는 사이트에서도 비로그인 대상자에게는 최근 댓글은 아예 보여주지 않는 곳도 많으니까요. 저희는 그렇게 까지 차별하는 건 아니니까요.

  • Lv30 ?
    그렇다면 댓글 작성시 문서 페이지만 갱신되면 예컨대 어떤 문서에 댓글이 5개였다가 방금 5개가 더 달려서 10개가 되었다면 게시판 목록에서는 계속 5개로 나오고 그 게시물을 열람하면 새로 달린 댓글들이 보이는 건가요?

    디시인사이드 하다 보면 어떤 게시물의 댓글수가 50개로 보이는데 실제로 눌러 보면 100개도 넘어가는 일들이 많은데 이것도 이런 식으로 캐싱해서 그런건가 하는 생각이 드네요
  • ? Lv30
    네. 맞습니다. 이렇게 캐싱하시는게 자원을 효율적으로 모든 사용자들에게 제공하면서 우호적인 회원들에게 더 할당하는 방법일 겁니다.

    메인페이지 위젯을 설정해서 써라라는 조언은 이런 자료가 나오기 전부터 강조하는 부분이었는데요. 왜냐면 부하를 엄청 줄일 수 있기 때문이고 다만 그로인한 약간 딜레이되는 정보전달 부분은 성능향상을 이해 희생하는 것으로 보는 것이죠.

    하지만 성능을 조금 더 떨어뜨리고 희생을 하지 않는 방법이 필요한 신규업데이트가 생겼을때 캐시를 무력화 하는 옵션인거죠. 이런 옵션 없이 그동안 위젯 캐시를 사용했었다면 지금 슈퍼캐시의 경우 비로그인에게 한정된 캐시 기술이지만 진일보한 방법입니다.

    추후 위젯캐시도 이 기술이 도입될 수 있다고 살짝 언급을 하신 만큼 로그인 대상자에게도 비슷한 갱신 방법이 적용될 수도 있습니다.
  • ? Lv30
    지금 댓글 읽음 표시가 캐시가 적용되어 살짝 읽은 시간보다 늦게 표시된다해서 사이트에 중대한 문제가 발생하지 않듯 저는 캐시라는게 정말 일정부분 손해를 감수하더라도 꼭 적용해서 사용해야 한다고 보고 있어요.
  • Lv30 ?
    이거 실제로 해보니까 새 글이나 댓글이 등록되면 자동으로 갱신되기 때문에 실제 유저 경험상으로는 차이를 못 느낄 정도네요

    일단 댓글 작성시에도 게시판 목록도 갱신되도록 해 놨네요. 실제 댓글 수랑 목록에서 보여지는 수가 차이가 나면 불편할 거 같아서..

    이러면 사용자가 댓글 하나 작성할 때마다 캐시가 갱신되기 때문에 효율은 떨어질 거 같은데.. 혹시 너무 자주 댓글이 달리면 캐시 설정 안 할 때보다 오히려 부하가 증가할지 걱정되긴 하네요
  • ? Lv30
    캐시 설정 안할때보다 오히려 부하가 증가하지는 않습니다. 캐시설정 안하면 db에서 바로 읽어오면서 부하가 심하거든요.

    하지만 갱신이벤트가 발생했을대 새로 캐시를 생성해 내면 말씀하신대로 불편하다는 것을 해소시켜줄 수 있죠. 캐시효율은 많이 떨어집니다. 왜냐면 그냥 html 수준을 뿌려줄 것을 db를 조회해서 보여주는 캐싱작업이 한번 이루어지기 때문이죠. .

    걱정하신 오히려 부하가 증가하는 염려는 안하셔도 됩니다.
  • Lv37

    힌트 드렸던 대로 게시판에 글을 쓰면 해당 게시판을 참조하는 위젯들을 자동으로 갱신하는 기능을 조금 전 커밋했습니다. module_srl 또는 module_srls 속성을 사용하여 모듈 목록을 지정하는 위젯만 정상 처리가 됩니다. 사용하시는 위젯들 중 다른 속성을 사용하는 것이 있다면 알려주세요.

  • Lv37 Lv30
    댓글 작성시 자동 갱신
    예 아니오

    새 댓글 작성, 수정, 삭제 등이 일어나면 해당 게시판을 참조하는 위젯을 자동으로 갱신합니다.
    주의 회원들의 활동이 많은 사이트에서는 캐시 효율이 낮아질 수 있습니다.

    컨텐츠위젯과 컨텐츠확장위젯으로 메인에 최신글을 뿌려주고 있습니다.
    위 댓글 작성시 자동갱신 옵션을 사용시 새 댓글이 달리면 메인의 새글위젯이 갱신 되나요?

    즉, 댓글 자체를 추출하는 게 아닌 상황이긴 하나 최신글에 댓글숫자가 영향을 받는 케이스라서요.
  • Lv37 Lv30
    해당 기능 적용해 주셔서 일단 관련 위젯들을 일괄로 1200초로 세팅해 봤습니다.
  • Lv30 Lv37
    XE에 기본 포함된 컨텐츠 위젯은 잘 갱신되고요, 다른 위젯들은 아직 충분히 확인되지 않았습니다. 댓글 작성시 갱신되는지 확인 부탁드립니다 ^^
  • Lv37 Lv30
    아.. 그러면 댓글을 출력하고 있지 않고 게시글을 출력하고 있어도 댓글이 달리면 갱신이되어 댓글수가 갱신되어 표시된다는 거네요.
  • Lv30 Lv37
    네, 좀더 세부적으로 설정할 수 있도록 해보려다가 너무 복잡해질 것 같아서 그냥 두었습니다.

    리젠이 아주 많은 사이트라면 댓글 작성시 갱신을 꺼두고 위젯 캐시 기간을 줄이는 것이 낫고요, 그렇지 않다면 갱신을 켜두고 위젯 캐시 기간을 길게 잡아두시는 것이 낫습니다.
  • Lv37 Lv30
    저는 지금이 더 좋습니다. 세부적으로 설정할 필요 없을 거 같구요. 회원들에게는 메인페이지 정보를 업데이때 제대로 전달해 주고 싶은 상황이라 댓글 달리면 각 위젯 업데이트 되는게 좋습니다.

    그리고 저희는 생각보다 리젠이 아주 많지는 않기때문에 1200초로 길게 잡아서 테스트 해보려고 합니다.
  • Lv37 Lv30

    혹시 부하가 일시에 몰리는거 방지하기위해 랜덤하게 시간차 두고 위젯캐시 재생성하게 하신건가요? 동시에 갱신이 안되어서 깜작 놀랬는데 조금 후에 갱신이 되네요 ㅋ
    예를 들면 사이드에 댓글을 직접 출력하고 중앙에 제목출력하는 쪽 댓글수가 안맞아서 갱신 안되는건가! 라고 지켜 봤더니 아니네요 ㅋㅋ

     

    두개가 다른 위젯이라 깜짝 놀랬습니다 ㅋ

  • Lv30 Lv37
    네, 위젯에 따라 지정해 둔 시간에서 -20%부터 +10%까지 차이가 있을 수 있습니다.
    물론 새 글 때문에 갱신할 때는 시간차 없이 즉시 갱신됩니다.
  • Lv37 Lv30
    새글이 등록될 때는 전 위젯이 동시
    댓글이 등록될때는 위와 같은 시간차

    이게 맞나요??? 새글도 한꺼번에 갱신하려면 부하가 좀 걸리지는 않을까요?
  • Lv30 Lv37
    아, 표현이 잘못되었네요. 새 글이나 댓글이나 마찬가지입니다.

    좀더 자세히 설명드리자면 캐시 기간이 다 되어서 갱신하는 경우에는 -20%에서 +10% 사이의 시간차가 적용되고, 새 글이나 댓글 때문에 갱신할 때는 시간차가 최대 5초로 제한됩니다. 새 글이나 댓글 등록시 자동 갱신을 원하시는 분들은 즉시 갱신되기를 원하실 거라고 가정했습니다.
  • Lv37 Lv30

    한가지 추가로 궁금한게 있습니다.
    새글 등록 시 즉시 갱신된다고 하셨는데요.

    저희는 게시판목록에서 위젯을 게시판마다 사용을 합니다. (15개 라고 가정)
    새글 등록으로 인해 저 위젯들이 갱신이 이루어 질텐데요.

    각 게시판 목록 방문자가 생길때 그 방문자로 하여금 갱신이 이루어 지는 건가요?
    아니면 서버 스스로 갱신을 해 놓고 기다리는건가요?

     

    1.글작성자

    2.해당 위젯 페이지 접근자.

  • Lv30 Lv37
    캐시는 게으른 것이 미덕입니다 ㅋㅋ "이거 갱신해라"라고 표시만 해 놓고, 실제로 그 위젯을 봐야 하는 방문자가 나타날 때까지 기다립니다.
  • Lv37 Lv30
    네. 예상한게 맞았네요! ㅋㅋ
  • Lv37 Lv30
    그럼 마지막 입니다!!!!!!!
    메인페이지는 위젯이 몰려있습니다.
    글,댓글 작성시 즉시 갱신이라 하더라도 방문자 1인에게 몰빵은 안되는거죠???
  • Lv30 Lv37
    모든 위젯이 같은 모듈을 참조한다면 몰빵이 될 수도 있습니다. 상당히 바쁜 사이트가 아니라면 5초 안에 여러 명이 들어와서 하나씩 갱신시켜 주기를 기대하기는 어렵겠죠.
  • Lv37 Lv30
    아.. 1명이라도 5초 안에 여러번 이라면 저는 여러명으로 본거구요. 동일인이라도요 ㅋㅋ
    요청이 단번에 몰리지는 않는다는거네요. 잘 알겠습니다.