우편 함수 GetPostList 의 사용법 문의

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 베이스/채팅/데이터베이스/월드 SDK 버전 : 5.18.12
  • 프로젝트명 : proj_rom_dev
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

뒤끝 개발팀을 통한 별도의 기술지원이 작업이 필요한 요청은 help@backnd.com 으로 문의해주시기 바랍니다.

우편 기능 추가 작업을 하면서 개발용 프로젝트에서 개발 문서 확인과 테스트를 병행 중인데,
Backend.UPost.GetPostList 의 동작이 이해가 되지 않습니다.

" 새로운 우편 기능(UPost )의 불러오기 기능은 자신이 받을 수 있는 제일 오래된 우편부터 limit의 수만큼 불러오기 시작합니다.
이후 호출할 때마다 마지막으로 불러온 우편에서 시작하여 점차 최신 날짜의 우편을 불러오게 됩니다.
이로 인해 첫 호출에는 우편을 불러오지 못해도 호출할수록 누적되어 우편 리스트가 갱신하게 됩니다."

라고 개발 문서에는 가이드 되어 있습니다.
즉 GetPostList 를 호출할때마다 뒤끝 서버 내부의 어떤 동작으로 limit 만큼 “추가로” 가져오기 때문에
클라이언트에서 우편을 누적해서 볼 수 있다는게 기능의 요지라고 이해했습니다.

그래서 테스트로 콘솔에서 우편을 11개 전송한 다음, 유저 로그인 후 우편 데이터를 가져오는 함수를 연속으로 호출했습니다.

[테스트 과정]

  1. Backend.UPost.GetPostList(PostType.Admin, 10); 호출
  2. (호출 처리 완료 후 코루틴으로 1초 대기)
  3. Backend.UPost.GetPostList(PostType.Admin, 10); 호출
  4. (호출 처리 완료 후 코루틴으로 1초 대기)
  5. (위 과정을 반복하다가 GetPostList의 반환값에서 “postList” 의 크기가 0이면 연속 호출 종료)

[기대 동작]
1번에서 우편을 10개 가져오고, 3번에서 우편을 1개 가져온 다음 (총 11개 우편 누적 완료), 한번 더 GetPostList 를 호출하면 이제 가져올 우편이 없으니 postList의 크기가 0이라서 연속 호출이 종료되는 것.

[실제 동작]
1번에서도 우편을 10개 반환하고, 3번에서도 우편을 10개 반환하고, 그 뒤로도 계속 10개를 반환하여 연속호출이 종료되지 않음. 반환되는 10개의 우편도 제일 오래된 우편부터가 아니라 최신 우편부터 가져옴.
(코루틴 대기시간을 1초에서 10초로 변경해서 테스트해도 동일)

이건 신버젼의 동작이라기보다 구버젼의 동작에 가까운거 같은데 제가 사용법을 잘못 이해했는지 확인 부탁드립니다.

안녕하세요, 개발자님.
문의해주신 Backend.UPost.GetPostList의 동작과 관련하여 안내드립니다.

먼저 테스트해주신 결과는 현재 UPost.GetPostList의 실제 동작과 일치합니다.
다만 개발자 문서의 설명이 실제 동작을 충분히 명확하게 전달하지 못해 혼선을 드린 점 죄송합니다.

구버전 우편 기능은 호출 시점마다 현재 존재하는 우편 중 최신 우편부터 요청한 limit만큼 조회하는 방식으로 동작합니다.
새로운 우편 기능인 UPost는 마지막 우편 조회 시점을 기준으로 이후에 추가된 우편을 조회합니다.
다만 마지막 조회 이후 새로 추가된 우편의 수가 요청한 limit보다 적은 경우에는, 새로 추가된 우편만 반환하거나 빈 목록을 반환하는 것이 아니라 현재 조회 가능한 최신 우편을 기준으로 limit만큼 반환합니다.

예를 들어 조회 가능한 우편이 11개이고 limit을 10으로 설정한 경우, 새로운 우편이 추가되지 않은 상태에서 GetPostList를 반복 호출하더라도 매번 최신 우편 10개가 반환될 수 있습니다.
이에 postList의 크기가 0이 되는 시점을 기준으로 전체 우편 조회 완료 여부를 판단하는 방식은 사용할 수 없습니다.

또한 UPost의 GetPostList는 호출할 때마다 이전에 조회하지 않은 우편을 순차적으로 가져오는 일반적인 페이지네이션 기능과는 동작 방식이 다릅니다.
클라이언트에서 우편 목록을 누적하여 관리하는 경우에는 우편의 고유 식별값을 기준으로 기존에 조회한 우편과 중복되지 않도록 처리해주셔야 합니다.

개발 문서에 기재된 “제일 오래된 우편부터 조회하며, 호출할수록 최신 우편이 누적된다”는 설명과 관련하여 위 예외 동작 내용을 보완할 수 있도록 하겠습니다.
이용에 혼선을 드린 점 다시 한번 죄송합니다.