스팀 앱 개발기 #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 트리 순회 | 해결 |
최종 적용 로직:
childrenByParent인덱스 구성 —"parent_author/parent_permlink"키로 자식 목록을 O(1) 조회 가능하게 사전 그룹화buildSubtree재귀 함수 — 각 부모 직후에 그 자식 서브트리를 최신순으로 배치 (DFS pre-order)- 루트 포스트를 0번째에 두고 그 뒤에 트리 순서의 댓글 목록 이어붙임
GitHub Commit
보다 자세한 코드는 아래 commit을 참고하세요.
지난 스팀 앱 개발기
- #158 - 개발 완료: 추가 개선 6, 7, 8, 9
- #157 - 개발 완료: 추가 개선 4, 5
- #156 - 개발 완료: 추가 개선 1, 2, 3
- #155 - 개발 계획: 추가 개선 적용
- #154 - 개발 완료: 테스트 코드 개선
- #153 - 개발 완료: Architecture 개선 작업
- #152 - 개발 완료: 레거시 의존성 제거 작업 요약
- #151 - 개발 완료: Compose 마이그레이션 연장선
- #1 ~ #150
Layout provided by Steemit Enhancer hommage by ayogom
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