강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

eoyeong님의 프로필 이미지
eoyeong

작성한 질문수

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

댓글 무한 depth - 테이블&구현 설계

무한 depth 설계에 path enumeration 방식을 선택한 이유?

해결된 질문

작성

·

252

0

  • 학습 관련 질문을 최대한 상세히 남겨주세요!

  • 고민 과정도 같이 나열해주셔도 좋습니다.

  • 먼저 유사한 질문이 있었는지 검색해보세요.

  • 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

안녕하세요

 

무한 depth는 이전 강의에 소개된 adjency list로도 구현이 가능하고 또 adjacency list, path enumeration 방법 외에도 nested set, closure table 방법도 있는 걸로 알고 있습니다.

 

path enumeration 방법을 선택한 이유가 따로 있을까요??

답변 1

2

쿠케님의 프로필 이미지
쿠케
지식공유자

ga님, 안녕하세요!

무한 depth는 path enumeration 방법으로 풀어야 페이징을 빠르게 수행할 수 있습니다.

adjency list로는 페이징을 빠르게 수행할 수 없는 이유에 대해 정렬 순서에 대한 부분으로 살펴봅니다.(인덱스를 못태움)

nested set/closure table 개념은 한번 직접 살펴보시면서,

필요한 요구사항과 사용성을 문제 없이 처리할 수 있을지 검토해보시면 좋을 것 같습니다!

각 방식마다 적절한 사용성과 장단점이 있는 것이고, 특정 설계 방식이 요구사항을 충족할 수 있다면 어떤 방법이든 정답은 없습니다!

다만, nested set/closure table 개념은, 대댓글 + 페이징 형태의 요구사항에는 적합하지 않은 방식으로 판단되네요.

각 동작에 대해 병목 없이 만들어지는지 직접 설계하며 검토해보는 것도 추천드립니다!

eoyeong님의 프로필 이미지
eoyeong
질문자

답변 감사합니다 :)

eoyeong님의 프로필 이미지
eoyeong

작성한 질문수

질문하기