문제: String author 필드에 @ManyToOne을 설정하려다 보니 "속성 타입은 'User'일 수 없습니다"라는 에러 발생.
원인: JPA 연관관계는 단순 값이 아닌 엔티티 객체 간의 연결이어야 함.
해결: private String author;를 private User author;로 변경하고, 대상 클래스에 @Entity가 붙어 있는지 확인.
문제: TodoList를 수정할 때 작성자의 이름까지 직접 수정하려고 함.
원인: 객체지향 설계에서 '작성자의 정보'는 User 도메인의 책임인데, TodoList 도메인이 이를 침범함.
해결: 유저 정보 수정: UserService에서 처리. (Dirty Checking을 통해 연결된 모든 글에 자동 반영)
작성자 교체: TodoListService에서 새로운 User 객체를 조회하여 할당.
문제: Response DTO에 User 엔티티를 통째로 담아 비밀번호 등 민감 정보가 유출되거나 순환 참조 에러 위험 발생.
해결: Response DTO에서는 User 객체 대신 String authorName 필드를 사용하여 필요한 정보만 가공해서 전달.
문제: @PathVariable을 사용하면 반드시 특정 ID를 넣어야 해서 '전체 조회' 기능을 동시에 쓰기 불편함.
해결: @RequestParam(required = false)를 사용하여 /todos 호출 시 전체 목록을, /todos?authorId=1 호출 시 특정 유저의 목록을 반환하도록 개선.