Spring 심화 3주차 완강 및 과제 lv3까지 완
주말에 안 쓰면 나는 바보다 월요일: 나는 바보다🤪
이번 과제는 코드 개선과 테스트 코드를 시도하여 코드를 효율적으로 검증하고, 핵심 비즈니스 로직을 깔끔하게 관리하는 방법을 익히는 시간입니다.
조건에 맞지 않는 경우 즉시 리턴하여, 불필요한 로직의 실행을 방지하고 성능을 향상

요구사항
- 드래그한 코드의 위치를 리팩토링
복잡한 if-else 구조는 코드의 가독성을 떨어뜨리고 유지보수를 어렵게 만듬

요구사항
- 불필요한 else 블록을 없애 코드를 간결하게 하기

요구사항
- 드래그한 부분을 UserChangePasswordRequest Dto에서 직접 구현하기
TodoController와 TodoService를 통해 Todo 관련 데이터를 처리getTodos 메서드에서 모든 Todo를 조회할 때, 각 Todo와 연관된 엔티티를 개별적으로 가져오는 경우이고 현재 특정 기능을 활용해서 N+1 발생을 방지한 상태요구사항
- JPQL 특정 기능을 사용하여 N+1 문제를 해결하고 있는
TodoRepository가 있습니다. 해당 Repository가 어떤 기능을 활용해서 N+1을 해결하고 있는지 분석 해보세요.- 이를 동일한 동작을 하는
@EntityGraph기반의 구현으로 수정해주세요.
원래 코드
@Query("SELECT t FROM Todo t LEFT JOIN FETCH t.user u ORDER BY t.modifiedAt DESC")
Page<Todo> findAllByOrderByModifiedAtDesc(Pageable pageable);
수정 코드
@EntityGraph(attributePaths = {"user"})
@Query("SELECT t FROM Todo t ORDER BY t.modifiedAt DESC")
Page<Todo> findAllByOrderByModifiedAtDesc(Pageable pageable);

요구사항
matches메서드가정상적으로_동작한다() 테스트가 의도대로 성공할 수 있게 수정해 주세요.

요구사항
manager목록조회시_Todo가없다면NPE에러를_던진다() 테스트가 성공하고 컨텍스트와 일치하도록 테스트 코드와 테스트 코드 메서드 명을 수정해 주세요.

요구사항
comment등록중할일을찾지못해에러가_발생한다() 테스트가 성공할 수 있도록 테스트 코드를 수정해 주세요.

요구사항
todo의user가_null인경우예외가발생한다() 테스트가 성공할 수 있도록 서비스 로직을 수정해 주세요.
이번 과제는 그전과는 달리 난이도가 쉬워서 여유로운 느낌이였다. 도전 부분은 제대로 안 봐서 모르겠지만 내일 도전하는 것으로 하겠습니다. 오늘도 컨디션이 좋지는 않았지만 그래도 열심히 했으니 만족합니다.🙌