1. 문제 인식 및 정의
과제에서 제공된 프로젝트에서 API를 하나씩 테스트해보다가 일정에 매니저를 등록하는 코드에 문제가 있는 것을 확인했다.
- 담당자 등록 권한을 확인하는 로직에서 에러 메세지가 명확하지 않다는 것
- 같은 유저를 계속 매니저로 등록할 수 있다는 것
2. 해결 방안
메세지를 다음과 같이 좀 더 명확하게 수정하였다.
- 이전 메세지: 담당자를 등록하려고 하는 유저가 일정을 만든 유저가 유효하지 않습니다.
- 변경된 메세지: 담당자를 등록할 권한이 없습니다. 일정 작성자만 담당자를 등록할 수 있습니다.
두번째로 매니저를 등록할 때 유저를 조회하는 코드 바로 뒤에 해당 유저가 매니저로 등록되어 있는 지 확인하는 코드를 추가해주었다.
Spring 의 JpaRepository 의 메서드명으로 쿼리를 작성해주는 기능을 활용해 existsByTodoIdAndUserId 라는 메서드를 추가하여 별도의 쿼리 작성없이 간편하게 존재여부를 확인할 수 있었다.
3. 해결 완료
3-1 회고
조회한 일정에 선택한 유저가 이미 매니저로 추가되어 있다면 400 상태코드, 메세지와 함께 데이터가 추가되지 않도록 개선하였다.
3-2 전후 데이터 비교
하나의 9번 일정에 7번 유저가 여러번 등록되어 있던 이전 데이터와 달리 중복된 유저가 제거된 모습을 확인할 수 있다.
'개발 > 내일배움캠프 TIL' 카테고리의 다른 글
[TIL #40] 자바에서 데이터베이스 접근하기 (0) | 2025.01.14 |
---|---|
[TIL #39] 탈퇴한 회원 관리 테이블 분리 VS 필드 트러블 슈팅 (0) | 2025.01.12 |
Spring 뉴스피드 프로젝트 미니 발제 KPT 회고 (0) | 2024.12.27 |
[TIL #37] JPA를 이용한 일정 과제를 하면서 배운 내용 + 트러블 슈팅 기록 (0) | 2024.12.18 |
[TIL #36] Spring 에서의 검증 (0) | 2024.12.13 |