일단 백엔드에서 Lexorank 적용하는 걸 포기해봤다..!
일단 내가 사용하는 Django 에서 적당하게 쓸 만한게 없는게 제일 컸다.
그리고 우리는 투두 리스트라.. 기껏 많아봐야 한 레벨에 100개 정도라 예상했다...!
그래서 딱히 백엔드에서 계산할 필요도 없고.. 바로바로 프론트에선 눈에 띄어야하니 프론트에서 개발하는 게 나을 것 같았다.
그래서 lexorank를 js로 적용해보려고 한다.
https://github.com/kvandake/lexorank-ts
GitHub - kvandake/lexorank-ts: A reference implementation of a list ordering system like JIRA's Lexorank algorithm
A reference implementation of a list ordering system like JIRA's Lexorank algorithm - kvandake/lexorank-ts
github.com
위의 라이브러리를 참고할 예정
일단 예상은 이렇게 진행된다.
간단하게 투두가 이동하고자 할 때
1. 없는 경우에는 lexorank.middle()
2. 한 투두가 가장 나중으로 이동하고자 한다면 genNext()
3. 한 투두가 중앙으로 이동하고자 한다면 between()
4. 한 투두가 가장 앞으로 가고자 한다면 getPrev()
다른 레벨로 이동하고자 할 떄
1. 2단계에 자식이 있는 애가 3단계로 가고자 하는 일 -> 금지
2. 2단계에 자식이 없는 애가 3단계로 가고자 하는 일 -> 가능
3. 넣고자 하는 단계 + 자식 수 > 3 이면 금지
이동할 때에는 '간단하게 투두가 이동하고자 할 때'의 규칙을 따른다
order 의 값은 일단 프론트에서 계산
backend는 프론트에서 준 값 받아서 넣기
만약 연산량이 프론트에서 계산하기 버거워진다면 backend에서 계산
아주 간단하게 진행하는건 정말 쉽게 되어서 팀원분이 지금까지 개발한 내용에 스리슬쩍 넣어볼 예정이다.
'소프트웨어 마에스트로 > 개발' 카테고리의 다른 글
[개발관련] Lexorank 적용기 종장 (2) | 2024.07.28 |
---|---|
[개발관련] lexorank 적용기 3 (2) | 2024.07.24 |
[개발] lexorank 적용기 1.5 (1) | 2024.07.22 |
[깃허브] organization 403 에러 + 동기화 및 암호화 관련 멘토링 (0) | 2024.07.11 |
[개발 관련] docker compose 문제 (0) | 2024.07.06 |