본문 바로가기
카테고리 없음

Trouble Shooting

by 차리하루일기 2024. 10. 31.

담당 일정 배치에 관하여 

 

처음 일정 관리 프로그램을 설계할 때, "개인 일정 관리"에 초점을 맞춰 설계한 것이 문제점으로 떠올랐다. 이로 인해 팀 일정 관리 또는 여러 사용자가 같은 일정을 관리하는 시나리오를 제대로 고려하지 않았을 가능성이 있었다. 따라서, 엔티티 관계와 데이터 모델링에서 개인 일정 관리와 팀 일정 관리의 차이점을 반영할 필요가 있다.

 

문제점의 본질 인식

일정 작성 유저가 담당 유저들을 배치할 수 있는 기능이 구현되었는가?

 

라는 평가표의 일부를 보았기에 여기서 다대다 관계에 관해서 떠올릴 수 있었다. 

기존의 데이터 모델링과 엔티티 관계가 1:1 또는 단순한 1관계를 기반으로 하고 있을 가능성이 있다. 하지만 팀 기반의 일정 관리에서는 N관계가 주로 발생하며, 각 유저의 역할에 따라 접근 권한 및 역할 분리가 중요해진다.

그렇다면, 관계를 재설계할 필요가 있다.

 

 

문제 해결 접근 방법

N:M 관계 형성

  • 일정(Todo)과 유저(User) 간의 관계를 확장해야 한다. 이를 위해 User와 Todo 간에 N관계를 설정하고, 이를 매핑하는 중간 테이블 역할의 UserTodo를 설계하는 방식으로 접근했다.

유저의 역할(Role) 정의

  • memberId 라는 것을 추가해서 이 글의 주인이 누구인지를 명시 했다. 

엔티티 구조 수정

  • 기존의 개인 일정 관리 중심의 구조를 N관계를 반영한 구조로 변경해야 한다. 

 

 

문제 해결 이후 개선된 일정 관리 앱

 

N

관계를 통한 유연한 배정

  • User와 Todo가 N관계로 설정되어 있으며, 이를 통해 하나의 일정에 여러 명의 유저를 배정할 수 있고, 동시에 한 유저가 여러 일정을 담당할 수 있다. 

일정 관리에서의 성능 문제 해결

  • 지연 로딩(LAZY)과 즉시 로딩(EAGER)의 설정을 다시 검토하였다.