바뀜

둘러보기로 가기 검색하러 가기
잔글
19~24번째 줄에서 드루팔의 철학이 느껴집니다. static cache를 사용함으로써 로그인한 사용자가 단순히 게시물을 읽을 때는 DB에 쿼리를 전송하지 않고 캐시에 저장된 값을 가져다가 사용합니다. 이렇게 함으로써 성능을 향상시킬 수 있습니다. 앞서 설명한 것 처럼 초기에 사용자가 게시물에 대한 직접적인 갱신 작업을 수행하지 않으면 기본적으로 $cache[$nid] == 0을 설정합니다. 따라서 초기에 작성한 글을 보기만 하고 30일이 지나지 않은 글들은 기본적으로 새로운 게시물로 보여준다는 것을 알 수 있습니다.
$timestamp는 게시물을 읽은 마지막 시각입니다. 만약 $cache[$nid] == 0인 상황에서 $timestamp > HISTORY_READ_LIMIT 조건이 성립한다면 30일 이전의 타임스탬프 값(HISTORY_READ_LIMIT) 보다 큰 $timestamp의 값을 가진 게시물은 'new' 상태로 표시합니다. 따라서 30일 이후에는 $cache[$nid] == 0 && $timestamp > HISTORY_READ_LIMIT 조건이 성립하지 않으므로 게시물의 상태를 더 이상 'new'로 표시하지 않습니다. 참고로 앞에서 설명한 history_cron 함수는 데이터베이스의 history 테이블에서 timestamp < HISTORY_READ_LIMIT인 투플을 삭제합니다
특정 이벤트가 발생했을 때 드루팔에 저장된 timestamp(사용자가 게시물을 읽은 시각)가 갱신됩니다. 이벤트는 사용자가 포럼에 새로운 글을 작성하거나 새로운 게시물로 표시된 포스트에 댓글을 작성했을 때를 의미합니다. 즉 게시물에 대한 갱신 작업이 발생해야 history_write 함수 호출 및 데이터베이스에 새로운 쿼리를 전송하기 때문에 드루팔 캐시에 저장된 timestamp 값도 갱신됩니다. 따라서 더 이상 게시물의 상태가 'new'로 표시되지 않습니다.

둘러보기 메뉴