고객을 위해 최선을 다하는 Best PR 입니다

일반 게시판 새글 작성 후, 메인 페이지의 최신글 목록에 즉시 반영되지 않는 문제

페이지 정보

작성자 최고관리자 댓글 0건 조회 7회 작성일 26-06-24 18:44

본문

■ 증상

메인 페이지에서 latest() 함수를 이용하여 최신 게시물을 출력하고 있었으나, 게시판에 새 글을 작성한 후에도 메인 페이지의 최신글 목록에 즉시 반영되지 않는 문제가 발생하였습니다.

또한 latest() 함수의 출력 개수(rows) 값을 변경하면 일부 설정에서는 최신글이 정상적으로 표시되고, 다른 설정에서는 표시되지 않는 현상이 발생하였습니다.

예)

  • latest(..., 6, 30) : 정상 출력

  • latest(..., 10, 40) : 최신글 미반영

  • latest(..., 12, 30) : 정상 출력

■ 원인

latest.lib.php 파일의 캐시 처리 로직에서 cache_time 값과 관계없이 기존 캐시를 먼저 읽도록 구현되어 있었습니다.

기존 코드

if (G5_USE_CACHE) {
$caches = g5_get_cache($cache_file_name);
}

이로 인해 latest(..., 10, 40, 0) 과 같이 cache_time을 0으로 지정하더라도 기존 캐시 파일이 존재하면 해당 캐시를 계속 사용하게 되었습니다.

따라서 게시판에 새 글을 작성해도 최신 데이터가 아닌 이전 캐시 데이터가 출력되었으며, rows 또는 subject_len 값을 변경할 경우 캐시 파일명이 달라져 새로운 캐시가 생성되면서 정상적으로 표시되는 현상이 발생하였습니다.

■ 해결 방법

latest.lib.php 파일의 캐시 처리 조건을 수정하여 cache_time 값이 0인 경우에는 캐시를 사용하지 않도록 변경하였습니다.

수정 전

if (G5_USE_CACHE) {

수정 후

if (G5_USE_CACHE && $cache_time > 0) {

위 조건을 캐시 읽기 부분과 캐시 저장 부분 모두에 적용하였습니다.

또한 기존에 생성되어 있던 캐시 파일을 삭제한 후 테스트를 진행하였으며, 이후 게시판에 새 글을 작성하면 메인 페이지 최신글 영역에 즉시 반영되는 것을 확인하였습니다.

■ 결과

  • 게시글 작성 후 최신글 즉시 반영

  • 출력 개수(rows) 변경 여부와 관계없이 정상 동작

  • 불필요한 캐시 사용 방지

  • 최신글 영역의 실시간 데이터 표시 정상화

댓글목록

등록된 댓글이 없습니다.