Skip to content

일정 관리 앱 Develop 과제 피드백 #1

Description

@ssk910

1. Entity

1.1. Schedule

이 클래스의 생성자는 DTO 클래스를 이용하고 있어서 DTO 클래스에 의존하고 있습니다.
이렇게 되면 DTO 클래스에 수정사항이 생겼을 때, 이 Entity도 같이 변경되어야 하므로 User 클래스처럼 필요한 필드를 직접 넣도록 하는 것이 조금 더 안전할 수 있습니다.

    public Schedule(String title, String contents) {
        this.title = title;
        this.contents = contents;
    }

1.2. Comment

댓글의 경우는 댓글이 생성될 때 반드시 일정(Schedule)과 작성자(User) 정보가 필요합니다.
즉, 이 객체는 생성시에 scheduleuser 필드는 필수이므로 생성자에 매개변수로 추가하면 더 안전할 것 같습니다.


2. Controller

2.1. ScheduleController

2.1.1. readSchedules() 메소드

아시다시피 PageRequest.of() 메소드의 매개변수로 사용되는 pageNumber 0부터 시작하는 정수이기 때문에, defaultValue 옵션을 적절히 사용하셨습니다.
일반 사용자 입장에서는 pageNumber는 1부터 시작한다고 생각하는게 일반적일 수 있습니다.
그래서 이 API를 이용하는 프론트 개발자와 잘 소통하여 지금처럼 pageNumber를 0부터 입력받을지,
아니면 일반 사용자의 입장을 고려하여 1부터 입력받고, 서버에서 다시 1을 뺀 값을 이용할 것인지 고민할 필요가 있습니다.


3. 참고

이미 알고 계실지도 모르겠지만 JPA에서 부모 엔티티에서 자식 엔티티를 삭제할 때 관련된 옵션은 orphanRemoval도 있습니다.
CascadeType.REMOVE와 비교하시면 좋을 것 같아서 링크를 남겨드립니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions