Jira의 이슈 정렬 방식이 Integer 방식이 아니라고?!
LY Corporation Tech Blog
Line에서 드래그 앤 드롭 리스트의 정렬을 구현하는 방법에 대해서 설명한 글입니다. 여기서 드래그 앤 드롭 리스트라는 것은 todo 리스트 등 어떤 리스트가 있을 때 다양한 정렬 기능을 제공할 수 있지만 사용자가 드래그 앤 드롭으로 순서를 바꾸게 하는 경우 이 정렬 순서를 저장해 두어야 하기 때문에 필요한 내용입니다.
이 방법에는 보통 Integer, GreenHopper, Linked List가 있습니다.
Interger는 각 아이템이 숫자 값을 가지고 있고 드래그 앤 드롭으로 위치를 변경하면 정렬된 순서대로 숫자가 정렬되어야 하므로 하위 모든 아이템의 숫자값도 변경해 주어야 합니다.
GreenHopper는 1, 100, 200처럼 각 아이템사이에 충분한 숫자 간격을 두어서 정렬 순서가 바뀌더라도 그 중간의 숫자를 사용하도록 하는 방식이다. 평소에는 잘 동작하지만 잦은 이동으로 아이템 사이의 간격이 모두 고갈되면 문제가 생깁니다.
Linked List는 위치 이동을 하더라고 각 앞뒤 아이템만 업데이트해 주면 되므로 간편하지만 전체를 조회할 때는 풀 스캔을 해야합니다.
이 세가지 방식의 문제를 해결하기 위해 Jirra를 만드는 Atlassian에서 LexoRank라는 방식을 만들었습니다. 이 방식은 Bucket|FixedKey:VariableKey
형태의 값을 사용하는데 앞의 Bucket을 이용해서 사전적 정렬을 이용할 수 있고 정렬을 할때 버킷을 순환해 가면서 만들고 간격 고갈시의 문제도 VariableKey를 활용할 수 있습니다.
드래그 앤 드롭 정렬은 자주 사용하는 UI라서 꽤 친숙하면서도 직접 구현해보거나 고민하지 않으면 이러한 어려움을 깨닫기 어려운데 이 글에서 다양한 방법과 해결책을 잘 정리해 주어서 재밌었습니다.
https://techblog.lycorp.co.jp/ko/about-atlassian-jira-ranking-algorithm-lexorank
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 2월 11일 오전 2:10
하나부터 열까지 리더가 상세히 설명해 주기를 바라는 구성원이 있습니다. 반대로 큰 얼개만 듣고 나머지는 자율적으로 하고 싶어 하는 경우도 있죠. 회식에 참여하는 것을 너무나 힘겨워 하는 구성원이 있는 반면, 동료들과 함께 시간을 보내며 가까워지는 것을 원하는 구성원도 있습니다.
... 더 보기피클은 지난달 하루 200명씩 신규 유입, 불과 한 달 만에 사용자 수 5배라는 폭발적 성장세를 보이고 있다. 전체 이용자 중 70%가 미국, 20%가 유럽에 분포하며, 평균 주 5회 이상 회의·온라인 모임에 피클 아바타를 활용하고 있다.
... 더 보기더불어민주당에선 대통령실 비서실장으로 지명된 강훈식 의원이 '경영권과 무관하게 상장사 지분 25% 이상을 확보할 경우 잔여 주식을 모두 공개매수해야 한다'는 내용의 자본시장법 개정안을 지난해 6월 발의했다. 대통령령으로 예외를 두겠다는 단서 조항을 달았지만 사실상 100% 의무공개매수를 도입을 추진하고 있다. 지난 정부가 추진한 '50%+1주 의무공개매수' 대비 한발 더 나간 제도라는 평가가 나온다.
... 더 보기