[TIL #38] Spring 심화 주차 과제 Lv 6 기능 개선하기

2025. 1. 6. 10:31·개발/내일배움캠프 TIL

1. 문제 인식 및 정의

과제에서 제공된 프로젝트에서 API를 하나씩 테스트해보다가 일정에 매니저를 등록하는 코드에 문제가 있는 것을 확인했다.

  1. 담당자 등록 권한을 확인하는 로직에서 에러 메세지가 명확하지 않다는 것
  2. 같은 유저를 계속 매니저로 등록할 수 있다는 것

 

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
'개발/내일배움캠프 TIL' 카테고리의 다른 글
  • [TIL #40] 자바에서 데이터베이스 접근하기
  • [TIL #39] 탈퇴한 회원 관리 테이블 분리 VS 필드 트러블 슈팅
  • Spring 뉴스피드 프로젝트 미니 발제 KPT 회고
  • [TIL #37] JPA를 이용한 일정 과제를 하면서 배운 내용 + 트러블 슈팅 기록
BigChoi93
BigChoi93
이곳은 저의 성장과정과 개인적인 생각을 담기 위한 공간입니다.
  • BigChoi93
    Donologue
    BigChoi93
  • 전체
    오늘
    어제
    • 분류 전체보기 (61)
      • 개발 (53)
        • Javascript (2)
        • 내일배움캠프 TIL (41)
        • 개발일기 (4)
        • Java (2)
        • Spring (1)
        • Sql (1)
      • 일상 (0)
      • 사진 (1)
        • 포토샵 (1)
  • hELLO· Designed By정상우.v4.10.1
BigChoi93
[TIL #38] Spring 심화 주차 과제 Lv 6 기능 개선하기
상단으로

티스토리툴바