초기 화면은 이렇게 구성되어 있다.
두 번째 컬럼에 있던 New Card
를 세 번째 컬럼으로 이동 시키면 이렇게 되어야 한다.
딱 저렇게 원하는 컬럼의 원하는 위치로 자유롭게 이동할 수 있고,
당연히 다른 카드들에는 영향을 미치면 안된다.
이게 .. 대체 어느 부분에서, 어느 시점에 이동 오류가 나는지 알 수가 없다.
(그래서 매우 답답하다)
이동 전 | 이동 후 |
---|---|
![]() | ![]() |
하나의 컬럼에 굉장히 카드가 많은 이동 전의 상황이다.
여기서 New Card
의 카드만 세 번째로 이동을 하고 싶어서 옮기면 ...
위에 프로젝트 CRUD와 컬럼 CRUD도 같이 순서가 바뀌어 버렸다 !!! 대체 왜 ?!
나는 그건 건드린 적도 없는데 맘대로 바뀌어 왜 ...
내가 언제 순서 바꾸라고 했니 ..
더 문제는 이런 오류 상황이 굉장히 랜덤이라는 것이다.
언제는 잘 바뀌는데, 언제는 건드리지 않는 다른 카드들도 함께 움직인다.
빠르게 수정해야 한다.
원래는 해당 컬럼에 양방향으로 저장해 두었던 LinkedList를 이용하여 순서를 변경하고자 하였다.
List<Card> oldCardList = oldcolumn.getCards();
이런식으로 이미 컬럼에 저장되어 있는 카드 리스트를 가져와서 순서를 변경하고자 하였다.
하지만 원활하게 수정되지 않아서, 아예 LinkedList를 사용해서 하는 방법 말고 다른 방법을 사용하기로 했다.
컬럼에 저장되어 있는 카드 리스트를 사용하지 않고,
카드 레퍼지토리에서 컬럼에 해당하는 카드를 찾아와서 수정해주기로 했다.
List<Card> oldCardList = cardRepository.findAllByColumnsOrderByCardOrder(oldcolumn);
그리고 카드에 있는 cardOrder 필드로 순서를 정리해주면 된다.
LinkedList를 이용해서 순서를 변경하려고 한 건, 너무 얄팍한 생각이었나 싶었다.
순서 바꾸고 다시 save 해주기도 하고 @Transactional 에너테이션도 붙여봤는데 소용이 없어서,
어디서 잘못 된건지 정말 알고싶다 ..
내용이 너무 길어서 자세한 내용은 노션에 정리해두었다 ! 카드 이동 트러블슈팅