XETOWN

안개 골목

최신 웹 개발에 대한 이야기들을 나눠보세요. XE개발에 대해서도 배워볼 수 있습니다.
조회 수 282 추천 수 5 댓글 69
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

슈퍼캐시를 사용하면 files/cache/store 폴더의 용량이 폭발적으로 늘어나면서 캐시파일 재생성 도중 오류가 발생하는 경우가 종종 있습니다. 라이믹스는 캐시파일 재생성 방식이 달라서 그나마 괜찮은 편인데, XE는 먹통이 되거나 뭘 재시작해 달라는 이상한 메시지를 띄우곤 하지요.

 

오늘 깃허브에 올린 1.1 버전에서는 이 문제를 해결하기 위해 자체적으로 캐시파일을 관리하는 기능을 탑재했습니다. 앞으로 슈퍼캐시 모듈이 생성하는 파일은 모두 XE 캐시와 별도로 files/supercache 폴더에 저장되고, 오래된 파일은 가능하면 그때그때 지워 주도록 하여 용량도 어느 정도 조절이 됩니다.

 

캐시파일 삭제는 XE처럼 PHP로 모든 파일을 일일이 삭제하는 방식이 아니라 라이믹스처럼 exec 함수로 rm -rf (리눅스) 또는 rmdir /S /Q (윈도우) 명령 실행을 시도하고, 호스팅 환경의 특성상 이게 허용되지 않는 경우에만 일일이 삭제합니다. (만약 여기서 심각한 버그가 발생한다면 서버를 통째 날려먹을지도? ㄷㄷㄷ)

 

오브젝트 캐시 설정을 "파일(file)"로 해놓고 쓰시던 분은 1.1 버전으로 업데이트하신 후 "기본값(default)"으로 바꿔 보세요. 이후에도 한 번은 files/cache/store 폴더를 수동으로 지워 주셔야 할 수 있지만, 그 다음에는 좀 괜찮아질 것입니다.

 

단, 새로 만든 기능이기 때문에 서버 환경에 따라 오류가 발생할 수도 있습니다. 오류 발생시 최대한 자세한 기록을 남겨 주시면 슈퍼캐시와 관련된 문제인지 확인해 보겠습니다.

 

깃허브 저장소: https://github.com/kijin/xe-supercache

설치 경로: ./modules/supercache

설치 환경: XE 1.8 이상, PHP 5.3 이상 (일부 기능은 XE 최신 버전 또는 별도 코어수정 필요)

 

 

지금까지 제보된 문제

 

- 전체화면 캐시 사용시 일부 사이트에서 모바일 사용자에게 PC용 화면이 표시되는 경우가 있다고 합니다.

- "잘못된 이미지 요청 차단" 기능 사용시 일부 IE 구버전 사용자에게 오류가 표시된다고 합니다. 얼마 전에 해당 기능을 수정했는데, 그 후에도 계속 문제가 발생하는지는 모르겠습니다.

- 모듈 설정이나 스킨 설정을 변경해도 전체화면 캐시에는 적용되지 않습니다. 따로 캐시파일 재생성을 해주셔야 합니다. 어느 정도까지는 보완할 수 있겠지만, 모듈 설정이 워낙 다양해서 완벽한 대응은 힘들 것 같네요.

 

이 콘텐츠가 마음에 드셨다면 커피 한잔 (후원)

닫기
작가에게 커피 한잔(후원)을 사주세요.
TAG •

Who's 기진곰

profile

GitHub 아이디는 @kijin입니다. 사람을 위한 인터넷 생태계의 발전과 웹 보안에 많은 관심을 가지고 있습니다.

오픈소스 도로명주소 검색서버 및 API Postcodify를 개발, 운영하고 있습니다.

우리가 만들어 가는 XE의 새 이름, 라이믹스(Rhymix) 프로젝트에 참여하고 있습니다.

국내외 서버 및 클라우드서버 셋팅, 이전, 튜닝해 드립니다.

  • ?
    투데이서버 2016.10.20 21:53:20

    감사합니다^^

    메일로 문의하나 드렸으니 확인되시면 회신부탁드립니다.

  • ?
    투데이서버 2016.10.21 06:42:52

    정말 다좋은데 캐싱되기 이전에 실행할 수 있는 애드온이 있었으면 좋겠습니다.
    아이피차단애드온도 슈퍼캐쉬랑 충돌이 일어나서 무용지물이 됩니다..

     

    속도가 가장중요하겠지만 어쩃든 기존 애드온도 최상단에서 실행되어 캐싱이전에 뭔가의

    일을 할 수 있는 변수를 주시면 감사하겠습니다.


    애드온 자체가 슈퍼캐시의 실행이전에 뭔가 차단하거나 이동되거나 긴급한 상황변화를 주어야하는 경우에는 어떠한 변수를 줄 수 있도록 되었으면 정말 좋겠습니다.

  • profile
    기진곰 2016.10.21 14:10:27
    애드온 중에 성능을 무참하게 깎아먹는 것들이 워낙 많아서, 애드온 최초 실행 시점보다 먼저 슈퍼캐시가 작동하도록 만들어 두었습니다 ㅎㅎ 덕분에 저번에 알려드린 config.user.inc.php 외에는 끼어들 여지가 없지요.

    성능을 약간 포기하더라도 애드온 사용을 원하시는 분들을 위한 옵션 추가도 고려해 보겠습니다.
  • ?
    투데이서버 2016.10.21 16:54:50
    일단 말씀해주신대로 user.inc로 차단기능도 구현했구요
    ㅎㅎ
    감사합니다. 이 프로그램은 정말 지저스같은 프로그램입니다.
  • ?
    투데이 2016.10.25 04:25:25
    혹시 그누보드4용 슈퍼캐시도 제작하시나여?
    그누보드4용도 있으면 참좋을텐데요 ㅎㅎ.... 비슷한 기능찾기가 참힘드네요.
  • ?
    투데이 2016.10.27 18:03:41
    글을 비회원이 작성을해도 자기가 작성한글이 안보이고 전에 캐싱페이지가 계속 보이는 버그가 있사옵니다.
  • profile
    기진곰 2016.10.27 20:08:57
    새 글을 쓰면 해당 모듈의 전체화면 캐시를 자동으로 갱신하는 기능을 사용해 보세요.
    Cache-Control 헤더 기능을 켜놓은 경우에도 비슷한 증상이 발생할 수 있습니다.
  • ?
    투데이 2016.10.28 03:41:24
    일단 cache-control을 해제해보았습니다^^
  • ?
    투데이 2016.11.01 09:53:55

    실제 모바일 사용자로 캐싱을 구분하도록 하였습니다.
    혹시라도 모바일페이지를 따로 구분하지 않은 상태에서도 캐싱동작을 하기 위한 경우에
    참고해주세요.

     

    supercache.controller.php

    $is_mobile = Mobile::isFromMobilePhone() ? true : false;
    를 아래로 수정하면 실제 모바일을 체크하여 캐싱여부를 결정합니다.
    $is_mobile = Mobile::isMobileCheckByAgent() ? true : false;

  • profile
    기진곰 2016.11.01 11:22:03
    그렇게 바꾸면 모바일에서 PC모드 보기, PC에서 ?m=1으로 모바일 모드 테스트 등의 기능이 작동하지 않을 가능성이 있습니다.

    isMobileCheckByAgent는 무조건 디바이스가 모바일 기기인지만 체크하고,
    isFromMobilePhone은 사용자의 선택과 태블릿 여부 등을 종합적으로 판단합니다.
  • ?
    투데이 2016.11.01 11:50:53
    감사합니다^^ 자바스크립트가 정말 유용하네요 none 과 display ..
    자바 php html5 다 알아야 웹짤듯요
  • ?
    투데이 2016.11.03 01:41:47
    Cache-Control 헤더 사용 << 이거 체크하는게 이득일까요 아닐까요.
    체크했을때 글써도 캐시갱신이 안되는 문제가 있어서 해제했엇는데요.
    체크했을때가 속도가 훨씬빠르다는느낌을 받아서요 ㅎㅎ
  • profile
    기진곰 2016.11.03 11:23:40
    Cache-Control 헤더를 적용하면 같은 페이지를 다시 방문했을 때 아예 서버에 요청을 하지 않습니다. 아까 띄웠던 화면을 브라우저에서 캐싱해 두었다가 그대로 띄우죠. 당연히 엄청나게 빠르지만... 5분간은 뭔 짓을 해도 갱신이 안됩니다 ㅎㅎ
  • ?
    투데이 2016.11.03 02:32:19
    보면 cache-control 적용시 2ms 미적용시 200ms 차이가 엄청심함..
    근데 cache-control 사용시 갱신이 제대로 안되는경우발생..ㅠ.ㅠ
  • ?
    투데이 2016.11.03 22:40:25
    Cache-Control 헤더를 메인화면에만 사용할 수 있으면 정말 좋을듯하네용.
    게시판에는 누가 글을 썼는데 자기 글이 목록에없으면
    어 머지? 글이안써졋나? 라는 오해를 불러일으킬수잇어서...
  • profile
    기진곰 2016.11.14 17:23:51
    검토해 보았으나, 로그인 후에도 메인화면에서는 로그인하지 않은 것으로 보이는 문제가 있어서 보류합니다.
  • ?
    투데이 2016.11.13 18:13:36
    슈퍼캐시 사용시에 추천수도 실제랑 달라지는 문제가 있습니까?
    희안하게 추천해주신 회원님하고 추천수랑 상이한 현상이 있네여?
    무슨문제일까하다가 슈퍼캐시가 생각나서 글남겨봅니다 ㅠ.
  • ?
    투데이 2016.11.14 03:18:44
    슈퍼캐시에서 게시물 조회수를 갱신하면서 혹시 추천수에 영향을 끼칠 수 있는지 검토를 좀 부탁합니다.
  • profile
    기진곰 2016.11.14 17:22:46
    추천수는 건드리지 않습니다.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
247 개발이야기 포인트 선물 모듈 업데이트 중입니다 :) 6 newfile SimpleCode 2016.12.04 66
246 개발이야기 Nginx, Apache PageSpeed 모듈 7 우성군 2016.11.28 79
245 XE 개발팁 사이트 메뉴에 메뉴 타입 추가하는 방법 3 updatefile 갸라 2016.11.28 55
244 개발이야기 포인트 플러스 모듈 관리자 페이지 UI를 열심히 다듬고 있습니다. 1 file SimpleCode 2016.11.27 64
243 최신 웹소식 최근 국내 웹브라우저 점유율 8 file 휘즈 2016.10.19 151
» 개발이야기 슈퍼캐시 사용시 캐시파일 재생성 오류 패치 69 기진곰 2016.10.05 282
241 개발이야기 회원 차단 모듈 .. (수요조사) 20 구름이 2016.09.28 154
240 개발이야기 회원 차단 모듈 개발중.. 중간 잡담 21 구름이 2016.09.26 133
239 최신 웹소식 디도스 공격의 계절 13 기진곰 2016.09.24 196
238 최신 웹소식 삼성전자, 세계 최고 성능 ‘960 PRO’ 2TB 공개 12 하늘희 2016.09.21 153
237 개발이야기 로딩속도 0.01초에 도전합니다. (슈퍼캐시) 46 file 기진곰 2016.09.17 558
236 개발이야기 회원 메모 개발중... 중간 잡담 21 file 구름이 2016.09.12 169
235 소스공유 DLNA 서버 설치 (miniDLNA) 3 하늘희 2016.07.30 141
234 소스공유 CloudFlare DDNS 설정하기 (ddclient 이용) 1 하늘희 2016.07.27 126
233 XE 개발팁 레이아웃 경로 가져오기 윈컴이 2016.07.14 91
232 소스공유 제이쿼리 원형 프로그레스바입니다. 2 이온디 2016.06.18 146
231 소스공유 부트스트랩 그리드 템플릿 이온디 2016.06.18 78
230 소스공유 CSS로 그리는 아이콘입니다. 6 이온디 2016.06.18 132
229 소스공유 로딩바UI 스크립트 1 이온디 2016.06.18 106
228 최신 웹소식 삼성, Joyent (node.js 원래 개발사) 인수 1 기진곰 2016.06.16 256
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...