DB 페이징 문제 해결

Y·2023년 9월 6일
0

문제해결

목록 보기
2/2

이번에도 php 코드를 볼 일이 생겼다(...)
페이징 처리를 하는 문제였는데, 중간에 삭제된 글이 있으면 게시글이 중복적으로 나타나는 문제였다.
코드를 살펴보니 존재하는 게시글의 dbindex를 저장한 파일이 있고, 그 파일을 읽어와서 현재 쿼리로 넘어온 페이지숫자의 인덱스 게시글부터 한 페이지에 해당하는 개수의 페이지를 보여주는 식이었다. 그 후에 <, > 버튼을 누르면 현재 페이지숫자에서 한 페이지에 해당하는 개수의 페이지를 더한 값의 페이지, 현재 페이지숫자에서 한 페이지에 해당하는 개수의 페이지를 뺀 값의 페이지를 호출하는 식이었다. (인덱스 번호 내림차순 정렬)
즉, 페이지를 삭제했을 때 인덱스 값의 업데이트는 없는데 호출은 단순하게 페이지 당 개수를 더하고 빼는 형식으로 하고 있으니 중간에 삭제된 페이지가 있으면 문제가 발생하는 것이었다.
따라서 dbindex를 읽어오는 과정에서 현재 페이지의 직전 페이지까지를 배열로 저장해서 이전 페이지의 인덱스 값을 받아오는 방식으로 수정했다. (이후 페이지는 마지막 인덱스를 찾은 후에 한 번만 더 읽어오면 됐다.)
여러 방법을 고민하다가 이런 방법을 선택했는데, 자료구조와 같은 기초 CS지식이 필요한 이유에 대해서 깨달을 수 있었던 것 같다.

profile
개발자, 학생

0개의 댓글