봄꾸
1k
2020-03-25 17:03:03
3
183

스크롤 리스트 조회, 더보기 버튼 조회 데이터 추가, 삭제에 영향 안받는 쿼리는 어떻게 짜야 할까요..?


현재 데이터 조회를 일반적인 페이징이 아닌 스크롤과 더보기 버튼을 통해 이전 데이터에 덧붙혀서 리스트를 조회하는 방식을 사용하고 있는데요.


일반적인 페이징 같은 경우는 리스트를 조회하는 중에 새로운 데이터가 추가되거나 삭제되는 경우에 이전 페이지에서 봤던 게시글이 다음 페이지서 다시 보이거나(추가되서 페이지가 밀린 경우), 다음 페이지에서 보여야할 게시글이 다음 페이지에서 안보이거나(삭제되서 페이지가 당겨진 경우) 하는 경우가 있지만 페이징으로 처리하면 비교적 자연스럽게 넘어갈 수 있지만 스크롤이나 더보기 버튼으로 게시글이 계속 쌓이는 방식을 사용했을 때는 이와 같은 상황이 상당히 부자연스럽다고 생각합니다. 


현재 오라클 DB를 사용하고 있고 스크롤, 더보기 조회 방식으로 SELECT 쿼리에 ROW_NUMBER() 쿼리를 이용해서 데이터에 번호를 붙히고 다음 스크롤 및 더보기에서 조회할 쿼리에 붙힌 데이터 번호를 사용하여 WHERE 조건절에 NUM BETWEEN X AND Y 방식으로 다음 스크롤 및 더보기를 조회하고 있습니다.


쿼리를 어떻게 짜야 추가와 삭제에 모든 자연스럽게 대응할 수 있는 쿼리를 짤 수 있을까요?


둘 중에 하나에 대응할 수 있지만 두가지에 전부 대응하는 방법을 찾지 못하겠습니다.


제 선에는 전혀 생각이 안나서 방법을 모르겠습니다.. 방법이 있을까요...?

0
  • 답변 3

  • 한경닷컴교육센터
    3k
    2020-03-25 17:27:11

    미리 몇페이지분량을 읽어놓고 Client에서 관리하는 수 밖에 없지 않을까요 ?


    서버에 실시간으로 부르면 삭제된건 빠지고 나오니.. 그렇다고 다른 connection에서
    Commit을 안할수도 없구요

  • 훅인더훅
    544
    2020-03-25 18:02:02
    더보기 방식은 기존에 보여진 컨텐츠를 직접 컨트롤하지 않는 이상 이미 보여진 것에 대해서는 그냥 두는 게 맘 편하지 않을까요? 다만, 그 변경된 컨텐츠에 대해 상세 보기나 삭제 등 뭔가 컨트롤하려고 할 때 올바르게 안내를 해주거나 동작할 수 있게 해야겠죠.
  • 봄꾸
    1k
    2020-03-25 19:57:26 작성 2020-03-25 19:58:13 수정됨

    @한경닷컴교육센터

    말씀하신 것 처럼 최초에 데이터를 일정 분량 미리 읽어오고 읽어왔던 데이터를 뿌려주는게 맞겠네요..


    @흑인더훅

    이미 보여진것에 대해서는 당연히 그냥 둬야겠지요.. 그냥 두는데 순서가 밀리는 경우를 말씀드리는 것입니다.

  • 로그인을 하시면 답변 을 등록할 수 있습니다.