미해결
파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
안녕하세요 선생님 DRF 대댓글에 대해서 질문드립니다!!
안녕하세요 선생님
DRF 대댓글에 대해서 질문드리려고 합니다.
제가 원하는 대댓글 구현은 계층형인데요 (물론 요즘은 잘 안쓰는걸로 알고있지만;;)
예를 들어 (reddit이랑 댓글 구현이 정확히 일치합니다!! -> 계층형 댓글로 구현이 되있습니다)
댓글
-대댓글
--대대댓글
--대대댓글
-대댓글
--대대댓글
댓글
-대댓글
-대댓글
댓글
...
위와 같이 어떠한 포스트글에 댓글, 대댓글 전부 한번에 보이게 구현을 하고 싶은데
보통 대댓글도 결국 댓글이라서 self join하자나요?
class Comment(TimestampedModel):
author = models.ForeignKey(User, on_delete=models.CASCADE)
post = models.ForeignKey(Post, on_delete=models.CASCADE, verbose_name='포스트 제목')
message = models.TextField(verbose_name='댓글')
parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True)
근데 문제는 pagination이 걸려 있다보니깐 어떠한 댓글에 대댓글, 대대댓글을 저렇게 정렬된 상태로 한번에 가져오는 방법이 떠오르지가 않네요; (댓글에 좋아요도 추가해서 정렬 알고리즘을 추가할 예정입니다)
그래서..
1. pagination을 풀어서 어떠한 포스트에 댓글을 전부 response하고 클라이언트 단에서 정렬하라고 하는건지?
(물론 당연히 DB 부담이 커서 처음엔 이 방법을 전혀 생각하고 있지 않았지만, 한편으로는 댓글은 많아봐야 몇천개라서 커버가 될 수있을까 ? 라는 막연한 생각이드네용)
2. 댓글 하나당 대댓글이 있는지 재귀적으로 요청해서 대댓글이 있으면 가져오고 없으면 넘어가는 식으로 구현?
(물론 당연히 이것도 하나의 포스트에 여러번의 DB 요청을 하기 때문에 서버측에서 굉장히 부담이 커서 현실성이 매우 떨어짐)
위 두 방법은 좀 현실성이 떨어져서 좀 더 효과적으로 구현할 수 있는 방법이 있을것같은데
실력과 경험부족으로 떠오르지가 않네요...
혹시 위 처럼 계층형 대댓글을 구현하는데 좋은 로직이나 자료나 솔루션이 있을까요????
(프론트엔드는 코틀린입니다)