<aside>
⭐ 기본 조건
- 카드와 컬럼은 N:1의 관계를 갖고 있습니다.
- 카드는 이미 존재하는 컬럼 내에서 순서를 이동하거나, 다른 컬럼의 원하는 위치로 이동할 수도 있습니다.
- 카드에는 컬럼 내에서의 순서를 지정하는 cardOrder 필드가 존재합니다.
- 카드와 컬럼을 N:1 관계로 설정하면서 양방향 관계로 매핑하였습니다.
→ 컬럼 안에도 LinkedList 형태의 카드들 필드가 있고, 카드 안에도 컬럼 필드가 존재합니다.
</aside>
처음에 구현을 시도했던 방법
- 문제 발견
- 원하는 대로 카드의 위치가 설정되지 않는 것을 확인했습니다.
- A, B, C, D, E 의 순서로 배치된 카드에서, E를 세번째로 옮기면 기대하는 모습은 A, B, E, C, D 인데, 갑자기 B, A, E, C, D 가 된다거나 A, B, E, D, C가 된다거나 등등..
- 로그를 찍으면서 계속 확인을 해보니, 컬럼에 저장된 cardList 의 순서의 index 값과, 실제 card의 cardOrder 값이 일치하지 않는 부분이 있다는 것을 확인했습니다.
- 기존에 하던 방식대로 LinkedList의 속성을 활용해 계속 구현하고자 했으나, 해결되지 않아서 cardOrder 만으로 조정하는 것으로 방향을 변경하기로 했습니다.
이후에 수정한 코드
Q. 이렇게 되면 양방향으로 설정하지 않아도 괜찮지 않나?
- 순서 이동할 때 카드 리스트 가져올 때도, 화면에 표시하기 위해서 컬럼에 카드 리스트를 넣어줄 때도 repository에서 직접 찾아서 가져옴