스팀 앱 개발기 #159 - 개발 완료: 포스트의 댓글 정렬 오류 수정

개발 완료: 포스트의 댓글 정렬 오류 수정

No. 159
2026. 06. 07 (일) | Written by @dorian-mobileapp

댓글의 정렬이 잘못된 버그가 있었는데, 이제야 수정합니다. 늦게라도 처리해서 다행으로 생각합니다. 또 다른 버그들이 있는지 한번 더 체크해보는 것도 좋을 것 같아요.


작업 내용 요약

목적

SteemService.getDiscussion API 응답(GetDiscussionResponseDTO)의 result 필드 정렬이 기대와 다른 문제 수정.


문제 상황

  • 기존 동작: Gson이 JSON을 파싱한 알파벳 순서(키 순서)로 결과 반환
  • 기대 동작:
    • 루트 포스트(요청한 author/permlink)가 항상 0번째
    • 나머지 댓글은 부모-자식 관계를 유지하며 최신순 정렬

수정 파일 및 내용

1. PostItemDTO.kt — 필드 추가

API 응답에 포함된 parent_author, parent_permlink 필드가 DTO에 없어 역직렬화 시 무시되고 있었음. 두 필드를 추가해 부모-자식 관계 파악 가능하도록 수정.

val parent_author: String?, val parent_permlink: String?,

2. SteemRepositoryImpl.kt — 정렬 로직 교체 (2회 수정)

회차방식문제
1차 수정depth + created 기준 평면 정렬depth가 같아도 부모가 다른 댓글이 섞임
2차 수정parent_permlink 기반 DFS 트리 순회해결

최종 적용 로직:

  1. childrenByParent 인덱스 구성 — "parent_author/parent_permlink" 키로 자식 목록을 O(1) 조회 가능하게 사전 그룹화
  2. buildSubtree 재귀 함수 — 각 부모 직후에 그 자식 서브트리를 최신순으로 배치 (DFS pre-order)
  3. 루트 포스트를 0번째에 두고 그 뒤에 트리 순서의 댓글 목록 이어붙임

GitHub Commit

보다 자세한 코드는 아래 commit을 참고하세요.


지난 스팀 앱 개발기


Layout provided by Steemit Enhancer hommage by ayogom

Posted using SteemX

Sort:  

Upvoted! Thank you for supporting witness @jswit.

🎉 Congratulations!

Your post has been upvoted by the SteemX Team! 🚀

SteemX is a modern, user-friendly and powerful platform built for the Steem community.

🔗 Visit us: www.steemx.org

✅ Support our work — Vote for our witness: bountyking5

banner.jpg

Coin Marketplace

STEEM 0.05
TRX 0.33
JST 0.081
BTC 63226.76
ETH 1686.26
USDT 1.00
SBD 0.42