이번 보안패치 이전에는 없던(몰랐던) 현상인데요.

- 없던 현상이 아니라 제가 몰랐을 수도 있겠네요. 이벤트 후에 제가 면밀히 살피지 못했을 수 있겠습니다.(댓글 등이 활발하게 발생하는 사이트라...)

- 2.0에서는 직접 불러오는게 안되는 줄 알고 쿼리해서 값을 가져왔으니 캐시와 무관하게 db에서 가져왔었으니 몰랐을 거구요.

 

쿼리는 해당 문서의 필드중 extra_vars 항목만 업데이트 하는 쿼리라 특별한 쿼리는 아닙니다.

기존에 즉시 반영된게 오히려 문제였는지 잘 모르겠는데요.

 

결론적으로는 쿼리 이후 해당 문서만 캐시 갱신을 해 주고 싶습니다. 

해당 문서번호로 캐시 재생성하게 해줄 수 있는 코드는 어떤 걸 넣어줘야 할까요?

 

검색해 보니

$cache_key = 'document_item:' . getNumberingPath($this->document_srl) . $this->document_srl;
Rhymix\Framework\Cache::delete($cache_key);

 

이런 답변을 찾았는데 추후에 문서모듈에서 직접 캐시를 비우는 기능을 추가할 수도 있다는 댓글의 내용이 바뀐 새로운 방법이 있을 수도 있을 것 같네요.

  • profile

    updateDocument()가 아닌 방법으로 문서 정보를 수정하면 캐시가 갱신되지 않는 것은 아주 오래 전부터 마찬가지입니다. 조회수, 추천수 정도만 그때그때 갱신되고 extra_vars처럼 내용이 많은 것은 캐시에 그대로 남아 있습니다. 이번 알림센터 보안패치와는 아무 관련이 없습니다.

     

    DocumentController::clearDocumentCache($document_srl);

     

    참고로 회원정보도 마찬가지입니다. 위의 코드에서 Document를 모두 Member로 바꾸면 회원정보 캐시를 강제로 갱신할 수 있습니다. 댓글이나 첨부파일은 캐시가 적용되어 있지 않으므로 갱신하는 함수가 따로 없습니다.

  • profile profile
    간단한 방법으로 새로 추가되었군요. 짧고 좋네요.
  • profile profile
    네. 원래부터 그런건데 제가 댓글이 활발한 곳이라 눈치를 못채고 있었던거 같네요.
    이번에 새롭게 적용하면서 눈치챘네요.
  • profile profile
    악... 1.9 사이트에도 아무생각없이 넣었더니 에러가 ㅋㅋㅋ